From 1ee9b9a3fd6fa5770affbed9cead62dbfd61d727 Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 00:55:53 +0000 Subject: [PATCH 01/13] feat: Add eufyCam S4 (T8172) and Indoor Cam C220 (T8419N) support - Add EUFYCAM_S4 (Type 89) to DeviceType enum and DeviceName mapping - Define S4 device properties (battery, PTZ, motion detection, dual cam view) - Update isCamera, hasBattery, isPanAndTiltCamera, isOutdoorPanAndTiltCamera - Add Indoor Cam C220 (T8419N, Type 10011) to supported devices - Add device discovery and verification utility scripts - Update supported devices documentation with S4 image --- docs/_media/eufycams4_t8172_small.png | Bin 0 -> 40519 bytes docs/supported_devices.md | 2 + scripts/README.md | 37 +++++ scripts/discover-device.ts | 157 +++++++++++++++++++++ scripts/verify-devices.ts | 196 ++++++++++++++++++++++++++ src/http/device.ts | 28 ++-- src/http/types.ts | 80 +++++++++-- 7 files changed, 480 insertions(+), 20 deletions(-) create mode 100644 docs/_media/eufycams4_t8172_small.png create mode 100644 scripts/README.md create mode 100644 scripts/discover-device.ts create mode 100644 scripts/verify-devices.ts diff --git a/docs/_media/eufycams4_t8172_small.png b/docs/_media/eufycams4_t8172_small.png new file mode 100644 index 0000000000000000000000000000000000000000..18b057a0cb1463d0b03fa621b6c4ca2d923e54fe GIT binary patch literal 40519 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

5ze_)1iv=c%VC`zbSIh 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 literal 0 HcmV?d00001 diff --git a/docs/supported_devices.md b/docs/supported_devices.md index fda84a52..1301aa40 100644 --- a/docs/supported_devices.md +++ b/docs/supported_devices.md @@ -17,6 +17,7 @@ | ![T8160 image](_media/eufycam3_small.jpg) | eufyCam S330 (T8160; eufyCam 3) | :heavy_check_mark: | Firmware: 3.1.8.6 (20221101) | | ![T8161 image](_media/eufycam3c_small.jpg) | eufyCam S300 (T8161; eufyCam 3C) | :heavy_check_mark: | Firmware: 3.1.8.6 (20221101) | | ![T8160 image](_media/eufycam3pro_small.png) | eufyCam S3 Pro (T8162; eufyCam S3 Pro) | :heavy_check_mark: | | +| ![T8172 image](_media/eufycams4_t8172_small.png) | eufyCam S4 (T8172) | :heavy_check_mark: | | | ![T8600 image](_media/eufycame330_small.jpg) | eufyCam E330 (Professional; T8600) | :heavy_check_mark: | Firmware: 0.5.9.5 (20231218) | | ![T8130 image](_media/solocame20_small.jpg) | SoloCam E20 (T8130) | :heavy_check_mark: | | | ![T8131 image](_media/solocame40_small.jpg) | SoloCam C120 (T8131; SoloCam E40) | :heavy_check_mark: | | @@ -56,6 +57,7 @@ | ![T8416 image](_media/indoorcamE30_small.jpeg) | Indoor Cam E30 (T8417) | :heavy_check_mark: | | | ![T8416 image](_media/indoorcamC210_small.png) | Indoor Cam C210 (T8419) | :heavy_check_mark: | | | ![T8416 image](_media/indoorcamC220_small.png) | Indoor Cam C220 (T8W11C; type 10008/10010) | :heavy_check_mark: | | +| ![T8416 image](_media/indoorcamC220_small.png) | Indoor Cam C220 (T8419N; type 10011) | :heavy_check_mark: | | | ![T8150 image](_media/4g_lte_starlight_small.jpg) | 4G LTE Starlight (T8150) | :heavy_check_mark: | | | ![T8150 image](_media/4g_lte_starlight_small.jpg) | 4G Camera S230 (T8151; 4G LTE Starlight) | :heavy_check_mark: | Firmware: 1.1.3.7 (20230730) | | ![T8150 image](_media/4g_lte_starlight_small.jpg) | 4G LTE Starlight (T8152) | :heavy_exclamation_mark: | | diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 00000000..44a55bdd --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,37 @@ +# Development Utility Scripts + +This directory contains utility scripts for development and testing. + +## Device Discovery Script + +Discovers all devices on your Eufy account and displays their properties and parameters. + +**Usage:** +```bash +npx ts-node --transpile-only scripts/discover-device.ts [country] +``` + +**Example:** +```bash +npx ts-node --transpile-only scripts/discover-device.ts user@email.com password123 US +``` + +## Device Verification Script + +Verifies that all devices on your account are correctly recognized by the system's device classification functions (isCamera, hasBattery, isPanAndTiltCamera, etc.). + +**Usage:** +```bash +npx ts-node --transpile-only scripts/verify-devices.ts [country] +``` + +**Example:** +```bash +npx ts-node --transpile-only scripts/verify-devices.ts user@email.com password123 GB +``` + +## Notes + +- **Country**: Use 2-letter ISO country code (e.g., US, GB, DE, FR). Should match your Eufy app setting. +- **2FA/Captcha**: If prompted for 2FA or captcha, you may need to log in via the Eufy app first. +- Scripts require `npm install` to have been run first. diff --git a/scripts/discover-device.ts b/scripts/discover-device.ts new file mode 100644 index 00000000..1133d1e1 --- /dev/null +++ b/scripts/discover-device.ts @@ -0,0 +1,157 @@ +/** + * Eufy Device Discovery Script + * + * This script connects to the Eufy API and dumps detailed information + * about all devices, including their params (which reveal supported features). + * + * Usage: + * npx ts-node scripts/discover-device.ts [country] + * + * Example: + * npx ts-node scripts/discover-device.ts user@email.com password123 US + */ + +/// +declare const process: NodeJS.Process; + +import { HTTPApi } from "../src/http/api"; +import { DeviceListResponse, StationListResponse } from "../src/http/models"; + +async function main() { + const args = process.argv.slice(2); + + if (args.length < 2) { + console.log("Usage: npx ts-node scripts/discover-device.ts [country]"); + console.log("Example: npx ts-node scripts/discover-device.ts user@email.com password US"); + process.exit(1); + } + + const username = args[0]; + const password = args[1]; + const country = args[2] || "US"; + + console.log(`\n=== Eufy Device Discovery Script ===\n`); + console.log(`Country: ${country}`); + console.log(`Username: ${username}`); + console.log(`\nConnecting to Eufy API...\n`); + + try { + // Initialize the API + const api = await HTTPApi.initialize(country, username, password); + + // Login to the API (required before querying data) + console.log("Logging in..."); + await api.login(); + + console.log("✓ Connected successfully!\n"); + + // Debug: Try to get device list directly (before refresh) + console.log("DEBUG: Trying getDeviceList directly..."); + const rawDevices = await api.getDeviceList(); + console.log(`DEBUG: getDeviceList returned ${rawDevices.length} devices`); + if (rawDevices.length > 0) { + console.log("DEBUG: First device:", JSON.stringify(rawDevices[0], null, 2)); + } + + console.log("\nDEBUG: Trying getStationList directly..."); + const rawStations = await api.getStationList(); + console.log(`DEBUG: getStationList returned ${rawStations.length} stations`); + if (rawStations.length > 0) { + console.log("DEBUG: First station:", JSON.stringify(rawStations[0], null, 2)); + } + + // Refresh data from server + console.log("\nRefreshing data from Eufy servers...\n"); + await api.refreshAllData(); + console.log("✓ Data refreshed!\n"); + + // Get all stations from cache + console.log("=== STATIONS ===\n"); + const hubs = api.getHubs(); + + for (const [sn, station] of Object.entries(hubs)) { + console.log(`Station: ${station.station_name}`); + console.log(` Model: ${station.station_model}`); + console.log(` Serial: ${station.station_sn}`); + console.log(` Type: ${station.device_type}`); + console.log(` SW Version: ${station.main_sw_version}`); + console.log(` HW Version: ${station.main_hw_version}`); + console.log(` P2P DID: ${station.p2p_did}`); + + if (station.params && station.params.length > 0) { + console.log(` Params (${station.params.length}):`); + for (const param of station.params) { + console.log(` [${param.param_type}]: ${param.param_value}`); + } + } + console.log(""); + } + + // Get all devices from cache + console.log("\n=== DEVICES ===\n"); + const devices = api.getDevices(); + + for (const [sn, device] of Object.entries(devices)) { + console.log(`Device: ${device.device_name}`); + console.log(` Model: ${device.device_model}`); + console.log(` Serial: ${device.device_sn}`); + console.log(` Type: ${device.device_type}`); + console.log(` Station: ${device.station_sn}`); + console.log(` SW Version: ${device.main_sw_version}`); + console.log(` HW Version: ${device.main_hw_version}`); + console.log(` WiFi SSID: ${device.wifi_ssid || "N/A"}`); + console.log(` Local IP: ${device.local_ip || "N/A"}`); + + if (device.params && device.params.length > 0) { + console.log(` Params (${device.params.length}):`); + for (const param of device.params) { + // Try to parse JSON values + let value = param.param_value; + try { + const parsed = JSON.parse(param.param_value); + value = JSON.stringify(parsed, null, 4).replace(/\n/g, "\n "); + } catch { + // Not JSON, use raw value + } + console.log(` [${param.param_type}]: ${value}`); + } + } + + // If this is the S4 (type 89), print extra info + if (device.device_type === 89) { + console.log(`\n *** THIS IS THE EUFYCAM S4 (T8172) ***`); + console.log(` Full raw device data:`); + console.log(JSON.stringify(device, null, 2)); + } + + console.log(""); + } + + console.log("\n=== SUMMARY ===\n"); + console.log(`Total Stations: ${Object.keys(hubs).length}`); + console.log(`Total Devices: ${Object.keys(devices).length}`); + + // List device types found + const types = new Map(); + for (const [sn, device] of Object.entries(devices)) { + types.set(device.device_type, device.device_model); + } + console.log(`\nDevice Types Found:`); + for (const [type, model] of types) { + console.log(` Type ${type}: ${model}`); + } + + } catch (error) { + console.error("Error:", error); + + if (error instanceof Error) { + if (error.message.includes("captcha")) { + console.log("\n⚠️ Captcha required - you may need to log in via the Eufy app first"); + } else if (error.message.includes("verify")) { + console.log("\n⚠️ 2FA verification required - run again after receiving code"); + } + } + } +} + +main(); diff --git a/scripts/verify-devices.ts b/scripts/verify-devices.ts new file mode 100644 index 00000000..d69d25f3 --- /dev/null +++ b/scripts/verify-devices.ts @@ -0,0 +1,196 @@ +/** + * Device Recognition Verification Test Script + * + * This script connects to the Eufy API and verifies that all devices + * are correctly recognized by the system's device classification functions. + * + * Usage: + * npx ts-node --transpile-only scripts/verify-devices.ts [country] + */ + +/// +declare const process: NodeJS.Process; + +import { HTTPApi } from "../src/http/api"; +import { Device, Camera } from "../src/http/device"; +import { DeviceType } from "../src/http/types"; + +interface TestResult { + device: string; + model: string; + type: number; + typeName: string; + tests: { + name: string; + expected: boolean; + actual: boolean; + passed: boolean; + }[]; + allPassed: boolean; +} + +// Map of device types to their expected classifications +const expectedClassifications: Record = { + // Floodlight Camera 8425 (T8425) - HAS PTZ + 47: { isCamera: true, hasBattery: false, isPanAndTilt: true }, + + // eufyCam S4 (T8172) + 89: { isCamera: true, hasBattery: true, isPanAndTilt: true, isOutdoorPanAndTilt: true }, + + // Video Doorbell E340 (T8214) + 94: { isCamera: true, hasBattery: true, isPanAndTilt: false }, + + // Indoor Cam C220 V2 (T8W11C) + 10010: { isCamera: true, hasBattery: false, isPanAndTilt: true, isIndoorCamera: true }, + + // SmartTrack Link (T87B0) - Note: has battery but not in hasBattery() function (pre-existing issue) + 157: { isCamera: false, hasBattery: false, isPanAndTilt: false }, +}; + +async function main() { + const args = process.argv.slice(2); + + if (args.length < 2) { + console.log("Usage: npx ts-node --transpile-only scripts/verify-devices.ts [country]"); + process.exit(1); + } + + const username = args[0]; + const password = args[1]; + const country = args[2] || "US"; + + console.log(`\n${"=".repeat(60)}`); + console.log(" EUFY DEVICE RECOGNITION VERIFICATION TEST"); + console.log(`${"=".repeat(60)}\n`); + console.log(`Country: ${country}`); + console.log(`Username: ${username}\n`); + + try { + // Initialize and login + console.log("Connecting to Eufy API..."); + const api = await HTTPApi.initialize(country, username, password); + await api.login(); + console.log("✓ Connected successfully!\n"); + + // Refresh data + console.log("Refreshing device data..."); + await api.refreshAllData(); + console.log("✓ Data refreshed!\n"); + + const devices = api.getDevices(); + const results: TestResult[] = []; + let totalPassed = 0; + let totalFailed = 0; + + console.log(`${"=".repeat(60)}`); + console.log(" DEVICE TESTS"); + console.log(`${"=".repeat(60)}\n`); + + for (const [sn, device] of Object.entries(devices)) { + const type = device.device_type; + const typeName = DeviceType[type] || `UNKNOWN(${type})`; + const model = device.device_model; + const name = device.device_name; + + console.log(`📷 ${name} (${model})`); + console.log(` Type: ${type} (${typeName})`); + console.log(` Serial: ${sn}`); + console.log(` Tests:`); + + const testResult: TestResult = { + device: name, + model: model, + type: type, + typeName: typeName, + tests: [], + allPassed: true + }; + + // Run classification tests + const tests = [ + { name: "isCamera", fn: () => Device.isCamera(type), expected: expectedClassifications[type]?.isCamera }, + { name: "hasBattery", fn: () => Device.hasBattery(type), expected: expectedClassifications[type]?.hasBattery }, + { name: "isPanAndTiltCamera", fn: () => Device.isPanAndTiltCamera(type), expected: expectedClassifications[type]?.isPanAndTilt }, + { name: "isOutdoorPanAndTiltCamera", fn: () => Device.isOutdoorPanAndTiltCamera(type), expected: expectedClassifications[type]?.isOutdoorPanAndTilt }, + { name: "isIndoorCamera", fn: () => Device.isIndoorCamera(type), expected: expectedClassifications[type]?.isIndoorCamera }, + ]; + + for (const test of tests) { + const actual = test.fn(); + const expected = test.expected; + + // If we have an expected value, check it; otherwise just report actual + if (expected !== undefined) { + const passed = actual === expected; + const icon = passed ? "✅" : "❌"; + console.log(` ${icon} ${test.name}: ${actual} (expected: ${expected})`); + + testResult.tests.push({ + name: test.name, + expected: expected, + actual: actual, + passed: passed + }); + + if (passed) { + totalPassed++; + } else { + totalFailed++; + testResult.allPassed = false; + } + } else { + console.log(` ℹ️ ${test.name}: ${actual}`); + testResult.tests.push({ + name: test.name, + expected: actual, // No expectation, just report + actual: actual, + passed: true + }); + } + } + + results.push(testResult); + console.log(""); + } + + // Summary + console.log(`${"=".repeat(60)}`); + console.log(" SUMMARY"); + console.log(`${"=".repeat(60)}\n`); + + console.log(`Total Devices Tested: ${Object.keys(devices).length}`); + console.log(`Tests Passed: ${totalPassed}`); + console.log(`Tests Failed: ${totalFailed}`); + console.log(""); + + // Device type coverage + console.log("Device Types Found:"); + for (const result of results) { + const status = result.allPassed ? "✅" : "❌"; + console.log(` ${status} Type ${result.type}: ${result.typeName} (${result.model})`); + } + + // Final status + console.log(""); + if (totalFailed === 0) { + console.log("🎉 ALL TESTS PASSED!"); + } else { + console.log(`⚠️ ${totalFailed} TEST(S) FAILED - Review the results above`); + } + + // Exit with appropriate code + process.exit(totalFailed > 0 ? 1 : 0); + + } catch (error) { + console.error("Error:", error); + process.exit(1); + } +} + +main(); diff --git a/src/http/device.ts b/src/http/device.ts index 11d04e17..6f20e74a 100644 --- a/src/http/device.ts +++ b/src/http/device.ts @@ -1006,6 +1006,7 @@ export class Device extends TypedEmitter { type == DeviceType.INDOOR_CAMERA_1080 || type == DeviceType.INDOOR_PT_CAMERA_1080 || type == DeviceType.OUTDOOR_PT_CAMERA || + type == DeviceType.EUFYCAM_S4 || type == DeviceType.SOLO_CAMERA || type == DeviceType.SOLO_CAMERA_PRO || type == DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 || @@ -1029,10 +1030,11 @@ export class Device extends TypedEmitter { type == DeviceType.CAMERA_GARAGE_T8452 || type == DeviceType.CAMERA_FG || type == DeviceType.INDOOR_PT_CAMERA_S350 || - type == DeviceType.INDOOR_PT_CAMERA_E30 || + type == DeviceType.INDOOR_PT_CAMERA_E30 || type == DeviceType.INDOOR_PT_CAMERA_C210 || type == DeviceType.INDOOR_PT_CAMERA_C220 || type == DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == DeviceType.INDOOR_PT_CAMERA_C220_V3 || type == DeviceType.SMART_DROP) return true; return false; @@ -1078,7 +1080,8 @@ export class Device extends TypedEmitter { type == DeviceType.CAMERA_FG || type == DeviceType.WALL_LIGHT_CAM_81A0 || type == DeviceType.SMART_DROP || - type == DeviceType.OUTDOOR_PT_CAMERA) + type == DeviceType.OUTDOOR_PT_CAMERA || + type == DeviceType.EUFYCAM_S4) //TODO: Add other battery devices return true; return false; @@ -1150,11 +1153,12 @@ export class Device extends TypedEmitter { type == DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT || type == DeviceType.INDOOR_OUTDOOR_CAMERA_2K || type == DeviceType.INDOOR_COST_DOWN_CAMERA || - type == DeviceType.INDOOR_PT_CAMERA_S350 || - type == DeviceType.INDOOR_PT_CAMERA_E30 || + type == DeviceType.INDOOR_PT_CAMERA_S350 || + type == DeviceType.INDOOR_PT_CAMERA_E30 || type == DeviceType.INDOOR_PT_CAMERA_C210 || type == DeviceType.INDOOR_PT_CAMERA_C220 || - type == DeviceType.INDOOR_PT_CAMERA_C220_V2) + type == DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == DeviceType.INDOOR_PT_CAMERA_C220_V3) return true; return false; } @@ -1166,28 +1170,32 @@ export class Device extends TypedEmitter { type == DeviceType.FLOODLIGHT_CAMERA_8425 || type == DeviceType.INDOOR_COST_DOWN_CAMERA || type == DeviceType.OUTDOOR_PT_CAMERA || + type == DeviceType.EUFYCAM_S4 || type == DeviceType.INDOOR_PT_CAMERA_S350 || - type == DeviceType.INDOOR_PT_CAMERA_E30 || + type == DeviceType.INDOOR_PT_CAMERA_E30 || type == DeviceType.INDOOR_PT_CAMERA_C210 || type == DeviceType.INDOOR_PT_CAMERA_C220 || - type == DeviceType.INDOOR_PT_CAMERA_C220_V2) + type == DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == DeviceType.INDOOR_PT_CAMERA_C220_V3) return true; return false; } static isOutdoorPanAndTiltCamera(type: number): boolean { if (type == DeviceType.OUTDOOR_PT_CAMERA || - type == DeviceType.SOLO_CAMERA_E30) + type == DeviceType.EUFYCAM_S4 || + type == DeviceType.SOLO_CAMERA_E30) return true; return false; } static isIndoorPanAndTiltCameraS350(type: number): boolean { if (type == DeviceType.INDOOR_PT_CAMERA_S350 || - type == DeviceType.INDOOR_PT_CAMERA_E30 || + type == DeviceType.INDOOR_PT_CAMERA_E30 || type == DeviceType.INDOOR_PT_CAMERA_C210 || type == DeviceType.INDOOR_PT_CAMERA_C220 || - type == DeviceType.INDOOR_PT_CAMERA_C220_V2) + type == DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == DeviceType.INDOOR_PT_CAMERA_C220_V3) return true; return false; } diff --git a/src/http/types.ts b/src/http/types.ts index 49e7da85..527ef220 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -56,6 +56,7 @@ export enum DeviceType { SOLO_CAMERA_C210 = 64, FLOODLIGHT_CAMERA_8426 = 87, //E30 SOLO_CAMERA_E30 = 88, + EUFYCAM_S4 = 89, // T8172 - Outdoor PTZ Dual Camera (no floodlight) SMART_DROP = 90, BATTERY_DOORBELL_PLUS = 91, DOORBELL_SOLO = 93, @@ -83,7 +84,8 @@ export enum DeviceType { WALL_LIGHT_CAM_81A0 = 10005, INDOOR_PT_CAMERA_C220 = 10008, // T8W11C INDOOR_PT_CAMERA_C210 = 10009, // T8419 / T8W11P? - INDOOR_PT_CAMERA_C220_V2 = 10010 // T8W11C (Type 10010) + INDOOR_PT_CAMERA_C220_V2 = 10010, // T8W11C (Type 10010) + INDOOR_PT_CAMERA_C220_V3 = 10011, // T8419N } export enum ParamType { @@ -583,7 +585,7 @@ export enum PropertyName { DeviceWifiRSSI = "wifiRssi", DeviceWifiSignalLevel = "wifiSignalLevel", DeviceEnabled = "enabled", - DeviceAntitheftDetection= "antitheftDetection", + DeviceAntitheftDetection = "antitheftDetection", DeviceAutoNightvision = "autoNightvision", DeviceNightvision = "nightvision", DeviceStatusLed = "statusLed", @@ -997,6 +999,7 @@ export const GenericTypeProperty: PropertyMetadataNumeric = { 64: "Solo Camera C210", 87: "Floodlight Camera E30", 88: "Solo Camera E30", + 89: "eufyCam S4 (T8172)", 90: "Smart Drop S300 (T8790)", 91: "Video Doorbell Dual", 93: "Video Doorbell Dual (Wired)", @@ -1023,6 +1026,7 @@ export const GenericTypeProperty: PropertyMetadataNumeric = { 10008: "Indoor Cam C220 (T8W11C)", 10009: "Indoor Cam C210 (T8419)", 10010: "Indoor Cam C220 (T8W11C)", + 10011: "Indoor Cam C220 (T8419N)", }, } @@ -1361,7 +1365,7 @@ export const DeviceStatusLedDoorbellProperty: PropertyMetadataBoolean = { export const DeviceStatusLedT8200XProperty: PropertyMetadataBoolean = { ...DeviceStatusLedProperty, - key:ParamType.COMMAND_LED_NIGHT_OPEN, + key: ParamType.COMMAND_LED_NIGHT_OPEN, commandId: ParamType.COMMAND_LED_NIGHT_OPEN, }; @@ -6137,7 +6141,7 @@ export const DeviceProperties: Properties = { [PropertyName.DeviceRecordingRetriggerInterval]: DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, [PropertyName.DeviceRecordingEndClipMotionStops]: DeviceRecordingEndClipMotionStopsProperty, [PropertyName.DeviceVideoStreamingQuality]: DeviceVideoStreamingQualityBatteryDoorbellProperty, //OK - [PropertyName.DeviceVideoRecordingQuality]:DeviceVideoRecordingQualityT8530Property, //OK + [PropertyName.DeviceVideoRecordingQuality]: DeviceVideoRecordingQualityT8530Property, //OK [PropertyName.DeviceChimeIndoor]: DeviceChimeIndoorBatteryDoorbellProperty, [PropertyName.DeviceChimeHomebase]: DeviceChimeHomebaseBatteryDoorbellProperty, //OK [PropertyName.DeviceChimeHomebaseRingtoneVolume]: DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, //OK @@ -8081,6 +8085,58 @@ export const DeviceProperties: Properties = { } DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; +DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; + +// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA but without floodlight properties +DeviceProperties[DeviceType.EUFYCAM_S4] = { + ...GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: DeviceWatermarkProperty, + [PropertyName.DeviceState]: DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: DevicePersonDetectedProperty, + [PropertyName.DeviceVehicleDetected]: DeviceVehicleDetectedProperty, + [PropertyName.DeviceStatusLed]: DeviceStatusLedIndoorFloodProperty, + // NO DeviceLight properties - S4 has no floodlight + [PropertyName.DevicePicture]: DevicePictureProperty, + [PropertyName.DevicePictureUrl]: DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceMicrophone]: DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypeVehicle]: DeviceMotionHB3DetectionTypeVehicleProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceMotionTracking]: DeviceMotionTrackingProperty, + [PropertyName.DeviceVideoStreamingQuality]: DeviceVideoStreamingQualityS340Property, + [PropertyName.DeviceVideoRecordingQuality]: DeviceVideoRecordingQualityS340Property, + [PropertyName.DeviceNotificationType]: DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceRotationSpeed]: DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionZone]: DeviceMotionZoneProperty, + [PropertyName.DeviceSnooze]: DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: DevicePersonNameProperty, + [PropertyName.DevicePowerSource]: DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: DeviceRecordingClipLengthOutdoorPTProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceDualCamWatchViewMode]: DeviceDualCamWatchViewModeS340Property, +}; export const StationNameProperty: PropertyMetadataString = { key: "station_name", @@ -8564,12 +8620,12 @@ export const StationCrossTrackingGroupListProperty: PropertyMetadataObject = { return obj.length > 0 && obj.every((element) => { return typeof element === "object" && - "value" in element && - Array.isArray(element.value) && - element.value.length > 0 && - element.value.every((value) => { - return typeof value === "string"; - }) + "value" in element && + Array.isArray(element.value) && + element.value.length > 0 && + element.value.every((value) => { + return typeof value === "string"; + }) }); } return false; @@ -9147,6 +9203,7 @@ export const StationProperties: Properties = { } StationProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = StationProperties[DeviceType.INDOOR_PT_CAMERA_C220]; +StationProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = StationProperties[DeviceType.INDOOR_PT_CAMERA_C220]; export enum CommandName { DeviceStartLivestream = "deviceStartLivestream", @@ -9815,6 +9872,8 @@ export const DeviceCommands: Commands = { } DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +DeviceCommands[DeviceType.EUFYCAM_S4] = DeviceCommands[DeviceType.OUTDOOR_PT_CAMERA]; export const StationCommands: Commands = { [DeviceType.STATION]: [ @@ -10177,3 +10236,4 @@ export const StationCommands: Commands = { } StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; From a7720c9f8a97add08480fae201d27e1a1c1e01bf Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 01:52:31 +0000 Subject: [PATCH 02/13] fix: Add prepare script and update build files to support git installation - Add prepare script to package.json to trigger build on install - Update package-lock.json and build artifacts --- build/error.d.ts | 127 + build/error.js | 178 + build/error.js.map | 1 + build/eufysecurity.d.ts | 179 + build/eufysecurity.js | 2634 +++++++++ build/eufysecurity.js.map | 1 + build/http/api.d.ts | 90 + build/http/api.js | 1578 ++++++ build/http/api.js.map | 1 + build/http/cache.d.ts | 8 + build/http/cache.js | 34 + build/http/cache.js.map | 1 + build/http/const.d.ts | 3 + build/http/const.js | 8546 ++++++++++++++++++++++++++++ build/http/const.js.map | 1 + build/http/device.d.ts | 474 ++ build/http/device.js | 4314 ++++++++++++++ build/http/device.js.map | 1 + build/http/error.d.ts | 73 + build/http/error.js | 101 + build/http/error.js.map | 1 + build/http/index.d.ts | 10 + build/http/index.js | 30 + build/http/index.js.map | 1 + build/http/interfaces.d.ts | 241 + build/http/interfaces.js | 3 + build/http/interfaces.js.map | 1 + build/http/models.d.ts | 608 ++ build/http/models.js | 3 + build/http/models.js.map | 1 + build/http/parameter.d.ts | 5 + build/http/parameter.js | 103 + build/http/parameter.js.map | 1 + build/http/station.d.ts | 364 ++ build/http/station.js | 10 +- build/http/station.js.map | 2 +- build/http/types.d.ts | 1335 +++++ build/http/types.js | 9743 ++++++++++++++++++++++++++++++++ build/http/types.js.map | 1 + build/http/utils.d.ts | 79 + build/http/utils.js | 789 +++ build/http/utils.js.map | 1 + build/index.d.ts | 8 + build/index.js | 29 + build/index.js.map | 1 + build/interfaces.d.ts | 142 + build/interfaces.js | 3 + build/interfaces.js.map | 1 + build/logging.d.ts | 22 + build/logging.js | 116 + build/logging.js.map | 1 + build/mqtt/interface.d.ts | 6 + build/mqtt/interface.js | 3 + build/mqtt/interface.js.map | 1 + build/mqtt/model.d.ts | 24 + build/mqtt/model.js | 3 + build/mqtt/model.js.map | 1 + build/mqtt/mqtt-eufy.crt | 79 + build/mqtt/proto/lock.proto | 33 + build/mqtt/service.d.ts | 28 + build/mqtt/service.js | 177 + build/mqtt/service.js.map | 1 + build/p2p/ble.d.ts | 59 + build/p2p/ble.js | 280 + build/p2p/ble.js.map | 1 + build/p2p/error.d.ts | 49 + build/p2p/error.js | 69 + build/p2p/error.js.map | 1 + build/p2p/index.d.ts | 8 + build/p2p/index.js | 28 + build/p2p/index.js.map | 1 + build/p2p/interfaces.d.ts | 388 ++ build/p2p/interfaces.js | 3 + build/p2p/interfaces.js.map | 1 + build/p2p/models.d.ts | 284 + build/p2p/models.js | 3 + build/p2p/models.js.map | 1 + build/p2p/session.d.ts | 186 + build/p2p/session.js | 2678 +++++++++ build/p2p/session.js.map | 1 + build/p2p/talkback.d.ts | 8 + build/p2p/talkback.js | 23 + build/p2p/talkback.js.map | 1 + build/p2p/types.d.ts | 1164 ++++ build/p2p/types.js | 1219 ++++ build/p2p/types.js.map | 1 + build/p2p/utils.d.ts | 72 + build/p2p/utils.js | 824 +++ build/p2p/utils.js.map | 1 + build/push/client.d.ts | 49 + build/push/client.js | 323 ++ build/push/client.js.map | 1 + build/push/error.d.ts | 73 + build/push/error.js | 101 + build/push/error.js.map | 1 + build/push/index.d.ts | 6 + build/push/index.js | 26 + build/push/index.js.map | 1 + build/push/interfaces.d.ts | 19 + build/push/interfaces.js | 3 + build/push/interfaces.js.map | 1 + build/push/models.d.ts | 328 ++ build/push/models.js | 38 + build/push/models.js.map | 1 + build/push/parser.d.ts | 25 + build/push/parser.js | 217 + build/push/parser.js.map | 1 + build/push/proto/checkin.proto | 266 + build/push/proto/mcs.proto | 328 ++ build/push/service.d.ts | 46 + build/push/service.js | 818 +++ build/push/service.js.map | 1 + build/push/types.d.ts | 218 + build/push/types.js | 242 + build/push/types.js.map | 1 + build/push/utils.d.ts | 7 + build/push/utils.js | 106 + build/push/utils.js.map | 1 + build/utils.d.ts | 19 + build/utils.js | 262 + build/utils.js.map | 1 + package-lock.json | 4 +- package.json | 5 +- 123 files changed, 43239 insertions(+), 10 deletions(-) create mode 100644 build/error.d.ts create mode 100644 build/error.js create mode 100644 build/error.js.map create mode 100644 build/eufysecurity.d.ts create mode 100644 build/eufysecurity.js create mode 100644 build/eufysecurity.js.map create mode 100644 build/http/api.d.ts create mode 100644 build/http/api.js create mode 100644 build/http/api.js.map create mode 100644 build/http/cache.d.ts create mode 100644 build/http/cache.js create mode 100644 build/http/cache.js.map create mode 100644 build/http/const.d.ts create mode 100644 build/http/const.js create mode 100644 build/http/const.js.map create mode 100644 build/http/device.d.ts create mode 100644 build/http/device.js create mode 100644 build/http/device.js.map create mode 100644 build/http/error.d.ts create mode 100644 build/http/error.js create mode 100644 build/http/error.js.map create mode 100644 build/http/index.d.ts create mode 100644 build/http/index.js create mode 100644 build/http/index.js.map create mode 100644 build/http/interfaces.d.ts create mode 100644 build/http/interfaces.js create mode 100644 build/http/interfaces.js.map create mode 100644 build/http/models.d.ts create mode 100644 build/http/models.js create mode 100644 build/http/models.js.map create mode 100644 build/http/parameter.d.ts create mode 100644 build/http/parameter.js create mode 100644 build/http/parameter.js.map create mode 100644 build/http/station.d.ts create mode 100644 build/http/types.d.ts create mode 100644 build/http/types.js create mode 100644 build/http/types.js.map create mode 100644 build/http/utils.d.ts create mode 100644 build/http/utils.js create mode 100644 build/http/utils.js.map create mode 100644 build/index.d.ts create mode 100644 build/index.js create mode 100644 build/index.js.map create mode 100644 build/interfaces.d.ts create mode 100644 build/interfaces.js create mode 100644 build/interfaces.js.map create mode 100644 build/logging.d.ts create mode 100644 build/logging.js create mode 100644 build/logging.js.map create mode 100644 build/mqtt/interface.d.ts create mode 100644 build/mqtt/interface.js create mode 100644 build/mqtt/interface.js.map create mode 100644 build/mqtt/model.d.ts create mode 100644 build/mqtt/model.js create mode 100644 build/mqtt/model.js.map create mode 100644 build/mqtt/mqtt-eufy.crt create mode 100644 build/mqtt/proto/lock.proto create mode 100644 build/mqtt/service.d.ts create mode 100644 build/mqtt/service.js create mode 100644 build/mqtt/service.js.map create mode 100644 build/p2p/ble.d.ts create mode 100644 build/p2p/ble.js create mode 100644 build/p2p/ble.js.map create mode 100644 build/p2p/error.d.ts create mode 100644 build/p2p/error.js create mode 100644 build/p2p/error.js.map create mode 100644 build/p2p/index.d.ts create mode 100644 build/p2p/index.js create mode 100644 build/p2p/index.js.map create mode 100644 build/p2p/interfaces.d.ts create mode 100644 build/p2p/interfaces.js create mode 100644 build/p2p/interfaces.js.map create mode 100644 build/p2p/models.d.ts create mode 100644 build/p2p/models.js create mode 100644 build/p2p/models.js.map create mode 100644 build/p2p/session.d.ts create mode 100644 build/p2p/session.js create mode 100644 build/p2p/session.js.map create mode 100644 build/p2p/talkback.d.ts create mode 100644 build/p2p/talkback.js create mode 100644 build/p2p/talkback.js.map create mode 100644 build/p2p/types.d.ts create mode 100644 build/p2p/types.js create mode 100644 build/p2p/types.js.map create mode 100644 build/p2p/utils.d.ts create mode 100644 build/p2p/utils.js create mode 100644 build/p2p/utils.js.map create mode 100644 build/push/client.d.ts create mode 100644 build/push/client.js create mode 100644 build/push/client.js.map create mode 100644 build/push/error.d.ts create mode 100644 build/push/error.js create mode 100644 build/push/error.js.map create mode 100644 build/push/index.d.ts create mode 100644 build/push/index.js create mode 100644 build/push/index.js.map create mode 100644 build/push/interfaces.d.ts create mode 100644 build/push/interfaces.js create mode 100644 build/push/interfaces.js.map create mode 100644 build/push/models.d.ts create mode 100644 build/push/models.js create mode 100644 build/push/models.js.map create mode 100644 build/push/parser.d.ts create mode 100644 build/push/parser.js create mode 100644 build/push/parser.js.map create mode 100644 build/push/proto/checkin.proto create mode 100644 build/push/proto/mcs.proto create mode 100644 build/push/service.d.ts create mode 100644 build/push/service.js create mode 100644 build/push/service.js.map create mode 100644 build/push/types.d.ts create mode 100644 build/push/types.js create mode 100644 build/push/types.js.map create mode 100644 build/push/utils.d.ts create mode 100644 build/push/utils.js create mode 100644 build/push/utils.js.map create mode 100644 build/utils.d.ts create mode 100644 build/utils.js create mode 100644 build/utils.js.map diff --git a/build/error.d.ts b/build/error.d.ts new file mode 100644 index 00000000..dff45360 --- /dev/null +++ b/build/error.d.ts @@ -0,0 +1,127 @@ +export type Jsonable = string | number | boolean | object | null | undefined | readonly Jsonable[] | { + readonly [key: string]: Jsonable; +} | { + toJSON(): Jsonable; +}; +export declare class BaseError extends Error { + readonly context?: Jsonable; + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare function ensureError(value: unknown): BaseError; +export declare class InvalidCountryCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class InvalidLanguageCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class StationNotFoundError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class DeviceNotFoundError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class NotSupportedError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class WrongStationError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class RTSPPropertyNotEnabledError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class InvalidPropertyValueError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class InvalidCommandValueError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ReadOnlyPropertyError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class LivestreamError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class TalkbackError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class StationConnectTimeoutError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class AddUserError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class DeleteUserError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class UpdateUserUsernameError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class UpdateUserScheduleError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class UpdateUserPasscodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class PinNotVerifiedError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} diff --git a/build/error.js b/build/error.js new file mode 100644 index 00000000..69052c23 --- /dev/null +++ b/build/error.js @@ -0,0 +1,178 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PinNotVerifiedError = exports.UpdateUserPasscodeError = exports.UpdateUserScheduleError = exports.UpdateUserUsernameError = exports.DeleteUserError = exports.AddUserError = exports.StationConnectTimeoutError = exports.TalkbackError = exports.LivestreamError = exports.ReadOnlyPropertyError = exports.InvalidCommandValueError = exports.InvalidPropertyValueError = exports.RTSPPropertyNotEnabledError = exports.WrongStationError = exports.NotSupportedError = exports.DeviceNotFoundError = exports.StationNotFoundError = exports.InvalidLanguageCodeError = exports.InvalidCountryCodeError = exports.BaseError = void 0; +exports.ensureError = ensureError; +class BaseError extends Error { + context; + constructor(message, options = {}) { + const { cause, context } = options; + super(message, { cause }); //NodeJs 16.9.0 + this.name = this.constructor.name; + this.context = context; + } +} +exports.BaseError = BaseError; +function ensureError(value) { + if (value instanceof Error) + return value; + let stringified = "[Unable to stringify the thrown value]"; + try { + stringified = JSON.stringify(value); + } + catch { } + const error = new Error(`This value was thrown as is, not through an Error: ${stringified}`); + return error; +} +class InvalidCountryCodeError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = InvalidCountryCodeError.name; + } +} +exports.InvalidCountryCodeError = InvalidCountryCodeError; +class InvalidLanguageCodeError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = InvalidLanguageCodeError.name; + } +} +exports.InvalidLanguageCodeError = InvalidLanguageCodeError; +class StationNotFoundError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = StationNotFoundError.name; + } +} +exports.StationNotFoundError = StationNotFoundError; +class DeviceNotFoundError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = DeviceNotFoundError.name; + } +} +exports.DeviceNotFoundError = DeviceNotFoundError; +class NotSupportedError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = NotSupportedError.name; + } +} +exports.NotSupportedError = NotSupportedError; +class WrongStationError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = WrongStationError.name; + } +} +exports.WrongStationError = WrongStationError; +class RTSPPropertyNotEnabledError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = RTSPPropertyNotEnabledError.name; + } +} +exports.RTSPPropertyNotEnabledError = RTSPPropertyNotEnabledError; +class InvalidPropertyValueError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = InvalidPropertyValueError.name; + } +} +exports.InvalidPropertyValueError = InvalidPropertyValueError; +class InvalidCommandValueError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = InvalidCommandValueError.name; + } +} +exports.InvalidCommandValueError = InvalidCommandValueError; +class ReadOnlyPropertyError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ReadOnlyPropertyError.name; + } +} +exports.ReadOnlyPropertyError = ReadOnlyPropertyError; +class LivestreamError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = LivestreamError.name; + } +} +exports.LivestreamError = LivestreamError; +class TalkbackError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = TalkbackError.name; + } +} +exports.TalkbackError = TalkbackError; +class StationConnectTimeoutError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = StationConnectTimeoutError.name; + } +} +exports.StationConnectTimeoutError = StationConnectTimeoutError; +class AddUserError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = AddUserError.name; + } +} +exports.AddUserError = AddUserError; +class DeleteUserError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = DeleteUserError.name; + } +} +exports.DeleteUserError = DeleteUserError; +class UpdateUserUsernameError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = UpdateUserUsernameError.name; + } +} +exports.UpdateUserUsernameError = UpdateUserUsernameError; +class UpdateUserScheduleError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = UpdateUserScheduleError.name; + } +} +exports.UpdateUserScheduleError = UpdateUserScheduleError; +class UpdateUserPasscodeError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = UpdateUserPasscodeError.name; + } +} +exports.UpdateUserPasscodeError = UpdateUserPasscodeError; +class PinNotVerifiedError extends BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = PinNotVerifiedError.name; + } +} +exports.PinNotVerifiedError = PinNotVerifiedError; +//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/error.js.map b/build/error.js.map new file mode 100644 index 00000000..23bdeb03 --- /dev/null +++ b/build/error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/eufysecurity.d.ts b/build/eufysecurity.d.ts new file mode 100644 index 00000000..07bf37ef --- /dev/null +++ b/build/eufysecurity.d.ts @@ -0,0 +1,179 @@ +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 { + 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; + protected _initializeInternals(): Promise; + 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>; + getDevicesFromStation(stationSN: string): Promise>; + getDevice(deviceSN: string): Promise; + getStationDevice(stationSN: string, channel: number): Promise; + getStations(): Promise>; + getStation(stationSN: string): Promise; + getApi(): HTTPApi; + connectToStation(stationSN: string, p2pConnectionType?: P2PConnectionType): Promise; + isStationConnected(stationSN: string): Promise; + isStationEnergySavingDevice(stationSN: string): Promise; + private handleHouses; + private handleHubs; + private refreshP2PData; + private onStationConnect; + private onStationConnectionError; + private onStationClose; + private handleDevices; + refreshCloudData(): Promise; + close(): void; + setCameraMaxLivestreamDuration(seconds: number): void; + getCameraMaxLivestreamDuration(): number; + registerPushNotifications(credentials?: Credentials, persistentIds?: string[]): Promise; + connect(options?: LoginOptions): Promise; + getPushPersistentIds(): string[]; + private updateDeviceProperties; + private onAPIClose; + private onAPIConnect; + private onAPIConnectionError; + startStationLivestream(deviceSN: string): Promise; + stopStationLivestream(deviceSN: string): Promise; + 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; + cancelStationDownload(deviceSN: string): Promise; + getConfig(): EufySecurityConfig; + setDeviceProperty(deviceSN: string, name: string, value: unknown): Promise; + setStationProperty(stationSN: string, name: string, value: unknown): Promise; + 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; + stopStationTalkback(deviceSN: string): Promise; + private onStationDeviceShakeAlarm; + private onStationDevice911Alarm; + private onStationDeviceJammed; + private onStationDeviceLowBattery; + private onStationDeviceWrongTryProtectAlarm; + addUser(deviceSN: string, username: string, passcode: string, schedule?: Schedule): Promise; + deleteUser(deviceSN: string, username: string): Promise; + updateUser(deviceSN: string, username: string, newUsername: string): Promise; + updateUserPasscode(deviceSN: string, username: string, passcode: string): Promise; + updateUserSchedule(deviceSN: string, username: string, schedule: Schedule): Promise; + 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; +} diff --git a/build/eufysecurity.js b/build/eufysecurity.js new file mode 100644 index 00000000..437f4312 --- /dev/null +++ b/build/eufysecurity.js @@ -0,0 +1,2634 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EufySecurity = void 0; +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const fse = __importStar(require("fs-extra")); +const path = __importStar(require("path")); +const events_1 = __importDefault(require("events")); +const api_1 = require("./http/api"); +const station_1 = require("./http/station"); +const types_1 = require("./http/types"); +const service_1 = require("./push/service"); +const device_1 = require("./http/device"); +const types_2 = require("./p2p/types"); +const utils_1 = require("./utils"); +const error_1 = require("./error"); +const _1 = require("."); +const error_2 = require("./http/error"); +const types_3 = require("./push/types"); +const service_2 = require("./mqtt/service"); +const const_1 = require("./http/const"); +const utils_2 = require("./http/utils"); +const logging_1 = require("./logging"); +const typescript_logging_1 = require("typescript-logging"); +const utils_3 = require("./p2p/utils"); +class EufySecurity extends tiny_typed_emitter_1.TypedEmitter { + config; + api; + houses = {}; + stations = {}; + devices = {}; + P2P_REFRESH_INTERVAL_MIN = 720; + cameraMaxLivestreamSeconds = 30; + cameraStationLivestreamTimeout = new Map(); + pushService; + mqttService; + pushCloudRegistered = false; + pushCloudChecked = false; + persistentFile; + persistentData = { + country: "", + openudid: "", + serial_number: "", + push_credentials: undefined, + push_persistentIds: [], + login_hash: "", + version: "", + httpApi: undefined + }; + connected = false; + retries = 0; + refreshEufySecurityCloudTimeout; + refreshEufySecurityP2PTimeout = {}; + deviceSnoozeTimeout = {}; + loadingEmitter = new events_1.default(); + stationsLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "stations loaded"); + devicesLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "devices loaded"); + constructor(config, log = logging_1.dummyLogger) { + super(); + this.config = config; + logging_1.InternalLogger.logger = log; + } + static async initialize(config, log = logging_1.dummyLogger) { + const eufySecurity = new EufySecurity(config, log); + await eufySecurity._initializeInternals(); + return eufySecurity; + } + async _initializeInternals() { + if (this.config.logging) { + if (this.config.logging.level !== undefined && typeof this.config.logging.level === "number" && Object.values(typescript_logging_1.LogLevel).includes(this.config.logging.level)) + (0, logging_1.setLoggingLevel)("all", this.config.logging.level); + if (this.config.logging.categories !== undefined && Array.isArray(this.config.logging.categories)) { + for (const category of this.config.logging.categories) { + if (typeof category === "object" && + "category" in category && + "level" in category && + typeof category.level === "number" && + Object.values(typescript_logging_1.LogLevel).includes(category.level) && + typeof category.category === "string" && + ["main", "http", "p2p", "push", "mqtt"].includes(category.category.toLowerCase())) { + (0, logging_1.setLoggingLevel)(category.category.toLocaleLowerCase(), category.level); + } + } + } + } + if (this.config.country === undefined) { + this.config.country = "US"; + } + else { + this.config.country = this.config.country.toUpperCase(); + } + if (this.config.language === undefined) { + this.config.language = "en"; + } + if (this.config.eventDurationSeconds === undefined) { + this.config.eventDurationSeconds = 10; + } + if (this.config.p2pConnectionSetup === undefined) { + this.config.p2pConnectionSetup = types_2.P2PConnectionType.QUICKEST; + } + else if (!Object.values(types_2.P2PConnectionType).includes(this.config.p2pConnectionSetup)) { + this.config.p2pConnectionSetup = types_2.P2PConnectionType.QUICKEST; + } + if (this.config.pollingIntervalMinutes === undefined) { + this.config.pollingIntervalMinutes = 10; + } + if (this.config.acceptInvitations === undefined) { + this.config.acceptInvitations = false; + } + if (this.config.enableEmbeddedPKCS1Support === undefined) { + this.config.enableEmbeddedPKCS1Support = false; + } + if (this.config.deviceConfig === undefined) { + this.config.deviceConfig = { + simultaneousDetections: true + }; + } + if (this.config.persistentDir === undefined) { + this.config.persistentDir = path.resolve(__dirname, "../../.."); + } + else if (!fse.existsSync(this.config.persistentDir)) { + this.config.persistentDir = path.resolve(__dirname, "../../.."); + } + if (this.config.persistentData) { + this.persistentData = JSON.parse(this.config.persistentData); + } + else { + this.persistentFile = path.join(this.config.persistentDir, "persistent.json"); + } + try { + if (!this.config.persistentData && fse.statSync(this.persistentFile).isFile()) { + const fileContent = fse.readFileSync(this.persistentFile, "utf8"); + this.persistentData = JSON.parse(fileContent); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.debug("No stored data from last exit found", { error: (0, utils_1.getError)(error) }); + } + logging_1.rootMainLogger.debug("Loaded persistent data", { persistentData: this.persistentData }); + try { + if (this.persistentData.version !== _1.libVersion) { + const currentVersion = Number.parseFloat((0, utils_1.removeLastChar)(_1.libVersion, ".")); + const previousVersion = this.persistentData.version !== "" && this.persistentData.version !== undefined ? Number.parseFloat((0, utils_1.removeLastChar)(this.persistentData.version, ".")) : 0; + logging_1.rootMainLogger.debug("Handling of driver update", { currentVersion: currentVersion, previousVersion: previousVersion }); + if (previousVersion < currentVersion) { + this.persistentData = (0, utils_1.handleUpdate)(this.persistentData, previousVersion); + this.persistentData.version = _1.libVersion; + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Handling update - Error", { error: (0, utils_1.getError)(error) }); + } + if (this.config.trustedDeviceName === undefined || this.config.trustedDeviceName === "") { + if (this.persistentData.fallbackTrustedDeviceName !== undefined) { + this.config.trustedDeviceName = this.persistentData.fallbackTrustedDeviceName; + } + else { + const rnd = (0, utils_2.randomNumber)(0, const_1.PhoneModels.length); + this.persistentData.fallbackTrustedDeviceName = const_1.PhoneModels[rnd]; + this.config.trustedDeviceName = this.persistentData.fallbackTrustedDeviceName; + } + } + if (this.persistentData.login_hash && this.persistentData.login_hash != "") { + logging_1.rootMainLogger.debug("Load previous login_hash", { login_hash: this.persistentData.login_hash }); + if ((0, utils_1.md5)(`${this.config.username}:${this.config.password}`) != this.persistentData.login_hash) { + logging_1.rootMainLogger.info("Authentication properties changed, invalidate saved cloud token."); + this.persistentData.cloud_token = ""; + this.persistentData.cloud_token_expiration = 0; + this.persistentData.httpApi = undefined; + } + } + else { + this.persistentData.cloud_token = ""; + this.persistentData.cloud_token_expiration = 0; + this.persistentData.httpApi = undefined; + } + if (this.persistentData.country !== undefined && this.persistentData.country !== "" && this.persistentData.country !== this.config.country) { + logging_1.rootMainLogger.info("Country property changed, invalidate saved cloud token."); + this.persistentData.cloud_token = ""; + this.persistentData.cloud_token_expiration = 0; + this.persistentData.httpApi = undefined; + } + if (this.persistentData.httpApi !== undefined && (this.persistentData.httpApi.clientPrivateKey === undefined || this.persistentData.httpApi.clientPrivateKey === "" || this.persistentData.httpApi.serverPublicKey === undefined || this.persistentData.httpApi.serverPublicKey === "")) { + logging_1.rootMainLogger.debug("Incomplete persistent data for v2 encrypted cloud api communication. Invalidate authenticated session data."); + this.persistentData.cloud_token = ""; + this.persistentData.cloud_token_expiration = 0; + this.persistentData.httpApi = undefined; + } + this.api = await api_1.HTTPApi.initialize(this.config.country, this.config.username, this.config.password, this.persistentData.httpApi); + this.api.setLanguage(this.config.language); + this.api.setPhoneModel(this.config.trustedDeviceName); + this.api.on("houses", (houses) => this.handleHouses(houses)); + this.api.on("hubs", (hubs) => this.handleHubs(hubs)); + this.api.on("devices", (devices) => this.handleDevices(devices)); + this.api.on("close", () => this.onAPIClose()); + this.api.on("connect", () => this.onAPIConnect()); + this.api.on("captcha request", (id, captcha) => this.onCaptchaRequest(id, captcha)); + this.api.on("auth token invalidated", () => this.onAuthTokenInvalidated()); + this.api.on("tfa request", () => this.onTfaRequest()); + this.api.on("connection error", (error) => this.onAPIConnectionError(error)); + if (this.persistentData.cloud_token && this.persistentData.cloud_token != "" && this.persistentData.cloud_token_expiration) { + logging_1.rootMainLogger.debug("Load previous token", { token: this.persistentData.cloud_token, tokenExpiration: this.persistentData.cloud_token_expiration, persistentHttpApi: this.persistentData.httpApi }); + this.api.setToken(this.persistentData.cloud_token); + this.api.setTokenExpiration(new Date(this.persistentData.cloud_token_expiration)); + } + if (!this.persistentData.openudid || this.persistentData.openudid == "") { + this.persistentData.openudid = (0, utils_1.generateUDID)(); + logging_1.rootMainLogger.debug("Generated new openudid", { openudid: this.persistentData.openudid }); + } + this.api.setOpenUDID(this.persistentData.openudid); + if (!this.persistentData.serial_number || this.persistentData.serial_number == "") { + this.persistentData.serial_number = (0, utils_1.generateSerialnumber)(12); + logging_1.rootMainLogger.debug("Generated new serial_number", { serialnumber: this.persistentData.serial_number }); + } + this.api.setSerialNumber(this.persistentData.serial_number); + this.pushService = await service_1.PushNotificationService.initialize(); + this.pushService.on("connect", async (token) => { + this.pushCloudRegistered = await this.api.registerPushToken(token); + this.pushCloudChecked = await this.api.checkPushToken(); + //TODO: Retry if failed with max retry to not lock account + if (this.pushCloudRegistered && this.pushCloudChecked) { + logging_1.rootMainLogger.info("Push notification connection successfully established"); + this.emit("push connect"); + } + else { + logging_1.rootMainLogger.info("Push notification connection closed"); + this.emit("push close"); + } + }); + this.pushService.on("credential", (credentials) => { + this.savePushCredentials(credentials); + }); + this.pushService.on("message", (message) => this.onPushMessage(message)); + this.pushService.on("close", () => { + logging_1.rootMainLogger.info("Push notification connection closed"); + this.emit("push close"); + }); + await this.initMQTT(); + } + async initMQTT() { + this.mqttService = await service_2.MQTTService.init(); + this.mqttService.on("connect", () => { + logging_1.rootMainLogger.info("MQTT connection successfully established"); + this.emit("mqtt connect"); + }); + this.mqttService.on("close", () => { + logging_1.rootMainLogger.info("MQTT connection closed"); + this.emit("mqtt close"); + }); + this.mqttService.on("lock message", (message) => { + this.getDevice(message.data.data.deviceSn).then((device) => { + device.processMQTTNotification(message.data.data, this.config.eventDurationSeconds); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + if (!(error instanceof error_1.DeviceNotFoundError)) { + logging_1.rootMainLogger.error("Lock MQTT Message Error", { error: (0, utils_1.getError)(error) }); + } + }).finally(() => { + this.emit("mqtt lock message", message); + }); + }); + } + setLoggingLevel(category, level) { + if (typeof level === "number" && + Object.values(typescript_logging_1.LogLevel).includes(level) && + typeof category === "string" && + ["all", "main", "http", "p2p", "push", "mqtt"].includes(category.toLowerCase())) { + (0, logging_1.setLoggingLevel)(category, level); + } + } + getLoggingLevel(category) { + if (typeof category === "string" && + ["all", "main", "http", "p2p", "push", "mqtt"].includes(category.toLowerCase())) { + return (0, logging_1.getLoggingLevel)(category); + } + return -1; + } + setInternalLogger(logger) { + logging_1.InternalLogger.logger = logger; + } + getInternalLogger() { + return logging_1.InternalLogger.logger; + } + getPushService() { + return this.pushService; + } + addStation(station) { + const serial = station.getSerial(); + if (serial && !Object.keys(this.stations).includes(serial)) { + this.stations[serial] = station; + this.emit("station added", station); + } + else { + logging_1.rootMainLogger.debug(`Station with this serial ${station.getSerial()} exists already and couldn't be added again!`); + } + } + removeStation(station) { + const serial = station.getSerial(); + if (serial && Object.keys(this.stations).includes(serial)) { + delete this.stations[serial]; + station.removeAllListeners(); + if (station.isConnected()) + station.close(); + this.emit("station removed", station); + } + else { + logging_1.rootMainLogger.debug(`Station with this serial ${station.getSerial()} doesn't exists and couldn't be removed!`); + } + } + async updateStation(hub) { + if (this.stationsLoaded) + await this.stationsLoaded; + if (Object.keys(this.stations).includes(hub.station_sn)) { + this.stations[hub.station_sn].update(hub); + if (!this.stations[hub.station_sn].isConnected() && !this.stations[hub.station_sn].isEnergySavingDevice() && this.stations[hub.station_sn].isP2PConnectableDevice()) { + this.stations[hub.station_sn].setConnectionType(this.config.p2pConnectionSetup); + logging_1.rootMainLogger.debug(`Updating station cloud data - initiate station connection to get local data over p2p`, { stationSN: hub.station_sn }); + this.stations[hub.station_sn].connect(); + } + } + else { + logging_1.rootMainLogger.debug(`Station with this serial ${hub.station_sn} doesn't exists and couldn't be updated!`); + } + } + addDevice(device) { + const serial = device.getSerial(); + if (serial && !Object.keys(this.devices).includes(serial)) { + this.devices[serial] = device; + this.emit("device added", device); + if (device.isLock()) + this.mqttService.subscribeLock(device.getSerial()); + } + else { + logging_1.rootMainLogger.debug(`Device with this serial ${device.getSerial()} exists already and couldn't be added again!`); + } + } + removeDevice(device) { + const serial = device.getSerial(); + if (serial && Object.keys(this.devices).includes(serial)) { + delete this.devices[serial]; + device.removeAllListeners(); + this.emit("device removed", device); + } + else { + logging_1.rootMainLogger.debug(`Device with this serial ${device.getSerial()} doesn't exists and couldn't be removed!`); + } + } + async updateDevice(device) { + if (this.devicesLoaded) + await this.devicesLoaded; + if (Object.keys(this.devices).includes(device.device_sn)) + this.devices[device.device_sn].update(device); + else + logging_1.rootMainLogger.debug(`Device with this serial ${device.device_sn} doesn't exists and couldn't be updated!`); + } + async getDevices() { + if (this.devicesLoaded) + await this.devicesLoaded; + const arr = []; + Object.keys(this.devices).forEach((serialNumber) => { + arr.push(this.devices[serialNumber]); + }); + return arr; + } + async getDevicesFromStation(stationSN) { + if (this.devicesLoaded) + await this.devicesLoaded; + const arr = []; + Object.keys(this.devices).forEach((serialNumber) => { + if (this.devices[serialNumber].getStationSerial() === stationSN) + arr.push(this.devices[serialNumber]); + }); + return arr; + } + async getDevice(deviceSN) { + if (this.devicesLoaded) + await this.devicesLoaded; + if (Object.keys(this.devices).includes(deviceSN)) + return this.devices[deviceSN]; + throw new error_1.DeviceNotFoundError("Device doesn't exists", { context: { device: deviceSN } }); + } + async getStationDevice(stationSN, channel) { + if (this.devicesLoaded) + await this.devicesLoaded; + for (const device of Object.values(this.devices)) { + if ((device.getStationSerial() === stationSN && device.getChannel() === channel) || (device.getStationSerial() === stationSN && device.getSerial() === stationSN)) { + return device; + } + } + throw new error_1.DeviceNotFoundError("No device with passed channel found on station", { context: { station: stationSN, channel: channel } }); + } + async getStations() { + if (this.stationsLoaded) + await this.stationsLoaded; + const arr = []; + Object.keys(this.stations).forEach((serialNumber) => { + arr.push(this.stations[serialNumber]); + }); + return arr; + } + async getStation(stationSN) { + if (this.stationsLoaded) + await this.stationsLoaded; + if (Object.keys(this.stations).includes(stationSN)) + return this.stations[stationSN]; + throw new error_1.StationNotFoundError("Station doesn't exists", { context: { station: stationSN } }); + } + getApi() { + return this.api; + } + async connectToStation(stationSN, p2pConnectionType = types_2.P2PConnectionType.QUICKEST) { + const station = await this.getStation(stationSN); + if (station.isP2PConnectableDevice()) { + station.setConnectionType(p2pConnectionType); + logging_1.rootMainLogger.debug(`Explicit request for p2p connection to the station`, { stationSN: station.getSerial() }); + await station.connect(); + } + } + async isStationConnected(stationSN) { + const station = await this.getStation(stationSN); + return station.isConnected(); + } + async isStationEnergySavingDevice(stationSN) { + const station = await this.getStation(stationSN); + return station.isEnergySavingDevice(); + } + handleHouses(houses) { + logging_1.rootMainLogger.debug("Got houses", { houses: houses }); + //TODO: Finish implementation + this.houses = houses; + } + handleHubs(hubs) { + logging_1.rootMainLogger.debug("Got hubs", { hubs: hubs }); + const stationsSNs = Object.keys(this.stations); + const newStationsSNs = Object.keys(hubs); + const promises = []; + for (const hub of Object.values(hubs)) { + if (stationsSNs.includes(hub.station_sn)) { + this.updateStation(hub); + } + else { + if (this.stationsLoaded === undefined) + this.stationsLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "stations loaded"); + let ipAddress; + if (this.config.stationIPAddresses !== undefined) { + ipAddress = this.config.stationIPAddresses[hub.station_sn]; + } + const station = station_1.Station.getInstance(this.api, hub, ipAddress, 0, this.config.enableEmbeddedPKCS1Support); + promises.push(station.then((station) => { + try { + station.on("connect", (station) => this.onStationConnect(station)); + station.on("connection error", (station, error) => this.onStationConnectionError(station, error)); + station.on("close", (station) => this.onStationClose(station)); + station.on("raw device property changed", (deviceSN, params) => this.updateDeviceProperties(deviceSN, params)); + station.on("livestream start", (station, channel, metadata, videostream, audiostream) => this.onStartStationLivestream(station, channel, metadata, videostream, audiostream)); + station.on("livestream stop", (station, channel) => this.onStopStationLivestream(station, channel)); + station.on("livestream error", (station, channel, error) => this.onErrorStationLivestream(station, channel, error)); + station.on("download start", (station, channel, metadata, videoStream, audioStream) => this.onStationStartDownload(station, channel, metadata, videoStream, audioStream)); + station.on("download finish", (station, channel) => this.onStationFinishDownload(station, channel)); + station.on("command result", (station, result) => this.onStationCommandResult(station, result)); + station.on("guard mode", (station, guardMode) => this.onStationGuardMode(station, guardMode)); + station.on("current mode", (station, currentMode) => this.onStationCurrentMode(station, currentMode)); + station.on("rtsp livestream start", (station, channel) => this.onStartStationRTSPLivestream(station, channel)); + station.on("rtsp livestream stop", (station, channel) => this.onStopStationRTSPLivestream(station, channel)); + station.on("rtsp url", (station, channel, value) => this.onStationRtspUrl(station, channel, value)); + station.on("property changed", (station, name, value, ready) => this.onStationPropertyChanged(station, name, value, ready)); + station.on("raw property changed", (station, type, value) => this.onStationRawPropertyChanged(station, type, value)); + station.on("alarm event", (station, alarmEvent) => this.onStationAlarmEvent(station, alarmEvent)); + station.on("runtime state", (station, channel, batteryLevel, temperature) => this.onStationRuntimeState(station, channel, batteryLevel, temperature)); + station.on("charging state", (station, channel, chargeType, batteryLevel) => this.onStationChargingState(station, channel, chargeType, batteryLevel)); + station.on("wifi rssi", (station, channel, rssi) => this.onStationWifiRssi(station, channel, rssi)); + station.on("floodlight manual switch", (station, channel, enabled) => this.onFloodlightManualSwitch(station, channel, enabled)); + station.on("alarm delay event", (station, alarmDelayEvent, alarmDelay) => this.onStationAlarmDelayEvent(station, alarmDelayEvent, alarmDelay)); + station.on("talkback started", (station, channel, talkbackStream) => this.onStationTalkbackStart(station, channel, talkbackStream)); + station.on("talkback stopped", (station, channel) => this.onStationTalkbackStop(station, channel)); + station.on("talkback error", (station, channel, error) => this.onStationTalkbackError(station, channel, error)); + station.on("alarm armed event", (station) => this.onStationAlarmArmedEvent(station)); + station.on("alarm arm delay event", (station, armDelay) => this.onStationArmDelayEvent(station, armDelay)); + station.on("secondary command result", (station, result) => this.onStationSecondaryCommandResult(station, result)); + station.on("device shake alarm", (deviceSN, event) => this.onStationDeviceShakeAlarm(deviceSN, event)); + station.on("device 911 alarm", (deviceSN, event) => this.onStationDevice911Alarm(deviceSN, event)); + station.on("device jammed", (deviceSN) => this.onStationDeviceJammed(deviceSN)); + station.on("device low battery", (deviceSN) => this.onStationDeviceLowBattery(deviceSN)); + station.on("device wrong try-protect alarm", (deviceSN) => this.onStationDeviceWrongTryProtectAlarm(deviceSN)); + station.on("device pin verified", (deviceSN, successfull) => this.onStationDevicePinVerified(deviceSN, successfull)); + station.on("sd info ex", (station, sdStatus, sdCapacity, sdCapacityAvailable) => this.onStationSdInfoEx(station, sdStatus, sdCapacity, sdCapacityAvailable)); + station.on("image download", (station, file, image) => this.onStationImageDownload(station, file, image)); + station.on("database query latest", (station, returnCode, data) => this.onStationDatabaseQueryLatest(station, returnCode, data)); + station.on("database query local", (station, returnCode, data) => this.onStationDatabaseQueryLocal(station, returnCode, data)); + station.on("database count by date", (station, returnCode, data) => this.onStationDatabaseCountByDate(station, returnCode, data)); + station.on("database delete", (station, returnCode, failedIds) => this.onStationDatabaseDelete(station, returnCode, failedIds)); + station.on("sensor status", (station, channel, status) => this.onStationSensorStatus(station, channel, status)); + station.on("garage door status", (station, channel, doorId, status) => this.onStationGarageDoorStatus(station, channel, doorId, status)); + station.on("storage info hb3", (station, channel, storageInfo) => this.onStorageInfoHb3(station, channel, storageInfo)); + this.addStation(station); + station.initialize(); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("HandleHubs Error", { error: (0, utils_1.getError)(error), stationSN: station.getSerial() }); + } + return station; + })); + } + } + Promise.all(promises).then(() => { + this.loadingEmitter.emit("stations loaded"); + this.stationsLoaded = undefined; + }); + if (promises.length === 0) { + this.loadingEmitter.emit("stations loaded"); + this.stationsLoaded = undefined; + } + for (const stationSN of stationsSNs) { + if (!newStationsSNs.includes(stationSN)) { + this.getStation(stationSN).then((station) => { + this.removeStation(station); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error removing station", { error: (0, utils_1.getError)(error), stationSN: stationSN }); + }); + } + } + } + refreshP2PData(station) { + if (station.isStation() || (device_1.Device.isCamera(station.getDeviceType()) && !device_1.Device.isWiredDoorbell(station.getDeviceType()) || device_1.Device.isSmartSafe(station.getDeviceType()))) { + station.getCameraInfo(); + } + if (device_1.Device.isLock(station.getDeviceType())) { + station.getLockParameters(); + station.getLockStatus(); + } + if (station.isStation() || (station.hasProperty(types_1.PropertyName.StationSdStatus) && station.getPropertyValue(types_1.PropertyName.StationSdStatus) !== types_2.TFCardStatus.REMOVE)) { + station.getStorageInfoEx(); + } + } + onStationConnect(station) { + this.emit("station connect", station); + this.refreshP2PData(station); + if (this.refreshEufySecurityP2PTimeout[station.getSerial()] !== undefined) { + clearTimeout(this.refreshEufySecurityP2PTimeout[station.getSerial()]); + delete this.refreshEufySecurityP2PTimeout[station.getSerial()]; + } + this.refreshEufySecurityP2PTimeout[station.getSerial()] = setTimeout(() => { + this.refreshP2PData(station); + }, this.P2P_REFRESH_INTERVAL_MIN * 60 * 1000); + } + onStationConnectionError(station, error) { + this.emit("station connection error", station, error); + } + onStationClose(station) { + this.emit("station close", station); + for (const device_sn of this.cameraStationLivestreamTimeout.keys()) { + this.getDevice(device_sn).then((device) => { + if (device !== null && device.getStationSerial() === station.getSerial()) { + clearTimeout(this.cameraStationLivestreamTimeout.get(device_sn)); + this.cameraStationLivestreamTimeout.delete(device_sn); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station close Error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial() }); + }); + } + } + handleDevices(devices) { + logging_1.rootMainLogger.debug("Got devices", { devices: devices }); + const deviceSNs = Object.keys(this.devices); + const newDeviceSNs = Object.keys(devices); + const promises = []; + const deviceConfig = this.config.deviceConfig; + for (const device of Object.values(devices)) { + if (deviceSNs.includes(device.device_sn)) { + this.updateDevice(device); + } + else { + if (this.devicesLoaded === undefined) + this.devicesLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "devices loaded"); + let new_device; + if (device_1.Device.isIndoorCamera(device.device_type)) { + new_device = device_1.IndoorCamera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isSoloCameras(device.device_type)) { + new_device = device_1.SoloCamera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isLockWifiVideo(device.device_type)) { + new_device = device_1.DoorbellLock.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isBatteryDoorbell(device.device_type)) { + new_device = device_1.BatteryDoorbellCamera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isWiredDoorbell(device.device_type) || device_1.Device.isWiredDoorbellDual(device.device_type)) { + new_device = device_1.WiredDoorbellCamera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isFloodLight(device.device_type)) { + new_device = device_1.FloodlightCamera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isWallLightCam(device.device_type)) { + new_device = device_1.WallLightCam.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isGarageCamera(device.device_type)) { + new_device = device_1.GarageCamera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isSmartDrop(device.device_type)) { + new_device = device_1.SmartDrop.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isCamera(device.device_type)) { + new_device = device_1.Camera.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isLock(device.device_type)) { + new_device = device_1.Lock.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isMotionSensor(device.device_type)) { + new_device = device_1.MotionSensor.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isEntrySensor(device.device_type)) { + new_device = device_1.EntrySensor.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isKeyPad(device.device_type)) { + new_device = device_1.Keypad.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isSmartSafe(device.device_type)) { + new_device = device_1.SmartSafe.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isSmartTrack(device.device_type)) { + new_device = device_1.Tracker.getInstance(this.api, device, deviceConfig); + } + else if (device_1.Device.isLockKeypad(device.device_type)) { + new_device = device_1.LockKeypad.getInstance(this.api, device, deviceConfig); + } + else { + new_device = device_1.UnknownDevice.getInstance(this.api, device, deviceConfig); + } + promises.push(new_device.then((device) => { + try { + device.on("property changed", (device, name, value, ready) => this.onDevicePropertyChanged(device, name, value, ready)); + device.on("raw property changed", (device, type, value) => this.onDeviceRawPropertyChanged(device, type, value)); + device.on("crying detected", (device, state) => this.onDeviceCryingDetected(device, state)); + device.on("sound detected", (device, state) => this.onDeviceSoundDetected(device, state)); + device.on("pet detected", (device, state) => this.onDevicePetDetected(device, state)); + device.on("vehicle detected", (device, state) => this.onDeviceVehicleDetected(device, state)); + device.on("motion detected", (device, state) => this.onDeviceMotionDetected(device, state)); + device.on("person detected", (device, state, person) => this.onDevicePersonDetected(device, state, person)); + device.on("rings", (device, state) => this.onDeviceRings(device, state)); + device.on("locked", (device, state) => this.onDeviceLocked(device, state)); + device.on("open", (device, state) => this.onDeviceOpen(device, state)); + device.on("ready", (device) => this.onDeviceReady(device)); + device.on("package delivered", (device, state) => this.onDevicePackageDelivered(device, state)); + device.on("package stranded", (device, state) => this.onDevicePackageStranded(device, state)); + device.on("package taken", (device, state) => this.onDevicePackageTaken(device, state)); + device.on("someone loitering", (device, state) => this.onDeviceSomeoneLoitering(device, state)); + device.on("radar motion detected", (device, state) => this.onDeviceRadarMotionDetected(device, state)); + device.on("911 alarm", (device, state, detail) => this.onDevice911Alarm(device, state, detail)); + device.on("shake alarm", (device, state, detail) => this.onDeviceShakeAlarm(device, state, detail)); + device.on("wrong try-protect alarm", (device, state) => this.onDeviceWrongTryProtectAlarm(device, state)); + device.on("long time not close", (device, state) => this.onDeviceLongTimeNotClose(device, state)); + device.on("low battery", (device, state) => this.onDeviceLowBattery(device, state)); + device.on("jammed", (device, state) => this.onDeviceJammed(device, state)); + device.on("stranger person detected", (device, state) => this.onDeviceStrangerPersonDetected(device, state)); + device.on("dog detected", (device, state) => this.onDeviceDogDetected(device, state)); + device.on("dog lick detected", (device, state) => this.onDeviceDogLickDetected(device, state)); + device.on("dog poop detected", (device, state) => this.onDeviceDogPoopDetected(device, state)); + device.on("tampering", (device, state) => this.onDeviceTampering(device, state)); + device.on("low temperature", (device, state) => this.onDeviceLowTemperature(device, state)); + device.on("high temperature", (device, state) => this.onDeviceHighTemperature(device, state)); + device.on("pin incorrect", (device, state) => this.onDevicePinIncorrect(device, state)); + device.on("lid stuck", (device, state) => this.onDeviceLidStuck(device, state)); + device.on("battery fully charged", (device, state) => this.onDeviceBatteryFullyCharged(device, state)); + this.addDevice(device); + device.initialize(); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("HandleDevices Error", { error: (0, utils_1.getError)(error), deviceSN: device.getSerial() }); + } + return device; + })); + } + } + Promise.all(promises).then((devices) => { + devices.forEach((device) => { + this.getStation(device.getStationSerial()).then((station) => { + if (!station.isConnected() && station.isP2PConnectableDevice()) { + station.setConnectionType(this.config.p2pConnectionSetup); + logging_1.rootMainLogger.debug(`Initiate first station connection to get data over p2p`, { stationSN: station.getSerial() }); + station.connect(); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error trying to connect to station afte device loaded", { error: (0, utils_1.getError)(error), deviceSN: device.getSerial() }); + }); + }); + this.loadingEmitter.emit("devices loaded"); + this.devicesLoaded = undefined; + }); + if (promises.length === 0) { + this.loadingEmitter.emit("devices loaded"); + this.devicesLoaded = undefined; + } + for (const deviceSN of deviceSNs) { + if (!newDeviceSNs.includes(deviceSN)) { + this.getDevice(deviceSN).then((device) => { + this.removeDevice(device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error removing device", { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); + }); + } + } + } + async refreshCloudData() { + if (this.config.acceptInvitations) { + await this.processInvitations().catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error in processing invitations", { error: (0, utils_1.getError)(error) }); + }); + } + await this.api.refreshAllData().catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error during API data refreshing", { error: (0, utils_1.getError)(error) }); + }); + if (this.refreshEufySecurityCloudTimeout !== undefined) + clearTimeout(this.refreshEufySecurityCloudTimeout); + if (this.config.pollingIntervalMinutes > 0) + this.refreshEufySecurityCloudTimeout = setTimeout(() => { this.refreshCloudData(); }, this.config.pollingIntervalMinutes * 60 * 1000); + else + logging_1.rootMainLogger.info(`Automatic retrieval of data from the cloud has been deactivated (config pollingIntervalMinutes: ${this.config.pollingIntervalMinutes})`); + } + close() { + for (const device_sn of this.cameraStationLivestreamTimeout.keys()) { + this.stopStationLivestream(device_sn); + } + if (this.refreshEufySecurityCloudTimeout !== undefined) + clearTimeout(this.refreshEufySecurityCloudTimeout); + Object.keys(this.refreshEufySecurityP2PTimeout).forEach(station_sn => { + clearTimeout(this.refreshEufySecurityP2PTimeout[station_sn]); + delete this.refreshEufySecurityP2PTimeout[station_sn]; + }); + Object.keys(this.deviceSnoozeTimeout).forEach(device_sn => { + clearTimeout(this.deviceSnoozeTimeout[device_sn]); + delete this.deviceSnoozeTimeout[device_sn]; + }); + this.savePushPersistentIds(); + this.pushService.close(); + this.mqttService.close(); + Object.values(this.stations).forEach(station => { + station.close(); + }); + Object.values(this.devices).forEach(device => { + device.destroy(); + }); + if (this.connected) + this.emit("close"); + this.connected = false; + } + setCameraMaxLivestreamDuration(seconds) { + this.cameraMaxLivestreamSeconds = seconds; + } + getCameraMaxLivestreamDuration() { + return this.cameraMaxLivestreamSeconds; + } + async registerPushNotifications(credentials, persistentIds) { + if (credentials) + this.pushService.setCredentials(credentials); + if (persistentIds) + this.pushService.setPersistentIds(persistentIds); + this.pushService.open(); + } + async connect(options) { + await this.api.login(options) + .then(async () => { + if (options?.verifyCode) { + let trusted = false; + const trusted_devices = await this.api.listTrustDevice(); + trusted_devices.forEach(trusted_device => { + if (trusted_device.is_current_device === 1) { + trusted = true; + } + }); + if (!trusted) + return await this.api.addTrustDevice(options?.verifyCode); + } + }) + .catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Connect Error", { error: (0, utils_1.getError)(error), options: options }); + }); + } + getPushPersistentIds() { + return this.pushService.getPersistentIds(); + } + updateDeviceProperties(deviceSN, values) { + this.getDevice(deviceSN).then((device) => { + device.updateRawProperties(values); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Update device properties error", { error: (0, utils_1.getError)(error), deviceSN: deviceSN, values: values }); + }); + } + async onAPIClose() { + if (this.refreshEufySecurityCloudTimeout !== undefined) + clearTimeout(this.refreshEufySecurityCloudTimeout); + this.connected = false; + this.emit("close"); + if (this.retries < 3) { + this.retries++; + await this.connect(); + } + else { + logging_1.rootMainLogger.error(`Tried to re-authenticate to Eufy cloud, but failed in the process. Manual intervention is required!`); + } + } + async onAPIConnect() { + this.connected = true; + this.retries = 0; + this.saveCloudToken(); + await this.refreshCloudData(); + this.emit("connect"); + this.registerPushNotifications(this.persistentData.push_credentials, this.persistentData.push_persistentIds); + const loginData = this.api.getPersistentData(); + if (loginData) { + this.mqttService.connect(loginData.user_id, this.persistentData.openudid, this.api.getAPIBase(), loginData.email); + } + else { + logging_1.rootMainLogger.warn("No login data recevied to initialize MQTT connection..."); + } + } + onAPIConnectionError(error) { + this.emit("connection error", error); + } + async startStationLivestream(deviceSN) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceStartLivestream)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStartLivestream } }); + const camera = device; + if (!station.isLiveStreaming(camera)) { + station.startLivestream(camera); + if (this.cameraMaxLivestreamSeconds > 0) { + this.cameraStationLivestreamTimeout.set(deviceSN, setTimeout(() => { + logging_1.rootMainLogger.info(`Stopping the station stream for the device ${deviceSN}, because we have reached the configured maximum stream timeout (${this.cameraMaxLivestreamSeconds} seconds)`); + this.stopStationLivestream(deviceSN); + }, this.cameraMaxLivestreamSeconds * 1000)); + } + } + else { + logging_1.rootMainLogger.warn(`The station stream for the device ${deviceSN} cannot be started, because it is already streaming!`); + } + } + async stopStationLivestream(deviceSN) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceStopLivestream)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStopLivestream } }); + if (station.isConnected() && station.isLiveStreaming(device)) { + station.stopLivestream(device); + } + else { + logging_1.rootMainLogger.warn(`The station stream for the device ${deviceSN} cannot be stopped, because it isn't streaming!`); + } + const timeout = this.cameraStationLivestreamTimeout.get(deviceSN); + if (timeout) { + clearTimeout(timeout); + this.cameraStationLivestreamTimeout.delete(deviceSN); + } + } + writePersistentData() { + this.persistentData.login_hash = (0, utils_1.md5)(`${this.config.username}:${this.config.password}`); + if (this.api.isConnected()) { + this.persistentData.httpApi = this.api?.getPersistentData(); + this.persistentData.country = this.api?.getCountry(); + } + try { + if (this.config.persistentData) { + this.emit("persistent data", JSON.stringify(this.persistentData)); + } + else { + fse.writeFileSync(this.persistentFile, JSON.stringify(this.persistentData)); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("WritePersistentData Error", { error: (0, utils_1.getError)(error) }); + } + } + saveCloudToken() { + const token = this.api.getToken(); + const token_expiration = this.api.getTokenExpiration(); + if (!!token && !!token_expiration) { + logging_1.rootMainLogger.debug("Save cloud token and token expiration", { token: token, tokenExpiration: token_expiration }); + this.persistentData.cloud_token = token; + this.persistentData.cloud_token_expiration = token_expiration.getTime(); + this.writePersistentData(); + } + } + savePushCredentials(credentials) { + this.persistentData.push_credentials = credentials; + this.writePersistentData(); + } + savePushPersistentIds() { + this.persistentData.push_persistentIds = this.getPushPersistentIds(); + this.writePersistentData(); + } + getVersion() { + return _1.libVersion; + } + isPushConnected() { + return this.pushService.isConnected(); + } + isMQTTConnected() { + return this.mqttService.isConnected(); + } + isConnected() { + return this.connected; + } + async processInvitations() { + let refreshCloud = false; + const invites = await this.api.getInvites().catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error getting invites from cloud", { error: (0, utils_1.getError)(error) }); + return error; + }); + if (Object.keys(invites).length > 0) { + const confirmInvites = []; + for (const invite of Object.values(invites)) { + const devices = []; + invite.devices.forEach(device => { + devices.push(device.device_sn); + }); + if (devices.length > 0) { + confirmInvites.push({ + invite_id: invite.invite_id, + station_sn: invite.station_sn, + device_sns: devices + }); + } + } + if (confirmInvites.length > 0) { + const result = await this.api.confirmInvites(confirmInvites).catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error in confirmation of invitations", { error: (0, utils_1.getError)(error), confirmInvites: confirmInvites }); + return error; + }); + if (result) { + logging_1.rootMainLogger.info(`Accepted received invitations`, confirmInvites); + refreshCloud = true; + } + } + } + const houseInvites = await this.api.getHouseInviteList().catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error getting house invites from cloud", { error: (0, utils_1.getError)(error) }); + return error; + }); + if (Object.keys(houseInvites).length > 0) { + for (const invite of Object.values(houseInvites)) { + const result = await this.api.confirmHouseInvite(invite.house_id, invite.id).catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error in confirmation of house invitations", { error: (0, utils_1.getError)(error) }); + return error; + }); + if (result) { + logging_1.rootMainLogger.info(`Accepted received house invitation from ${invite.action_user_email}`, { invite: invite }); + refreshCloud = true; + } + } + } + if (refreshCloud) + this.refreshCloudData(); + } + onPushMessage(message) { + this.emit("push message", message); + try { + logging_1.rootMainLogger.debug("Received push message", { message: message }); + try { + if ((message.type === types_3.ServerPushEvent.INVITE_DEVICE || message.type === types_3.ServerPushEvent.HOUSE_INVITE) && this.config.acceptInvitations) { + if (this.isConnected()) + this.processInvitations(); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Error processing server push notification for device invitation`, { error: (0, utils_1.getError)(error), message: message }); + } + try { + if (message.type === types_3.ServerPushEvent.REMOVE_DEVICE || message.type === types_3.ServerPushEvent.REMOVE_HOMEBASE || message.type === types_3.ServerPushEvent.HOUSE_REMOVE) { + if (this.isConnected()) + this.refreshCloudData(); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Error processing server push notification for device/station/house removal`, { error: (0, utils_1.getError)(error), message: message }); + } + this.getStations().then((stations) => { + stations.forEach(station => { + try { + station.processPushNotification(message); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Error processing push notification for station`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), message: message }); + } + }); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Process push notification for stations", { error: (0, utils_1.getError)(error), message: message }); + }); + this.getDevices().then((devices) => { + devices.forEach(device => { + this.getStation(device.getStationSerial()).then((station) => { + try { + device.processPushNotification(station, message, this.config.eventDurationSeconds); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Error processing push notification for device`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), message: message }); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Process push notification for devices loading station", { error: (0, utils_1.getError)(error), message: message }); + }); + }); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Process push notification for devices", { error: (0, utils_1.getError)(error), message: message }); + }); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("OnPushMessage Generic Error", { error: (0, utils_1.getError)(error), message: message }); + } + } + async startStationDownload(deviceSN, path, cipherID) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceStartDownload)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStartDownload, path: path, cipherID: cipherID } }); + if (!station.isDownloading(device)) { + await station.startDownload(device, path, cipherID); + } + else { + logging_1.rootMainLogger.warn(`The station is already downloading a video for the device ${deviceSN}!`); + } + } + async cancelStationDownload(deviceSN) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceCancelDownload)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceCancelDownload } }); + if (station.isConnected() && station.isDownloading(device)) { + station.cancelDownload(device); + } + else { + logging_1.rootMainLogger.warn(`The station isn't downloading a video for the device ${deviceSN}!`); + } + } + getConfig() { + return this.config; + } + async setDeviceProperty(deviceSN, name, value) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + const metadata = device.getPropertyMetadata(name); + value = (0, utils_1.parseValue)(metadata, value); + switch (name) { + case types_1.PropertyName.DeviceEnabled: + station.enableDevice(device, value); + break; + case types_1.PropertyName.DeviceStatusLed: + station.setStatusLed(device, value); + break; + case types_1.PropertyName.DeviceAutoNightvision: + station.setAutoNightVision(device, value); + break; + case types_1.PropertyName.DeviceMotionDetection: + station.setMotionDetection(device, value); + break; + case types_1.PropertyName.DeviceSoundDetection: + station.setSoundDetection(device, value); + break; + case types_1.PropertyName.DevicePetDetection: + station.setPetDetection(device, value); + break; + case types_1.PropertyName.DeviceRTSPStream: + station.setRTSPStream(device, value); + break; + case types_1.PropertyName.DeviceAntitheftDetection: + station.setAntiTheftDetection(device, value); + break; + case types_1.PropertyName.DeviceLocked: + station.lockDevice(device, value); + break; + case types_1.PropertyName.DeviceWatermark: + station.setWatermark(device, value); + break; + case types_1.PropertyName.DeviceLight: + station.switchLight(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsEnable: + station.setFloodlightLightSettingsEnable(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsBrightnessManual: + station.setFloodlightLightSettingsBrightnessManual(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsBrightnessMotion: + station.setFloodlightLightSettingsBrightnessMotion(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsBrightnessSchedule: + station.setFloodlightLightSettingsBrightnessSchedule(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionTriggered: + station.setFloodlightLightSettingsMotionTriggered(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionTriggeredDistance: + station.setFloodlightLightSettingsMotionTriggeredDistance(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionTriggeredTimer: + station.setFloodlightLightSettingsMotionTriggeredTimer(device, value); + break; + case types_1.PropertyName.DeviceMicrophone: + station.setMicMute(device, value); + break; + case types_1.PropertyName.DeviceSpeaker: + station.enableSpeaker(device, value); + break; + case types_1.PropertyName.DeviceSpeakerVolume: + station.setSpeakerVolume(device, value); + break; + case types_1.PropertyName.DeviceAudioRecording: + station.setAudioRecording(device, value); + break; + case types_1.PropertyName.DevicePowerSource: + station.setPowerSource(device, value); + break; + case types_1.PropertyName.DevicePowerWorkingMode: + station.setPowerWorkingMode(device, value); + break; + case types_1.PropertyName.DeviceRecordingEndClipMotionStops: + station.setRecordingEndClipMotionStops(device, value); + break; + case types_1.PropertyName.DeviceRecordingClipLength: + station.setRecordingClipLength(device, value); + break; + case types_1.PropertyName.DeviceRecordingRetriggerInterval: + station.setRecordingRetriggerInterval(device, value); + break; + case types_1.PropertyName.DeviceVideoStreamingQuality: + station.setVideoStreamingQuality(device, value); + break; + case types_1.PropertyName.DeviceVideoRecordingQuality: + station.setVideoRecordingQuality(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivity: + station.setMotionDetectionSensitivity(device, value); + break; + case types_1.PropertyName.DeviceMotionTracking: + station.setMotionTracking(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionType: + station.setMotionDetectionType(device, value); + break; + case types_1.PropertyName.DeviceMotionZone: + station.setMotionZone(device, value); + break; + case types_1.PropertyName.DeviceVideoWDR: + station.setWDR(device, value); + break; + case types_1.PropertyName.DeviceRingtoneVolume: + station.setRingtoneVolume(device, value); + break; + case types_1.PropertyName.DeviceChimeIndoor: + station.enableIndoorChime(device, value); + break; + case types_1.PropertyName.DeviceChimeHomebase: + station.enableHomebaseChime(device, value); + break; + case types_1.PropertyName.DeviceChimeHomebaseRingtoneVolume: + station.setHomebaseChimeRingtoneVolume(device, value); + break; + case types_1.PropertyName.DeviceChimeHomebaseRingtoneType: + station.setHomebaseChimeRingtoneType(device, value); + break; + case types_1.PropertyName.DeviceNotificationType: + station.setNotificationType(device, value); + break; + case types_1.PropertyName.DeviceNotificationPerson: + if (device.isIndoorPanAndTiltCameraS350()) { + station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.HUMAN, value); + } + else if (device.isFloodLightT8425()) { + station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.HUMAN, value); + } + else { + station.setNotificationPerson(device, value); + } + break; + case types_1.PropertyName.DeviceNotificationPet: + if (device.isIndoorPanAndTiltCameraS350()) { + station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.PET, value); + } + else if (device.isFloodLightT8425()) { + station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.PET, value); + } + else { + station.setNotificationPet(device, value); + } + break; + case types_1.PropertyName.DeviceNotificationAllOtherMotion: + if (device.isIndoorPanAndTiltCameraS350()) { + station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.ALL_OTHER_MOTION, value); + } + else if (device.isFloodLightT8425()) { + station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.ALL_OTHER_MOTION, value); + } + else { + station.setNotificationAllOtherMotion(device, value); + } + break; + case types_1.PropertyName.DeviceNotificationAllSound: + if (device.isIndoorPanAndTiltCameraS350()) { + station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.ALL_SOUND, value); + } + else { + station.setNotificationAllSound(device, value); + } + break; + case types_1.PropertyName.DeviceNotificationCrying: + if (device.isIndoorPanAndTiltCameraS350()) { + station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.CRYING, value); + } + else { + station.setNotificationCrying(device, value); + } + break; + case types_1.PropertyName.DeviceNotificationVehicle: + if (device.isFloodLightT8425()) { + station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.VEHICLE, value); + } + else { + throw new error_2.InvalidPropertyError("Station has no writable property", { context: { station: station.getSerial(), propertyName: name, propertyValue: value } }); + } + break; + case types_1.PropertyName.DeviceNotificationMotion: + station.setNotificationMotion(device, value); + break; + case types_1.PropertyName.DeviceNotificationRing: + station.setNotificationRing(device, value); + break; + case types_1.PropertyName.DeviceChirpVolume: + station.setChirpVolume(device, value); + break; + case types_1.PropertyName.DeviceChirpTone: + station.setChirpTone(device, value); + break; + case types_1.PropertyName.DeviceVideoHDR: + station.setHDR(device, value); + break; + case types_1.PropertyName.DeviceVideoDistortionCorrection: + station.setDistortionCorrection(device, value); + break; + case types_1.PropertyName.DeviceVideoRingRecord: + station.setRingRecord(device, value); + break; + case types_1.PropertyName.DeviceRotationSpeed: + station.setPanAndTiltRotationSpeed(device, value); + break; + case types_1.PropertyName.DeviceNightvision: + station.setNightVision(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionRange: + station.setMotionDetectionRange(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionRangeStandardSensitivity: + station.setMotionDetectionRangeStandardSensitivity(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity: + station.setMotionDetectionRangeAdvancedLeftSensitivity(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity: + station.setMotionDetectionRangeAdvancedMiddleSensitivity(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity: + station.setMotionDetectionRangeAdvancedRightSensitivity(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionTestMode: + station.setMotionDetectionTestMode(device, value); + break; + case types_1.PropertyName.DeviceMotionTrackingSensitivity: + station.setMotionTrackingSensitivity(device, value); + break; + case types_1.PropertyName.DeviceMotionAutoCruise: + station.setMotionAutoCruise(device, value); + break; + case types_1.PropertyName.DeviceMotionOutOfViewDetection: + station.setMotionOutOfViewDetection(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsColorTemperatureManual: + station.setLightSettingsColorTemperatureManual(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsColorTemperatureMotion: + station.setLightSettingsColorTemperatureMotion(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsColorTemperatureSchedule: + station.setLightSettingsColorTemperatureSchedule(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionActivationMode: + station.setLightSettingsMotionActivationMode(device, value); + break; + case types_1.PropertyName.DeviceVideoNightvisionImageAdjustment: + station.setVideoNightvisionImageAdjustment(device, value); + break; + case types_1.PropertyName.DeviceVideoColorNightvision: + station.setVideoColorNightvision(device, value); + break; + case types_1.PropertyName.DeviceAutoCalibration: + station.setAutoCalibration(device, value); + break; + case types_1.PropertyName.DeviceAutoLock: + station.setAutoLock(device, value); + break; + case types_1.PropertyName.DeviceAutoLockSchedule: + station.setAutoLockSchedule(device, value); + break; + case types_1.PropertyName.DeviceAutoLockScheduleStartTime: + station.setAutoLockScheduleStartTime(device, value); + break; + case types_1.PropertyName.DeviceAutoLockScheduleEndTime: + station.setAutoLockScheduleEndTime(device, value); + break; + case types_1.PropertyName.DeviceAutoLockTimer: + station.setAutoLockTimer(device, value); + break; + case types_1.PropertyName.DeviceOneTouchLocking: + station.setOneTouchLocking(device, value); + break; + case types_1.PropertyName.DeviceSound: + station.setSound(device, value); + break; + case types_1.PropertyName.DeviceNotification: + station.setNotification(device, value); + break; + case types_1.PropertyName.DeviceNotificationLocked: + station.setNotificationLocked(device, value); + break; + case types_1.PropertyName.DeviceNotificationUnlocked: + station.setNotificationUnlocked(device, value); + break; + case types_1.PropertyName.DeviceScramblePasscode: + station.setScramblePasscode(device, value); + break; + case types_1.PropertyName.DeviceWrongTryProtection: + station.setWrongTryProtection(device, value); + break; + case types_1.PropertyName.DeviceWrongTryAttempts: + station.setWrongTryAttempts(device, value); + break; + case types_1.PropertyName.DeviceWrongTryLockdownTime: + station.setWrongTryLockdownTime(device, value); + break; + case types_1.PropertyName.DeviceLoiteringDetection: + station.setLoiteringDetection(device, value); + break; + case types_1.PropertyName.DeviceLoiteringDetectionRange: + station.setLoiteringDetectionRange(device, value); + break; + case types_1.PropertyName.DeviceLoiteringDetectionLength: + station.setLoiteringDetectionLength(device, value); + break; + case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse: + station.setLoiteringCustomResponseAutoVoiceResponse(device, value); + break; + case types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification: + station.setLoiteringCustomResponseHomeBaseNotification(device, value); + break; + case types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification: + station.setLoiteringCustomResponsePhoneNotification(device, value); + break; + case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice: + station.setLoiteringCustomResponseAutoVoiceResponseVoice(device, value); + break; + case types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom: + station.setLoiteringCustomResponseTimeFrom(device, value); + break; + case types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo: + station.setLoiteringCustomResponseTimeTo(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityMode: + station.setMotionDetectionSensitivityMode(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityStandard: + station.setMotionDetectionSensitivityStandard(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedA: + station.setMotionDetectionSensitivityAdvancedA(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedB: + station.setMotionDetectionSensitivityAdvancedB(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedC: + station.setMotionDetectionSensitivityAdvancedC(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedD: + station.setMotionDetectionSensitivityAdvancedD(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedE: + station.setMotionDetectionSensitivityAdvancedE(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedF: + station.setMotionDetectionSensitivityAdvancedF(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedG: + station.setMotionDetectionSensitivityAdvancedG(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedH: + station.setMotionDetectionSensitivityAdvancedH(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuard: + station.setDeliveryGuard(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardPackageGuarding: + station.setDeliveryGuardPackageGuarding(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice: + station.setDeliveryGuardPackageGuardingVoiceResponseVoice(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom: + station.setDeliveryGuardPackageGuardingActivatedTimeFrom(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo: + station.setDeliveryGuardPackageGuardingActivatedTimeTo(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardUncollectedPackageAlert: + station.setDeliveryGuardUncollectedPackageAlert(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance: + station.setDeliveryGuardPackageLiveCheckAssistance(device, value); + break; + case types_1.PropertyName.DeviceDualCamWatchViewMode: + station.setDualCamWatchViewMode(device, value); + break; + case types_1.PropertyName.DeviceRingAutoResponse: + station.setRingAutoResponse(device, value); + break; + case types_1.PropertyName.DeviceRingAutoResponseVoiceResponse: + station.setRingAutoResponseVoiceResponse(device, value); + break; + case types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice: + station.setRingAutoResponseVoiceResponseVoice(device, value); + break; + case types_1.PropertyName.DeviceRingAutoResponseTimeFrom: + station.setRingAutoResponseTimeFrom(device, value); + break; + case types_1.PropertyName.DeviceRingAutoResponseTimeTo: + station.setRingAutoResponseTimeTo(device, value); + break; + case types_1.PropertyName.DeviceNotificationRadarDetector: + station.setNotificationRadarDetector(device, value); + break; + case types_1.PropertyName.DeviceSoundDetectionSensitivity: + station.setSoundDetectionSensitivity(device, value); + break; + case types_1.PropertyName.DeviceContinuousRecording: + station.setContinuousRecording(device, value); + break; + case types_1.PropertyName.DeviceContinuousRecordingType: + station.setContinuousRecordingType(device, value); + break; + case types_1.PropertyName.DeviceDefaultAngle: + station.enableDefaultAngle(device, value); + break; + case types_1.PropertyName.DeviceDefaultAngleIdleTime: + station.setDefaultAngleIdleTime(device, value); + break; + case types_1.PropertyName.DeviceNotificationIntervalTime: + station.setNotificationIntervalTime(device, value); + break; + case types_1.PropertyName.DeviceSoundDetectionRoundLook: + station.setSoundDetectionRoundLook(device, value); + break; + case types_1.PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck: + station.setDeliveryGuardUncollectedPackageAlertTimeToCheck(device, value); + break; + case types_1.PropertyName.DeviceLeftOpenAlarm: + case types_1.PropertyName.DeviceLeftOpenAlarmDuration: + case types_1.PropertyName.DeviceDualUnlock: + case types_1.PropertyName.DevicePowerSave: + case types_1.PropertyName.DeviceInteriorBrightness: + case types_1.PropertyName.DeviceInteriorBrightnessDuration: + case types_1.PropertyName.DeviceTamperAlarm: + case types_1.PropertyName.DeviceRemoteUnlock: + case types_1.PropertyName.DeviceRemoteUnlockMasterPIN: + case types_1.PropertyName.DeviceAlarmVolume: + case types_1.PropertyName.DevicePromptVolume: + case types_1.PropertyName.DeviceNotificationUnlockByKey: + case types_1.PropertyName.DeviceNotificationUnlockByPIN: + case types_1.PropertyName.DeviceNotificationUnlockByFingerprint: + case types_1.PropertyName.DeviceNotificationUnlockByApp: + case types_1.PropertyName.DeviceNotificationDualUnlock: + case types_1.PropertyName.DeviceNotificationDualLock: + case types_1.PropertyName.DeviceNotificationWrongTryProtect: + case types_1.PropertyName.DeviceNotificationJammed: + station.setSmartSafeParams(device, name, value); + break; + case types_1.PropertyName.DeviceVideoTypeStoreToNAS: + station.setVideoTypeStoreToNAS(device, value); + break; + case types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition: + station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.HUMAN_RECOGNITION, value); + break; + case types_1.PropertyName.DeviceMotionDetectionTypeHuman: + if (device.isWallLightCam()) { + station.setMotionDetectionTypeHuman(device, value); + } + else if (device.isOutdoorPanAndTiltCamera()) { + station.setMotionDetectionTypeHB3(device, types_1.T8170DetectionTypes.HUMAN_DETECTION, value); + } + else if (device.isSoloCameras()) { + station.setMotionDetectionTypeHB3(device, types_1.SoloCameraDetectionTypes.HUMAN_DETECTION, value); + } + else if (device.isIndoorPanAndTiltCameraS350()) { + station.setMotionDetectionTypeHB3(device, types_1.IndoorS350DetectionTypes.HUMAN_DETECTION, value); + } + else { + station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.HUMAN_DETECTION, value); + } + break; + case types_1.PropertyName.DeviceMotionDetectionTypePet: + if (device.isIndoorPanAndTiltCameraS350()) { + station.setMotionDetectionTypeHB3(device, types_1.IndoorS350DetectionTypes.PET_DETECTION, value); + } + else { + station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.PET_DETECTION, value); + } + break; + case types_1.PropertyName.DeviceMotionDetectionTypeVehicle: + if (device.isOutdoorPanAndTiltCamera()) { + station.setMotionDetectionTypeHB3(device, types_1.T8170DetectionTypes.VEHICLE_DETECTION, value); + } + else { + station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.VEHICLE_DETECTION, value); + } + break; + case types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions: + if (device.isWallLightCam()) { + station.setMotionDetectionTypeAllOtherMotions(device, value); + } + else if (device.isOutdoorPanAndTiltCamera()) { + station.setMotionDetectionTypeHB3(device, types_1.T8170DetectionTypes.ALL_OTHER_MOTION, value); + } + else if (device.isSoloCameras()) { + station.setMotionDetectionTypeHB3(device, types_1.SoloCameraDetectionTypes.ALL_OTHER_MOTION, value); + } + else if (device.isIndoorPanAndTiltCameraS350()) { + station.setMotionDetectionTypeHB3(device, types_1.IndoorS350DetectionTypes.ALL_OTHER_MOTION, value); + } + else { + station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.ALL_OTHER_MOTION, value); + } + break; + case types_1.PropertyName.DeviceLightSettingsManualLightingActiveMode: + station.setLightSettingsManualLightingActiveMode(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsManualDailyLighting: + station.setLightSettingsManualDailyLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsManualColoredLighting: + station.setLightSettingsManualColoredLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsManualDynamicLighting: + station.setLightSettingsManualDynamicLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionLightingActiveMode: + station.setLightSettingsMotionLightingActiveMode(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionDailyLighting: + station.setLightSettingsMotionDailyLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionColoredLighting: + station.setLightSettingsMotionColoredLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsMotionDynamicLighting: + station.setLightSettingsMotionDynamicLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsScheduleLightingActiveMode: + station.setLightSettingsScheduleLightingActiveMode(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsScheduleDailyLighting: + station.setLightSettingsScheduleDailyLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsScheduleColoredLighting: + station.setLightSettingsScheduleColoredLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsScheduleDynamicLighting: + station.setLightSettingsScheduleDynamicLighting(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsColoredLightingColors: + station.setLightSettingsColoredLightingColors(device, value); + break; + case types_1.PropertyName.DeviceLightSettingsDynamicLightingThemes: + station.setLightSettingsDynamicLightingThemes(device, value); + break; + case types_1.PropertyName.DeviceDoorControlWarning: + station.setDoorControlWarning(device, value); + break; + case types_1.PropertyName.DeviceDoor1Open: + station.openDoor(device, value, 1); + break; + case types_1.PropertyName.DeviceDoor2Open: + station.openDoor(device, value, 2); + break; + case types_1.PropertyName.DeviceLeftBehindAlarm: { + const tracker = device; + const result = await tracker.setLeftBehindAlarm(value); + if (result) { + device.updateProperty(name, value); + } + break; + } + case types_1.PropertyName.DeviceFindPhone: { + const tracker = device; + const result = await tracker.setFindPhone(value); + if (result) { + device.updateProperty(name, value); + } + break; + } + case types_1.PropertyName.DeviceTrackerType: { + const tracker = device; + const result = await tracker.setTrackerType(value); + if (result) { + device.updateProperty(name, value); + } + break; + } + case types_1.PropertyName.DeviceImageMirrored: + station.setMirrorMode(device, value); + break; + case types_1.PropertyName.DeviceFlickerAdjustment: + station.setFlickerAdjustment(device, value); + break; + case types_1.PropertyName.DeviceSoundDetectionType: + station.setSoundDetectionType(device, value); + break; + case types_1.PropertyName.DeviceLeavingDetection: + station.setLeavingDetection(device, value); + break; + case types_1.PropertyName.DeviceLeavingReactionNotification: + station.setLeavingReactionNotification(device, value); + break; + case types_1.PropertyName.DeviceLeavingReactionStartTime: + station.setLeavingReactionStartTime(device, value); + break; + case types_1.PropertyName.DeviceLeavingReactionEndTime: + station.setLeavingReactionEndTime(device, value); + break; + case types_1.PropertyName.DeviceBeepVolume: + station.setBeepVolume(device, value); + break; + case types_1.PropertyName.DeviceNightvisionOptimization: + station.setNightvisionOptimization(device, value); + break; + case types_1.PropertyName.DeviceNightvisionOptimizationSide: + station.setNightvisionOptimizationSide(device, value); + break; + case types_1.PropertyName.DeviceOpenMethod: + station.setOpenMethod(device, value); + break; + case types_1.PropertyName.DeviceMotionActivatedPrompt: + station.setMotionActivatedPrompt(device, value); + break; + default: + if (!Object.values(types_1.PropertyName).includes(name)) + throw new error_1.ReadOnlyPropertyError("Property is read only", { context: { device: deviceSN, propertyName: name, propertyValue: value } }); + throw new error_2.InvalidPropertyError("Device has no writable property", { context: { device: deviceSN, propertyName: name, propertyValue: value } }); + } + } + async setStationProperty(stationSN, name, value) { + const station = await this.getStation(stationSN); + const metadata = station.getPropertyMetadata(name); + value = (0, utils_1.parseValue)(metadata, value); + switch (name) { + case types_1.PropertyName.StationGuardMode: + station.setGuardMode(value); + break; + case types_1.PropertyName.StationAlarmTone: + station.setStationAlarmTone(value); + break; + case types_1.PropertyName.StationAlarmVolume: + station.setStationAlarmRingtoneVolume(value); + break; + case types_1.PropertyName.StationPromptVolume: + station.setStationPromptVolume(value); + break; + case types_1.PropertyName.StationNotificationSwitchModeApp: + station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.APP, value); + break; + case types_1.PropertyName.StationNotificationSwitchModeGeofence: + station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.GEOFENCE, value); + break; + case types_1.PropertyName.StationNotificationSwitchModeSchedule: + station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.SCHEDULE, value); + break; + case types_1.PropertyName.StationNotificationSwitchModeKeypad: + station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.KEYPAD, value); + break; + case types_1.PropertyName.StationNotificationStartAlarmDelay: + station.setStationNotificationStartAlarmDelay(value); + break; + case types_1.PropertyName.StationTimeFormat: + station.setStationTimeFormat(value); + break; + case types_1.PropertyName.StationSwitchModeWithAccessCode: + station.setStationSwitchModeWithAccessCode(value); + break; + case types_1.PropertyName.StationAutoEndAlarm: + station.setStationAutoEndAlarm(value); + break; + case types_1.PropertyName.StationTurnOffAlarmWithButton: + station.setStationTurnOffAlarmWithButton(value); + break; + case types_1.PropertyName.StationCrossCameraTracking: + station.setCrossCameraTracking(value); + break; + case types_1.PropertyName.StationContinuousTrackingTime: + station.setContinuousTrackingTime(value); + break; + case types_1.PropertyName.StationTrackingAssistance: + station.setTrackingAssistance(value); + break; + case types_1.PropertyName.StationCrossTrackingCameraList: + station.setCrossTrackingCameraList(value); + break; + case types_1.PropertyName.StationCrossTrackingGroupList: + station.setCrossTrackingGroupList(value); + break; + default: + if (!Object.values(types_1.PropertyName).includes(name)) + throw new error_1.ReadOnlyPropertyError("Property is read only", { context: { station: stationSN, propertyName: name, propertyValue: value } }); + throw new error_2.InvalidPropertyError("Station has no writable property", { context: { station: stationSN, propertyName: name, propertyValue: value } }); + } + } + onStartStationLivestream(station, channel, metadata, videostream, audiostream) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station livestream start", station, device, metadata, videostream, audiostream); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station start livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, metadata: metadata }); + }); + } + onStopStationLivestream(station, channel) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station livestream stop", station, device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station stop livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onErrorStationLivestream(station, channel, origError) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + station.stopLivestream(device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, origError: (0, utils_1.getError)(origError) }); + }); + } + onStartStationRTSPLivestream(station, channel) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station rtsp livestream start", station, device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station start rtsp livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStopStationRTSPLivestream(station, channel) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station rtsp livestream stop", station, device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station stop rtsp livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStationStartDownload(station, channel, metadata, videoStream, audioStream) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station download start", station, device, metadata, videoStream, audioStream); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station start download error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, metadata: metadata }); + }); + } + onStationFinishDownload(station, channel) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station download finish", station, device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station finish download error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStationCommandResult(station, result) { + this.emit("station command result", station, result); + if (result.return_code === 0) { + if (result.customData !== undefined && result.customData.onSuccess !== undefined) { + try { + result.customData.onSuccess(); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station command result - onSuccess callback error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); + } + } + this.getStationDevice(station.getSerial(), result.channel).then((device) => { + if ((result.customData !== undefined && result.customData.property !== undefined && !device.isLockWifiR10() && !device.isLockWifiR20() && !device.isSmartSafe() && !device.isLockWifiT8506() && !device.isLockWifiT8502() && !device.isLockWifiT8510P() && !device.isLockWifiT8520P()) || + (result.customData !== undefined && result.customData.property !== undefined && device.isSmartSafe() && result.command_type !== types_2.CommandType.CMD_SMARTSAFE_SETTINGS) || + (result.customData !== undefined && result.customData.property !== undefined && (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) && result.command_type !== types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE)) { + if (device.hasProperty(result.customData.property.name)) { + const metadata = device.getPropertyMetadata(result.customData.property.name); + if (typeof result.customData.property.value !== "object" || metadata.type === "object") { + device.updateProperty(result.customData.property.name, result.customData.property.value); + } + } + else if (station.hasProperty(result.customData.property.name)) { + const metadata = station.getPropertyMetadata(result.customData.property.name); + if (typeof result.customData.property.value !== "object" || metadata.type === "object") { + station.updateProperty(result.customData.property.name, result.customData.property.value); + } + } + } + else if (result.customData !== undefined && result.customData.command !== undefined && result.customData.command.name === types_1.CommandName.DeviceSnooze) { + const snoozeTime = result.customData.command.value !== undefined && result.customData.command.value.snooze_time !== undefined ? result.customData.command.value.snooze_time : 0; + if (snoozeTime > 0) { + device.updateProperty(types_1.PropertyName.DeviceSnooze, true); + device.updateProperty(types_1.PropertyName.DeviceSnoozeTime, snoozeTime); + } + this.api.refreshAllData().then(() => { + const snoozeStartTime = device.getPropertyValue(types_1.PropertyName.DeviceSnoozeStartTime); + const currentTime = Math.trunc(new Date().getTime() / 1000); + let timeoutMS; + if (snoozeStartTime !== undefined && snoozeStartTime !== 0) { + timeoutMS = (snoozeStartTime + snoozeTime - currentTime) * 1000; + } + else { + timeoutMS = snoozeTime * 1000; + } + this.deviceSnoozeTimeout[device.getSerial()] = setTimeout(() => { + device.updateProperty(types_1.PropertyName.DeviceSnooze, false); + device.updateProperty(types_1.PropertyName.DeviceSnoozeTime, 0); + device.updateProperty(types_1.PropertyName.DeviceSnoozeStartTime, 0); + if (device.hasProperty(types_1.PropertyName.DeviceSnoozeHomebase)) { + device.updateProperty(types_1.PropertyName.DeviceSnoozeHomebase, false); + } + if (device.hasProperty(types_1.PropertyName.DeviceSnoozeMotion)) { + device.updateProperty(types_1.PropertyName.DeviceSnoozeMotion, false); + } + if (device.hasProperty(types_1.PropertyName.DeviceSnoozeChime)) { + device.updateProperty(types_1.PropertyName.DeviceSnoozeChime, false); + } + delete this.deviceSnoozeTimeout[device.getSerial()]; + }, timeoutMS); + }).catch(err => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error("Error during API data refreshing", { error: (0, utils_1.getError)(error) }); + }); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + if (error instanceof error_1.DeviceNotFoundError) { + if (result.customData !== undefined && result.customData.property !== undefined) { + station.updateProperty(result.customData.property.name, result.customData.property.value); + } + } + else { + logging_1.rootMainLogger.error(`Station command result error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); + } + }); + if (station.isIntegratedDevice() && result.command_type === types_2.CommandType.CMD_SET_ARMING && station.isConnected() && station.getDeviceType() !== types_1.DeviceType.DOORBELL) { + station.getCameraInfo(); + } + } + else { + if (result.customData !== undefined && result.customData.onFailure !== undefined) { + try { + result.customData.onFailure(); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station command result - onFailure callback error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); + } + } + } + if (result.customData !== undefined && result.customData.command !== undefined) { + const customValue = result.customData.command.value; + switch (result.customData.command.name) { + case types_1.CommandName.DeviceAddUser: + this.getStationDevice(station.getSerial(), result.channel).then((device) => { + switch (result.return_code) { + case 0: + this.emit("user added", device, customValue.username, customValue.schedule); + break; + case 4: + this.emit("user error", device, customValue.username, new error_1.AddUserError("Passcode already used by another user, please choose a different one", { context: { device: device.getSerial(), username: customValue.username, schedule: customValue.schedule } })); + break; + default: + this.emit("user error", device, customValue.username, new error_1.AddUserError("Error creating user", { context: { device: device.getSerial(), username: customValue.username, schedule: customValue.schedule, returnode: result.return_code } })); + break; + } + }); + break; + case types_1.CommandName.DeviceDeleteUser: + this.getStationDevice(station.getSerial(), result.channel).then((device) => { + switch (result.return_code) { + case 0: + this.api.deleteUser(device.getSerial(), customValue.shortUserId, device.getStationSerial()).then((result) => { + if (result) { + this.emit("user deleted", device, customValue.username); + } + else { + this.emit("user error", device, customValue.username, new error_1.DeleteUserError("Error in deleting user through cloud api call", { context: { device: device.getSerial(), username: customValue.username, shortUserId: customValue.short_user_id } })); + } + }); + break; + default: + this.emit("user error", device, customValue.username, new error_1.DeleteUserError("Error deleting user", { context: { device: device.getSerial(), username: customValue.username, shortUserId: customValue.short_user_id, returnCode: result.return_code } })); + break; + } + }); + break; + case types_1.CommandName.DeviceUpdateUserPasscode: + this.getStationDevice(station.getSerial(), result.channel).then((device) => { + switch (result.return_code) { + case 0: + this.emit("user passcode updated", device, customValue.username); + break; + default: + this.emit("user error", device, customValue.username, new error_1.UpdateUserPasscodeError("Error updating user passcode", { context: { device: device.getSerial(), username: customValue.username, returnCode: result.return_code } })); + break; + } + }); + break; + case types_1.CommandName.DeviceUpdateUserSchedule: + this.getStationDevice(station.getSerial(), result.channel).then((device) => { + switch (result.return_code) { + case 0: + this.emit("user schedule updated", device, customValue.username, customValue.schedule); + break; + default: + this.emit("user error", device, customValue.username, new error_1.UpdateUserScheduleError("Error updating user schedule", { context: { device: device.getSerial(), username: customValue.username, schedule: customValue.schedule, returnCode: result.return_code } })); + break; + } + }); + break; + } + } + } + onStationSecondaryCommandResult(station, result) { + if (result.return_code === 0) { + this.getStationDevice(station.getSerial(), result.channel).then((device) => { + if (result.customData !== undefined && result.customData.property !== undefined) { + if (device.hasProperty(result.customData.property.name)) + device.updateProperty(result.customData.property.name, result.customData.property.value); + else if (station.hasProperty(result.customData.property.name)) { + station.updateProperty(result.customData.property.name, result.customData.property.value); + } + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + if (error instanceof error_1.DeviceNotFoundError) { + if (result.customData !== undefined && result.customData.property !== undefined) { + station.updateProperty(result.customData.property.name, result.customData.property.value); + } + } + else { + logging_1.rootMainLogger.error(`Station secondary command result error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); + } + }); + } + } + onStationRtspUrl(station, channel, value) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station rtsp url", station, device, value); + device.setCustomPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl, value); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station rtsp url error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, url: value }); + }); + } + onStationGuardMode(station, guardMode) { + this.emit("station guard mode", station, guardMode); + } + onStationCurrentMode(station, currentMode) { + this.emit("station current mode", station, currentMode); + } + onStationPropertyChanged(station, name, value, ready) { + if (ready && !name.startsWith("hidden-")) { + this.emit("station property changed", station, name, value); + } + } + onStationRawPropertyChanged(station, type, value) { + this.emit("station raw property changed", station, type, value); + } + onStationAlarmEvent(station, alarmEvent) { + this.emit("station alarm event", station, alarmEvent); + } + onStationAlarmDelayEvent(station, alarmDelayEvent, alarmDelay) { + this.emit("station alarm delay event", station, alarmDelayEvent, alarmDelay); + } + onStationArmDelayEvent(station, armDelay) { + this.emit("station alarm arm delay event", station, armDelay); + } + onStationAlarmArmedEvent(station) { + this.emit("station alarm armed", station); + } + onDevicePropertyChanged(device, name, value, ready) { + try { + if (ready && !name.startsWith("hidden-")) { + this.emit("device property changed", device, name, value); + } + if (name === types_1.PropertyName.DeviceRTSPStream && value === true && (device.getPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl) === undefined || (device.getPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl) !== undefined && device.getPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl) === ""))) { + this.getStation(device.getStationSerial()).then((station) => { + station.setRTSPStream(device, true); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Device property changed error - station enable rtsp`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial(), propertyName: name, propertyValue: value, ready: ready }); + }); + } + else if (name === types_1.PropertyName.DeviceRTSPStream && value === false) { + device.setCustomPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl, ""); + } + else if (name === types_1.PropertyName.DevicePictureUrl && value !== "") { + if (!(0, utils_1.isValidUrl)(value)) { + this.getStation(device.getStationSerial()).then((station) => { + if (station.hasCommand(types_1.CommandName.StationDownloadImage)) { + station.downloadImage(value); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Device property changed error - station download image`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial(), propertyName: name, propertyValue: value, ready: ready }); + }); + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Device property changed error`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial(), propertyName: name, propertyValue: value, ready: ready }); + } + } + onDeviceRawPropertyChanged(device, type, value) { + this.emit("device raw property changed", device, type, value); + } + onDeviceCryingDetected(device, state) { + this.emit("device crying detected", device, state); + } + onDeviceSoundDetected(device, state) { + this.emit("device sound detected", device, state); + } + onDevicePetDetected(device, state) { + this.emit("device pet detected", device, state); + } + onDeviceVehicleDetected(device, state) { + this.emit("device vehicle detected", device, state); + } + onDeviceMotionDetected(device, state) { + this.emit("device motion detected", device, state); + } + onDevicePersonDetected(device, state, person) { + this.emit("device person detected", device, state, person); + } + onDeviceRings(device, state) { + this.emit("device rings", device, state); + } + onDeviceLocked(device, state) { + this.emit("device locked", device, state); + } + onDeviceOpen(device, state) { + this.emit("device open", device, state); + } + onDevicePackageDelivered(device, state) { + this.emit("device package delivered", device, state); + } + onDevicePackageStranded(device, state) { + this.emit("device package stranded", device, state); + } + onDevicePackageTaken(device, state) { + this.emit("device package taken", device, state); + } + onDeviceSomeoneLoitering(device, state) { + this.emit("device someone loitering", device, state); + } + onDeviceRadarMotionDetected(device, state) { + this.emit("device radar motion detected", device, state); + } + onDevice911Alarm(device, state, detail) { + this.emit("device 911 alarm", device, state, detail); + } + onDeviceShakeAlarm(device, state, detail) { + this.emit("device shake alarm", device, state, detail); + } + onDeviceWrongTryProtectAlarm(device, state) { + this.emit("device wrong try-protect alarm", device, state); + } + onDeviceLongTimeNotClose(device, state) { + this.emit("device long time not close", device, state); + } + onDeviceLowBattery(device, state) { + this.emit("device low battery", device, state); + } + onDeviceJammed(device, state) { + this.emit("device jammed", device, state); + } + onDeviceStrangerPersonDetected(device, state) { + this.emit("device stranger person detected", device, state); + } + onDeviceDogDetected(device, state) { + this.emit("device dog detected", device, state); + } + onDeviceDogLickDetected(device, state) { + this.emit("device dog lick detected", device, state); + } + onDeviceDogPoopDetected(device, state) { + this.emit("device dog poop detected", device, state); + } + onDeviceReady(device) { + try { + if (device.getPropertyValue(types_1.PropertyName.DeviceRTSPStream) !== undefined && device.getPropertyValue(types_1.PropertyName.DeviceRTSPStream) === true) { + this.getStation(device.getStationSerial()).then((station) => { + station.setRTSPStream(device, true); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Device ready error - station enable rtsp`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial() }); + }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Device ready error`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial() }); + } + } + onStationRuntimeState(station, channel, batteryLevel, temperature) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + if (device.hasProperty(types_1.PropertyName.DeviceBattery)) { + const metadataBattery = device.getPropertyMetadata(types_1.PropertyName.DeviceBattery); + device.updateRawProperty(metadataBattery.key, batteryLevel.toString(), "p2p"); + } + if (device.hasProperty(types_1.PropertyName.DeviceBatteryTemp)) { + const metadataBatteryTemperature = device.getPropertyMetadata(types_1.PropertyName.DeviceBatteryTemp); + device.updateRawProperty(metadataBatteryTemperature.key, temperature.toString(), "p2p"); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station runtime state error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, batteryLevel: batteryLevel, temperature: temperature }); + }); + } + onStationChargingState(station, channel, chargeType, batteryLevel) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + if (device.hasProperty(types_1.PropertyName.DeviceBattery)) { + const metadataBattery = device.getPropertyMetadata(types_1.PropertyName.DeviceBattery); + if ((0, utils_3.isCharging)(chargeType) && batteryLevel > 0) + device.updateRawProperty(metadataBattery.key, batteryLevel.toString(), "p2p"); + } + if (device.hasProperty(types_1.PropertyName.DeviceChargingStatus)) { + const metadataChargingStatus = device.getPropertyMetadata(types_1.PropertyName.DeviceChargingStatus); + device.updateRawProperty(metadataChargingStatus.key, chargeType.toString(), "p2p"); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station charging state error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, chargeType: chargeType, charging: (0, utils_3.isCharging)(chargeType), batteryLevel: batteryLevel }); + }); + } + onStationWifiRssi(station, channel, rssi) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + if (device.hasProperty(types_1.PropertyName.DeviceWifiRSSI)) { + const metadataWifiRssi = device.getPropertyMetadata(types_1.PropertyName.DeviceWifiRSSI); + device.updateRawProperty(metadataWifiRssi.key, rssi.toString(), "p2p"); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station wifi rssi error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, rssi: rssi }); + }); + } + onCaptchaRequest(id, captcha) { + this.emit("captcha request", id, captcha); + } + onFloodlightManualSwitch(station, channel, enabled) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + if (device.hasProperty(types_1.PropertyName.DeviceLight)) { + const metadataLight = device.getPropertyMetadata(types_1.PropertyName.DeviceLight); + device.updateRawProperty(metadataLight.key, enabled === true ? "1" : "0", "p2p"); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station floodlight manual switch error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, enabled: enabled }); + }); + } + onAuthTokenInvalidated() { + this.persistentData.cloud_token = undefined; + this.persistentData.cloud_token_expiration = undefined; + this.writePersistentData(); + } + onTfaRequest() { + this.emit("tfa request"); + } + onStationTalkbackStart(station, channel, talkbackStream) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station talkback start", station, device, talkbackStream); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station talkback start error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStationTalkbackStop(station, channel) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + this.emit("station talkback stop", station, device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station talkback stop error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStationTalkbackError(station, channel, origError) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + station.stopTalkback(device); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station talkback error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, origError: (0, utils_1.getError)(origError) }); + }); + } + async startStationTalkback(deviceSN) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceStartTalkback)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStartTalkback } }); + if (station.isLiveStreaming(device)) { + if (!station.isTalkbackOngoing(device)) { + station.startTalkback(device); + } + else { + logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be started, because it is ongoing!`); + } + } + else { + logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be started, because it isn't live streaming!`); + } + } + async stopStationTalkback(deviceSN) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceStopTalkback)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStopTalkback } }); + if (station.isLiveStreaming(device)) { + if (station.isTalkbackOngoing(device)) { + station.stopTalkback(device); + } + else { + logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be stopped, because it isn't ongoing!`); + } + } + else { + logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be stopped, because it isn't live streaming!`); + } + } + onStationDeviceShakeAlarm(deviceSN, event) { + this.getDevice(deviceSN).then((device) => { + if (device.isSmartSafe()) + device.shakeEvent(event, this.config.eventDurationSeconds); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationDeviceShakeAlarm error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, event: types_2.SmartSafeShakeAlarmEvent[event] }); + }); + } + onStationDevice911Alarm(deviceSN, event) { + this.getDevice(deviceSN).then((device) => { + if (device.isSmartSafe()) + device.alarm911Event(event, this.config.eventDurationSeconds); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationDevice911Alarm error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, event: types_2.SmartSafeAlarm911Event[event] }); + }); + } + onStationDeviceJammed(deviceSN) { + this.getDevice(deviceSN).then((device) => { + if (device.isSmartSafe()) + device.jammedEvent(this.config.eventDurationSeconds); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationDeviceJammed error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); + }); + } + onStationDeviceLowBattery(deviceSN) { + this.getDevice(deviceSN).then((device) => { + if (device.isSmartSafe()) + device.lowBatteryEvent(this.config.eventDurationSeconds); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationDeviceLowBattery error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); + }); + } + onStationDeviceWrongTryProtectAlarm(deviceSN) { + this.getDevice(deviceSN).then((device) => { + if (device.isSmartSafe()) + device.wrongTryProtectAlarmEvent(this.config.eventDurationSeconds); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationDeviceWrongTryProtectAlarm error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); + }); + } + async addUser(deviceSN, username, passcode, schedule) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + try { + if (!device.hasCommand(types_1.CommandName.DeviceAddUser)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceAddUser, username: username, passcode: "[redacted]", schedule: schedule } }); + const addUserResponse = await this.api.addUser(deviceSN, username, device.getStationSerial()); + if (addUserResponse !== null) { + station.addUser(device, username, addUserResponse.short_user_id, passcode, schedule); + } + else { + this.emit("user error", device, username, new error_1.AddUserError("Error on creating user through cloud api call", { context: { deivce: deviceSN, username: username, passcode: "[redacted]", schedule: schedule } })); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`addUser error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username, schedule: schedule }); + this.emit("user error", device, username, new error_1.AddUserError("Generic error", { cause: error, context: { device: deviceSN, username: username, passcode: "[redacted]", schedule: schedule } })); + } + } + async deleteUser(deviceSN, username) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceDeleteUser)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceDeleteUser, username: username } }); + try { + const users = await this.api.getUsers(deviceSN, device.getStationSerial()); + if (users !== null) { + let found = false; + for (const user of users) { + if (user.user_name === username) { + station.deleteUser(device, user.user_name, user.short_user_id); + found = true; + break; + } + } + if (!found) { + this.emit("user error", device, username, new error_1.DeleteUserError("User not found", { context: { device: deviceSN, username: username } })); + } + } + else { + this.emit("user error", device, username, new error_1.DeleteUserError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username } })); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`deleteUser error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username }); + this.emit("user error", device, username, new error_1.DeleteUserError("Generic error", { cause: error, context: { device: deviceSN, username: username } })); + } + } + async updateUser(deviceSN, username, newUsername) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceUpdateUsername)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceUpdateUsername, usernmae: username, newUsername: newUsername } }); + try { + const users = await this.api.getUsers(deviceSN, device.getStationSerial()); + if (users !== null) { + let found = false; + for (const user of users) { + if (user.user_name === username) { + if ((device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) && user.password_list.length > 0) { + for (const entry of user.password_list) { + if (entry.password_type === types_1.UserPasswordType.PIN) { + let schedule = entry.schedule; + if (schedule !== undefined && typeof schedule == "string") { + schedule = JSON.parse(schedule); + } + if (schedule !== undefined && schedule.endDay !== undefined && schedule.endTime !== undefined && schedule.startDay !== undefined && schedule.startTime !== undefined && schedule.week !== undefined) { + station.updateUserSchedule(device, newUsername, user.short_user_id, (0, utils_2.hexStringScheduleToSchedule)(schedule.startDay, schedule.startTime, schedule.endDay, schedule.endTime, schedule.week)); + } + } + } + } + else if (device.isLockWifiR10() || device.isLockWifiR20()) { + for (const entry of user.password_list) { + if (entry.password_type === types_1.UserPasswordType.PIN) { + station.updateUsername(device, newUsername, entry.password_id); + } + } + } + const result = await this.api.updateUser(deviceSN, device.getStationSerial(), user.short_user_id, newUsername); + if (result) { + this.emit("user username updated", device, username); + } + else { + this.emit("user error", device, username, new error_1.UpdateUserUsernameError("Error in changing username through cloud api call", { context: { device: deviceSN, username: username, newUsername: newUsername } })); + } + found = true; + break; + } + } + if (!found) { + this.emit("user error", device, username, new error_1.UpdateUserUsernameError("User not found", { context: { device: deviceSN, username: username, newUsername: newUsername } })); + } + } + else { + this.emit("user error", device, username, new error_1.UpdateUserUsernameError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username, newUsername: newUsername } })); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`updateUser error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username, newUsername: newUsername }); + this.emit("user error", device, username, new error_1.UpdateUserUsernameError("Generic error", { cause: error, context: { device: deviceSN, username: username, newUsername: newUsername } })); + } + } + async updateUserPasscode(deviceSN, username, passcode) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceUpdateUserPasscode)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceUpdateUserPasscode, username: username, passcode: "[redacted]" } }); + try { + const users = await this.api.getUsers(deviceSN, device.getStationSerial()); + if (users !== null) { + let found = false; + for (const user of users) { + if (user.user_name === username) { + for (const entry of user.password_list) { + if (entry.password_type === types_1.UserPasswordType.PIN) { + station.updateUserPasscode(device, user.user_name, entry.password_id, passcode); + found = true; + } + } + } + } + if (!found) { + this.emit("user error", device, username, new error_1.UpdateUserPasscodeError("User not found", { context: { device: deviceSN, username: username, passcode: "[redacted]" } })); + } + } + else { + this.emit("user error", device, username, new error_1.UpdateUserPasscodeError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username, passcode: "[redacted]" } })); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`updateUserPasscode error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username }); + this.emit("user error", device, username, new error_1.UpdateUserPasscodeError("Generic error", { cause: error, context: { device: deviceSN, username: username, passcode: "[redacted]" } })); + } + } + async updateUserSchedule(deviceSN, username, schedule) { + const device = await this.getDevice(deviceSN); + const station = await this.getStation(device.getStationSerial()); + if (!device.hasCommand(types_1.CommandName.DeviceUpdateUserSchedule)) + throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceUpdateUserSchedule, usernmae: username, schedule: schedule } }); + try { + const users = await this.api.getUsers(deviceSN, device.getStationSerial()); + if (users !== null) { + let found = false; + for (const user of users) { + if (user.user_name === username) { + station.updateUserSchedule(device, user.user_name, user.short_user_id, schedule); + found = true; + } + } + if (!found) { + this.emit("user error", device, username, new error_1.UpdateUserScheduleError("User not found", { context: { device: deviceSN, username: username, schedule: schedule } })); + } + } + else { + this.emit("user error", device, username, new error_1.UpdateUserScheduleError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username, schedule: schedule } })); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`updateUserSchedule error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username, schedule: schedule }); + this.emit("user error", device, username, new error_1.UpdateUserScheduleError("Generic error", { cause: error, context: { device: deviceSN, username: username, schedule: schedule } })); + } + } + onStationDevicePinVerified(deviceSN, successfull) { + this.getDevice(deviceSN).then((device) => { + this.emit("device pin verified", device, successfull); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationDevicePinVerified error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, successfull: successfull }); + }); + } + onStationSdInfoEx(station, sdStatus, sdCapacity, sdCapacityAvailable) { + if (station.hasProperty(types_1.PropertyName.StationSdStatus)) { + station.updateProperty(types_1.PropertyName.StationSdStatus, sdStatus); + } + if (station.hasProperty(types_1.PropertyName.StationSdCapacity)) { + station.updateProperty(types_1.PropertyName.StationSdCapacity, sdCapacity); + } + if (station.hasProperty(types_1.PropertyName.StationSdCapacityAvailable)) { + station.updateProperty(types_1.PropertyName.StationSdCapacityAvailable, sdCapacityAvailable); + } + } + _emitStationImageDownload(station, file, picture) { + this.emit("station image download", station, file, picture); + this.getDevicesFromStation(station.getSerial()).then((devices) => { + for (const device of devices) { + if (device.getPropertyValue(types_1.PropertyName.DevicePictureUrl) === file) { + logging_1.rootMainLogger.debug(`onStationImageDownload - Set picture for device ${device.getSerial()} file: ${file} picture_ext: ${picture.type.ext} picture_mime: ${picture.type.mime}`); + device.updateProperty(types_1.PropertyName.DevicePicture, picture); + break; + } + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`onStationImageDownload - Set picture error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), file: file }); + }); + } + onStationImageDownload(station, file, image) { + import("image-type").then(({ default: imageType }) => { + imageType(image).then((type) => { + const picture = { + data: image, + type: type !== null && type !== undefined ? type : { ext: "unknown", mime: "application/octet-stream" } + }; + this._emitStationImageDownload(station, file, picture); + }).catch(() => { + this._emitStationImageDownload(station, file, { + data: image, + type: { ext: "unknown", mime: "application/octet-stream" } + }); + }); + }).catch(() => { + this._emitStationImageDownload(station, file, { + data: image, + type: { ext: "unknown", mime: "application/octet-stream" } + }); + }); + } + onStationDatabaseQueryLatest(station, returnCode, data) { + if (returnCode === types_2.DatabaseReturnCode.SUCCESSFUL) { + for (const element of data) { + if ((element.device_sn !== "" && !station.isStation()) || (station.isStation() && element.device_sn !== station.getSerial())) { + this.getDevice(element.device_sn).then((device) => { + const raw = device.getRawDevice(); + if ("crop_local_path" in element) { + raw.cover_path = element.crop_local_path; + } + else if ("crop_cloud_path" in element) { + raw.cover_path = element.crop_cloud_path; + } + device.update(raw); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + if (!(error instanceof error_1.DeviceNotFoundError)) { + logging_1.rootMainLogger.error("onStationDatabaseQueryLatest Error", { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), returnCode: returnCode }); + } + }); + } + } + } + this.emit("station database query latest", station, returnCode, data); + } + onStationDatabaseQueryLocal(station, returnCode, data) { + this.emit("station database query local", station, returnCode, data); + } + onStationDatabaseCountByDate(station, returnCode, data) { + this.emit("station database count by date", station, returnCode, data); + } + onStationDatabaseDelete(station, returnCode, failedIds) { + this.emit("station database delete", station, returnCode, failedIds); + } + onStationSensorStatus(station, channel, status) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + if (device.hasProperty(types_1.PropertyName.DeviceSensorOpen)) { + const metadataSensorOpen = device.getPropertyMetadata(types_1.PropertyName.DeviceSensorOpen); + device.updateRawProperty(metadataSensorOpen.key, status.toString(), "p2p"); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station sensor status error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStationGarageDoorStatus(station, channel, doorId, status) { + this.getStationDevice(station.getSerial(), channel).then((device) => { + device.updateRawProperty(types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, status.toString(), "p2p"); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootMainLogger.error(`Station garage door status error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); + }); + } + onStorageInfoHb3(station, channel, storageInfo) { + if (station.hasProperty(types_1.PropertyName.StationStorageInfoEmmc)) { + station.updateProperty(types_1.PropertyName.StationStorageInfoEmmc, storageInfo.emmc_info); + } + if (station.hasProperty(types_1.PropertyName.StationStorageInfoHdd)) { + station.updateProperty(types_1.PropertyName.StationStorageInfoHdd, storageInfo.hdd_info); + } + } + onDeviceTampering(device, state) { + this.emit("device tampering", device, state); + } + onDeviceLowTemperature(device, state) { + this.emit("device low temperature", device, state); + } + onDeviceHighTemperature(device, state) { + this.emit("device high temperature", device, state); + } + onDevicePinIncorrect(device, state) { + this.emit("device pin incorrect", device, state); + } + onDeviceLidStuck(device, state) { + this.emit("device lid stuck", device, state); + } + onDeviceBatteryFullyCharged(device, state) { + this.emit("device battery fully charged", device, state); + } +} +exports.EufySecurity = EufySecurity; +//# sourceMappingURL=eufysecurity.js.map \ No newline at end of file diff --git a/build/eufysecurity.js.map b/build/eufysecurity.js.map new file mode 100644 index 00000000..bcdd251c --- /dev/null +++ b/build/eufysecurity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"eufysecurity.js","sourceRoot":"","sources":["../src/eufysecurity.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/api.d.ts b/build/http/api.d.ts new file mode 100644 index 00000000..a153388f --- /dev/null +++ b/build/http/api.d.ts @@ -0,0 +1,90 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { TrustDevice, Cipher, EventRecordResponse, ConfirmInvite, SensorHistoryEntry, ApiResponse, HouseDetail, DeviceListResponse, StationListResponse, HouseInviteListResponse, HouseListResponse, PassportProfileResponse, User, AddUserResponse } from "./models"; +import { HTTPApiEvents, Ciphers, FullDevices, Hubs, Voices, Invites, HTTPApiRequest, HTTPApiPersistentData, LoginOptions, Schedule } from "./interfaces"; +import { EventFilterType, PublicKeyType, VerfyCodeTypes } from "./types"; +export declare class HTTPApi extends TypedEmitter { + private static apiDomainBase; + private readonly SERVER_PUBLIC_KEY; + private apiBase; + private username; + private password; + private ecdh; + private token; + private tokenExpiration; + private renewAuthTokenJob?; + private connected; + private requestEufyCloud; + private throttle; + private devices; + private hubs; + private houses; + private persistentData; + private headers; + private constructor(); + static getApiBaseFromCloud(country: string): Promise; + private loadLibraries; + static initialize(country: string, username: string, password: string, persistentData?: HTTPApiPersistentData): Promise; + private clearScheduleRenewAuthToken; + private scheduleRenewAuthToken; + private invalidateToken; + setPhoneModel(model: string): void; + getPhoneModel(): string; + getCountry(): string; + setLanguage(language: string): void; + getLanguage(): string; + login(options?: LoginOptions): Promise; + sendVerifyCode(type?: VerfyCodeTypes): Promise; + listTrustDevice(): Promise>; + addTrustDevice(verifyCode: string): Promise; + getStationList(): Promise>; + getDeviceList(): Promise>; + refreshHouseData(): Promise; + refreshStationData(): Promise; + refreshDeviceData(): Promise; + refreshAllData(): Promise; + request(request: HTTPApiRequest, withoutUrlPrefix?: boolean): Promise; + checkPushToken(): Promise; + registerPushToken(token: string): Promise; + setParameters(stationSN: string, deviceSN: string, params: { + paramType: number; + paramValue: any; + }[]): Promise; + getCiphers(/*stationSN: string, */ cipherIDs: Array, userID: string): Promise; + getVoices(deviceSN: string): Promise; + getCipher(/*stationSN: string, */ cipherID: number, userID: string): Promise; + getDevices(): FullDevices; + getHubs(): Hubs; + getToken(): string | null; + getTokenExpiration(): Date | null; + setToken(token: string): void; + setTokenExpiration(tokenExpiration: Date): void; + getAPIBase(): string; + setOpenUDID(openudid: string): void; + setSerialNumber(serialnumber: string): void; + private _getEvents; + getVideoEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise>; + getAlarmEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise>; + getHistoryEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise>; + getAllVideoEvents(filter?: EventFilterType, maxResults?: number): Promise>; + getAllAlarmEvents(filter?: EventFilterType, maxResults?: number): Promise>; + getAllHistoryEvents(filter?: EventFilterType, maxResults?: number): Promise>; + isConnected(): boolean; + getInvites(): Promise; + confirmInvites(confirmInvites: Array): Promise; + getPublicKey(deviceSN: string, type: PublicKeyType): Promise; + decryptAPIData(data?: string, json?: boolean): any; + getSensorHistory(stationSN: string, deviceSN: string): Promise>; + getHouseDetail(houseID: string): Promise; + getHouseList(): Promise>; + getHouseInviteList(isInviter?: number): Promise>; + confirmHouseInvite(houseID: string, inviteID: number): Promise; + getPersistentData(): HTTPApiPersistentData | undefined; + getPassportProfile(): Promise; + addUser(deviceSN: string, nickname: string, stationSN?: string): Promise; + deleteUser(deviceSN: string, shortUserId: string, stationSN?: string): Promise; + getUsers(deviceSN: string, stationSN: string): Promise | null>; + getUser(deviceSN: string, stationSN: string, shortUserId: string): Promise; + updateUser(deviceSN: string, stationSN: string, shortUserId: string, nickname: string): Promise; + getImage(deviceSN: string, url: string): Promise; + updateUserPassword(deviceSN: string, shortUserId: string, passwordId: string, schedule: Schedule, stationSN?: string): Promise; +} diff --git a/build/http/api.js b/build/http/api.js new file mode 100644 index 00000000..3e46e824 --- /dev/null +++ b/build/http/api.js @@ -0,0 +1,1578 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HTTPApi = void 0; +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const i18n_iso_countries_1 = require("i18n-iso-countries"); +const i18n_iso_languages_1 = require("@cospired/i18n-iso-languages"); +const crypto_1 = require("crypto"); +const schedule = __importStar(require("node-schedule")); +const types_1 = require("./types"); +const parameter_1 = require("./parameter"); +const utils_1 = require("./utils"); +const error_1 = require("./../error"); +const utils_2 = require("./../utils"); +const error_2 = require("./error"); +const utils_3 = require("../p2p/utils"); +const logging_1 = require("../logging"); +class HTTPApi extends tiny_typed_emitter_1.TypedEmitter { + static apiDomainBase = "https://extend.eufylife.com"; + SERVER_PUBLIC_KEY = "04c5c00c4f8d1197cc7c3167c52bf7acb054d722f0ef08dcd7e0883236e0d72a3868d9750cb47fa4619248f3d83f0f662671dadc6e2d31c2f41db0161651c7c076"; + apiBase; + username; + password; + ecdh = (0, crypto_1.createECDH)("prime256v1"); + token = null; + tokenExpiration = null; + renewAuthTokenJob; + connected = false; + requestEufyCloud; + throttle; + devices = {}; + hubs = {}; + houses = {}; + persistentData = { + user_id: "", + email: "", + nick_name: "", + device_public_keys: {}, + clientPrivateKey: "", + serverPublicKey: this.SERVER_PUBLIC_KEY + }; + headers = { + "User-Agent": undefined, + App_version: "v4.6.0_1630", + Os_type: "android", + Os_version: "31", + Phone_model: "ONEPLUS A3003", + Country: "DE", + Language: "en", + Openudid: "5e4621b0152c0d00", + //uid: "", + Net_type: "wifi", + Mnc: "02", + Mcc: "262", + Sn: "75814221ee75", + Model_type: "PHONE", + Timezone: "GMT+01:00", + "Cache-Control": "no-cache", + }; + constructor(apiBase, country, username, password, persistentData) { + super(); + this.username = username; + this.password = password; + this.apiBase = apiBase; + logging_1.rootHTTPLogger.debug(`Loaded API`, { apieBase: apiBase, country: country, username: username, persistentData: persistentData }); + this.headers.timezone = (0, utils_1.getTimezoneGMTString)(); + this.headers.country = country.toUpperCase(); + if (persistentData) { + this.persistentData = persistentData; + } + if (this.persistentData.clientPrivateKey === undefined || this.persistentData.clientPrivateKey === "") { + this.ecdh.generateKeys(); + this.persistentData.clientPrivateKey = this.ecdh.getPrivateKey().toString("hex"); + } + else { + try { + this.ecdh.setPrivateKey(Buffer.from(this.persistentData.clientPrivateKey, "hex")); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.debug(`Invalid client private key, generate new client private key...`, { error: (0, utils_2.getError)(error) }); + this.ecdh.generateKeys(); + this.persistentData.clientPrivateKey = this.ecdh.getPrivateKey().toString("hex"); + } + } + if (this.persistentData.serverPublicKey === undefined || this.persistentData.serverPublicKey === "") { + this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; + } + else { + try { + this.ecdh.computeSecret(Buffer.from(this.persistentData.serverPublicKey, "hex")); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.debug(`Invalid server public key, fallback to default server public key...`, { error: (0, utils_2.getError)(error) }); + this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; + } + } + } + static async getApiBaseFromCloud(country) { + const { default: got } = await import("got"); + const response = await got(`domain/${country}`, { + prefixUrl: this.apiDomainBase, + method: "GET", + responseType: "json", + retry: { + limit: 1, + methods: ["GET"] + } + }); + const result = response.body; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + return `https://${result.data.domain}`; + } + throw new error_2.ApiBaseLoadError("Error identifying API base from cloud", { context: { code: result.code, message: result.msg } }); + } + async loadLibraries() { + const { default: pThrottle } = await import("p-throttle"); + const { default: got } = await import("got"); + this.throttle = pThrottle({ + limit: 5, + interval: 1000, + }); + this.requestEufyCloud = got.extend({ + prefixUrl: this.apiBase, + headers: this.headers, + responseType: "json", + //throwHttpErrors: false, + retry: { + limit: 3, + methods: ["GET", "POST"], + statusCodes: [ + 404, + 408, + 413, + 423, + 429, + 500, + 502, + 503, + 504, + 521, + 522, + 524 + ], + calculateDelay: ({ computedValue }) => { + return computedValue * 3; + } + }, + hooks: { + afterResponse: [ + async (response, retryWithMergedOptions) => { + // Unauthorized + if (response.statusCode === 401) { + const oldToken = this.token; + logging_1.rootHTTPLogger.debug("Invalidate token an get a new one...", { requestUrl: response.requestUrl, statusCode: response.statusCode, statusMessage: response.statusMessage }); + this.invalidateToken(); + await this.login({ force: true }); + if (oldToken !== this.token && this.token) { + // Refresh the access token + const updatedOptions = { + headers: { + "X-Auth-Token": this.token + } + }; + // Update the defaults + this.requestEufyCloud.defaults.options.merge(updatedOptions); + // Make a new retry + return retryWithMergedOptions(updatedOptions); + } + } + // No changes otherwise + return response; + } + ], + beforeRetry: [ + (error) => { + // This will be called on `retryWithMergedOptions(...)` + const statusCode = error.response?.statusCode || 0; + const { method, url, prefixUrl } = error.options; + const shortUrl = (0, utils_2.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); + const body = error.response?.body ? error.response?.body : error.message; + logging_1.rootHTTPLogger.debug(`Retrying [${error.request?.retryCount !== undefined ? error.request?.retryCount + 1 : 1}]: ${error.code} (${error.request?.requestUrl})\n${statusCode} ${method} ${shortUrl}\n${body}`); + // Retrying [1]: ERR_NON_2XX_3XX_RESPONSE + } + ], + beforeError: [ + error => { + const { response, options } = error; + const statusCode = response?.statusCode || 0; + const { method, url, prefixUrl } = options; + const shortUrl = (0, utils_2.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); + const body = response?.body ? response.body : error.message; + if (response?.body) { + error.name = "EufyApiError"; + error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; + } + return error; + } + ], + beforeRequest: [ + async (_options) => { + await this.throttle(async () => { return; })(); + } + ] + }, + mutableDefaults: true + }); + } + static async initialize(country, username, password, persistentData) { + if ((0, i18n_iso_countries_1.isValid)(country) && country.length === 2) { + const apiBase = await this.getApiBaseFromCloud(country); + const api = new HTTPApi(apiBase, country, username, password, persistentData); + await api.loadLibraries(); + return api; + } + throw new error_1.InvalidCountryCodeError("Invalid ISO 3166-1 Alpha-2 country code", { context: { countryCode: country } }); + } + clearScheduleRenewAuthToken() { + if (this.renewAuthTokenJob !== undefined) { + this.renewAuthTokenJob.cancel(); + } + } + scheduleRenewAuthToken() { + this.clearScheduleRenewAuthToken(); + if (this.tokenExpiration !== null) { + const scheduleDate = new Date(this.tokenExpiration.getTime() - (1000 * 60 * 60 * 24)); + if (this.renewAuthTokenJob === undefined) { + this.renewAuthTokenJob = schedule.scheduleJob("renewAuthToken", scheduleDate, async () => { + logging_1.rootHTTPLogger.info("Authentication token is soon expiring, fetching a new one..."); + await this.login({ force: true }); + }); + } + else { + this.renewAuthTokenJob.schedule(scheduleDate); + } + } + } + invalidateToken() { + this.connected = false; + this.token = null; + this.requestEufyCloud.defaults.options.merge({ + headers: { + "X-Auth-Token": undefined + } + }); + this.tokenExpiration = null; + this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; + this.clearScheduleRenewAuthToken(); + this.emit("auth token invalidated"); + } + setPhoneModel(model) { + this.headers.phone_model = model.toUpperCase(); + this.requestEufyCloud.defaults.options.merge({ + headers: this.headers + }); + } + getPhoneModel() { + return this.headers.phone_model; + } + getCountry() { + return this.headers.country; + } + setLanguage(language) { + if ((0, i18n_iso_languages_1.isValid)(language) && language.length === 2) { + this.headers.language = language; + this.requestEufyCloud.defaults.options.merge({ + headers: this.headers + }); + } + else + throw new error_1.InvalidLanguageCodeError("Invalid ISO 639 language code", { context: { languageCode: language } }); + } + getLanguage() { + return this.headers.language; + } + async login(options) { + options = (0, utils_2.mergeDeep)(options, { + force: false + }); + logging_1.rootHTTPLogger.debug("Login and get an access token", { token: this.token, tokenExpiration: this.tokenExpiration, options: options }); + if (!this.token || (this.tokenExpiration && (new Date()).getTime() >= this.tokenExpiration.getTime()) || options.verifyCode || options.captcha || options.force) { + try { + const data = { + ab: this.headers.country, + client_secret_info: { + public_key: this.ecdh.getPublicKey("hex") + }, + enc: 0, + email: this.username, + password: (0, utils_1.encryptAPIData)(this.password, this.ecdh.computeSecret(Buffer.from(this.SERVER_PUBLIC_KEY, "hex"))), + time_zone: new Date().getTimezoneOffset() !== 0 ? -new Date().getTimezoneOffset() * 60 * 1000 : 0, + transaction: `${new Date().getTime()}` + }; + if (options.verifyCode) { + data.verify_code = options.verifyCode; + } + else if (options.captcha) { + data.captcha_id = options.captcha.captchaId; + data.answer = options.captcha.captchaCode; + } + const response = await this.request({ + method: "post", + endpoint: "v2/passport/login_sec", + data: data + }); + if (response.status == 200) { + const result = response.data; + if (result.data !== undefined) { + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + const dataresult = result.data; + if (dataresult.server_secret_info?.public_key) + this.persistentData.serverPublicKey = dataresult.server_secret_info.public_key; + this.persistentData.user_id = dataresult.user_id; + this.persistentData.email = this.decryptAPIData(dataresult.email, false); + this.persistentData.nick_name = dataresult.nick_name; + this.setToken(dataresult.auth_token); + this.tokenExpiration = new Date(dataresult.token_expires_at * 1000); + this.headers = { + ...this.headers, + gtoken: (0, utils_2.md5)(dataresult.user_id) + }; + logging_1.rootHTTPLogger.debug("Login - Token data", { token: this.token, tokenExpiration: this.tokenExpiration, serverPublicKey: this.persistentData.serverPublicKey }); + if (!this.connected) { + this.connected = true; + this.emit("connect"); + } + this.scheduleRenewAuthToken(); + } + else if (result.code == types_1.ResponseErrorCode.CODE_NEED_VERIFY_CODE) { + logging_1.rootHTTPLogger.debug(`Login - Send verification code...`); + const dataresult = result.data; + this.setToken(dataresult.auth_token); + this.tokenExpiration = new Date(dataresult.token_expires_at * 1000); + logging_1.rootHTTPLogger.debug("Token data", { token: this.token, tokenExpiration: this.tokenExpiration }); + await this.sendVerifyCode(types_1.VerfyCodeTypes.TYPE_EMAIL); + logging_1.rootHTTPLogger.info("Please send required verification code to proceed with authentication"); + this.emit("tfa request"); + } + else if (result.code == types_1.ResponseErrorCode.LOGIN_NEED_CAPTCHA || result.code == types_1.ResponseErrorCode.LOGIN_CAPTCHA_ERROR) { + const dataresult = result.data; + logging_1.rootHTTPLogger.debug("Login - Captcha verification received", { captchaId: dataresult.captcha_id, item: dataresult.item }); + logging_1.rootHTTPLogger.info("Please send requested captcha to proceed with authentication"); + this.emit("captcha request", dataresult.captcha_id, dataresult.item); + } + else { + logging_1.rootHTTPLogger.error("Login - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + this.emit("connection error", new error_2.ApiResponseCodeError("API response code not ok", { context: { code: result.code, message: result.msg } })); + } + } + else { + logging_1.rootHTTPLogger.error("Login - Response data is missing", { code: result.code, msg: result.msg, data: result.data }); + this.emit("connection error", new error_2.ApiInvalidResponseError("API response data is missing", { context: { code: result.code, message: result.msg, data: result.data } })); + } + } + else { + logging_1.rootHTTPLogger.error("Login - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + this.emit("connection error", new error_2.ApiHTTPResponseCodeError("API HTTP response code not ok", { context: { status: response.status, statusText: response.statusText } })); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Login - Generic Error:", { error: (0, utils_2.getError)(error) }); + this.emit("connection error", new error_2.ApiGenericError("Generic API error", { cause: error })); + } + } + else if (!this.connected) { + try { + const profile = await this.getPassportProfile(); + if (profile !== null) { + if (!this.connected) { + this.connected = true; + this.emit("connect"); + this.scheduleRenewAuthToken(); + } + } + else { + this.emit("connection error", new error_2.ApiInvalidResponseError(`Invalid passport profile response`)); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Login - getPassportProfile Error", { error: (0, utils_2.getError)(error) }); + this.emit("connection error", new error_2.ApiGenericError("API get passport profile error", { cause: error })); + } + } + } + async sendVerifyCode(type) { + try { + if (!type) + type = types_1.VerfyCodeTypes.TYPE_EMAIL; + const response = await this.request({ + method: "post", + endpoint: "v1/sms/send/verify_code", + data: { + message_type: type, + transaction: `${new Date().getTime()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + logging_1.rootHTTPLogger.info(`Requested verification code for 2FA`); + return true; + } + else { + logging_1.rootHTTPLogger.error("Send verify code - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Send verify code - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Send verify code - Generic Error", { error: (0, utils_2.getError)(error) }); + } + return false; + } + async listTrustDevice() { + if (this.connected) { + try { + const response = await this.request({ + method: "get", + endpoint: "v1/app/trust_device/list" + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data && result.data.list) { + return result.data.list; + } + } + else { + logging_1.rootHTTPLogger.error("List trust device - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("List trust device - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("List trust device - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return []; + } + async addTrustDevice(verifyCode) { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/trust_device/add", + data: { + verify_code: verifyCode, + transaction: `${new Date().getTime()}` + } + }); + logging_1.rootHTTPLogger.debug("Add trust device - Response trust device", { verifyCode: verifyCode, data: response.data }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + logging_1.rootHTTPLogger.info(`2FA authentication successfully done. Device trusted.`); + const trusted_devices = await this.listTrustDevice(); + trusted_devices.forEach((trusted_device) => { + if (trusted_device.is_current_device === 1) { + logging_1.rootHTTPLogger.debug("Add trust device - This device is trusted. Token expiration extended:", { trustDevice: { phoneModel: trusted_device.phone_model, openUdid: trusted_device.open_udid }, tokenExpiration: this.tokenExpiration }); + } + }); + return true; + } + else { + logging_1.rootHTTPLogger.error("Add trust device - Response code not ok", { code: result.code, msg: result.msg, verifyCode: verifyCode, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Add trust device - Status return code not 200", { status: response.status, statusText: response.statusText, verifyCode: verifyCode, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Add trust device - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return false; + } + async getStationList() { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v2/house/station_list", + data: { + device_sn: "", + num: 1000, + orderby: "", + page: 0, + station_sn: "", + time_zone: new Date().getTimezoneOffset() !== 0 ? -new Date().getTimezoneOffset() * 60 * 1000 : 0, + transaction: `${new Date().getTime()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + if (result.data) { + const stationList = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug("Decrypted station list data", stationList); + return stationList; + } + } + else { + logging_1.rootHTTPLogger.error("Station list - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Station list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Station list - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return []; + } + async getDeviceList() { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v2/house/device_list", + data: { + device_sn: "", + num: 1000, + orderby: "", + page: 0, + station_sn: "", + time_zone: new Date().getTimezoneOffset() !== 0 ? -new Date().getTimezoneOffset() * 60 * 1000 : 0, + transaction: `${new Date().getTime()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + if (result.data) { + const deviceList = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug("Decrypted device list data", deviceList); + return deviceList; + } + } + else { + logging_1.rootHTTPLogger.error("Device list - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Device list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Device list - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return []; + } + async refreshHouseData() { + //Get Houses + const houses = await this.getHouseList(); + if (houses && houses.length > 0) { + houses.forEach(element => { + this.houses[element.house_id] = element; + }); + } + else { + logging_1.rootHTTPLogger.info("No houses found."); + } + this.emit("houses", this.houses); + } + async refreshStationData() { + //Get Stations + const stations = await this.getStationList(); + if (stations && stations.length > 0) { + stations.forEach(element => { + this.hubs[element.station_sn] = element; + }); + } + else { + logging_1.rootHTTPLogger.info("No stations found."); + } + this.emit("hubs", this.hubs); + } + async refreshDeviceData() { + //Get Devices + const devices = await this.getDeviceList(); + if (devices && devices.length > 0) { + devices.forEach(element => { + this.devices[element.device_sn] = element; + }); + } + else { + logging_1.rootHTTPLogger.info("No devices found."); + } + this.emit("devices", this.devices); + } + async refreshAllData() { + //Get the latest info + //Get Houses + await this.refreshHouseData(); + //Get Stations + await this.refreshStationData(); + //Get Devices + await this.refreshDeviceData(); + } + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types + async request(request, withoutUrlPrefix = false) { + logging_1.rootHTTPLogger.debug("Api request", { method: request.method, endpoint: request.endpoint, responseType: request.responseType, token: this.token, data: request.data }); + try { + let options; + switch (request.responseType) { + case undefined: + case "json": + options = { + method: request.method, + json: request.data, + responseType: "json", + }; + break; + case "text": + options = { + method: request.method, + json: request.data, + responseType: request.responseType, + }; + break; + case "buffer": + options = { + method: request.method, + json: request.data, + responseType: request.responseType, + }; + break; + } + if (withoutUrlPrefix) + options.prefixUrl = ""; + const internalResponse = await this.requestEufyCloud(request.endpoint, options); + const response = { + status: internalResponse.statusCode, + statusText: internalResponse.statusMessage ? internalResponse.statusMessage : "", + headers: internalResponse.headers, + data: internalResponse.body, + }; + logging_1.rootHTTPLogger.debug("Api request - Response", { token: this.token, request: request, response: response.data }); + return response; + } + catch (err) { + const error = (0, error_1.ensureError)(err); + if (error instanceof (await import("got")).HTTPError) { + if (error.response.statusCode === 401) { + this.invalidateToken(); + logging_1.rootHTTPLogger.error("Status return code 401, invalidate token", { status: error.response.statusCode, statusText: error.response.statusMessage }); + this.emit("close"); + } + } + throw new error_2.ApiRequestError("API request error", { cause: error, context: { method: request.method, endpoint: request.endpoint, responseType: request.responseType, token: this.token, data: request.data } }); + } + } + async checkPushToken() { + //Check push notification token + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/review/app_push_check", + data: { + app_type: "eufySecurity", + transaction: `${new Date().getTime()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + logging_1.rootHTTPLogger.debug(`Check push token - Push token OK`); + return true; + } + else { + logging_1.rootHTTPLogger.error("Check push token - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Check push token - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Check push token - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return false; + } + async registerPushToken(token) { + //Register push notification token + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/apppush/register_push_token", + data: { + is_notification_enable: true, + token: token, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + logging_1.rootHTTPLogger.debug(`Register push token - Push token registered successfully`); + return true; + } + else { + logging_1.rootHTTPLogger.error("Register push token - Response code not ok", { code: result.code, msg: result.msg, data: response.data, token: token }); + } + } + else { + logging_1.rootHTTPLogger.error("Register push token - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, token: token }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Register push token - Generic Error", { error: (0, utils_2.getError)(error), token: token }); + } + } + return false; + } + async setParameters(stationSN, deviceSN, params) { + if (this.connected) { + const tmp_params = []; + params.forEach(param => { + tmp_params.push({ param_type: param.paramType, param_value: parameter_1.ParameterHelper.writeValue(param.paramType, param.paramValue) }); + }); + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/upload_devs_params", + data: { + device_sn: deviceSN, + station_sn: stationSN, + params: tmp_params, + transaction: `${new Date().getTime().toString()}` + } + }); + logging_1.rootHTTPLogger.debug("Set parameter - Response:", { stationSN: stationSN, deviceSN: deviceSN, params: tmp_params, response: response.data }); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + const dataresult = result.data; + logging_1.rootHTTPLogger.debug("Set parameter - New parameters set", { params: tmp_params, response: dataresult }); + return true; + } + else { + logging_1.rootHTTPLogger.error("Set parameter - Response code not ok", { code: result.code, msg: result.msg, data: response.data, stationSN: stationSN, deviceSN: deviceSN, params: params }); + } + } + else { + logging_1.rootHTTPLogger.error("Set parameter - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, stationSN: stationSN, deviceSN: deviceSN, params: params }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Set parameter - Generic Error", { error: (0, utils_2.getError)(error), stationSN: stationSN, deviceSN: deviceSN, params: params }); + } + } + return false; + } + async getCiphers(/*stationSN: string, */ cipherIDs, userID) { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v2/app/cipher/get_ciphers", + data: { + cipher_ids: cipherIDs, + user_id: userID, + //sn: stationSN + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const ciphers = {}; + const decrypted = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug("Get ciphers - Decrypted ciphers data", { ciphers: decrypted }); + if (Array.isArray(decrypted)) { + decrypted.forEach((cipher) => { + ciphers[cipher.cipher_id] = cipher; + }); + } + return ciphers; + } + } + else { + logging_1.rootHTTPLogger.error("Get ciphers - Response code not ok", { code: result.code, msg: result.msg, data: response.data, cipherIDs: cipherIDs, userID: userID }); + } + } + else { + logging_1.rootHTTPLogger.error("Get ciphers - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, cipherIDs: cipherIDs, userID: userID }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get ciphers - Generic Error", { error: (0, utils_2.getError)(error), cipherIDs: cipherIDs, userID: userID }); + } + } + return {}; + } + async getVoices(deviceSN) { + if (this.connected) { + try { + const response = await this.request({ + method: "get", + endpoint: `v1/voice/response/lists/${deviceSN}` + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const voices = {}; + result.data.forEach((voice) => { + voices[voice.voice_id] = voice; + }); + return voices; + } + } + else { + logging_1.rootHTTPLogger.error("Get Voices - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN }); + } + } + else { + logging_1.rootHTTPLogger.error("Get Voices - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get Voices - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN }); + } + } + return {}; + } + async getCipher(/*stationSN: string, */ cipherID, userID) { + return (await this.getCiphers(/*stationSN, */ [cipherID], userID))[cipherID]; + } + getDevices() { + return this.devices; + } + getHubs() { + return this.hubs; + } + getToken() { + return this.token; + } + getTokenExpiration() { + return this.tokenExpiration; + } + setToken(token) { + this.token = token; + this.requestEufyCloud.defaults.options.merge({ + headers: { + "X-Auth-Token": token + } + }); + } + setTokenExpiration(tokenExpiration) { + this.tokenExpiration = tokenExpiration; + } + getAPIBase() { + return typeof this.requestEufyCloud.defaults.options.prefixUrl === "string" ? this.requestEufyCloud.defaults.options.prefixUrl : this.requestEufyCloud.defaults.options.prefixUrl.toString(); + } + setOpenUDID(openudid) { + this.headers.openudid = openudid; + this.requestEufyCloud.defaults.options.merge({ + headers: this.headers + }); + } + setSerialNumber(serialnumber) { + this.headers.sn = serialnumber; + this.requestEufyCloud.defaults.options.merge({ + headers: this.headers + }); + } + async _getEvents(functionName, endpoint, startTime, endTime, filter, maxResults) { + const records = []; + if (this.connected) { + try { + if (filter === undefined) + filter = { deviceSN: "", stationSN: "", storageType: types_1.StorageType.NONE }; + if (maxResults === undefined) + maxResults = 1000; + const response = await this.request({ + method: "post", + endpoint: endpoint, + data: { + device_sn: filter.deviceSN !== undefined ? filter.deviceSN : "", + end_time: Math.trunc(endTime.getTime() / 1000), + exclude_guest: false, + house_id: "HOUSEID_ALL_DEVICE", + id: 0, + id_type: 1, + is_favorite: false, + num: maxResults, + pullup: true, + shared: true, + start_time: Math.trunc(startTime.getTime() / 1000), + station_sn: filter.stationSN !== undefined ? filter.stationSN : "", + storage: filter.storageType !== undefined ? filter.storageType : types_1.StorageType.NONE, + transaction: `${new Date().getTime().toString()}` + } + }); + logging_1.rootHTTPLogger.debug(`${functionName} - Response:`, response.data); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + if (result.data) { + const dataresult = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug(`${functionName} - Decrypted data:`, dataresult); + if (dataresult) { + dataresult.forEach(record => { + logging_1.rootHTTPLogger.debug(`${functionName} - Record:`, record); + records.push(record); + }); + } + } + else { + logging_1.rootHTTPLogger.error(`${functionName} - Response data is missing`, { code: result.code, msg: result.msg, data: response.data, endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); + } + } + else { + logging_1.rootHTTPLogger.error(`${functionName} - Response code not ok`, { code: result.code, msg: result.msg, data: response.data, endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); + } + } + else { + logging_1.rootHTTPLogger.error(`${functionName} - Status return code not 200`, { status: response.status, statusText: response.statusText, data: response.data, endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error(`${functionName} - Generic Error`, { error: (0, utils_2.getError)(error), endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); + } + } + return records; + } + async getVideoEvents(startTime, endTime, filter, maxResults) { + return this._getEvents("getVideoEvents", "v2/event/app/get_all_video_record", startTime, endTime, filter, maxResults); + } + async getAlarmEvents(startTime, endTime, filter, maxResults) { + return this._getEvents("getAlarmEvents", "v2/event/app/get_all_alarm_record", startTime, endTime, filter, maxResults); + } + async getHistoryEvents(startTime, endTime, filter, maxResults) { + return this._getEvents("getHistoryEvents", "v2/event/app/get_all_history_record", startTime, endTime, filter, maxResults); + } + async getAllVideoEvents(filter, maxResults) { + const fifteenYearsInMilliseconds = 15 * 365 * 24 * 60 * 60 * 1000; + return this.getVideoEvents(new Date(new Date().getTime() - fifteenYearsInMilliseconds), new Date(), filter, maxResults); + } + async getAllAlarmEvents(filter, maxResults) { + const fifteenYearsInMilliseconds = 15 * 365 * 24 * 60 * 60 * 1000; + return this.getAlarmEvents(new Date(new Date().getTime() - fifteenYearsInMilliseconds), new Date(), filter, maxResults); + } + async getAllHistoryEvents(filter, maxResults) { + const fifteenYearsInMilliseconds = 15 * 365 * 24 * 60 * 60 * 1000; + return this.getHistoryEvents(new Date(new Date().getTime() - fifteenYearsInMilliseconds), new Date(), filter, maxResults); + } + isConnected() { + return this.connected; + } + async getInvites() { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v2/family/get_invites", + data: { + num: 100, + orderby: "", + own: false, + page: 0, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const invites = {}; + const decrypted = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug("Get invites - Decrypted invites data", { invites: decrypted }); + if (Array.isArray(decrypted)) { + decrypted.forEach((invite) => { + invites[invite.invite_id] = invite; + let data = (0, utils_2.parseJSON)(invites[invite.invite_id].devices, logging_1.rootHTTPLogger); + if (data === undefined) + data = []; + invites[invite.invite_id].devices = data; + }); + } + return invites; + } + } + else { + logging_1.rootHTTPLogger.error("Get invites - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Get invites - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get invites - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return {}; + } + async confirmInvites(confirmInvites) { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/family/confirm_invite", + data: { + invites: confirmInvites, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + return true; + } + else { + logging_1.rootHTTPLogger.error("Confirm invites - Response code not ok", { code: result.code, msg: result.msg, data: response.data, confirmInvites: confirmInvites }); + } + } + else { + logging_1.rootHTTPLogger.error("Confirm invites - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, confirmInvites: confirmInvites }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Confirm invites - Generic Error", { error: (0, utils_2.getError)(error), confirmInvites: confirmInvites }); + } + } + return false; + } + async getPublicKey(deviceSN, type) { + if (this.connected) { + try { + if (this.persistentData.device_public_keys[deviceSN] !== undefined && type === types_1.PublicKeyType.LOCK) { + logging_1.rootHTTPLogger.debug("return cached public key", this.persistentData.device_public_keys[deviceSN]); + return this.persistentData.device_public_keys[deviceSN]; + } + else { + const response = await this.request({ + method: "get", + endpoint: `v1/app/public_key/query?device_sn=${deviceSN}&type=${type}` + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + if (type === types_1.PublicKeyType.LOCK) + this.persistentData.device_public_keys[deviceSN] = result.data.public_key; + return result.data.public_key; + } + } + else { + logging_1.rootHTTPLogger.error("Get public key - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, type: type }); + } + } + else { + logging_1.rootHTTPLogger.error("Get public key - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, type: type }); + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get public key - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, type: type }); + } + } + return ""; + } + decryptAPIData(data, json = true) { + if (data) { + let decryptedData; + try { + decryptedData = (0, utils_1.decryptAPIData)(data, this.ecdh.computeSecret(Buffer.from(this.persistentData.serverPublicKey, "hex"))); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Data decryption error, invalidating session data and reconnecting...", { error: (0, utils_2.getError)(error), serverPublicKey: this.persistentData.serverPublicKey }); + this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; + this.invalidateToken(); + this.emit("close"); + } + if (decryptedData) { + const str = (0, utils_3.getNullTerminatedString)(decryptedData, "utf-8"); + if (json) + return (0, utils_2.parseJSON)(str, logging_1.rootHTTPLogger); + return str; + } + if (json) + return {}; + } + return undefined; + } + async getSensorHistory(stationSN, deviceSN) { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/get_sensor_history", + data: { + devicse_sn: deviceSN, + max_time: 0, //TODO: Finish implementation + num: 500, //TODO: Finish implementation + page: 0, //TODO: Finish implementation + station_sn: stationSN, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const entries = result.data; + return entries; + } + } + else { + logging_1.rootHTTPLogger.error("Get sensor history - Response code not ok", { code: result.code, msg: result.msg, data: response.data, stationSN: stationSN, deviceSN: deviceSN }); + } + } + else { + logging_1.rootHTTPLogger.error("Get sensor history - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, stationSN: stationSN, deviceSN: deviceSN }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get sensor history - Generic Error", { error: (0, utils_2.getError)(error), stationSN: stationSN, deviceSN: deviceSN }); + } + } + return []; + } + async getHouseDetail(houseID) { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v2/house/detail", + data: { + house_id: houseID, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const houseDetail = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug("Get house detail - Decrypted house detail data", { details: houseDetail }); + return houseDetail; + } + } + else { + logging_1.rootHTTPLogger.error("Get house detail - Response code not ok", { code: result.code, msg: result.msg, data: response.data, houseID: houseID }); + } + } + else { + logging_1.rootHTTPLogger.error("Get house detail - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, houseID: houseID }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get house detail - Generic Error", { error: (0, utils_2.getError)(error), houseID: houseID }); + } + } + return null; + } + async getHouseList() { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/house/list", + data: { + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + logging_1.rootHTTPLogger.debug("Get house list - houses", { houses: result.data }); + return result.data; + } + } + else { + logging_1.rootHTTPLogger.error("Get house list - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Get house list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get house list - Generic Error", { error: (0, utils_2.getError)(error) }); + } + } + return []; + } + async getHouseInviteList(isInviter = 1) { + //TODO: Understand the other values of isInviter and document it + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/house/invite_list", + data: { + is_inviter: isInviter, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + //const houseInviteList = this.decryptAPIData(result.data) as Array; // No more encrypted!? + //rootHTTPLogger.debug("Get house invite list - Decrypted house invite list data", houseInviteList); + const houseInviteList = result.data; + logging_1.rootHTTPLogger.debug("Get house invite list - House invite list data", houseInviteList); + return houseInviteList; + } + } + else { + logging_1.rootHTTPLogger.error("Get house invite list - Response code not ok", { code: result.code, msg: result.msg, data: response.data, isInviter: isInviter }); + } + } + else { + logging_1.rootHTTPLogger.error("Get house invite list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, isInviter: isInviter }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get house invite list - Generic Error", { error: (0, utils_2.getError)(error), isInviter: isInviter }); + } + } + return []; + } + async confirmHouseInvite(houseID, inviteID) { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/house/confirm_invite", + data: { + house_id: houseID, + invite_id: inviteID, + is_inviter: 1, // 1 = true, 0 = false + //user_id: "", + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + return true; + } + else { + logging_1.rootHTTPLogger.error("Confirm house invite - Response code not ok", { code: result.code, msg: result.msg, data: response.data, houseID: houseID, inviteID: inviteID }); + } + } + else { + logging_1.rootHTTPLogger.error("Confirm house invite - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, houseID: houseID, inviteID: inviteID }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Confirm house invite - Generic Error", { error: (0, utils_2.getError)(error), houseID: houseID, inviteID: inviteID }); + } + } + return false; + } + getPersistentData() { + return this.persistentData; + } + async getPassportProfile() { + try { + const response = await this.request({ + method: "get", + endpoint: "v2/passport/profile" + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const profile = this.decryptAPIData(result.data); + logging_1.rootHTTPLogger.debug("Get passport profile - Decrypted passport profile data", { profile: profile }); + this.persistentData.user_id = profile.user_id; + this.persistentData.nick_name = profile.nick_name; + this.persistentData.email = profile.email; + return profile; + } + } + else { + logging_1.rootHTTPLogger.error("Get passport profile - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); + } + } + else { + logging_1.rootHTTPLogger.error("Get passport profile - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get passport profile - Generic Error", { error: (0, utils_2.getError)(error) }); + } + return null; + } + async addUser(deviceSN, nickname, stationSN = "") { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/device/local_user/add", + data: { + device_sn: deviceSN, + nick_name: nickname, + station_sn: stationSN === deviceSN ? "" : stationSN, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) + return result.data; + } + else { + logging_1.rootHTTPLogger.error("Add user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, nickname: nickname, stationSN: stationSN }); + } + } + else { + logging_1.rootHTTPLogger.error("Add user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, nickname: nickname, stationSN: stationSN }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Add user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, nickname: nickname, stationSN: stationSN }); + } + } + return null; + } + async deleteUser(deviceSN, shortUserId, stationSN = "") { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/device/user/delete", + data: { + device_sn: deviceSN, + short_user_ids: [shortUserId], + station_sn: stationSN === deviceSN ? "" : stationSN, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + return true; + } + else { + logging_1.rootHTTPLogger.error("Delete user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, stationSN: stationSN }); + } + } + else { + logging_1.rootHTTPLogger.error("Delete user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, stationSN: stationSN }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Delete user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, shortUserId: shortUserId, stationSN: stationSN }); + } + } + return false; + } + async getUsers(deviceSN, stationSN) { + try { + const response = await this.request({ + method: "get", + endpoint: `v1/app/device/user/list?device_sn=${deviceSN}&station_sn=${stationSN}` + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + if (result.data) { + const usersResponse = result.data; + return usersResponse.user_list; + } + } + else { + logging_1.rootHTTPLogger.error("Get users - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, stationSN: stationSN }); + } + } + else { + logging_1.rootHTTPLogger.error("Get users - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, stationSN: stationSN }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get users - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, stationSN: stationSN }); + } + return null; + } + async getUser(deviceSN, stationSN, shortUserId) { + try { + const users = await this.getUsers(deviceSN, stationSN); + if (users !== null) { + for (const user of users) { + if (user.short_user_id === shortUserId) { + return user; + } + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId }); + } + return null; + } + async updateUser(deviceSN, stationSN, shortUserId, nickname) { + if (this.connected) { + try { + const user = await this.getUser(deviceSN, stationSN, shortUserId); + if (user !== null) { + const response = await this.request({ + method: "post", + endpoint: "v1/app/device/local_user/update", + data: { + device_sn: deviceSN, + nick_name: nickname, + password_list: user.password_list, + short_user_id: shortUserId, + station_sn: stationSN === deviceSN ? "" : stationSN, + user_type: user.user_type, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + return true; + } + else { + logging_1.rootHTTPLogger.error("Update user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId, nickname: nickname }); + } + } + else { + logging_1.rootHTTPLogger.error("Update user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId, nickname: nickname }); + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Update user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId, nickname: nickname }); + } + } + return false; + } + async getImage(deviceSN, url) { + if (this.connected) { + try { + const device = this.devices[deviceSN]; + if (device) { + const station = this.hubs[device.station_sn]; + if (station) { + const response = await this.request({ + method: "GET", + endpoint: url, + responseType: "buffer" + }, true); + if (response.status == 200) { + return (0, utils_1.decodeImage)(station.p2p_did, response.data); + } + else { + logging_1.rootHTTPLogger.error("Get Image - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, url: url }); + } + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Get Image - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, url: url }); + } + } + return Buffer.alloc(0); + } + async updateUserPassword(deviceSN, shortUserId, passwordId, schedule, stationSN = "") { + if (this.connected) { + try { + const response = await this.request({ + method: "post", + endpoint: "v1/app/device/password/save_or_update", + data: { + device_sn: deviceSN, + password_list: [{ + password_id: passwordId, + password_type: types_1.UserPasswordType.PIN, + schedule: JSON.stringify({ + endDay: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", + endTime: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", + startDay: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", + startTime: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", + week: schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", + }) + }], + short_user_id: shortUserId, + station_sn: stationSN === deviceSN ? "" : stationSN, + transaction: `${new Date().getTime().toString()}` + } + }); + if (response.status == 200) { + const result = response.data; + if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { + return true; + } + else { + logging_1.rootHTTPLogger.error("Add user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, schedule: schedule, stationSN: stationSN }); + } + } + else { + logging_1.rootHTTPLogger.error("Add user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, schedule: schedule, stationSN: stationSN }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.error("Add user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, shortUserId: shortUserId, schedule: schedule, stationSN: stationSN }); + } + } + return false; + } +} +exports.HTTPApi = HTTPApi; +//# sourceMappingURL=api.js.map \ No newline at end of file diff --git a/build/http/api.js.map b/build/http/api.js.map new file mode 100644 index 00000000..569cd51b --- /dev/null +++ b/build/http/api.js.map @@ -0,0 +1 @@ +{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/http/api.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/cache.d.ts b/build/http/cache.d.ts new file mode 100644 index 00000000..d5c4cc6b --- /dev/null +++ b/build/http/cache.d.ts @@ -0,0 +1,8 @@ +export declare class Cache extends Map { + private ttl; + private schedules; + constructor(ttl?: number); + delete(key: any): boolean; + set(key: any, value: any, ttl?: number): this; + get(key: any): any; +} diff --git a/build/http/cache.js b/build/http/cache.js new file mode 100644 index 00000000..df02587f --- /dev/null +++ b/build/http/cache.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Cache = void 0; +class Cache extends Map { + ttl = 60000; + schedules = new Map(); + constructor(ttl) { + super(); + if (ttl !== undefined) + this.ttl = ttl; + } + delete(key) { + const result = super.delete(key); + clearTimeout(this.schedules.get(key)); + this.schedules.delete(key); + return result; + } + set(key, value, ttl = this.ttl) { + super.set(key, value); + if (this.schedules.has(key)) { + clearTimeout(this.schedules.get(key)); + } + const schedule = setTimeout(() => { + this.delete(key); + }, ttl); + this.schedules.set(key, schedule); + return this; + } + get(key) { + return super.get(key); + } +} +exports.Cache = Cache; +//# sourceMappingURL=cache.js.map \ No newline at end of file diff --git a/build/http/cache.js.map b/build/http/cache.js.map new file mode 100644 index 00000000..27f76e45 --- /dev/null +++ b/build/http/cache.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/http/cache.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAM,SAAQ,GAAG;IAElB,GAAG,GAAG,KAAK,CAAC;IACZ,SAAS,GAAI,IAAI,GAAG,EAAE,CAAC;IAE/B,YAAY,GAAY;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,GAAG,KAAK,SAAS;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,GAAQ;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,GAAG,CAAC,GAAQ,EAAE,KAAU,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG;QAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,GAAG,CAAC,GAAQ;QACf,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACJ;AAlCD,sBAkCC"} \ No newline at end of file diff --git a/build/http/const.d.ts b/build/http/const.d.ts new file mode 100644 index 00000000..e4947493 --- /dev/null +++ b/build/http/const.d.ts @@ -0,0 +1,3 @@ +import { EufyTimezone } from "./utils"; +export declare const PhoneModels: Array; +export declare const timeZoneData: Array; diff --git a/build/http/const.js b/build/http/const.js new file mode 100644 index 00000000..acdc1d94 --- /dev/null +++ b/build/http/const.js @@ -0,0 +1,8546 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.timeZoneData = exports.PhoneModels = void 0; +exports.PhoneModels = [ + "ARCHOS 101 CHILDPAD", + "1100", + "1105", + "1107", + "1201", + "1206", + "15", + "15 Lite", + "15 Plus", + "16", + "16 X", + "16s", + "16s Pro", + "16T", + "16th", + "16th Plus", + "2013023", + "21051182C", + "21051182G", + "21061110AG", + "21061119AG", + "21061119AL", + "21061119DG", + "2106118C", + "2107113SG", + "2107113SI", + "2107113SR", + "2107119DC", + "21081111RG", + "21091116AC", + "21091116AI", + "21091116C", + "21091116I", + "21091116UC", + "21091116UG", + "21091116UI", + "2109119BC", + "2109119DG", + "2109119DI", + "21121119SC", + "21121119SG", + "21121119VL", + "21121210C", + "2112123AC", + "22011119UY", + "2201116SC", + "2201116SG", + "2201116SI", + "2201116SR", + "2201116TG", + "2201117SG", + "2201117SI", + "2201117SL", + "2201117SY", + "2201117TG", + "2201117TI", + "2201117TL", + "2201117TY", + "22011211C", + "2201122C", + "2201122G", + "2201123C", + "2201123G", + "22021211RC", + "220233L2C", + "220233L2G", + "220233L2I", + "22031116BG", + "2203121C", + "2203129G", + "220333QAG", + "220333QBI", + "220333QL", + "220333QNY", + "22041211AC", + "22041216C", + "22041216I", + "22041216UC", + "22041219C", + "22041219G", + "22041219I", + "22041219NY", + "22061218C", + "2206122SC", + "2206123SC", + "2207117BPG", + "22071212AG", + "2207122MC", + "220733SFG", + "220733SG", + "220733SI", + "220733SL", + "220743FI", + "22081212C", + "22081212UG", + "22081281AC", + "22081283G", + "22087RA4DI", + "3000", + "3001", + "3005", + "3006", + "3007", + "3008", + "401SO", + "402SO", + "403SC", + "404SC", + "501LV", + "501SO", + "502SO", + "601LV", + "601SO", + "602LV", + "602SO", + "701LV", + "701SO", + "702LV", + "702SO", + "801LV", + "801SO", + "802SO", + "9.4'' FFF", + "901SO", + "902SO", + "A0001", + "A001OP", + "A001SO", + "A001XM", + "A002OP", + "A002SO", + "A1_07", + "A101LV", + "A101OP", + "A101SO", + "A102OP", + "A102SO", + "A103SO", + "A11", + "A11f", + "A11t", + "A11w", + "A1601", + "A1601fw", + "A1603", + "A201OP", + "A201SO", + "A202SO", + "A203SO", + "A204SO", + "A2107A-H", + "A30t", + "A31", + "A31c", + "A31t", + "A31u", + "A33", + "A33f", + "A33fw", + "A33t", + "A33w", + "A37f", + "A37fw", + "A50TI", + "A51", + "A51f", + "A51kc", + "A51w", + "A53f", + "A53fw", + "A53w", + "A66t", + "A68e", + "A7700", + "A80RG11", + "AC101XPro4G", + "AC2001", + "AC2003", + "AC45BHE", + "AC50BHE", + "AC50DHE", + "ACT101WF", + "ALBA 10 TABLET", + "Alba 10", + "ALBA 4", + "Alba 4 Android", + "Alba 4.0 Smartphone", + "ALBA 5", + "Alba 7", + "ALBA 7 TABLET", + "Alba 7", + "ALBA 8 TABLET", + "Alba 8", + "angelica", + "angelican", + "AQUOS 50S1", + "AQUOS 50U3A", + "AQUOS 58U1", + "AQUOS 60LX765A", + "AQUOS 60UE20A", + "AQUOS 65UR30A", + "AQUOS 70UD30A", + "AQUOS 70UG30A", + "AQUOS 70XU30A", + "archer", + "Archos 101 Cobalt", + "Archos 101 Copper", + "Archos 101 DB", + "Archos 101 Helium", + "Archos 101 Helium Lite", + "ARCHOS 101 Magnus", + "Archos 101 Neon", + "Archos 101 Oxygen", + "Archos 101 Oxygen 4G", + "Archos 101 Platinium 3G", + "ARCHOS 101 PLATINUM", + "Archos 101 Platinum 3G", + "ARCHOS 101 Titanium", + "Archos 101 Xenon", + "Archos 101 Xenon Lite", + "Archos 101 Xenon v2", + "ARCHOS 101 XS 2", + "Archos 101b Copper", + "Archos 101b Helium", + "Archos 101b Neon", + "Archos 101b Oxygen", + "Archos 101b Platinium", + "Archos 101b Xenon", + "Archos 101b Xenon v2", + "Archos 101b Xenon v3", + "ARCHOS 101b XS2", + "Archos 101c Copper", + "Archos 101c Helium", + "Archos 101c Neon", + "Archos 101c Platinum", + "Archos 101c Xenon", + "Archos 101d Neon", + "Archos 101d Platinum v2", + "Archos 101d Platinum v3", + "Archos 101e Neon", + "ARCHOS 101G10", + "ARCHOS 101G9", + "Archos 101XS3", + "Archos 116 Neon", + "Archos 121 Neon", + "Archos 133 Oxygen", + "Archos 156 Oxygen", + "Archos 35b Titanium", + "Archos 40 Helium", + "Archos 40 Neon", + "Archos 40 Power", + "Archos 40 Titanium", + "Archos 40b Titanium Surround", + "Archos 40c Titanium", + "ARCHOS 40C TIv2", + "ARCHOS 40d Titanium", + "Archos 45 Helium 4G", + "Archos 45 Neon", + "Archos 45 Platinum", + "Archos 45 Titanium", + "ARCHOS 45b Helium", + "Archos 45b Neon", + "Archos 45b Platinum", + "Archos 45c Helium", + "Archos 45c Platinum", + "Archos 45c Titanium", + "Archos 45d Platinum", + "Archos 50 Cobalt", + "Archos 50 Diamond", + "Archos 50 Helium 4G", + "Archos 50 Helium Plus", + "Archos 50 Neon", + "Archos 50 Oxygen", + "Archos 50 Oxygen Plus", + "Archos 50 Platinum", + "Archos 50 Platinum 4G", + "Archos 50 Power", + "Archos 50 Saphir", + "Archos 50 Titanium", + "Archos 50B Cobalt", + "Archos 50b Helium 4G", + "Archos 50b Neon", + "Archos 50b Oxygen", + "Archos 50b Platinum", + "Archos 50c Helium", + "ARCHOS 50c Neon", + "Archos 50c Oxygen", + "Archos 50c Platinum", + "Archos 50d Neon", + "Archos 50d Oxygen", + "Archos 50e Helium", + "Archos 50e Neon", + "Archos 50f Helium", + "Archos 50f Neon", + "Archos 52 Platinum", + "Archos 53 Platinum", + "Archos 53 Titanium", + "Archos 55 Cobalt Plus", + "Archos 55 Diamond 2 Plus", + "Archos 55 Diamond Plus", + "Archos 55 diamond Selfie", + "Archos 55 Helium", + "Archos 55 Helium Plus", + "Archos 55 Platinum", + "Archos 55B Cobalt", + "Archos 55B Platinum", + "Archos 59 Titanium", + "Archos 59 Xenon", + "Archos 60 Platinum", + "Archos 62 Xenon", + "Archos 64 Xenon", + "Archos 70 Carbon", + "ARCHOS 70 Cobalt", + "Archos 70 Copper", + "Archos 70 Helium", + "Archos 70 Neon", + "Archos 70 Neon Plus", + "Archos 70 Oxygen", + "Archos 70 Platinum", + "Archos 70 Platinum 3G", + "Archos 70 Platinum v2", + "Archos 70 Platinum v3", + "ARCHOS 70 Titanium", + "Archos 70 Xenon", + "Archos 70 Xenon Color", + "Archos 70b Cobalt", + "Archos 70b Copper", + "Archos 70b Helium", + "Archos 70b Neon", + "ARCHOS 70b TITANIUM", + "Archos 70b Xenon", + "Archos 70c Cobalt", + "Archos 70c Neon", + "Archos 70c Titanium", + "Archos 70c Xenon", + "Archos 70d Titanium", + "ARCHOS 70it2", + "ARCHOS 70it2G8", + "Archos 79 Cobalt", + "Archos 79 Neon", + "ARCHOS 79 Platinum", + "Archos 79 Xenon", + "Archos 79b Neon", + "Archos 79c Neon", + "ARCHOS 80 Carbon", + "ARCHOS 80 CHILDPAD", + "ARCHOS 80 COBALT", + "Archos 80 Helium 4G", + "Archos 80 Oxygen", + "ARCHOS 80 Platinum", + "Archos 80 Platinum v2", + "ARCHOS 80 TITANIUM", + "Archos 80 Xenon", + "Archos 80b Helium", + "Archos 80b Helium v2", + "ARCHOS 80b PLATINUM", + "Archos 80b Xenon", + "Archos 80c Platinum", + "Archos 80c Xenon", + "Archos 80d Xenon", + "ARCHOS 80G9", + "ARCHOS 80XSK", + "Archos 90 Copper", + "Archos 90 Neon", + "Archos 90b Copper", + "Archos 90b Neon", + "Archos 96 Xenon", + "ARCHOS 97 CARBON", + "Archos 97 Cobalt", + "ARCHOS 97 Platinum", + "ARCHOS 97 TITANIUMHD", + "ARCHOS 97 XENON", + "ARCHOS 97b PLATINUM", + "ARCHOS 97B TITANIUM", + "Archos 97c Platinum", + "Archos Access 101 3G", + "Archos Access 101 3G V2", + "Archos Access 101 3G v3", + "Archos Access 101 Wifi", + "Archos Access 101 Wifi v2", + "Archos Access 40 3G", + "Archos Access 40 4G", + "Archos Access 45 4G", + "Archos Access 50 3G", + "Archos Access 50 4G", + "Archos Access 50 Color 3G", + "Archos Access 50 Color 4G", + "Archos Access 50S 4G", + "Archos Access 55 3G", + "Archos Access 57 3G", + "Archos Access 57 4G", + "Archos Access 70 3G", + "Archos Access 70 Wifi", + "Archos Chefpad", + "Archos Core 101 3G", + "Archos Core 101 3G v5", + "Archos Core 101 4G", + "Archos Core 3g v4", + "Archos Core 50 4G", + "Archos Core 50P", + "Archos Core 55 4G", + "Archos Core 55P", + "Archos Core 55S", + "Archos Core 55S Ultra", + "Archos Core 57S", + "Archos Core 57S Ultra", + "Archos Core 60S", + "Archos Core 62S", + "Archos Core 70 3G", + "Archos Core 80 Wifi", + "Archos Diamond Plus", + "Archos Diamond S", + "ARCHOS FAMILYPAD 2", + "ARCHOS GAMEPAD", + "ARCHOS GAMEPAD2", + "Archos Hello 10", + "Archos Hello 5", + "Archos Hello 7", + "ARCHOS LUDOG10", + "Archos Oxygen 101S", + "Archos Oxygen 101S ARDOIZ", + "Archos Oxygen 57", + "Archos Oxygen 63", + "Archos Oxygen 68XL", + "Archos Phone", + "Archos Saphir 50X", + "Archos Sense 101 X", + "Archos Sense 47 X", + "Archos Sense 50 DC", + "Archos Sense 50X", + "Archos Sense 55 DC", + "Archos Sense 55 S", + "Archos Smart Home Tablet", + "Archos T 101 4G", + "Archos T 101X 4G", + "Archos T 80 W", + "Archos T101 HD", + "Archos T101 HD PLUS", + "Archos T101 HD WIFI", + "ARCHOS T96 3G", + "ARCHOS T96 3G_EEA", + "ARCHOS T96 WIFI_EEA", + "ARCHOS T96 WIFI_EEA_V2", + "atom", + "ATV R1", + "ATV R2", + "BBA100-1", + "BBA100-2", + "BBB100-1", + "BBB100-2", + "BBB100-3", + "BBB100-4", + "BBB100-5", + "BBB100-6", + "BBB100-7", + "BBC100-1", + "BBD100-1", + "BBD100-2", + "BBD100-6", + "BBE100-1", + "BBE100-2", + "BBE100-4", + "BBE100-5", + "BBF100-1", + "BBF100-2", + "BBF100-4", + "BBF100-6", + "BBF100-8", + "BBF100-9", + "BBG100-1", + "BBH100-1", + "BE2011", + "BE2012", + "BE2013", + "BE2015", + "BE2025", + "BE2026", + "BE2028", + "BE2029", + "begonia", + "Behold II", + "bomb", + "C00", + "C1504", + "C1505", + "C1604", + "C1605", + "C1904", + "C1905", + "C2004", + "C2005", + "C2104", + "C2105", + "C2304", + "C2305", + "C5302", + "C5303", + "C5306", + "C5502", + "C5503", + "C6502", + "C6503", + "C6506", + "C6602", + "C6603", + "C6606", + "C6616", + "C6802", + "C6806", + "C6833", + "C6843", + "C6902", + "C6903", + "C6906", + "C6916", + "C6943", + "Cable", + "cattail", + "Cmi", + "CPH1605", + "CPH1605fw", + "CPH1607", + "CPH1607fw", + "CPH1609", + "CPH1609fw", + "CPH1611", + "CPH1613", + "CPH1613fw", + "CPH1701", + "CPH1701fw", + "CPH1705", + "CPH1705fw", + "CPH1707", + "CPH1707fw", + "CPH1715", + "CPH1717", + "CPH1719", + "CPH1721", + "CPH1723", + "CPH1725", + "CPH1727", + "CPH1729", + "CPH1801", + "CPH1803", + "CPH1805", + "CPH1807", + "CPH1808", + "CPH1809", + "CPH1819", + "CPH1821", + "CPH1823", + "CPH1825", + "CPH1827", + "CPH1831", + "CPH1833", + "CPH1835", + "CPH1837", + "CPH1851", + "CPH1853", + "CPH1859", + "CPH1861", + "CPH1871", + "CPH1875", + "CPH1877", + "CPH1879", + "CPH1881", + "CPH1893", + "CPH1901", + "CPH1903", + "CPH1905", + "CPH1907", + "CPH1909", + "CPH1911", + "CPH1913", + "CPH1915", + "CPH1917", + "CPH1919", + "CPH1919RU", + "CPH1920", + "CPH1921", + "CPH1923", + "CPH1931", + "CPH1933", + "CPH1937", + "CPH1938", + "CPH1941", + "CPH1943", + "CPH1945", + "CPH1951", + "CPH1955", + "CPH1969", + "CPH1979", + "CPH1983", + "CPH1987", + "CPH1989", + "CPH2001", + "CPH2005", + "CPH2009", + "CPH2013", + "CPH2015", + "CPH2021", + "CPH2023", + "CPH2025", + "CPH2031", + "CPH2035", + "CPH2036", + "CPH2037", + "CPH2043", + "CPH2059", + "CPH2061", + "CPH2065", + "CPH2067", + "CPH2069", + "CPH2071", + "CPH2073", + "CPH2077", + "CPH2081", + "CPH2083", + "CPH2089", + "CPH2091", + "CPH2095", + "CPH2109", + "CPH2113", + "CPH2119", + "CPH2121", + "CPH2123", + "CPH2125", + "CPH2127", + "CPH2131", + "CPH2133", + "CPH2135", + "CPH2137", + "CPH2139", + "CPH2145", + "CPH2159", + "CPH2161", + "CPH2173", + "CPH2179", + "CPH2185", + "CPH21859", + "CPH2195", + "CPH2197", + "CPH2199", + "CPH2201", + "CPH2203", + "CPH2205", + "CPH2207", + "CPH2209", + "CPH2211", + "CPH2213", + "CPH2217", + "CPH2219", + "CPH2223", + "CPH2235", + "CPH2237", + "CPH2239", + "CPH2241", + "CPH2247", + "CPH2249", + "CPH2251", + "CPH2263", + "CPH2269", + "CPH2271", + "CPH2273", + "CPH2275", + "CPH2285", + "CPH2293", + "CPH2303", + "CPH2305", + "CPH2307", + "CPH2309", + "CPH2321", + "CPH2325", + "CPH2339", + "CPH2341", + "CPH2343", + "CPH2353", + "CPH2357", + "CPH2359", + "CPH2363", + "CPH2365", + "CPH2371", + "CPH2381", + "CPH2385", + "CPH2387", + "CPH2399", + "CPH2401", + "CPH2407", + "CPH2409", + "CPH2411", + "CPH2413", + "CPH2415", + "CPH2417", + "CPH2419", + "CPH2421", + "CPH2423", + "CPH2459", + "curtana", + "D00", + "D2004", + "D2005", + "D2104", + "D2105", + "D2114", + "D2202", + "D2203", + "D2206", + "D2212", + "D2243", + "D2302", + "D2303", + "D2305", + "D2306", + "D2403", + "D2406", + "D2502", + "D2533", + "d-42A", + "D5102", + "D5103", + "D5106", + "D5303", + "D5306", + "D5316", + "D5316N", + "D5322", + "D5503", + "D5788", + "D5803", + "D5833", + "D6502", + "D6503", + "D6543", + "D6563", + "D6603", + "D6616", + "D6633", + "D6643", + "D6646", + "D6653", + "D6683", + "D6708", + "dandelion", + "DE2117", + "DE2118", + "DN2101", + "DN2103", + "DVN2KA01", + "E2003", + "E2006", + "E2033", + "E2043", + "E2053", + "E2104", + "E2105", + "E2115", + "E2124", + "E2303", + "E2306", + "E2312", + "E2333", + "E2353", + "E2363", + "E5303", + "E5306", + "E5333", + "E5343", + "E5353", + "E5363", + "E5506", + "E5533", + "E5553", + "E5563", + "E5603", + "E5606", + "E5633", + "E5643", + "E5653", + "E5663", + "E5803", + "E5823", + "E6508", + "E6533", + "E6553", + "E6603", + "E6633", + "E6653", + "E6683", + "E6833", + "E6853", + "E6883", + "EB2101", + "EB2103", + "EK-GC100", + "EK-GC110", + "EK-GC120", + "EK-GC200", + "EK-GN100", + "EK-GN120", + "EK-GN120A", + "EK-KC100K", + "EK-KC100S", + "EK-KC120K", + "EK-KC120L", + "EK-KC120S", + "equuleus", + "EveryPad", + "EveryPad2", + "EveryPad3", + "F1f", + "F1fw", + "F1w", + "F3111", + "F3112", + "F3113", + "F3115", + "F3116", + "F3211", + "F3212", + "F3213", + "F3215", + "F3216", + "F3311", + "F3313", + "F5121", + "F5122", + "F5321", + "F8131", + "F8132", + "F8331", + "F8332", + "FP2", + "FP3", + "FP4", + "G1109", + "G1209", + "G2199", + "G2299", + "G3112", + "G3116", + "G3121", + "G3123", + "G3125", + "G3212", + "G3221", + "G3223", + "G3226", + "G3311", + "G3312", + "G3313", + "G3412", + "G3416", + "G3421", + "G3423", + "G3426", + "G8141", + "G8142", + "G8188", + "G8231", + "G8232", + "G8341", + "G8342", + "G8343", + "G8441", + "galahad", + "Galaxy Nexus", + "Galaxy X", + "Gear Live", + "GINKGO", + "GM1900", + "GM1901", + "GM1903", + "GM1905", + "GM1910", + "GM1911", + "GM1913", + "GM1915", + "GM1917", + "GM1920", + "GM1925", + "GN2200", + "gprimelteacg", + "Gravity", + "GravityQuad", + "GT-B5330", + "GT-B5330B", + "GT-B5330L", + "GT-B5510", + "GT-B5510B", + "GT-B5510L", + "GT-B5512", + "GT-B5512B", + "GT-B7510", + "GT-B7510B", + "GT-B7510L", + "GT-B7810", + "GT-B9062", + "GT-B9150", + "GT-B9388", + "GT-I5500", + "GT-I5503", + "GT-I5508", + "GT-I5510", + "GT-I5510M", + "GT-I5510T", + "GT-I5700", + "GT-I5700L", + "GT-I5700R", + "GT-I5800", + "GT-I5800D", + "GT-I5800L", + "GT-I5801", + "GT-I8150", + "GT-I8150B", + "GT-I8150T", + "GT-I8160", + "GT-I8160L", + "GT-I8160P", + "GT-I8190", + "GT-I8190L", + "GT-I8190N", + "GT-I8190T", + "GT-I8200", + "GT-I8200L", + "GT-I8200N", + "GT-I8200Q", + "GT-I8250", + "GT-I8258", + "GT-I8260", + "GT-I8260E", + "GT-I8260L", + "GT-I8262", + "GT-I8262B", + "GT-I8262D", + "GT-I8268", + "GT-I8530", + "GT-I8550E", + "GT-I8550L", + "GT-I8552", + "GT-I8552B", + "GT-I8558", + "GT-I8580", + "GT-I8730", + "GT-I8730T", + "GT-I9000", + "GT-I9000B", + "GT-I9000M", + "GT-I9000T", + "GT-I9001", + "GT-I9003", + "GT-I9003L", + "GT-I9008L", + "GT-I9010", + "GT-I9018", + "GT-I9050", + "GT-I9060", + "GT-I9060C", + "GT-I9060I", + "GT-I9060L", + "GT-I9060M", + "GT-I9063T", + "GT-I9070", + "GT-I9070P", + "GT-I9080E", + "GT-I9080L", + "GT-I9082", + "GT-I9082C", + "GT-I9082i", + "GT-I9082L", + "GT-I9100", + "GT-I9100G", + "GT-I9100M", + "GT-I9100P", + "GT-I9100T", + "GT-I9103", + "GT-I9105", + "GT-I9105P", + "GT-I9108", + "GT-I9118", + "GT-I9128", + "GT-I9128E", + "GT-I9128I", + "GT-I9128V", + "GT-I9150", + "GT-I9152", + "GT-I9152P", + "GT-I9158", + "GT-I9158P", + "GT-I9158V", + "GT-I9168", + "GT-I9168I", + "GT-I9190", + "GT-I9192", + "GT-I9192I", + "GT-I9195", + "GT-I9195I", + "GT-I9195L", + "GT-I9195T", + "GT-I9195X", + "GT-I9197", + "GT-I9200", + "GT-I9205", + "GT-I9208", + "GT-I9210", + "GT-I9210T", + "GT-I9220", + "GT-I9228", + "GT-I9230", + "GT-I9235", + "GT-I9260", + "GT-I9268", + "GT-I9295", + "GT-I9300", + "GT-I9300I", + "GT-I9300T", + "GT-I9301I", + "GT-I9301Q", + "GT-I9305", + "GT-I9305N", + "GT-I9305T", + "GT-I9308", + "GT-I9308I", + "GT-I9500", + "GT-I9502", + "GT-I9505", + "GT-I9505G", + "GT-I9505X", + "GT-I9506", + "GT-I9507", + "GT-I9507V", + "GT-I9508", + "GT-I9508C", + "GT-I9508V", + "GT-I9515", + "GT-I9515L", + "GT-N5100", + "GT-N5105", + "GT-N5110", + "GT-N5120", + "GT-N7000", + "GT-N7000B", + "GT-N7005", + "GT-N7100", + "GT-N7100T", + "GT-N7102", + "GT-N7102i", + "GT-N7105", + "GT-N7105T", + "GT-N7108", + "GT-N7108D", + "GT-N8000", + "GT-N8005", + "GT-N8010", + "GT-N8013", + "GT-N8020", + "GT-P1000", + "GT-P1000L", + "GT-P1000M", + "GT-P1000N", + "GT-P1000R", + "GT-P1000T", + "GT-P1010", + "GT-P1013", + "GT-P3100", + "GT-P3100B", + "GT-P3105", + "GT-P3108", + "GT-P3110", + "GT-P3113", + "GT-P5100", + "GT-P5110", + "GT-P5113", + "GT-P5200", + "GT-P5210", + "GT-P5210XD1", + "GT-P5220", + "GT-P6200", + "GT-P6200L", + "GT-P6201", + "GT-P6210", + "GT-P6211", + "GT-P6800", + "GT-P6810", + "GT-P7100", + "GT-P7300", + "GT-P7300B", + "GT-P7310", + "GT-P7320", + "GT-P7320T", + "GT-P7500", + "GT-P7500D", + "GT-P7500M", + "GT-P7500R", + "GT-P7500V", + "GT-P7501", + "GT-P7503", + "GT-P7510", + "GT-P7511", + "GT-S5280", + "GT-S5282", + "GT-S5283B", + "GT-S5300", + "GT-S5300B", + "GT-S5300L", + "GT-S5301", + "GT-S5301B", + "GT-S5301L", + "GT-S5302", + "GT-S5302B", + "GT-S5303", + "GT-S5303B", + "GT-S5310", + "GT-S5310B", + "GT-S5310C", + "GT-S5310E", + "GT-S5310G", + "GT-S5310I", + "GT-S5310L", + "GT-S5310M", + "GT-S5310N", + "GT-S5310T", + "GT-S5312", + "GT-S5312B", + "GT-S5312C", + "GT-S5312L", + "GT-S5312M", + "GT-S5360", + "GT-S5360B", + "GT-S5360L", + "GT-S5360T", + "GT-S5363", + "GT-S5367", + "GT-S5368", + "GT-S5369", + "GT-S5570", + "GT-S5570B", + "GT-S5570I", + "GT-S5570L", + "GT-S5578", + "GT-S5660", + "GT-S5660B", + "GT-S5660L", + "GT-S5660M", + "GT-S5660V", + "GT-S5670", + "GT-S5670B", + "GT-S5670L", + "GT-S5690", + "GT-S5690L", + "GT-S5690M", + "GT-S5690R", + "GT-S5698", + "GT-S5820", + "GT-S5830", + "GT-S5830B", + "GT-S5830C", + "GT-S5830D", + "GT-S5830F", + "GT-S5830G", + "GT-S5830i", + "GT-S5830L", + "GT-S5830M", + "GT-S5830T", + "GT-S5830V", + "GT-S5831i", + "GT-S5838", + "GT-S5839i", + "GT-S6010", + "GT-S6010L", + "GT-S6012", + "GT-S6012B", + "GT-S6102", + "GT-S6102B", + "GT-S6102E", + "GT-S6108", + "GT-S6293T", + "GT-S6310", + "GT-S6310B", + "GT-S6310L", + "GT-S6310N", + "GT-S6310T", + "GT-S6312", + "GT-S6313T", + "GT-S6352", + "GT-S6358", + "GT-S6500", + "GT-S6500D", + "GT-S6500L", + "GT-S6500T", + "GT-S6790", + "GT-S6790E", + "GT-S6790L", + "GT-S6790N", + "GT-S6792L", + "GT-S6800", + "GT-S6802", + "GT-S6802B", + "GT-S6810", + "GT-S6810B", + "GT-S6810E", + "GT-S6810L", + "GT-S6810M", + "GT-S6810P", + "GT-S6812", + "GT-S6812B", + "GT-S6812C", + "GT-S6812i", + "GT-S6818", + "GT-S6818V", + "GT-S7262", + "GT-S7270", + "GT-S7270L", + "GT-S7272", + "GT-S7272C", + "GT-S7273T", + "GT-S7275", + "GT-S7275B", + "GT-S7275R", + "GT-S7275T", + "GT-S7275Y", + "GT-S7278", + "GT-S7278U", + "GT-S7390", + "GT-S7390E", + "GT-S7390G", + "GT-S7390L", + "GT-S7392", + "GT-S7392L", + "GT-S7500", + "GT-S7500L", + "GT-S7500T", + "GT-S7500W", + "GT-S7508", + "GT-S7560", + "GT-S7560M", + "GT-S7562", + "GT-S7562C", + "GT-S7562i", + "GT-S7562L", + "GT-S7566", + "GT-S7568", + "GT-S7568I", + "GT-S7572", + "GT-S7580", + "GT-S7580E", + "GT-S7580L", + "GT-S7582", + "GT-S7582L", + "GT-S7583T", + "GT-S7710", + "GT-S7710L", + "GT-S7898", + "GT-S7898I", + "H3113", + "H3123", + "H3133", + "H3213", + "H3223", + "H3311", + "H3321", + "H3413", + "H4113", + "H4133", + "H4213", + "H4233", + "H4311", + "H4331", + "H4413", + "H4493", + "H8116", + "H8166", + "H8216", + "H8266", + "H8276", + "H8296", + "H8314", + "H8324", + "H8416", + "H9436", + "H9493", + "HD1900", + "HD1901", + "HD1903", + "HD1905", + "HD1907", + "HD1910", + "HD1911", + "HD1913", + "HD1925", + "Hope", + "I1927", + "I1928", + "I2009", + "I2011", + "I2012", + "I2017", + "I2018", + "I2019", + "I2022", + "I2126", + "I2127", + "I2201", + "I2202", + "I2203", + "I2206", + "I2208", + "I3113", + "I3123", + "I3213", + "I3223", + "I3312", + "I4113", + "I4193", + "I4213", + "I4293", + "I4312", + "I4332", + "IdeaPadA10", + "IdeaTab A2107A-F", + "IdeaTab A2107A-H", + "IdeaTab A3000-F", + "IdeaTab A3000-H", + "IdeaTab K2110A-F", + "IdeaTab S2007A-F", + "IdeaTab S2007A-H", + "IdeaTab S2010A-D", + "IdeaTab S2010A-F", + "IdeaTab S2010A-H", + "IdeaTab S6000-F", + "IdeaTab S6000-H", + "IdeaTabA1000-F", + "IdeaTabA1000-G", + "IdeaTabA1000L-F", + "IdeaTabA1010-T", + "IdeaTabA1020-T", + "IdeaTabA2109A", + "IdeaTabA2207A-H", + "IdeaTabA5000-E", + "IdeaTabS2109A-F", + "IdeaTabS2110AF", + "IdeaTabS2110AH", + "IdeaTabV2007A", + "IdeaTabV2010A", + "IdeaTabV2010A-W", + "ideatv K72", + "ideatv K82", + "ideatv K91", + "ideatv S31", + "ideatv S52", + "ideatv S61", + "ido", + "IN2010", + "IN2011", + "IN2013", + "IN2015", + "IN2017", + "IN2019", + "IN2020", + "IN2021", + "IN2023", + "IN2025", + "Intel Braswell Chromebook", + "ISW11SC", + "IV2201", + "J3173", + "J3273", + "J8110", + "J8170", + "J8210", + "J8270", + "J9110", + "J9150", + "J9180", + "J9210", + "J9260", + "K1", + "K350t", + "KB2000", + "KB2001", + "KB2003", + "KB2005", + "KB2007", + "KODAK Tablet 10", + "KODAK Tablet 7", + "KUNO 4+", + "KUNO4", + "L10041", + "L18011", + "L35h", + "L36h", + "L39h", + "L39t", + "L39u", + "laurus", + "Lava A51", + "LE2100", + "LE2101", + "LE2110", + "LE2111", + "LE2113", + "LE2115", + "LE2117", + "LE2120", + "LE2121", + "LE2123", + "LE2125", + "LE2127", + "Lenovo 2 A7-30HC", + "Lenovo 2 A7-30TC", + "Lenovo 2 A8-50F", + "Lenovo 2 A8-50LC", + "Lenovo A1000", + "Lenovo A1000m", + "Lenovo A1010a20", + "Lenovo A1-32AB0", + "Lenovo A1900", + "Lenovo A2010-a", + "Lenovo A2010l36", + "Lenovo A2016a40", + "Lenovo A2016b30", + "Lenovo A2016b31", + "Lenovo A2020a40", + "Lenovo A208t", + "Lenovo A218t", + "Lenovo A228t", + "Lenovo A238t", + "Lenovo A2580", + "Lenovo A269", + "Lenovo A269i", + "Lenovo A278t", + "Lenovo A2800-d", + "Lenovo A2860", + "Lenovo A288t", + "Lenovo A298t", + "Lenovo A300", + "Lenovo A3000-H", + "Lenovo A300t", + "Lenovo A305e", + "Lenovo A308t", + "Lenovo A316", + "Lenovo A316i", + "Lenovo A318t", + "Lenovo A319", + "Lenovo A320t", + "Lenovo A326", + "Lenovo A328", + "Lenovo A328t", + "Lenovo A3300-HV", + "Lenovo A3300-T", + "Lenovo A330e", + "Lenovo A338t", + "Lenovo A3500", + "Lenovo A3500-F", + "Lenovo A3500-FL", + "Lenovo A3500-H", + "Lenovo A3500-HV", + "Lenovo A355e", + "Lenovo A3580", + "Lenovo A358t", + "Lenovo A360", + "Lenovo A3600-d", + "Lenovo A3600u", + "Lenovo A360e", + "Lenovo A360t", + "Lenovo A366t", + "Lenovo A368t", + "Lenovo A369", + "Lenovo A369i", + "Lenovo A370", + "Lenovo A376", + "Lenovo A378t", + "Lenovo A3800-d", + "Lenovo A380t", + "Lenovo A3860", + "Lenovo A388t", + "Lenovo A390", + "Lenovo A390_ROW", + "Lenovo A3900", + "Lenovo A390e", + "Lenovo A390t", + "Lenovo A3910t30", + "Lenovo A396", + "Lenovo A396_TY", + "Lenovo A398t", + "Lenovo A398t+", + "Lenovo A399", + "Lenovo A500", + "Lenovo A500+", + "Lenovo A5000", + "Lenovo A5100", + "Lenovo A516", + "Lenovo A520", + "Lenovo A520GRAY", + "Lenovo A526", + "Lenovo A529", + "Lenovo A530", + "Lenovo A536", + "Lenovo A5500", + "Lenovo A5500-F", + "Lenovo A5500-H", + "Lenovo A5500-HV", + "Lenovo A560", + "Lenovo A580", + "Lenovo A5800-D", + "Lenovo A60", + "Lenovo A60+", + "Lenovo A6000", + "Lenovo A6000-l", + "Lenovo A6010", + "Lenovo A6020a40", + "Lenovo A6020a41", + "Lenovo A6020a46", + "Lenovo A6020l36", + "Lenovo A6020l37", + "Lenovo A606", + "Lenovo A616", + "Lenovo A628t", + "Lenovo A630", + "Lenovo A65", + "Lenovo A656", + "Lenovo A658t", + "Lenovo A660", + "Lenovo A6600a40", + "Lenovo A6600d40", + "Lenovo A668t", + "Lenovo A670t", + "Lenovo A678t", + "Lenovo A680", + "Lenovo A680_ROW", + "Lenovo A6800", + "Lenovo A688t", + "Lenovo A68e", + "Lenovo A690", + "Lenovo A698t", + "Lenovo A7000-a", + "Lenovo A700e", + "Lenovo A7010a48", + "Lenovo A7020a40", + "Lenovo A7020a48", + "Lenovo A706", + "Lenovo A706_ROW", + "Lenovo A708t", + "Lenovo A710e", + "Lenovo A720e", + "Lenovo A750", + "Lenovo A750e", + "Lenovo A760", + "Lenovo A7600", + "Lenovo A7600-F", + "Lenovo A7600-H", + "Lenovo A7600-HV", + "Lenovo A7600-m", + "Lenovo A7-60HC", + "Lenovo A765e", + "Lenovo A766", + "Lenovo A768t", + "Lenovo A7700", + "Lenovo A770e", + "Lenovo A780", + "Lenovo A788t", + "Lenovo A789", + "Lenovo A798t", + "Lenovo A800", + "Lenovo A805e", + "Lenovo A806", + "Lenovo A808t", + "Lenovo A808t-i", + "Lenovo A816", + "Lenovo A820", + "Lenovo A820e", + "Lenovo A820t", + "Lenovo A828t", + "Lenovo A830", + "Lenovo A850", + "Lenovo A850+", + "Lenovo A858", + "Lenovo A858t", + "Lenovo A859", + "Lenovo A860e", + "Lenovo A880", + "Lenovo A889", + "Lenovo A890e", + "Lenovo A916", + "Lenovo A936", + "Lenovo A938t", + "Lenovo B6000-F", + "Lenovo B6000-H", + "Lenovo B6000-HV", + "Lenovo B8000-F", + "Lenovo B8000-H", + "Lenovo B8080-F", + "Lenovo B8080-H", + "Lenovo B8080-HV", + "Lenovo Intel Braswell Chromebook", + "Lenovo K", + "Lenovo K10a40", + "Lenovo K10e70", + "Lenovo K12 Note", + "Lenovo K13 Note", + "Lenovo K13 Pro", + "Lenovo K2", + "Lenovo K30-E", + "Lenovo K30-T", + "Lenovo K30-TM", + "Lenovo K30-W", + "Lenovo K320t", + "Lenovo K32c30", + "Lenovo K32c36", + "Lenovo K33a42", + "Lenovo K33a48", + "Lenovo K33b36", + "Lenovo K33b37", + "Lenovo K50a40", + "Lenovo K50-t3s", + "Lenovo K50-T5", + "Lenovo K51c78", + "Lenovo K520", + "Lenovo K52e78", + "Lenovo K52t38", + "Lenovo K52t58", + "Lenovo K53a48", + "Lenovo K53b36", + "Lenovo K53b37", + "Lenovo K8", + "Lenovo K8 Note", + "Lenovo K8 Plus", + "Lenovo K800", + "Lenovo K80M", + "Lenovo K860", + "Lenovo K860i", + "Lenovo K900", + "Lenovo K900_ROW", + "Lenovo K910", + "Lenovo K910e", + "Lenovo K910L", + "Lenovo K920", + "Lenovo L10041", + "Lenovo L18021", + "Lenovo L18081", + "Lenovo L19041", + "Lenovo L19111", + "Lenovo L38011", + "Lenovo L38012", + "Lenovo L38021", + "Lenovo L38031", + "Lenovo L38041", + "Lenovo L38043", + "Lenovo L38082", + "Lenovo L38083", + "Lenovo L38111", + "Lenovo L58041", + "Lenovo L70081", + "Lenovo L71091", + "Lenovo L78011", + "Lenovo L78031", + "Lenovo L78032", + "Lenovo L78051", + "Lenovo L78071", + "Lenovo L78121", + "Lenovo L79031", + "Lenovo L79041", + "Lenovo N300", + "Lenovo N308", + "Lenovo P1a41", + "Lenovo P1a42", + "Lenovo P1c58", + "Lenovo P1c72", + "Lenovo P2a42", + "Lenovo P2c72", + "Lenovo P70", + "Lenovo P700", + "Lenovo P700i", + "Lenovo P70-A", + "Lenovo P70-t", + "Lenovo P770", + "Lenovo P780", + "Lenovo P780_ROW", + "Lenovo P90", + "Lenovo PB1-750M", + "Lenovo PB1-770M", + "Lenovo PB1-770N", + "Lenovo PB1-770P", + "Lenovo PB2-650M", + "Lenovo PB2-650N", + "Lenovo PB2-650Y", + "Lenovo PB2-670M", + "Lenovo PB2-670M1", + "Lenovo PB2-670N", + "Lenovo PB2-670Y", + "Lenovo PB2-690M", + "Lenovo PB2-690N", + "Lenovo PB2-690Y", + "Lenovo PB-6505M", + "Lenovo PB-6505MC", + "Lenovo PB-6505NC", + "Lenovo PB-6505Y", + "Lenovo S1a40", + "Lenovo S1La40", + "Lenovo S2-38AH0", + "Lenovo S2-38AT0", + "Lenovo S5000-F", + "Lenovo S5000-H", + "Lenovo S560", + "Lenovo S580", + "Lenovo S6000L-F", + "Lenovo S60-a", + "Lenovo S60-t", + "Lenovo S60-w", + "Lenovo S650", + "Lenovo S658t", + "Lenovo S660", + "Lenovo S668t", + "Lenovo S680", + "Lenovo S686", + "Lenovo S696", + "Lenovo S720", + "Lenovo S750", + "Lenovo S760", + "Lenovo S810t", + "Lenovo S820", + "Lenovo S820_ROW", + "Lenovo S820e", + "Lenovo S850", + "Lenovo S850e", + "Lenovo S8-50LC", + "Lenovo S850t", + "Lenovo S856", + "Lenovo S858t", + "Lenovo S860", + "Lenovo S860e", + "Lenovo S868t", + "Lenovo S870e", + "Lenovo S880", + "Lenovo S880i", + "Lenovo S890", + "Lenovo S898t", + "Lenovo S898t+", + "Lenovo S899t", + "Lenovo S90-A", + "Lenovo S90-e", + "Lenovo S90-L", + "Lenovo S90-t", + "Lenovo S90-u", + "Lenovo S920", + "Lenovo S920_ROW", + "Lenovo S930", + "Lenovo S938t", + "Lenovo S939", + "Lenovo S960", + "Lenovo S968t", + "Lenovo TAB 2 A10-70F", + "Lenovo TAB 2 A10-70L", + "Lenovo TAB 2 A10-70LC", + "Lenovo TAB 2 A7-30D", + "Lenovo TAB 2 A7-30DC", + "Lenovo TAB 2 A7-30F", + "Lenovo TAB 2 A7-30GC", + "Lenovo TAB 2 A7-30H", + "Lenovo TAB 2 A7-30HC", + "Lenovo TAB 2 A8-50F", + "Lenovo TAB 2 A8-50L", + "Lenovo TAB 2 A8-50LC", + "Lenovo TAB S8-50F", + "Lenovo TAB S8-50L", + "Lenovo TAB S8-50LC", + "Lenovo TB125FU", + "Lenovo TB128FU", + "Lenovo TB128XU", + "Lenovo TB223FC", + "Lenovo TB226XC", + "Lenovo TB2-X30F", + "Lenovo TB2-X30F_HFT", + "Lenovo TB2-X30F_JLC", + "Lenovo TB2-X30F_SCP", + "Lenovo TB2-X30F_UK", + "Lenovo TB2-X30F_YZA", + "Lenovo TB2-X30L", + "Lenovo TB2-X30M", + "Lenovo TB2-X30M_PRC_YZ_A", + "Lenovo TB3-710F", + "Lenovo TB3-710I", + "Lenovo TB3-730F", + "Lenovo TB3-730M", + "Lenovo TB3-730X", + "Lenovo TB3-850F", + "Lenovo TB3-850M", + "Lenovo TB3-X70F", + "Lenovo TB3-X70I", + "Lenovo TB3-X70L", + "Lenovo TB3-X70N", + "Lenovo TB-7104F", + "Lenovo TB-7104I", + "Lenovo TB-7304F", + "Lenovo TB-7304I", + "Lenovo TB-7304N", + "Lenovo TB-7304X", + "Lenovo TB-7305F", + "Lenovo TB-7305I", + "Lenovo TB-7305X", + "Lenovo TB-7306F", + "Lenovo TB-7306V", + "Lenovo TB-7306X", + "Lenovo TB-7504F", + "Lenovo TB-7504N", + "Lenovo TB-7504X", + "Lenovo TB-7703F", + "Lenovo TB-7703N", + "Lenovo TB-7703X", + "Lenovo TB-8304F", + "Lenovo TB-8304F1", + "Lenovo TB-8504F", + "Lenovo TB-8504L", + "Lenovo TB-8504N", + "Lenovo TB-8504X", + "Lenovo TB-8505F", + "Lenovo TB-8505FS", + "Lenovo TB-8505N", + "Lenovo TB-8505X", + "Lenovo TB-8505XC", + "Lenovo TB-8505XS", + "Lenovo TB-8506F", + "Lenovo TB-8506FS", + "Lenovo TB-8506X", + "Lenovo TB-8506XS", + "Lenovo TB-8604F", + "Lenovo TB-8703F", + "Lenovo TB-8703N", + "Lenovo TB-8703R", + "Lenovo TB-8703X", + "Lenovo TB-8704F", + "Lenovo TB-8704N", + "Lenovo TB-8704X", + "Lenovo TB-8705F", + "Lenovo TB-8705N", + "Lenovo TB-8705X", + "Lenovo TB-8803F", + "Lenovo TB-8804F", + "Lenovo TB-8X04F", + "Lenovo TB-J606F", + "Lenovo TB-J606L", + "Lenovo TB-J606N", + "Lenovo TB-J607F", + "Lenovo TB-J607Z", + "Lenovo TB-J616F", + "Lenovo TB-J616N", + "Lenovo TB-J616X", + "Lenovo TB-J6C6F", + "Lenovo TB-J6C6N", + "Lenovo TB-J706F", + "Lenovo TB-J706L", + "Lenovo TB-J706N", + "Lenovo TB-J716F", + "Lenovo TB-Q706F", + "Lenovo TB-Q706Z", + "Lenovo TB-X103F", + "Lenovo TB-X104F", + "Lenovo TB-X104F1", + "Lenovo TB-X104L", + "Lenovo TB-X104N", + "Lenovo TB-X104X", + "Lenovo TB-X304F", + "Lenovo TB-X304L", + "Lenovo TB-X304N", + "Lenovo TB-X304X", + "Lenovo TB-X306F", + "Lenovo TB-X306FA", + "Lenovo TB-X306FC_PRC", + "Lenovo TB-X306NC_PRC", + "Lenovo TB-X306V", + "Lenovo TB-X306X", + "Lenovo TB-X306XA", + "Lenovo TB-X504F", + "Lenovo TB-X505F", + "Lenovo TB-X505L", + "Lenovo TB-X505N", + "Lenovo TB-X505X", + "Lenovo TB-X605F", + "Lenovo TB-X605FC", + "Lenovo TB-X605L", + "Lenovo TB-X605LC", + "Lenovo TB-X605M", + "Lenovo TB-X606F", + "Lenovo TB-X606FA", + "Lenovo TB-X606M", + "Lenovo TB-X606V", + "Lenovo TB-X606X", + "Lenovo TB-X606XA", + "Lenovo TB-X607Z", + "Lenovo TB-X616F", + "Lenovo TB-X616M", + "Lenovo TB-X6C6F", + "Lenovo TB-X6C6L", + "Lenovo TB-X6C6NBF", + "Lenovo TB-X6C6NBL", + "Lenovo TB-X6C6NBX", + "Lenovo TB-X6C6X", + "Lenovo TB-X6E6F", + "Lenovo TB-X6E6FC", + "Lenovo TB-X6E6N", + "Lenovo TB-X704F", + "Lenovo TB-X704L", + "Lenovo TB-X704N", + "Lenovo TB-X704Y", + "Lenovo TB-X705F", + "Lenovo TB-X705L", + "Lenovo TB-X705M", + "Lenovo TB-X804F", + "Lenovo ThinkPad 11e 3rd Gen Chromebook", + "Lenovo ThinkPad 11e 4th Gen Chromebook", + "Lenovo Thinkpad 11e Chromebook (4th Gen)/Lenovo Thinkpad Yoga 11e Chromebook (4th Gen)", + "Lenovo ThinkPad 13", + "Lenovo X2-AP", + "Lenovo X2-CU", + "Lenovo X2-EU", + "Lenovo X2Pt5", + "Lenovo X2-TO", + "Lenovo X2-TR", + "Lenovo X3a40", + "Lenovo X3c50", + "Lenovo X3c70", + "Lenovo YB1-X90F", + "Lenovo YB1-X90L", + "Lenovo YB-Q501F", + "Lenovo YB-Q501L", + "Lenovo YT3-850F", + "Lenovo YT3-850L", + "Lenovo YT3-850M", + "Lenovo YT3-X50F", + "Lenovo YT3-X50L", + "Lenovo YT3-X50M", + "Lenovo YT3-X90F", + "Lenovo YT3-X90L", + "Lenovo YT3-X90X", + "Lenovo YT3-X90Y", + "Lenovo YT3-X90Z", + "Lenovo YT-J706F", + "Lenovo YT-J706X", + "Lenovo YT-K606F", + "Lenovo YT-X703F", + "Lenovo YT-X703L", + "Lenovo YT-X703X", + "Lenovo YT-X705F", + "Lenovo YT-X705L", + "Lenovo YT-X705M", + "Lenovo YT-X705X", + "Lenovo Z2", + "Lenovo Z2w", + "Lenovo Z90", + "Lenovo Z90-3", + "Lenovo Z90-7", + "Lenovo Z90a40", + "Lenovo_A2105", + "LenovoA1000L-F", + "LenovoA3300-GV", + "LenovoA3300-H", + "LenovoA3300-HV", + "LenovoA588t", + "LenovoTV 32A3", + "LenovoTV 40S9", + "LenovoTV 49E82", + "LenovoTV 50S52", + "LenovoTV 55E82", + "LenovoTV 58S9", + "LIFETAB_E10310", + "LIFETAB_E7310", + "LIFETAB_E7312", + "LIFETAB_S9512", + "lithium", + "Lmi", + "LNV-Lenovo A305e", + "LNV-Lenovo A370e", + "LNV-Lenovo A375e", + "LNV-Lenovo A380e", + "LNV-Lenovo A385e", + "LNV-Lenovo A395e", + "LNV-Lenovo A505e", + "LNV-Lenovo A560", + "LNV-Lenovo A600e", + "LNV-Lenovo A630e", + "LNV-Lenovo A690e", + "LNV-Lenovo A780e", + "LNV-Lenovo A785e", + "LNV-Lenovo A790e", + "LNV-Lenovo K910e", + "LNV-Lenovo S870e", + "LNV-Lenovo_A560e", + "Logic Fieldbook G1", + "Logic Instrument Fieldbook F1B", + "lotus", + "LT18i", + "LT22i", + "LT25i", + "LT26i", + "LT26ii", + "LT26w", + "LT28h", + "LT28i", + "LT29i", + "LT30a", + "LT30p", + "M123", + "M15", + "M1813", + "M1816", + "M1822", + "M1852", + "M1908C3JGG", + "M2002J9E", + "M2002J9G", + "M2002J9S", + "M2003J15SC", + "M2003J15SG", + "M2003J15SI", + "M2003J15SS", + "M2004J19C", + "M2004J19G", + "M2004J19I", + "M2004J7AC", + "M2004J7BC", + "M2006C3LC", + "M2006C3LG", + "M2006C3LI", + "M2006C3LVG", + "M2006C3MG", + "M2006C3MII", + "M2006C3MNG", + "M2006J10C", + "M2007J17C", + "M2007J17G", + "M2007J17I", + "M2007J1SC", + "M2007J22C", + "M2007J22G", + "M2007J3SC", + "M2007J3SG", + "M2007J3SI", + "M2007J3SP", + "M2007J3SY", + "M2010J19SC", + "M2010J19SG", + "M2010J19SI", + "M2010J19SL", + "M2010J19SY", + "M2011J18C", + "M2011K2C", + "M2011K2G", + "M2012K10C", + "M2012K11AC", + "M2012K11AI", + "M2012K11C", + "M2012K11G", + "M2012K11I", + "M2101K6G", + "M2101K6I", + "M2101K6P", + "M2101K7AG", + "M2101K7AI", + "M2101K7BG", + "M2101K7BI", + "M2101K7BL", + "M2101K7BNY", + "M2101K9AG", + "M2101K9AI", + "M2101K9C", + "M2101K9G", + "M2102J2SC", + "M2102K1AC", + "M2102K1C", + "M2102K1G", + "M2103K19C", + "M2103K19G", + "M2103K19I", + "M2103K19Y", + "M2104K10AC", + "M2105K81AC", + "M2105K81C", + "M35h", + "M35t", + "M51w", + "M6", + "M6 Note", + "M6T", + "M712C", + "MD_LIFETAB_P9516", + "MEDION E4002", + "meizu 16Xs", + "meizu 17", + "meizu 17 Pro", + "MEIZU 18", + "MEIZU 18 Pro", + "MEIZU 18s", + "MEIZU 18s Pro", + "MEIZU 18X", + "Meizu 6T", + "meizu C9", + "meizu C9 pro", + "MEIZU E3", + "meizu M10", + "MEIZU M6", + "Meizu M6s", + "meizu M8", + "meizu M8 lite", + "Meizu M8c", + "Meizu mblu S6", + "meizu note8", + "meizu note9", + "Meizu S6", + "meizu X8", + "Meri", + "Mi 10", + "Mi 10 Pro", + "MI 2", + "MI 2A", + "MI 2S", + "MI 3", + "MI 3W", + "MI 4C", + "Mi 4i", + "MI 4LTE", + "MI 4S", + "MI 4W", + "MI 5", + "MI 5C", + "MI 5s", + "MI 5s Plus", + "MI 5X", + "MI 6", + "MI 6X", + "MI 8", + "MI 8 Explorer Edition", + "MI 8 Lite", + "MI 8 Pro", + "MI 8 SE", + "MI 8 UD", + "MI 9", + "Mi 9 Lite", + "MI 9 SE", + "Mi 9T", + "Mi 9T Pro", + "MI A1", + "Mi A2", + "Mi A2 Lite", + "Mi A3", + "MI CC 9", + "MI CC 9e", + "MI CC9 Pro", + "MI MAX", + "MI MAX 2", + "MI MAX 3", + "Mi MIX 2", + "Mi MIX 2S", + "Mi MIX 3", + "Mi MIX 3 5G", + "Mi Note 10", + "Mi Note 10 Lite", + "Mi Note 2", + "Mi Note 3", + "MI NOTE LTE", + "MI NOTE Pro", + "MI PAD", + "MI PAD 2", + "MI PAD 3", + "MI PAD 4", + "MI PLAY", + "Mi-4c", + "Mi9 Pro 5G", + "MiBOX_PRO", + "MIBOX3", + "MiProjA1", + "MiProjL1", + "MiProjM05", + "MiTV3S", + "MiTV4", + "MiTV-AESP0", + "MiTV-AXFR0", + "MIX", + "MIX 2", + "MIX 2S", + "MIX 3", + "MT2110", + "MT2111", + "MT25i", + "MT27i", + "N1", + "N1374DL", + "N150DL", + "N151DL", + "N152DL", + "N1T", + "N1W", + "N5110", + "N5111", + "N5116", + "N5117", + "N5206", + "N5207", + "N5209", + "NE2210", + "NE2211", + "NE2213", + "NE2215", + "NE2217", + "Nebula", + "NEC PC-TS508FAM", + "Nexus 10", + "Nexus S", + "Nexus S 4G", + "Nokia 1", + "Nokia 1 Plus", + "Nokia 1.3", + "Nokia 1.4", + "Nokia 2", + "Nokia 2 V", + "Nokia 2 V Tella", + "Nokia 2.1", + "Nokia 2.2", + "Nokia 2.3", + "Nokia 2.4", + "Nokia 3 V", + "Nokia 3.1", + "Nokia 3.1 A", + "Nokia 3.1 C", + "Nokia 3.1 Plus", + "Nokia 3.2", + "Nokia 3.4", + "Nokia 4.2", + "Nokia 5.1", + "Nokia 5.1 Plus", + "Nokia 5.3", + "Nokia 5.4", + "Nokia 6.1", + "Nokia 6.1 Plus", + "Nokia 6.2", + "Nokia 7 plus", + "Nokia 7.1", + "Nokia 7.2", + "Nokia 8 Sirocco", + "Nokia 8 V 5G UW", + "Nokia 8.1", + "Nokia 8.3 5G", + "Nokia 9", + "Nokia C01 Plus", + "Nokia C1", + "Nokia C1 2nd Edition", + "Nokia C1 Plus", + "Nokia C10", + "Nokia C100", + "Nokia C2", + "Nokia C2 2nd Edition", + "Nokia C2 Tennen", + "Nokia C20", + "Nokia C20 Plus", + "Nokia C200", + "Nokia C21", + "Nokia C21 Plus", + "Nokia C3", + "Nokia C30", + "Nokia C31", + "Nokia C5 Endi", + "Nokia G10", + "Nokia G100", + "Nokia G11", + "Nokia G11 Plus", + "Nokia G20", + "Nokia G21", + "Nokia G400 5G", + "Nokia G50", + "Nokia G60 5G", + "Nokia Streaming Box 8000", + "Nokia T10", + "Nokia T20", + "Nokia X10", + "Nokia X100", + "Nokia X20", + "Nokia X30 5G", + "Nokia X5", + "Nokia X6", + "Nokia X7", + "Nokia X71", + "Nokia XR20", + "Note9", + "NX401", + "NX501", + "NX503A", + "ONC", + "One", + "ONE A2003", + "ONE E1003", + "ONEPLUS A3000", + "ONEPLUS A5000", + "ONEPLUS A5010", + "ONEPLUS A6000", + "ONEPLUS A6003", + "ONEPLUS A6010", + "ONEPLUS A6013", + "Oneplus_Dosa_IN", + "OPD2101", + "OPG01", + "OPG02", + "OPG03", + "OPG04", + "OPPO A33m", + "OPPO A35", + "OPPO A37", + "OPPO A37m", + "OPPO A37t", + "OPPO A37tm", + "OPPO A39", + "OPPO A39m", + "OPPO A39t", + "OPPO A39tm", + "OPPO A53", + "OPPO A53m", + "OPPO A57", + "OPPO A57t", + "OPPO A59", + "OPPO A59m", + "OPPO A59s", + "OPPO A59st", + "OPPO A59t", + "OPPO A59tm", + "OPPO A73", + "OPPO A73t", + "OPPO A77", + "OPPO A77t", + "OPPO A79", + "OPPO A79k", + "OPPO A79kt", + "OPPO A79t", + "OPPO A83", + "OPPO A83t", + "OPPO CPH1605", + "OPPO R11", + "OPPO R11 Plus", + "OPPO R11 Plusk", + "OPPO R11 Pluskt", + "OPPO R11 Plust", + "OPPO R11s", + "OPPO R11s Plus", + "OPPO R11s Plust", + "OPPO R11st", + "OPPO R11t", + "OPPO R7", + "OPPO R7s", + "OPPO R7sPlus", + "OPPO R9", + "OPPO R9 Plus A", + "OPPO R9 Plusm A", + "OPPO R9 Plust A", + "OPPO R9 Plustm A", + "OPPO R9k", + "OPPO R9km", + "OPPO R9m", + "OPPO R9s", + "OPPO R9s Plus", + "OPPO R9s Plust", + "OPPO R9sk", + "OPPO R9skt", + "OPPO R9sPlus", + "OPPO R9st", + "OPPO R9t", + "OPPO R9tm", + "PA2170", + "PAAM00", + "PAAT00", + "PACM00", + "PACT00", + "PADM00", + "PADT00", + "PAFM00", + "PAFT00", + "PAHM00", + "PBAM00", + "PBAT00", + "PBBM00", + "PBBM30", + "PBBT00", + "PBBT30", + "PBCM10", + "PBCM30", + "PBCT10", + "PBDM00", + "PBDT00", + "PBEM00", + "PBET00", + "PBFM00", + "PBFT00", + "PCAM00", + "PCAM10", + "PCAT00", + "PCAT10", + "PCCM00", + "PCCT00", + "PCDM10", + "PCDT00", + "PCDT10", + "PCEM00", + "PCET00", + "PCGM00", + "PCGT00", + "PCHM00", + "PCHM10", + "PCHM30", + "PCHT10", + "PCHT30", + "PCKM00", + "PCKM80", + "PCLM10", + "PCLM50", + "PCNM00", + "PCPM00", + "PCRM00", + "PCRT01", + "PC-TE507FAW", + "PC-TE507JAW", + "PC-TS508FAM", + "PDAM10", + "PDAT10", + "PDCM00", + "PDEM10", + "PDEM30", + "PDET10", + "PDHM00", + "PDKM00", + "PDKT00", + "PDNM00", + "PDNT00", + "PDPM00", + "PDPT00", + "PDRM00", + "PDSM00", + "PDST00", + "PDVM00", + "PDYM20", + "PDYT20", + "PEAM00", + "PEAT00", + "PECM20", + "PECM30", + "PECT30", + "PEDM00", + "PEEM00", + "PEFM00", + "PEGM00", + "PEGM10", + "PEGT10", + "PEHM00", + "PEHT00", + "PELM00", + "PEMM00", + "PEMM20", + "PEMT00", + "PEMT20", + "PENM00", + "PEPM00", + "PEQM00", + "PERM00", + "PEUM00", + "PEXM00", + "PEYM00", + "PEZM00", + "PFCM00", + "PFDM00", + "PFFM10", + "PFFM20", + "PFGM00", + "PFJM10", + "PFTM10", + "PFTM20", + "PFUM10", + "PFZM10", + "PGAM10", + "PGBM10", + "PGCM10", + "PGKM10", + "PGZ110", + "Phone", + "Phone 2", + "pine", + "Platina", + "POCOPHONE F1", + "PRO 7", + "PRO 7 Plus", + "PRO 7-H", + "PRO 7-S", + "Pyxis", + "QILIVE 101", + "Qilive 40", + "Qilive 45", + "Qilive 45 - 4G", + "Qilive 50", + "Qilive 50 QC", + "Qilive 53", + "Qilive 7", + "Qilive 70v2", + "Qilive 79", + "QiLive 8", + "QiLive 8QC", + "QiLive 97", + "QiLive 97R", + "Qilive 97R-2", + "Quechua Phone 5", + "R1001", + "R1011", + "R2001", + "R2010", + "R2017", + "R4", + "R6006", + "R6007", + "R7", + "R7005", + "R7007", + "R7c", + "R7f", + "R7g", + "R7kc", + "R7kf", + "R7kt", + "R7Plus", + "R7plusf", + "R7Plusm", + "R7Plust", + "R7s", + "R7sf", + "R7sm", + "R7st", + "R7t", + "R8000", + "R8001", + "R8006", + "R8007", + "R800a", + "R800i", + "R809T", + "R8106", + "R8107", + "R8109", + "R815", + "R815T", + "R815W", + "R819", + "R819T", + "R820", + "R8200", + "R8201", + "R8205", + "R8206", + "R8207", + "R821", + "R821T", + "R823T", + "R827", + "R827T", + "R829", + "R829T", + "R830", + "R830S", + "R831", + "R831K", + "R831L", + "R831S", + "R831T", + "R833T", + "R850", + "Redmi 3", + "Redmi 3S", + "Redmi 4", + "Redmi 4A", + "Redmi 4X", + "Redmi 5", + "Redmi 5 Plus", + "Redmi 5A", + "Redmi 6", + "Redmi 6 Pro", + "Redmi 6A", + "Redmi 7", + "Redmi 7A", + "Redmi 8", + "Redmi 8A", + "Redmi 8A Dual", + "Redmi 8A Pro", + "Redmi Go", + "Redmi K20", + "Redmi K20 Pro", + "Redmi K20 Pro Premium Edition", + "Redmi K30", + "Redmi K30 5G", + "Redmi K30 Pro", + "Redmi K30 Pro 5G", + "Redmi K30 Pro 5G Zoom Edition", + "Redmi K30 Pro Zoom Edition", + "Redmi K30i 5G", + "Redmi Note 2", + "Redmi Note 3", + "Redmi Note 4", + "Redmi Note 4X", + "Redmi Note 5", + "Redmi Note 5 Pro", + "Redmi Note 5A", + "Redmi Note 6 Pro", + "Redmi Note 7", + "Redmi Note 7 Pro", + "Redmi Note 8", + "Redmi Note 8 Pro", + "Redmi Note 8T", + "Redmi Note 9 Pro", + "Redmi Note 9 Pro Max", + "Redmi Note 9S", + "Redmi Pro", + "Redmi S2", + "Redmi Y1", + "Redmi Y3", + "RMX1803", + "RMX1805", + "RMX1807", + "RMX1809", + "RMX1811", + "RMX1821", + "RMX1822", + "RMX1825", + "RMX1827", + "RMX1831", + "RMX1833", + "RMX1851", + "RMX1853", + "RMX1901", + "RMX1911", + "RMX1941", + "RMX1942", + "RMX1943", + "RMX1945", + "RMX2051", + "S2", + "S2005A-H", + "SAMSUNG-EK-GC100", + "samsung-printer-tablet", + "SAMSUNG-SGH-I257", + "SAMSUNG-SGH-I317", + "SAMSUNG-SGH-I337", + "SAMSUNG-SGH-I337Z", + "SAMSUNG-SGH-I407", + "SAMSUNG-SGH-I437", + "SAMSUNG-SGH-I437P", + "SAMSUNG-SGH-I437Z", + "SAMSUNG-SGH-I467", + "SAMSUNG-SGH-I497", + "SAMSUNG-SGH-I527", + "SAMSUNG-SGH-I537", + "SAMSUNG-SGH-I547", + "SAMSUNG-SGH-I577", + "SAMSUNG-SGH-I717", + "SAMSUNG-SGH-I727", + "SAMSUNG-SGH-I747", + "SAMSUNG-SGH-I747Z", + "SAMSUNG-SGH-I777", + "SAMSUNG-SGH-I827", + "SAMSUNG-SGH-I847", + "SAMSUNG-SGH-I896", + "SAMSUNG-SGH-I897", + "SAMSUNG-SGH-I927R", + "SAMSUNG-SGH-I957", + "SAMSUNG-SGH-I957D", + "SAMSUNG-SGH-I957M", + "SAMSUNG-SGH-I957R", + "SAMSUNG-SGH-I997", + "SAMSUNG-SGH-I997R", + "SAMSUNG-SM-C105A", + "SAMSUNG-SM-G360AZ", + "SAMSUNG-SM-G530A", + "SAMSUNG-SM-G530AZ", + "SAMSUNG-SM-G730A", + "SAMSUNG-SM-G750A", + "SAMSUNG-SM-G800A", + "SAMSUNG-SM-G850A", + "SAMSUNG-SM-G870A", + "SAMSUNG-SM-G890A", + "SAMSUNG-SM-G891A", + "SAMSUNG-SM-G900A", + "SAMSUNG-SM-G900AZ", + "SAMSUNG-SM-G920A", + "SAMSUNG-SM-G920AZ", + "SAMSUNG-SM-G925A", + "SAMSUNG-SM-G928A", + "SAMSUNG-SM-G930A", + "SAMSUNG-SM-G930AZ", + "SAMSUNG-SM-G935A", + "SAMSUNG-SM-J120A", + "SAMSUNG-SM-J120AZ", + "SAMSUNG-SM-J320A", + "SAMSUNG-SM-J320AZ", + "SAMSUNG-SM-J321AZ", + "SAMSUNG-SM-J326AZ", + "SAMSUNG-SM-J327A", + "SAMSUNG-SM-J327AZ", + "SAMSUNG-SM-J727A", + "SAMSUNG-SM-J727AZ", + "SAMSUNG-SM-N900A", + "SAMSUNG-SM-N910A", + "SAMSUNG-SM-N915A", + "SAMSUNG-SM-N920A", + "SAMSUNG-SM-N930A", + "SAMSUNG-SM-P907A", + "SAMSUNG-SM-T217A", + "SAMSUNG-SM-T337A", + "SAMSUNG-SM-T377A", + "SAMSUNG-SM-T537A", + "SAMSUNG-SM-T677A", + "SAMSUNG-SM-T707A", + "SAMSUNG-SM-T807A", + "SAMSUNG-SM-T817A", + "SAMSUNG-SM-T818A", + "santoni", + "SC-01C", + "SC-01D", + "SC-01E", + "SC-01F", + "SC-01G", + "SC-01H", + "SC-01J", + "SC-01K", + "SC-01L", + "SC-01M", + "SC-02B", + "SC-02C", + "SC-02D", + "SC-02E", + "SC-02F", + "SC-02G", + "SC-02H", + "SC-02J", + "SC-02K", + "SC-02L", + "SC-02M", + "SC-03D", + "SC-03E", + "SC-03G", + "SC-03J", + "SC-03K", + "SC-03L", + "SC-04E", + "SC-04F", + "SC-04G", + "SC-04J", + "SC-04L", + "SC-05D", + "SC-05G", + "SC-05L", + "SC-06D", + "SC-41A", + "SC-42A", + "SC-51A", + "SC51Aa", + "SC-51B", + "SC-51C", + "SC-52A", + "SC-52B", + "SC-52C", + "SC-53A", + "SC-53B", + "SC-53C", + "SC-54A", + "SC-54B", + "SC-54C", + "SC-55B", + "SC-55C", + "SC-56B", + "SC-56C", + "SCG01", + "SCG02", + "SCG03", + "SCG04", + "SCG06", + "SCG07", + "SCG08", + "SCG09", + "SCG10", + "SCG11", + "SCG12", + "SCG13", + "SCG14", + "SCG15", + "SCG16", + "SCG17", + "SCG18", + "SCH-I100", + "SCH-I110", + "SCH-I200", + "SCH-I200PP", + "SCH-I339", + "SCH-I400", + "SCH-I405", + "SCH-I405U", + "SCH-I415", + "SCH-I425", + "SCH-I435", + "SCH-I435L", + "SCH-I500", + "SCH-I509", + "SCH-I509U", + "SCH-I519", + "SCH-I535", + "SCH-I535PP", + "SCH-I545", + "SCH-I545L", + "SCH-I545PP", + "SCH-I559", + "SCH-i569", + "SCH-i579", + "SCH-I589", + "SCH-I605", + "SCH-I619", + "SCH-I629", + "SCH-I639", + "SCH-I659", + "SCH-I679", + "SCH-I699", + "SCH-I705", + "SCH-I739", + "SCH-I759", + "SCH-I779", + "SCH-I800", + "SCH-i809", + "SCH-I815", + "SCH-I829", + "SCH-I869", + "SCH-I879", + "SCH-I879E", + "SCH-i889", + "SCH-I905", + "SCH-i909", + "SCH-I915", + "SCH-i919", + "SCH-I919U", + "SCH-I925", + "SCH-I925U", + "SCH-i929", + "SCH-I939", + "SCH-I939D", + "SCH-I959", + "SCH-L710", + "SCH-M828C", + "SCH-N719", + "SCH-P709", + "SCH-P729", + "SCH-P739", + "SCH-R530C", + "SCH-R530M", + "SCH-R530U", + "SCH-R530X", + "SCH-R680", + "SCH-R730", + "SCH-R740C", + "SCH-R760", + "SCH-R760X", + "SCH-R820", + "SCH-R830", + "SCH-R830C", + "SCH-R890", + "SCH-R910", + "SCH-R915", + "SCH-R920", + "SCH-R930", + "SCH-R940", + "SCH-R950", + "SCH-R960", + "SCH-R970", + "SCH-R970C", + "SCH-R970X", + "SCH-S720C", + "SCH-S735C", + "SCH-S738C", + "SCH-S950C", + "SCH-S960L", + "SCH-S968C", + "SCH-W2013", + "SCH-W789", + "SCH-W899", + "SCH-W9913", + "SCH-W999", + "SCL21", + "SCL22", + "SCL23", + "SCL24", + "SCT21", + "SCV31", + "SCV32", + "SCV33", + "SCV34", + "SCV35", + "SCV36", + "SCV37", + "SCV38", + "SCV39", + "SCV40", + "SCV41", + "SCV42", + "SCV43", + "SCV43-j", + "SCV43-u", + "SCV44", + "SCV45", + "SCV46", + "SCV46-j", + "SCV46-u", + "SCV47", + "SCV48", + "SCV49", + "Selecline 10", + "SGH-I257M", + "SGH-I317M", + "SGH-I337M", + "SGH-I467M", + "SGH-I497", + "SGH-I527M", + "SGH-I537", + "SGH-I547C", + "SGH-I717", + "SGH-I717D", + "SGH-I717M", + "SGH-I717R", + "SGH-I727", + "SGH-I727R", + "SGH-I747M", + "SGH-I748", + "SGH-I757M", + "SGH-I827D", + "SGH-I896", + "SGH-I957D", + "SGH-I957M", + "SGH-I957R", + "SGH-I987", + "SGH-M819N", + "SGH-M919", + "SGH-M919N", + "SGH-M919V", + "SGH-N037", + "SGH-N075T", + "SGH-S730G", + "SGH-S959G", + "SGH-S970G", + "SGH-T399", + "SGH-T399N", + "SGH-T499", + "SGH-T499V", + "SGH-T499Y", + "SGH-T589", + "SGH-T589R", + "SGH-T589W", + "SGH-T599", + "SGH-T599N", + "SGH-T599V", + "SGH-T679", + "SGH-T679M", + "SGH-T699", + "SGH-T769", + "SGH-T779", + "SGH-T839", + "SGH-T849", + "SGH-T859", + "SGH-T869", + "SGH-T879", + "SGH-T889", + "SGH-T889V", + "SGH-T959", + "SGH-T959D", + "SGH-T959P", + "SGH-T959V", + "SGH-T959W", + "SGH-T989", + "SGH-T989D", + "SGH-T999", + "SGH-T999L", + "SGH-T999N", + "SGH-T999V", + "SGP311", + "SGP312", + "SGP321", + "SGP351", + "SGP412", + "SGP511", + "SGP512", + "SGP521", + "SGP551", + "SGP561", + "SGP611", + "SGP612", + "SGP621", + "SGP641", + "SGP712", + "SGP771", + "SGPT12", + "SGPT13", + "SHV-E110S", + "SHV-E120K", + "SHV-E120L", + "SHV-E120S", + "SHV-E140K", + "SHV-E140L", + "SHV-E140S", + "SHV-E150S", + "SHV-E160K", + "SHV-E160L", + "SHV-E160S", + "SHV-E170K", + "SHV-E170L", + "SHV-E170S", + "SHV-E210K", + "SHV-E210L", + "SHV-E210S", + "SHV-E220S", + "SHV-E230K", + "SHV-E230L", + "SHV-E230S", + "SHV-E250K", + "SHV-E250L", + "SHV-E250S", + "SHV-E270K", + "SHV-E270S", + "SHV-E275K", + "SHV-E275S", + "SHV-E300K", + "SHV-E300L", + "SHV-E300S", + "SHV-E310K", + "SHV-E310L", + "SHV-E310S", + "SHV-E330K", + "SHV-E330L", + "SHV-E330S", + "SHV-E370D", + "SHV-E370K", + "SHV-E400K", + "SHV-E400S", + "SHV-E470S", + "SHV-E500L", + "SHV-E500S", + "SHW-M100S", + "SHW-M110S", + "SHW-M115S", + "SHW-M130K", + "SHW-M130L", + "SHW-M135K", + "SHW-M135L", + "SHW-M180K", + "SHW-M180L", + "SHW-M180S", + "SHW-M180W", + "SHW-M190S", + "SHW-M220L", + "SHW-M240S", + "SHW-M250K", + "SHW-M250L", + "SHW-M250S", + "SHW-M290K", + "SHW-M290S", + "SHW-M300W", + "SHW-M305W", + "SHW-M340D", + "SHW-M340K", + "SHW-M340L", + "SHW-M340S", + "SHW-M380K", + "SHW-M380S", + "SHW-M380W", + "SHW-M430W", + "SHW-M440S", + "SHW-M460D", + "SHW-M480K", + "SHW-M480S", + "SHW-M480W", + "SHW-M485W", + "SHW-M486W", + "SHW-M500W", + "SHW-M570S", + "SHW-M580D", + "SHW-M585D", + "sirius", + "SK17a", + "SM-A013F", + "SM-A013G", + "SM-A013M", + "SM-A015A", + "SM-A015AZ", + "SM-A015F", + "SM-A015G", + "SM-A015M", + "SM-A015T1", + "SM-A015U", + "SM-A015U1", + "SM-A015V", + "SM-A022F", + "SM-A022G", + "SM-A022M", + "SM-A025A", + "SM-A025AZ", + "SM-A025F", + "SM-A025G", + "SM-A025M", + "SM-A025U", + "SM-A025U1", + "SM-A025V", + "SM-A032F", + "SM-A032M", + "SM-A035F", + "SM-A035G", + "SM-A035M", + "SM-A037F", + "SM-A037G", + "SM-A037M", + "SM-A037U", + "SM-A037U1", + "SM-A037W", + "SM-A045F", + "SM-A045M", + "SM-A047F", + "SM-A047M", + "SM-A102N", + "SM-A102U", + "SM-A102U1", + "SM-A102W", + "SM-A105F", + "SM-A105FN", + "SM-A105G", + "SM-A105M", + "SM-A105N", + "SM-A107F", + "SM-A107M", + "SM-A115A", + "SM-A115AP", + "SM-A115AZ", + "SM-A115F", + "SM-A115M", + "SM-A115U", + "SM-A115U1", + "SM-A115W", + "SM-A125F", + "SM-A125M", + "SM-A125N", + "SM-A125U", + "SM-A125U1", + "SM-A125W", + "SM-A127F", + "SM-A127M", + "SM-A135F", + "SM-A135M", + "SM-A135N", + "SM-A135U", + "SM-A135U1", + "SM-A136B", + "SM-A136M", + "SM-A136S", + "SM-A136U", + "SM-A136U1", + "SM-A136W", + "SM-A137F", + "SM-A202F", + "SM-A202K", + "SM-A205F", + "SM-A205FN", + "SM-A205G", + "SM-A205GN", + "SM-A205S", + "SM-A205U", + "SM-A205U1", + "SM-A205W", + "SM-A205YN", + "SM-A2070", + "SM-A207F", + "SM-A207M", + "SM-A215U", + "SM-A215U1", + "SM-A215W", + "SM-A217F", + "SM-A217M", + "SM-A217N", + "SM-A225F", + "SM-A225M", + "SM-A226B", + "SM-A226BR", + "SM-A226L", + "SM-A233C", + "SM-A235F", + "SM-A235M", + "SM-A235N", + "SM-A2360", + "SM-A236B", + "SM-A236E", + "SM-A236M", + "SM-A236U", + "SM-A236U1", + "SM-A260F", + "SM-A260G", + "SM-A3000", + "SM-A3009", + "SM-A300F", + "SM-A300FU", + "SM-A300G", + "SM-A300H", + "SM-A300M", + "SM-A300X", + "SM-A300XU", + "SM-A300XZ", + "SM-A300Y", + "SM-A300YZ", + "SM-A3050", + "SM-A3051", + "SM-A3058", + "SM-A305F", + "SM-A305FN", + "SM-A305G", + "SM-A305GN", + "SM-A305GT", + "SM-A305N", + "SM-A305YN", + "SM-A307FN", + "SM-A307G", + "SM-A307GN", + "SM-A307GT", + "SM-A310F", + "SM-A310M", + "SM-A310N0", + "SM-A310X", + "SM-A310Y", + "SM-A315F", + "SM-A315G", + "SM-A315N", + "SM-A320F", + "SM-A320FL", + "SM-A320X", + "SM-A320Y", + "SM-A325F", + "SM-A325M", + "SM-A325N", + "SM-A326B", + "SM-A326BR", + "SM-A326U", + "SM-A326U1", + "SM-A326W", + "SM-A3360", + "SM-A336B", + "SM-A336E", + "SM-A336M", + "SM-A336N", + "SM-A405FM", + "SM-A405FN", + "SM-A405S", + "SM-A415F", + "SM-A4260", + "SM-A426B", + "SM-A426N", + "SM-A426U", + "SM-A426U1", + "SM-A5000", + "SM-A5009", + "SM-A500F", + "SM-A500F1", + "SM-A500FU", + "SM-A500G", + "SM-A500H", + "SM-A500K", + "SM-A500L", + "SM-A500M", + "SM-A500S", + "SM-A500W", + "SM-A500X", + "SM-A500XZ", + "SM-A500Y", + "SM-A500YZ", + "SM-A505F", + "SM-A505FM", + "SM-A505FN", + "SM-A505G", + "SM-A505GN", + "SM-A505GT", + "SM-A505N", + "SM-A505U", + "SM-A505U1", + "SM-A505W", + "SM-A505YN", + "SM-A5070", + "SM-A507FN", + "SM-A5100", + "SM-A5100X", + "SM-A5108", + "SM-A510F", + "SM-A510K", + "SM-A510L", + "SM-A510M", + "SM-A510S", + "SM-A510X", + "SM-A510XZ", + "SM-A510Y", + "SM-A515F", + "SM-A515U", + "SM-A515U1", + "SM-A515W", + "SM-A5160", + "SM-A516B", + "SM-A516N", + "SM-A516U", + "SM-A516U1", + "SM-A516V", + "SM-A520F", + "SM-A520K", + "SM-A520L", + "SM-A520S", + "SM-A520W", + "SM-A520X", + "SM-A525F", + "SM-A525M", + "SM-A5260", + "SM-A526B", + "SM-A526N", + "SM-A526U", + "SM-A526U1", + "SM-A526W", + "SM-A528B", + "SM-A528N", + "SM-A530F", + "SM-A530N", + "SM-A530W", + "SM-A530X", + "SM-A5360", + "SM-A536B", + "SM-A536E", + "SM-A536N", + "SM-A536U", + "SM-A536U1", + "SM-A536V", + "SM-A536W", + "SM-A600A", + "SM-A600AZ", + "SM-A600F", + "SM-A600FN", + "SM-A600G", + "SM-A600GN", + "SM-A600N", + "SM-A600P", + "SM-A600T", + "SM-A600T1", + "SM-A600U", + "SM-A6050", + "SM-A6058", + "SM-A605F", + "SM-A605FN", + "SM-A605G", + "SM-A605GN", + "SM-A605K", + "SM-A605XC", + "SM-A6060", + "SM-A606Y", + "SM-A7000", + "SM-A7009", + "SM-A700F", + "SM-A700FD", + "SM-A700H", + "SM-A700K", + "SM-A700L", + "SM-A700S", + "SM-A700X", + "SM-A700YD", + "SM-A7050", + "SM-A705F", + "SM-A705FN", + "SM-A705GM", + "SM-A705MN", + "SM-A705U", + "SM-A705W", + "SM-A705YN", + "SM-A7070", + "SM-A707F", + "SM-A7100", + "SM-A7108", + "SM-A710F", + "SM-A710K", + "SM-A710L", + "SM-A710M", + "SM-A710S", + "SM-A710X", + "SM-A710XZ", + "SM-A710Y", + "SM-A715F", + "SM-A715W", + "SM-A7160", + "SM-A716B", + "SM-A716S", + "SM-A716U", + "SM-A716U1", + "SM-A716V", + "SM-A720F", + "SM-A720S", + "SM-A725F", + "SM-A725M", + "SM-A730F", + "SM-A730X", + "SM-A736B", + "SM-A750C", + "SM-A750F", + "SM-A750FN", + "SM-A750G", + "SM-A750GN", + "SM-A750N", + "SM-A8000", + "SM-A800F", + "SM-A800I", + "SM-A800IZ", + "SM-A800S", + "SM-A800X", + "SM-A800YZ", + "SM-A8050", + "SM-A805F", + "SM-A805N", + "SM-A810F", + "SM-A810S", + "SM-A810YZ", + "SM-A826S", + "SM-A9000", + "SM-A9080", + "SM-A908B", + "SM-A908N", + "SM-A9100", + "SM-A910F", + "SM-A9200", + "SM-A920F", + "SM-A920N", + "SmartTabII10", + "SmartTabII7", + "SM-C101", + "SM-C105", + "SM-C105K", + "SM-C105L", + "SM-C105S", + "SM-C111", + "SM-C111M", + "SM-C115", + "SM-C115L", + "SM-C115M", + "SM-C115W", + "SM-C5000", + "SM-C500X", + "SM-C5010", + "SM-C5018", + "SM-C7000", + "SM-C700X", + "SM-C7010", + "SM-C7018", + "SM-C701F", + "SM-C701X", + "SM-C7100", + "SM-C7108", + "SM-C710F", + "SM-C710X", + "SM-C9000", + "SM-C9008", + "SM-C900F", + "SM-C900X", + "SM-C900Y", + "SM-E025F", + "SM-E135F", + "SM-E225F", + "SM-E236B", + "SM-E426B", + "SM-E426S", + "SM-E500F", + "SM-E500H", + "SM-E500M", + "SM-E500YZ", + "SM-E5260", + "SM-E625F", + "SM-E7000", + "SM-E7009", + "SM-E700F", + "SM-E700H", + "SM-E700M", + "SM-F127G", + "SM-F415F", + "SM-F7000", + "SM-F700F", + "SM-F700N", + "SM-F700U", + "SM-F700U1", + "SM-F700W", + "SM-F7070", + "SM-F707B", + "SM-F707N", + "SM-F707U", + "SM-F707U1", + "SM-F707W", + "SM-F7110", + "SM-F711B", + "SM-F711N", + "SM-F711U", + "SM-F711U1", + "SM-F711W", + "SM-F7210", + "SM-F721B", + "SM-F721C", + "SM-F721N", + "SM-F721U", + "SM-F721U1", + "SM-F721W", + "SM-F9000", + "SM-F900F", + "SM-F900U", + "SM-F900U1", + "SM-F900W", + "SM-F907B", + "SM-F907N", + "SM-F9160", + "SM-F916B", + "SM-F916N", + "SM-F916Q", + "SM-F916U", + "SM-F916U1", + "SM-F916W", + "SM-F9260", + "SM-F926B", + "SM-F926N", + "SM-F926U", + "SM-F926U1", + "SM-F926W", + "SM-F9360", + "SM-F936B", + "SM-F936N", + "SM-F936U", + "SM-F936U1", + "SM-F936W", + "SM-G110B", + "SM-G110H", + "SM-G110M", + "SM-G130BT", + "SM-G130BU", + "SM-G130E", + "SM-G130H", + "SM-G130HN", + "SM-G130M", + "SM-G130U", + "SM-G150N0", + "SM-G150NK", + "SM-G150NL", + "SM-G150NS", + "SM-G155S", + "SM-G160N", + "SM-G1650", + "SM-G165N", + "SM-G310HN", + "SM-G310R5", + "SM-G3139D", + "SM-G313F", + "SM-G313H", + "SM-G313HN", + "SM-G313HU", + "SM-G313HY", + "SM-G313HZ", + "SM-G313M", + "SM-G313ML", + "SM-G313MU", + "SM-G313MY", + "SM-G313U", + "SM-G316H", + "SM-G316HU", + "SM-G316M", + "SM-G316ML", + "SM-G316MY", + "SM-G316U", + "SM-G318H", + "SM-G318HZ", + "SM-G318ML", + "SM-G318MZ", + "SM-G350", + "SM-G3502", + "SM-G3502C", + "SM-G3502I", + "SM-G3502L", + "SM-G3502T", + "SM-G3502U", + "SM-G3508", + "SM-G3508I", + "SM-G3508J", + "SM-G3509", + "SM-G3509I", + "SM-G350E", + "SM-G350L", + "SM-G350M", + "SM-G3518", + "SM-G3556D", + "SM-G3558", + "SM-G3559", + "SM-G355H", + "SM-G355HN", + "SM-G355HQ", + "SM-G355M", + "SM-G357FZ", + "SM-G357M", + "SM-G3586V", + "SM-G3589W", + "SM-G3606", + "SM-G3608", + "SM-G3609", + "SM-G360BT", + "SM-G360F", + "SM-G360FY", + "SM-G360GY", + "SM-G360H", + "SM-G360HU", + "SM-G360M", + "SM-G360P", + "SM-G360R6", + "SM-G360T", + "SM-G360T1", + "SM-G360V", + "SM-G361F", + "SM-G361H", + "SM-G361HU", + "SM-G361M", + "SM-G3812", + "SM-G3812B", + "SM-G3815", + "SM-G3818", + "SM-G3819", + "SM-G3819D", + "SM-G386F", + "SM-G386T", + "SM-G386T1", + "SM-G386W", + "SM-G388F", + "SM-G389F", + "SM-G390F", + "SM-G390W", + "SM-G390Y", + "SM-G398FN", + "SM-G5108", + "SM-G5108Q", + "SM-G525F", + "SM-G525N", + "SM-G5306W", + "SM-G5308W", + "SM-G5309W", + "SM-G530BT", + "SM-G530F", + "SM-G530FZ", + "SM-G530H", + "SM-G530M", + "SM-G530MU", + "SM-G530P", + "SM-G530R4", + "SM-G530R7", + "SM-G530T", + "SM-G530T1", + "SM-G530W", + "SM-G530Y", + "SM-G531BT", + "SM-G531F", + "SM-G531H", + "SM-G531M", + "SM-G531Y", + "SM-G532F", + "SM-G532G", + "SM-G532M", + "SM-G532MT", + "SM-G5500", + "SM-G550FY", + "SM-G550T", + "SM-G550T1", + "SM-G550T2", + "SM-G5510", + "SM-G5520", + "SM-G5528", + "SM-G5700", + "SM-G570F", + "SM-G570M", + "SM-G570Y", + "SM-G6000", + "SM-G600F", + "SM-G600FY", + "SM-G600S", + "SM-G6100", + "SM-G610F", + "SM-G610K", + "SM-G610L", + "SM-G610M", + "SM-G610S", + "SM-G610Y", + "SM-G611F", + "SM-G611FF", + "SM-G611K", + "SM-G611L", + "SM-G611M", + "SM-G611MT", + "SM-G611S", + "SM-G615F", + "SM-G615FU", + "SM-G6200", + "SM-G710", + "SM-G7102", + "SM-G7102T", + "SM-G7105", + "SM-G7105H", + "SM-G7105L", + "SM-G7106", + "SM-G7108", + "SM-G7109", + "SM-G710K", + "SM-G710L", + "SM-G710S", + "SM-G715FN", + "SM-G7200", + "SM-G7202", + "SM-G720AX", + "SM-G720N0", + "SM-G730V", + "SM-G730W8", + "SM-G736B", + "SM-G736U", + "SM-G736U1", + "SM-G736W", + "SM-G7508Q", + "SM-G750F", + "SM-G750H", + "SM-G770F", + "SM-G770U1", + "SM-G780F", + "SM-G780G", + "SM-G7810", + "SM-G781B", + "SM-G781N", + "SM-G781U", + "SM-G781U1", + "SM-G781V", + "SM-G781W", + "SM-G800F", + "SM-G800H", + "SM-G800HQ", + "SM-G800M", + "SM-G800R4", + "SM-G800X", + "SM-G800Y", + "SM-G8508S", + "SM-G850F", + "SM-G850FQ", + "SM-G850K", + "SM-G850L", + "SM-G850M", + "SM-G850S", + "SM-G850W", + "SM-G850X", + "SM-G850Y", + "SM-G860P", + "SM-G870F", + "SM-G870F0", + "SM-G870W", + "SM-G8750", + "SM-G8850", + "SM-G8858", + "SM-G885F", + "SM-G885S", + "SM-G885Y", + "SM-G8870", + "SM-G887F", + "SM-G887N", + "SM-G889A", + "SM-G889F", + "SM-G889G", + "SM-G889YB", + "SM-G892A", + "SM-G892U", + "SM-G9006W", + "SM-G9008W", + "SM-G9009W", + "SM-G900F", + "SM-G900FD", + "SM-G900FG", + "SM-G900FQ", + "SM-G900H", + "SM-G900I", + "SM-G900K", + "SM-G900L", + "SM-G900M", + "SM-G900MD", + "SM-G900P", + "SM-G900R4", + "SM-G900R6", + "SM-G900R7", + "SM-G900S", + "SM-G900T", + "SM-G900T1", + "SM-G900T3", + "SM-G900T4", + "SM-G900V", + "SM-G900W8", + "SM-G900X", + "SM-G901F", + "SM-G903F", + "SM-G903M", + "SM-G903W", + "SM-G906K", + "SM-G906L", + "SM-G906S", + "SM-G910S", + "SM-G9198", + "SM-G9200", + "SM-G9208", + "SM-G9209", + "SM-G920F", + "SM-G920I", + "SM-G920K", + "SM-G920L", + "SM-G920P", + "SM-G920R4", + "SM-G920R6", + "SM-G920R7", + "SM-G920S", + "SM-G920T", + "SM-G920T1", + "SM-G920V", + "SM-G920W8", + "SM-G920X", + "SM-G9250", + "SM-G925F", + "SM-G925I", + "SM-G925K", + "SM-G925L", + "SM-G925P", + "SM-G925R4", + "SM-G925R6", + "SM-G925R7", + "SM-G925S", + "SM-G925T", + "SM-G925V", + "SM-G925W8", + "SM-G925X", + "SM-G9280", + "SM-G9287", + "SM-G9287C", + "SM-G928C", + "SM-G928F", + "SM-G928G", + "SM-G928I", + "SM-G928K", + "SM-G928L", + "SM-G928N0", + "SM-G928P", + "SM-G928R4", + "SM-G928S", + "SM-G928T", + "SM-G928V", + "SM-G928W8", + "SM-G928X", + "SM-G9298", + "SM-G9300", + "SM-G9308", + "SM-G930F", + "SM-G930K", + "SM-G930L", + "SM-G930P", + "SM-G930R4", + "SM-G930R6", + "SM-G930R7", + "SM-G930S", + "SM-G930T", + "SM-G930T1", + "SM-G930U", + "SM-G930V", + "SM-G930VC", + "SM-G930VL", + "SM-G930W8", + "SM-G930X", + "SM-G9350", + "SM-G935F", + "SM-G935K", + "SM-G935L", + "SM-G935P", + "SM-G935R4", + "SM-G935S", + "SM-G935T", + "SM-G935U", + "SM-G935V", + "SM-G935VC", + "SM-G935W8", + "SM-G935X", + "SM-G9500", + "SM-G9508", + "SM-G950F", + "SM-G950N", + "SM-G950U", + "SM-G950U1", + "SM-G950W", + "SM-G9550", + "SM-G955F", + "SM-G955N", + "SM-G955U", + "SM-G955U1", + "SM-G955W", + "SM-G9600", + "SM-G9608", + "SM-G960F", + "SM-G960N", + "SM-G960U", + "SM-G960U1", + "SM-G960W", + "SM-G9650", + "SM-G965F", + "SM-G965N", + "SM-G965U", + "SM-G965U1", + "SM-G965W", + "SM-G9700", + "SM-G9708", + "SM-G970F", + "SM-G970N", + "SM-G970U", + "SM-G970U1", + "SM-G970W", + "SM-G9730", + "SM-G9738", + "SM-G973C", + "SM-G973F", + "SM-G973N", + "SM-G973U", + "SM-G973U1", + "SM-G973W", + "SM-G9750", + "SM-G9758", + "SM-G975F", + "SM-G975N", + "SM-G975U", + "SM-G975U1", + "SM-G975W", + "SM-G977B", + "SM-G977N", + "SM-G977P", + "SM-G977T", + "SM-G977U", + "SM-G980F", + "SM-G9810", + "SM-G981B", + "SM-G981N", + "SM-G981U", + "SM-G981U1", + "SM-G981V", + "SM-G981W", + "SM-G985F", + "SM-G9860", + "SM-G986B", + "SM-G986N", + "SM-G986U", + "SM-G986U1", + "SM-G986W", + "SM-G9880", + "SM-G988B", + "SM-G988N", + "SM-G988Q", + "SM-G988U", + "SM-G988U1", + "SM-G988W", + "SM-G9900", + "SM-G990B", + "SM-G990B2", + "SM-G990E", + "SM-G990U", + "SM-G990U1", + "SM-G990U2", + "SM-G990U3", + "SM-G990W", + "SM-G990W2", + "SM-G9910", + "SM-G991B", + "SM-G991N", + "SM-G991Q", + "SM-G991U1", + "SM-G991W", + "SM-G9960", + "SM-G996B", + "SM-G996N", + "SM-G996U1", + "SM-G996W", + "SM-G9980", + "SM-G998B", + "SM-G998N", + "SM-G998U", + "SM-G998U1", + "SM-G998W", + "SM-J100F", + "SM-J100FN", + "SM-J100G", + "SM-J100H", + "SM-J100M", + "SM-J100ML", + "SM-J100MU", + "SM-J100VPP", + "SM-J100Y", + "SM-J105B", + "SM-J105F", + "SM-J105H", + "SM-J105M", + "SM-J105Y", + "SM-J106B", + "SM-J106F", + "SM-J106H", + "SM-J106M", + "SM-J110F", + "SM-J110G", + "SM-J110H", + "SM-J110L", + "SM-J110M", + "SM-J111F", + "SM-J111M", + "SM-J120F", + "SM-J120FN", + "SM-J120G", + "SM-J120H", + "SM-J120M", + "SM-J120P", + "SM-J120W", + "SM-J120ZN", + "SM-J200BT", + "SM-J200F", + "SM-J200G", + "SM-J200GU", + "SM-J200H", + "SM-J200M", + "SM-J200Y", + "SM-J210F", + "SM-J250F", + "SM-J250G", + "SM-J250M", + "SM-J250Y", + "SM-J260A", + "SM-J260AZ", + "SM-J260F", + "SM-J260FU", + "SM-J260G", + "SM-J260GU", + "SM-J260M", + "SM-J260MU", + "SM-J260T1", + "SM-J260Y", + "SM-J3109", + "SM-J3110", + "SM-J3119", + "SM-J3119S", + "SM-J320F", + "SM-J320FN", + "SM-J320G", + "SM-J320H", + "SM-J320M", + "SM-J320N0", + "SM-J320P", + "SM-J320R4", + "SM-J320V", + "SM-J320VPP", + "SM-J320W8", + "SM-J320Y", + "SM-J320YZ", + "SM-J320ZN", + "SM-J327P", + "SM-J327R4", + "SM-J327R6", + "SM-J327R7", + "SM-J327T", + "SM-J327T1", + "SM-J327U", + "SM-J327V", + "SM-J327VPP", + "SM-J327W", + "SM-J3300", + "SM-J3308", + "SM-J330F", + "SM-J330FN", + "SM-J330G", + "SM-J330L", + "SM-J330N", + "SM-J336AZ", + "SM-J337A", + "SM-J337AZ", + "SM-J337P", + "SM-J337R4", + "SM-J337R7", + "SM-J337T", + "SM-J337U", + "SM-J337V", + "SM-J337VPP", + "SM-J337W", + "SM-J400F", + "SM-J400G", + "SM-J400M", + "SM-J410F", + "SM-J410G", + "SM-J415F", + "SM-J415FN", + "SM-J415G", + "SM-J415GN", + "SM-J415N", + "SM-J5007", + "SM-J5008", + "SM-J500F", + "SM-J500FN", + "SM-J500G", + "SM-J500H", + "SM-J500M", + "SM-J500N0", + "SM-J500Y", + "SM-J5108", + "SM-J510F", + "SM-J510FN", + "SM-J510FQ", + "SM-J510GN", + "SM-J510H", + "SM-J510K", + "SM-J510L", + "SM-J510MN", + "SM-J510S", + "SM-J510UN", + "SM-J530F", + "SM-J530FM", + "SM-J530G", + "SM-J530GM", + "SM-J530K", + "SM-J530L", + "SM-J530S", + "SM-J530Y", + "SM-J530YM", + "SM-J600F", + "SM-J600FN", + "SM-J600G", + "SM-J600GF", + "SM-J600GT", + "SM-J600L", + "SM-J600N", + "SM-J610F", + "SM-J610FN", + "SM-J610G", + "SM-J7008", + "SM-J700F", + "SM-J700H", + "SM-J700K", + "SM-J700M", + "SM-J700P", + "SM-J700T", + "SM-J700T1", + "SM-J701F", + "SM-J701M", + "SM-J701MT", + "SM-J7108", + "SM-J7109", + "SM-J710F", + "SM-J710FN", + "SM-J710FQ", + "SM-J710GN", + "SM-J710K", + "SM-J710MN", + "SM-J720F", + "SM-J720M", + "SM-J727P", + "SM-J727R4", + "SM-J727S", + "SM-J727T", + "SM-J727T1", + "SM-J727U", + "SM-J727V", + "SM-J727VPP", + "SM-J730F", + "SM-J730FM", + "SM-J730G", + "SM-J730GM", + "SM-J730K", + "SM-J737A", + "SM-J737P", + "SM-J737R4", + "SM-J737S", + "SM-J737T", + "SM-J737T1", + "SM-J737U", + "SM-J737V", + "SM-J737VPP", + "SM-J810F", + "SM-J810G", + "SM-J810GF", + "SM-J810M", + "SM-J810Y", + "SM-M013F", + "SM-M015F", + "SM-M015G", + "SM-M017F", + "SM-M022F", + "SM-M022G", + "SM-M022M", + "SM-M025F", + "SM-M105F", + "SM-M105G", + "SM-M105M", + "SM-M105Y", + "SM-M107F", + "SM-M115F", + "SM-M115M", + "SM-M127F", + "SM-M127G", + "SM-M127N", + "SM-M135F", + "SM-M135FU", + "SM-M135M", + "SM-M136B", + "SM-M205F", + "SM-M205FN", + "SM-M205G", + "SM-M205M", + "SM-M205N", + "SM-M215F", + "SM-M215G", + "SM-M225FV", + "SM-M236B", + "SM-M236L", + "SM-M236Q", + "SM-M305F", + "SM-M305M", + "SM-M3070", + "SM-M307F", + "SM-M307FN", + "SM-M315F", + "SM-M317F", + "SM-M325F", + "SM-M325FV", + "SM-M326B", + "SM-M336B", + "SM-M336BU", + "SM-M336K", + "SM-M405F", + "SM-M426B", + "SM-M515F", + "SM-M526B", + "SM-M526BR", + "SM-M536B", + "SM-M536S", + "SM-M625F", + "SM-N750", + "SM-N7500Q", + "SM-N7502", + "SM-N7505", + "SM-N7505L", + "SM-N7507", + "SM-N750K", + "SM-N750L", + "SM-N750S", + "SM-N770F", + "SM-N900", + "SM-N9000Q", + "SM-N9002", + "SM-N9005", + "SM-N9006", + "SM-N9007", + "SM-N9008", + "SM-N9008V", + "SM-N9009", + "SM-N900K", + "SM-N900L", + "SM-N900P", + "SM-N900R4", + "SM-N900S", + "SM-N900T", + "SM-N900U", + "SM-N900V", + "SM-N900W8", + "SM-N9100", + "SM-N9106W", + "SM-N9108V", + "SM-N9109W", + "SM-N910C", + "SM-N910F", + "SM-N910G", + "SM-N910H", + "SM-N910K", + "SM-N910L", + "SM-N910P", + "SM-N910R4", + "SM-N910S", + "SM-N910T", + "SM-N910T2", + "SM-N910T3", + "SM-N910U", + "SM-N910V", + "SM-N910W8", + "SM-N910X", + "SM-N9150", + "SM-N915F", + "SM-N915FY", + "SM-N915G", + "SM-N915K", + "SM-N915L", + "SM-N915P", + "SM-N915R4", + "SM-N915S", + "SM-N915T", + "SM-N915T3", + "SM-N915V", + "SM-N915W8", + "SM-N915X", + "SM-N916K", + "SM-N916L", + "SM-N916S", + "SM-N9200", + "SM-N9208", + "SM-N920C", + "SM-N920F", + "SM-N920G", + "SM-N920I", + "SM-N920K", + "SM-N920L", + "SM-N920P", + "SM-N920R4", + "SM-N920R6", + "SM-N920R7", + "SM-N920S", + "SM-N920T", + "SM-N920V", + "SM-N920W8", + "SM-N920X", + "SM-N9300", + "SM-N930F", + "SM-N930K", + "SM-N930L", + "SM-N930P", + "SM-N930R4", + "SM-N930R6", + "SM-N930R7", + "SM-N930S", + "SM-N930T", + "SM-N930U", + "SM-N930V", + "SM-N930VL", + "SM-N930W8", + "SM-N930X", + "SM-N935F", + "SM-N935K", + "SM-N935L", + "SM-N935S", + "SM-N9500", + "SM-N9508", + "SM-N950F", + "SM-N950N", + "SM-N950U", + "SM-N950U1", + "SM-N950W", + "SM-N950XN", + "SM-N9600", + "SM-N960F", + "SM-N960N", + "SM-N960U", + "SM-N960U1", + "SM-N960W", + "SM-N9700", + "SM-N970F", + "SM-N970U", + "SM-N970U1", + "SM-N970W", + "SM-N971N", + "SM-N9750", + "SM-N975C", + "SM-N975F", + "SM-N975U", + "SM-N975U1", + "SM-N975W", + "SM-N9760", + "SM-N976B", + "SM-N976N", + "SM-N976Q", + "SM-N976U", + "SM-N976V", + "SM-N980F", + "SM-N9810", + "SM-N981B", + "SM-N981N", + "SM-N981U", + "SM-N981U1", + "SM-N981W", + "SM-N985F", + "SM-N9860", + "SM-N986B", + "SM-N986N", + "SM-N986U", + "SM-N986U1", + "SM-N986W", + "SM-P200", + "SM-P205", + "SM-P350", + "SM-P355", + "SM-P355C", + "SM-P355M", + "SM-P355Y", + "SM-P550", + "SM-P555", + "SM-P555C", + "SM-P555K", + "SM-P555L", + "SM-P555M", + "SM-P555S", + "SM-P555Y", + "SM-P580", + "SM-P580X", + "SM-P583", + "SM-P585", + "SM-P585M", + "SM-P585N0", + "SM-P585Y", + "SM-P587", + "SM-P588C", + "SM-P600", + "SM-P601", + "SM-P602", + "SM-P605", + "SM-P605K", + "SM-P605L", + "SM-P605M", + "SM-P605S", + "SM-P605V", + "SM-P607T", + "SM-P610", + "SM-P610X", + "SM-P613", + "SM-P615", + "SM-P615C", + "SM-P615N", + "SM-P617", + "SM-P619", + "SM-P900", + "SM-P901", + "SM-P905", + "SM-P905F0", + "SM-P905M", + "SM-P905V", + "SM-R860", + "SM-R865F", + "SM-R865N", + "SM-R865U", + "SM-R870", + "SM-R875F", + "SM-R875N", + "SM-R875U", + "SM-R880", + "SM-R885F", + "SM-R885N", + "SM-R885U", + "SM-R890", + "SM-R8950", + "SM-R895F", + "SM-R895N", + "SM-R895U", + "SM-R900", + "SM-R905F", + "SM-R905N", + "SM-R905U", + "SM-R910", + "SM-R9150", + "SM-R915F", + "SM-R915N", + "SM-R915U", + "SM-R920", + "SM-R925F", + "SM-R925N", + "SM-R925U", + "SM-S102DL", + "SM-S111DL", + "SM-S120VL", + "SM-S124DL", + "SM-S127DL", + "SM-S134DL", + "SM-S136DL", + "SM-S205DL", + "SM-S215DL", + "SM-S236DL", + "SM-S260DL", + "SM-S320VL", + "SM-S326DL", + "SM-S327VL", + "SM-S337TL", + "SM-S357BL", + "SM-S367VL", + "SM-S426DL", + "SM-S506DL", + "SM-S515DL", + "SM-S536DL", + "SM-S550TL", + "SM-S727VL", + "SM-S737TL", + "SM-S757BL", + "SM-S765C", + "SM-S766C", + "SM-S767VL", + "SM-S777C", + "SM-S820L", + "SM-S9010", + "SM-S901B", + "SM-S901E", + "SM-S901N", + "SM-S901U", + "SM-S901U1", + "SM-S901W", + "SM-S903VL", + "SM-S9060", + "SM-S906B", + "SM-S906E", + "SM-S906L", + "SM-S906N", + "SM-S906U", + "SM-S906U1", + "SM-S906W", + "SM-S907VL", + "SM-S9080", + "SM-S908B", + "SM-S908E", + "SM-S908N", + "SM-S908U", + "SM-S908U1", + "SM-S908W", + "SM-S920L", + "SM-S975L", + "SM-S978L", + "SM-T110", + "SM-T111", + "SM-T111M", + "SM-T113", + "SM-T113NU", + "SM-T116", + "SM-T116BU", + "SM-T116IR", + "SM-T116NQ", + "SM-T116NU", + "SM-T116NY", + "SM-T210", + "SM-T2105", + "SM-T210L", + "SM-T210R", + "SM-T210X", + "SM-T211", + "SM-T211M", + "SM-T212", + "SM-T215", + "SM-T217S", + "SM-T217T", + "SM-T220", + "SM-T225", + "SM-T225C", + "SM-T225N", + "SM-T227", + "SM-T227U", + "SM-T230", + "SM-T230NT", + "SM-T230NU", + "SM-T230NW", + "SM-T230NY", + "SM-T230NZ", + "SM-T230X", + "SM-T231", + "SM-T232", + "SM-T235", + "SM-T235Y", + "SM-T237P", + "SM-T237V", + "SM-T239", + "SM-T2397", + "SM-T239C", + "SM-T239M", + "SM-T2519", + "SM-T255S", + "SM-T280", + "SM-T285", + "SM-T285M", + "SM-T285YD", + "SM-T287", + "SM-T290", + "SM-T295", + "SM-T295C", + "SM-T295N", + "SM-T297", + "SM-T307U", + "SM-T310", + "SM-T310X", + "SM-T311", + "SM-T312", + "SM-T315", + "SM-T315T", + "SM-T320", + "SM-T320NU", + "SM-T320X", + "SM-T325", + "SM-T330", + "SM-T330NU", + "SM-T330X", + "SM-T331", + "SM-T335", + "SM-T335K", + "SM-T335L", + "SM-T337T", + "SM-T337V", + "SM-T350", + "SM-T350X", + "SM-T355", + "SM-T355C", + "SM-T355Y", + "SM-T357T", + "SM-T357W", + "SM-T360", + "SM-T365", + "SM-T365F0", + "SM-T365M", + "SM-T365Y", + "SM-T375L", + "SM-T375S", + "SM-T3777", + "SM-T377P", + "SM-T377R4", + "SM-T377T", + "SM-T377V", + "SM-T377W", + "SM-T378K", + "SM-T378L", + "SM-T378S", + "SM-T378V", + "SM-T380", + "SM-T380C", + "SM-T385", + "SM-T385C", + "SM-T385K", + "SM-T385L", + "SM-T385M", + "SM-T385S", + "SM-T387AA", + "SM-T387P", + "SM-T387R4", + "SM-T387T", + "SM-T387V", + "SM-T387VK", + "SM-T387W", + "SM-T390", + "SM-T395", + "SM-T395C", + "SM-T395N", + "SM-T397U", + "SM-T500", + "SM-T503", + "SM-T505", + "SM-T505C", + "SM-T505N", + "SM-T507", + "SM-T509", + "SM-T510", + "SM-T515", + "SM-T515N", + "SM-T517", + "SM-T517P", + "SM-T520", + "SM-T520CC", + "SM-T525", + "SM-T530", + "SM-T530NN", + "SM-T530NU", + "SM-T530X", + "SM-T531", + "SM-T533", + "SM-T535", + "SM-T536", + "SM-T537R4", + "SM-T537V", + "SM-T540", + "SM-T545", + "SM-T547", + "SM-T547U", + "SM-T550", + "SM-T550X", + "SM-T555", + "SM-T555C", + "SM-T560", + "SM-T560NU", + "SM-T561", + "SM-T561M", + "SM-T561Y", + "SM-T562", + "SM-T567V", + "SM-T575", + "SM-T575N", + "SM-T577", + "SM-T577U", + "SM-T580", + "SM-T580X", + "SM-T583", + "SM-T585", + "SM-T585C", + "SM-T585M", + "SM-T585N0", + "SM-T587", + "SM-T587P", + "SM-T590", + "SM-T595", + "SM-T595C", + "SM-T595N", + "SM-T597", + "SM-T597P", + "SM-T597V", + "SM-T597W", + "SM-T636B", + "SM-T636N", + "SM-T638B", + "SM-T638U", + "SM-T670", + "SM-T677", + "SM-T677NK", + "SM-T677NL", + "SM-T677V", + "SM-T700", + "SM-T705", + "SM-T705C", + "SM-T705M", + "SM-T705W", + "SM-T705Y", + "SM-T707V", + "SM-T710", + "SM-T710X", + "SM-T713", + "SM-T715", + "SM-T715C", + "SM-T715N0", + "SM-T715Y", + "SM-T719", + "SM-T719C", + "SM-T719Y", + "SM-T720", + "SM-T725", + "SM-T725C", + "SM-T725N", + "SM-T727", + "SM-T727A", + "SM-T727R4", + "SM-T727U", + "SM-T727V", + "SM-T730", + "SM-T733", + "SM-T735", + "SM-T735C", + "SM-T735N", + "SM-T736B", + "SM-T736N", + "SM-T737", + "SM-T738U", + "SM-T800", + "SM-T800X", + "SM-T805", + "SM-T805C", + "SM-T805K", + "SM-T805L", + "SM-T805M", + "SM-T805S", + "SM-T805W", + "SM-T805Y", + "SM-T807", + "SM-T807P", + "SM-T807R4", + "SM-T807T", + "SM-T807V", + "SM-T810", + "SM-T810X", + "SM-T813", + "SM-T815", + "SM-T815C", + "SM-T815N0", + "SM-T815Y", + "SM-T817", + "SM-T817P", + "SM-T817R4", + "SM-T817T", + "SM-T817V", + "SM-T817W", + "SM-T818", + "SM-T818T", + "SM-T818V", + "SM-T818W", + "SM-T819", + "SM-T819C", + "SM-T819Y", + "SM-T820", + "SM-T820X", + "SM-T825", + "SM-T825C", + "SM-T825N0", + "SM-T825X", + "SM-T825Y", + "SM-T827", + "SM-T827R4", + "SM-T827V", + "SM-T830", + "SM-T835", + "SM-T835C", + "SM-T835N", + "SM-T837", + "SM-T837A", + "SM-T837P", + "SM-T837R4", + "SM-T837T", + "SM-T837V", + "SM-T860", + "SM-T865", + "SM-T865N", + "SM-T866N", + "SM-T867", + "SM-T867R4", + "SM-T867U", + "SM-T867V", + "SM-T870", + "SM-T875", + "SM-T875N", + "SM-T878U", + "SM-T900", + "SM-T900X", + "SM-T905", + "SM-T927A", + "SM-T970", + "SM-T975", + "SM-T975N", + "SM-T976B", + "SM-T976N", + "SM-T978U", + "SMT-E5015", + "SMT-i9100", + "SM-W2014", + "SM-W2015", + "SM-W2016", + "SM-W2017", + "SM-W2018", + "SM-W2018X", + "SM-W2020", + "SM-W2021", + "SM-W2022", + "SM-W7023", + "SM-X200", + "SM-X205", + "SM-X205C", + "SM-X205N", + "SM-X207", + "SM-X700", + "SM-X706B", + "SM-X706C", + "SM-X706N", + "SM-X800", + "SM-X806B", + "SM-X806C", + "SM-X806E", + "SM-X806N", + "SM-X808U", + "SM-X900", + "SM-X906B", + "SM-X906C", + "SM-X906N", + "SO-01F", + "SO-01G", + "SO-01H", + "SO-01J", + "SO-01K", + "SO-01L", + "SO-01M", + "SO-02E", + "SO-02F", + "SO-02G", + "SO-02H", + "SO-02J", + "SO-02K", + "SO-02L", + "SO-03D", + "SO-03F", + "SO-03G", + "SO-03H", + "SO-03J", + "SO-03K", + "SO-03L", + "SO-04E", + "SO-04F", + "SO-04G", + "SO-04H", + "SO-04J", + "SO-04K", + "SO-05F", + "SO-05G", + "SO-05K", + "SO-41A", + "SO-41B", + "SO-51A", + "SO-51B", + "SO-51C", + "SO-52A", + "SO-52B", + "SO-52C", + "SO-53B", + "SO-53C", + "SO-54C", + "SOG01", + "SOG02", + "SOG03", + "SOG04", + "SOG05", + "SOG06", + "SOG07", + "SOG08", + "SOG09", + "SOL23", + "SOL24", + "SOL25", + "SOL26", + "Sony Tablet P", + "Sony Tablet S", + "SOT21", + "SOT31", + "SOV31", + "SOV32", + "SOV33", + "SOV34", + "SOV35", + "SOV36", + "SOV37", + "SOV38", + "SOV39", + "SOV40", + "SOV41", + "SOV42", + "SOV42-u", + "SOV43", + "SPH-D700", + "SPH-D710", + "SPH-D710BST", + "SPH-D710VMUB", + "SPH-L300", + "SPH-L500", + "SPH-L520", + "SPH-L600", + "SPH-L710", + "SPH-L710T", + "SPH-L720", + "SPH-L720T", + "SPH-L900", + "SPH-M580", + "SPH-M580BST", + "SPH-M820-BST", + "SPH-M830", + "SPH-M840", + "SPH-M900", + "SPH-M910", + "SPH-M920", + "SPH-M930", + "SPH-M930BST", + "SPH-M950", + "SPH-P100", + "SPH-P500", + "SPH-P600", + "Spice Mi-350", + "ST17i", + "ST18i", + "ST21a", + "ST21a2", + "ST21i", + "ST21i2", + "ST23a", + "ST23i", + "ST25a", + "ST25i", + "ST26a", + "ST26i", + "ST27a", + "ST27i", + "STH100-1", + "STH100-2", + "STV100-1", + "STV100-2", + "STV100-3", + "STV100-4", + "TA-1000", + "TA-1003", + "TA-1004", + "TA-1012", + "TA-1020", + "TA-1021", + "TA-1024", + "TA-1025", + "TA-1027", + "TA-1028", + "TA-1032", + "TA-1033", + "TA-1038", + "TA-1039", + "TA-1041", + "TA-1044", + "TA-1052", + "TA-1053", + "TA-1054", + "TAB A10-80HC", + "Tab2A7-10F", + "Tab2A7-20F", + "TB128FU", + "TB128XC", + "TB132FU", + "TB138FC", + "TB230FC", + "TB230XC", + "TB300FU", + "TB300XU", + "TB310FU", + "TB328FU", + "TB328XU", + "TB350FU", + "TB350XU", + "TB-8504F", + "TB-8704V", + "TBD", + "TB-X304F", + "TB-X304N", + "TB-X704A", + "TB-X704N", + "TB-X704V", + "ThinkPad 11e Chromebook 3rd Gen (Yoga/Clamshell)", + "Thinkpad 13 Chromebook", + "ThinkPad Tablet", + "ThinkVision28", + "Thyme", + "toco", + "U3", + "U705T", + "U705W", + "U707", + "U707T", + "U708", + "Umi", + "V1730EA", + "V1731CA", + "V1732A", + "V1809A", + "V1813A", + "V1813BA", + "V1813BT", + "V1814A", + "V1816A", + "V1818A", + "V1818BA", + "V1818CA", + "V1821A", + "V1824A", + "V1829A", + "V1831A", + "V1832A", + "V1836A", + "V1838A", + "V1901A", + "V1911A", + "V1913A", + "V1914A", + "V1916A", + "V1921A", + "V1922A", + "V1923A", + "V1924A", + "V1926", + "V1928A", + "V1930", + "V1930A", + "V1932A", + "V1934A", + "V1936A", + "V1936AL", + "V1937", + "V1938CT", + "V1938T", + "V1941A", + "V1945A", + "V1950A", + "V1955A", + "V1962A", + "V1963A", + "V1965A", + "V1981A", + "V1986A", + "V1990A", + "V2001A", + "V2002A", + "V2005A", + "V2006", + "V2009A", + "V2011A", + "V2012A", + "V2019A", + "V2020A", + "V2022", + "V2023", + "V2023A", + "V2023EA", + "V2024", + "V2024A", + "V2025", + "V2025A", + "V2026", + "V2026_21", + "V2027", + "V2028", + "V2029", + "V2029_PK", + "V2030", + "V2031", + "V2031_21", + "V2031A", + "V2031EA", + "V2032", + "V2033", + "V2034", + "V2034A", + "V2035", + "V2036", + "V2036_21", + "V2036A", + "V2037", + "V2038", + "V2039", + "V2040", + "V2041", + "V2042", + "V2043", + "V2043_21", + "V2044", + "V2045", + "V2045A", + "V2046", + "V2046A", + "V2047", + "V2047A", + "V2048", + "V2048A", + "V2049A", + "V2050", + "V2052", + "V2053", + "V2054", + "V2054A", + "V2055", + "V2055A", + "V2056A", + "V2057", + "V2057A", + "V2058", + "V2059", + "V2059A", + "V2060", + "V2061", + "V2061A", + "V2065", + "V2065A", + "V2066", + "V2066A", + "V2066BA", + "V2068", + "V2068A", + "V2069", + "V2069A", + "V2069BA", + "V2070", + "V2072A", + "V2073A", + "V2080A", + "V2085A", + "V2099A", + "V2101", + "V2102", + "V2102A", + "V2104", + "V2105", + "V2106A", + "V2108", + "V2109", + "V2110", + "V2111", + "V2111A", + "V2111-EG", + "V2113", + "V2114", + "V2115", + "V2115A", + "V2116", + "V2117", + "V2118", + "V2118A", + "V2120", + "V2121A", + "V2123A", + "V2124", + "V2125", + "V2126", + "V2127", + "V2129", + "V2130", + "V2130A", + "V2131", + "V2131A", + "V2132", + "V2132A", + "V2133A", + "V2134", + "V2134A", + "V2135", + "V2135A", + "V2136", + "V2136A", + "V2136GA", + "V2139", + "V2140", + "V2140A", + "V2141", + "V2141A", + "V2142", + "V2143", + "V2143A", + "V2144", + "V2145", + "V2145A", + "V2146", + "V2147", + "V2148A", + "V2149", + "V2150", + "V2151", + "V2152", + "V2153", + "V2154", + "V2154A", + "V2156A", + "V2156FA", + "V2157A", + "V2158", + "V2158A", + "V2160", + "V2162", + "V2162A", + "V2163A", + "V2164A", + "V2164KA", + "V2164PA", + "V2165A", + "V2166", + "V2166A", + "V2166BA", + "V2168", + "V2168A", + "V2170A", + "V2171A", + "V2172A", + "V2178A", + "V2180A", + "V2180GA", + "V2183A", + "V2185A", + "V2186A", + "V2188A", + "V2196A", + "V2197A", + "V2199A", + "V2199GA", + "V2201", + "V2202", + "V2202A", + "V2203", + "V2203A", + "V2204", + "V2205", + "V2206", + "V2207", + "V2207A", + "V2208", + "V2209", + "V2212", + "V2214", + "V2217A", + "V2218A", + "V2219A", + "V2220A", + "V2228", + "V2229", + "V2229A", + "VIBE X2Pt5", + "vivo 1601", + "vivo 1603", + "vivo 1606", + "vivo 1609", + "vivo 1610", + "vivo 1611", + "vivo 1707", + "vivo 1713", + "vivo 1714", + "vivo 1716", + "vivo 1718", + "vivo 1719", + "vivo 1720", + "vivo 1721", + "vivo 1723", + "vivo 1724", + "vivo 1725", + "vivo 1726", + "vivo 1727", + "vivo 1801", + "vivo 1802", + "vivo 1803", + "vivo 1804", + "vivo 1805", + "vivo 1806", + "vivo 1807", + "vivo 1808", + "vivo 1811", + "vivo 1812", + "vivo 1813", + "vivo 1814", + "vivo 1815", + "vivo 1816", + "vivo 1817", + "vivo 1818", + "vivo 1819", + "vivo 1820", + "vivo 1851", + "vivo 1901", + "vivo 1902", + "vivo 1904", + "vivo 1906", + "vivo 1907", + "vivo 1909", + "vivo 1910", + "vivo 1912", + "vivo 1913", + "vivo 1914", + "vivo 1915", + "vivo 1916", + "vivo 1917", + "vivo 1919", + "vivo 1920", + "vivo 1921", + "vivo 1929", + "vivo 1933", + "vivo 1935", + "vivo 1937", + "vivo 1938", + "vivo 1940", + "vivo 1951", + "vivo 2004", + "vivo 2005", + "vivo 2006", + "vivo 2007", + "vivo 2010", + "vivo 2015", + "vivo 2015_21", + "vivo 2018", + "vivo 2019", + "vivo NEX A", + "vivo NEX S", + "vivo PD1415A", + "vivo PD1501D", + "vivo PD1515A", + "vivo PD1515BA", + "vivo PD1522A", + "vivo PD1523A", + "vivo PD1524B", + "vivo PD1612", + "vivo PD1616B", + "vivo PD1628", + "vivo PD1635", + "vivo PD1708", + "vivo PD1709", + "vivo PD1710", + "vivo PD1721", + "vivo V1", + "vivo V3", + "vivo V3Lite", + "vivo V3Max", + "vivo V3Max+ A", + "vivo V5Plus", + "vivo X20A", + "vivo X20Plus A", + "vivo X20Plus UD", + "vivo X21A", + "vivo X21i A", + "vivo X21UD A", + "vivo X5", + "vivo X5M", + "vivo X5Max", + "vivo X5Max S", + "vivo X5MaxV", + "vivo X5Pro", + "vivo X5Pro D", + "vivo X5Pro V", + "vivo X6D", + "vivo X6S A", + "vivo X7", + "vivo X7Plus", + "vivo X9", + "vivo X9i", + "vivo X9Plus", + "vivo X9s", + "vivo X9s Plus", + "vivo Xplay5A", + "vivo Xplay6", + "vivo Y11", + "vivo Y13iL", + "vivo Y15", + "vivo Y15S", + "vivo Y21", + "vivo Y21L", + "vivo Y22", + "vivo Y27", + "vivo Y28", + "vivo Y31", + "vivo Y31i", + "vivo Y31L", + "vivo Y33", + "vivo Y35", + "vivo Y35A", + "vivo Y37", + "vivo Y51", + "vivo Y51A", + "vivo Y55", + "vivo Y66", + "vivo Y66i A", + "vivo Y67", + "vivo Y69A", + "vivo Y71A", + "vivo Y75A", + "vivo Y75s", + "vivo Y79A", + "vivo Y83A", + "vivo Y85A", + "vivo Y89", + "vivo Y923", + "vivo Y937", + "vivo Z1", + "vivo Z1i", + "vivo Z3x", + "Vodafone Smart Tab III 10", + "Vodafone Smart Tab III 7", + "VR-1541F", + "VR-S3", + "willow", + "X18_Ultra", + "X67 5G", + "X9000", + "X9006", + "X9007", + "X9009", + "X9009fw", + "X9070", + "X9076", + "X9077", + "X9079", + "X909", + "X909T", + "XIG01", + "XIG02", + "XL39h", + "XQ-AD51", + "XQ-AD52", + "XQ-AQ52", + "XQ-AQ62", + "XQ-AS42", + "XQ-AS52", + "XQ-AS62", + "XQ-AS72", + "XQ-AT42", + "XQ-AT51", + "XQ-AT52", + "XQ-AT72", + "XQ-AU42", + "XQ-AU51", + "XQ-AU52", + "XQ-BC42", + "XQ-BC52", + "XQ-BC62", + "XQ-BC72", + "XQ-BE42", + "XQ-BE52", + "XQ-BE62", + "XQ-BE72", + "XQ-BQ42", + "XQ-BQ52", + "XQ-BQ62", + "XQ-BQ72", + "XQ-BT44", + "XQ-BT52", + "XQ-CC44", + "XQ-CC54", + "XQ-CC72", + "XQ-CQ44", + "XQ-CQ54", + "XQ-CQ62", + "XQ-CQ72", + "XQ-CT44", + "XQ-CT54", + "XQ-CT62", + "XQ-CT72", + "XT1662", + "XT1663", + "XT1700", + "XT1706", + "XT1902-3", + "XT2261-1", + "XT2261-2", + "Y Series", + "YOGA Tablet 2 Pro-1380F", + "YOGA Tablet 2 Pro-1380L", + "YOGA Tablet 2-1050F", + "YOGA Tablet 2-1050L", + "YOGA Tablet 2-1050LC", + "YOGA Tablet 2-830F", + "YOGA Tablet 2-830L", + "YOGA Tablet 2-830LC", + "YP-G1", + "YP-G50", + "YP-G70", + "YP-GB1", + "YP-GB70", + "YP-GB70D", + "YP-GH1", + "YP-GI1", + "YP-GI2", + "YP-GP1", + "YP-GS1", +]; +exports.timeZoneData = [ + { + "timeZoneName": "Abidjan", + "timeId": "Africa/Abidjan", + "timeSn": "1000", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Accra", + "timeId": "Africa/Accra", + "timeSn": "1001", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Addis Ababa", + "timeId": "Africa/Addis_Ababa", + "timeSn": "1002", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Algiers", + "timeId": "Africa/Algiers", + "timeSn": "1003", + "timeZoneGMT": "CET-1" + }, + { + "timeZoneName": "Asmara", + "timeId": "Africa/Asmara", + "timeSn": "1004", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Bamako", + "timeId": "Africa/Bamako", + "timeSn": "1005", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Bangui", + "timeId": "Africa/Bangui", + "timeSn": "1006", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Banjul", + "timeId": "Africa/Banjul", + "timeSn": "1007", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Bissau", + "timeId": "Africa/Bissau", + "timeSn": "1008", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Blantyre", + "timeId": "Africa/Blantyre", + "timeSn": "1009", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Brazzaville", + "timeId": "Africa/Brazzaville", + "timeSn": "1010", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Bujumbura", + "timeId": "Africa/Bujumbura", + "timeSn": "1011", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Cairo", + "timeId": "Africa/Cairo", + "timeSn": "1012", + "timeZoneGMT": "EET-2" + }, + { + "timeZoneName": "Casablanca", + "timeId": "Africa/Casablanca", + "timeSn": "1013", + "timeZoneGMT": "\u003c+01\u003e-1" + }, + { + "timeZoneName": "Ceuta", + "timeId": "Africa/Ceuta", + "timeSn": "1014", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Conakry", + "timeId": "Africa/Conakry", + "timeSn": "1015", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Dakar", + "timeId": "Africa/Dakar", + "timeSn": "1016", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Dar es Salaam", + "timeId": "Africa/Dar_es_Salaam", + "timeSn": "1017", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Djibouti", + "timeId": "Africa/Djibouti", + "timeSn": "1018", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Douala", + "timeId": "Africa/Douala", + "timeSn": "1019", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "El Aaiun", + "timeId": "Africa/El_Aaiun", + "timeSn": "1020", + "timeZoneGMT": "\u003c+01\u003e-1" + }, + { + "timeZoneName": "Freetown", + "timeId": "Africa/Freetown", + "timeSn": "1021", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Gaborone", + "timeId": "Africa/Gaborone", + "timeSn": "1022", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Harare", + "timeId": "Africa/Harare", + "timeSn": "1023", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Johannesburg", + "timeId": "Africa/Johannesburg", + "timeSn": "1024", + "timeZoneGMT": "SAST-2" + }, + { + "timeZoneName": "Juba", + "timeId": "Africa/Juba", + "timeSn": "1025", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Kampala", + "timeId": "Africa/Kampala", + "timeSn": "1026", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Khartoum", + "timeId": "Africa/Khartoum", + "timeSn": "1027", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Kigali", + "timeId": "Africa/Kigali", + "timeSn": "1028", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Kinshasa", + "timeId": "Africa/Kinshasa", + "timeSn": "1029", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Lagos", + "timeId": "Africa/Lagos", + "timeSn": "1030", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Libreville", + "timeId": "Africa/Libreville", + "timeSn": "1031", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Lome", + "timeId": "Africa/Lome", + "timeSn": "1032", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Luanda", + "timeId": "Africa/Luanda", + "timeSn": "1033", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Lubumbashi", + "timeId": "Africa/Lubumbashi", + "timeSn": "1034", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Lusaka", + "timeId": "Africa/Lusaka", + "timeSn": "1035", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Malabo", + "timeId": "Africa/Malabo", + "timeSn": "1036", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Maputo", + "timeId": "Africa/Maputo", + "timeSn": "1037", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Maseru", + "timeId": "Africa/Maseru", + "timeSn": "1038", + "timeZoneGMT": "SAST-2" + }, + { + "timeZoneName": "Mbabane", + "timeId": "Africa/Mbabane", + "timeSn": "1039", + "timeZoneGMT": "SAST-2" + }, + { + "timeZoneName": "Mogadishu", + "timeId": "Africa/Mogadishu", + "timeSn": "1040", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Monrovia", + "timeId": "Africa/Monrovia", + "timeSn": "1041", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Nairobi", + "timeId": "Africa/Nairobi", + "timeSn": "1042", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Ndjamena", + "timeId": "Africa/Ndjamena", + "timeSn": "1043", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Niamey", + "timeId": "Africa/Niamey", + "timeSn": "1044", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Nouakchott", + "timeId": "Africa/Nouakchott", + "timeSn": "1045", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Ouagadougou", + "timeId": "Africa/Ouagadougou", + "timeSn": "1046", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Porto-Novo", + "timeId": "Africa/Porto-Novo", + "timeSn": "1047", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Saint Thomas", + "timeId": "Africa/Sao_Tome", + "timeSn": "1048", + "timeZoneGMT": "WAT-1" + }, + { + "timeZoneName": "Timbuktu", + "timeId": "Africa/Timbuktu", + "timeSn": "1049", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Tripoli", + "timeId": "Africa/Tripoli", + "timeSn": "1050", + "timeZoneGMT": "EET-2" + }, + { + "timeZoneName": "Tunis", + "timeId": "Africa/Tunis", + "timeSn": "1051", + "timeZoneGMT": "CET-1" + }, + { + "timeZoneName": "Windhoek", + "timeId": "Africa/Windhoek", + "timeSn": "1052", + "timeZoneGMT": "CAT-2" + }, + { + "timeZoneName": "Adak", + "timeId": "America/Adak", + "timeSn": "1053", + "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Anchorage", + "timeId": "America/Anchorage", + "timeSn": "1054", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Anguilla", + "timeId": "America/Anguilla", + "timeSn": "1055", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Antigua", + "timeId": "America/Antigua", + "timeSn": "1056", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Araguaina", + "timeId": "America/Araguaina", + "timeSn": "1057", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Buenos Aires", + "timeId": "America/Argentina/Buenos_Aires", + "timeSn": "1058", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Catamarca", + "timeId": "America/Argentina/Catamarca", + "timeSn": "1059", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "ComodRivadavia", + "timeId": "America/Argentina/ComodRivadavia", + "timeSn": "1060", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Cordoba", + "timeId": "America/Argentina/Cordoba", + "timeSn": "1061", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Jujuy", + "timeId": "America/Argentina/Jujuy", + "timeSn": "1062", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "La Rioja", + "timeId": "America/Argentina/La_Rioja", + "timeSn": "1063", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Mendoza", + "timeId": "America/Argentina/Mendoza", + "timeSn": "1064", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Rio Gallegos", + "timeId": "America/Argentina/Rio_Gallegos", + "timeSn": "1065", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Salta", + "timeId": "America/Argentina/Salta", + "timeSn": "1066", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "San Juan", + "timeId": "America/Argentina/San_Juan", + "timeSn": "1067", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "San Luis", + "timeId": "America/Argentina/San_Luis", + "timeSn": "1068", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Tucuman", + "timeId": "America/Argentina/Tucuman", + "timeSn": "1069", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Ushuaia", + "timeId": "America/Argentina/Ushuaia", + "timeSn": "1070", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Aruba", + "timeId": "America/Aruba", + "timeSn": "1071", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Asuncion", + "timeId": "America/Asuncion", + "timeSn": "1072", + "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M10.1.0/0,M3.4.0/0" + }, + { + "timeZoneName": "Atikokan", + "timeId": "America/Atikokan", + "timeSn": "1073", + "timeZoneGMT": "EST5" + }, + { + "timeZoneName": "Atka", + "timeId": "America/Atka", + "timeSn": "1074", + "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Bahia", + "timeId": "America/Bahia", + "timeSn": "1075", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Bahia Banderas", + "timeId": "America/Bahia_Banderas", + "timeSn": "1076", + "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Barbados", + "timeId": "America/Barbados", + "timeSn": "1077", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Belem", + "timeId": "America/Belem", + "timeSn": "1078", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Belize", + "timeId": "America/Belize", + "timeSn": "1079", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Blanc-Sablon", + "timeId": "America/Blanc-Sablon", + "timeSn": "1080", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Boa Vista", + "timeId": "America/Boa_Vista", + "timeSn": "1081", + "timeZoneGMT": "\u003c-04\u003e4" + }, + { + "timeZoneName": "Bogota", + "timeId": "America/Bogota", + "timeSn": "1082", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "Boise", + "timeId": "America/Boise", + "timeSn": "1083", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Cambridge Bay", + "timeId": "America/Cambridge_Bay", + "timeSn": "1084", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Campo Grande", + "timeId": "America/Campo_Grande", + "timeSn": "1085", + "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M11.1.0/0,M2.3.0/0" + }, + { + "timeZoneName": "Cancun", + "timeId": "America/Cancun", + "timeSn": "1086", + "timeZoneGMT": "EST5" + }, + { + "timeZoneName": "Caracas", + "timeId": "America/Caracas", + "timeSn": "1087", + "timeZoneGMT": "\u003c-04\u003e4" + }, + { + "timeZoneName": "Cayenne", + "timeId": "America/Cayenne", + "timeSn": "1088", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Cayman", + "timeId": "America/Cayman", + "timeSn": "1089", + "timeZoneGMT": "EST5" + }, + { + "timeZoneName": "Chicago", + "timeId": "America/Chicago", + "timeSn": "1090", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Chihuahua", + "timeId": "America/Chihuahua", + "timeSn": "1091", + "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Costa Rica", + "timeId": "America/Costa_Rica", + "timeSn": "1092", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Creston", + "timeId": "America/Creston", + "timeSn": "1093", + "timeZoneGMT": "MST7" + }, + { + "timeZoneName": "Cuiaba", + "timeId": "America/Cuiaba", + "timeSn": "1094", + "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M11.1.0/0,M2.3.0/0" + }, + { + "timeZoneName": "Curacao", + "timeId": "America/Curacao", + "timeSn": "1095", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Danmarkshavn", + "timeId": "America/Danmarkshavn", + "timeSn": "1096", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Dawson", + "timeId": "America/Dawson", + "timeSn": "1097", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Dawson Creek", + "timeId": "America/Dawson_Creek", + "timeSn": "1098", + "timeZoneGMT": "MST7" + }, + { + "timeZoneName": "Denver", + "timeId": "America/Denver", + "timeSn": "1099", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Detroit", + "timeId": "America/Detroit", + "timeSn": "1100", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Dominica", + "timeId": "America/Dominica", + "timeSn": "1101", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Edmonton", + "timeId": "America/Edmonton", + "timeSn": "1102", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Eirunepe", + "timeId": "America/Eirunepe", + "timeSn": "1103", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "El Salvador", + "timeId": "America/El_Salvador", + "timeSn": "1104", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Ensenada", + "timeId": "America/Ensenada", + "timeSn": "1105", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Fort Nelson", + "timeId": "America/Fort_Nelson", + "timeSn": "1106", + "timeZoneGMT": "MST7" + }, + { + "timeZoneName": "Fort Wayne", + "timeId": "America/Fort_Wayne", + "timeSn": "1107", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Fortaleza", + "timeId": "America/Fortaleza", + "timeSn": "1108", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Glace Bay", + "timeId": "America/Glace_Bay", + "timeSn": "1109", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Nuuk", + "timeId": "America/Godthab", + "timeSn": "1110", + "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M3.5.0,M10.5.0" + }, + { + "timeZoneName": "Goose Bay", + "timeId": "America/Goose_Bay", + "timeSn": "1111", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Grand Turk", + "timeId": "America/Grand_Turk", + "timeSn": "1112", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Grenada", + "timeId": "America/Grenada", + "timeSn": "1113", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Guadeloupe", + "timeId": "America/Guadeloupe", + "timeSn": "1114", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Guatemala", + "timeId": "America/Guatemala", + "timeSn": "1115", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Guayaquil", + "timeId": "America/Guayaquil", + "timeSn": "1116", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "Guyana", + "timeId": "America/Guyana", + "timeSn": "1117", + "timeZoneGMT": "\u003c-04\u003e4" + }, + { + "timeZoneName": "Halifax", + "timeId": "America/Halifax", + "timeSn": "1118", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Havana", + "timeId": "America/Havana", + "timeSn": "1119", + "timeZoneGMT": "CST5CDT,M3.2.0/0,M11.1.0/1" + }, + { + "timeZoneName": "Hermosillo", + "timeId": "America/Hermosillo", + "timeSn": "1120", + "timeZoneGMT": "MST7" + }, + { + "timeZoneName": "Indianapolis", + "timeId": "America/Indiana/Indianapolis", + "timeSn": "1121", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Knox, Indiana", + "timeId": "America/Indiana/Knox", + "timeSn": "1122", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Marengo, Indiana", + "timeId": "America/Indiana/Marengo", + "timeSn": "1123", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Petersburg, Indiana", + "timeId": "America/Indiana/Petersburg", + "timeSn": "1124", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Tell City, Indiana", + "timeId": "America/Indiana/Tell_City", + "timeSn": "1125", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Vevay, Indiana", + "timeId": "America/Indiana/Vevay", + "timeSn": "1126", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Vincennes, Indiana", + "timeId": "America/Indiana/Vincennes", + "timeSn": "1127", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Winamac, Indiana", + "timeId": "America/Indiana/Winamac", + "timeSn": "1128", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Inuvik", + "timeId": "America/Inuvik", + "timeSn": "1129", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Iqaluit", + "timeId": "America/Iqaluit", + "timeSn": "1130", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Jamaica", + "timeId": "America/Jamaica", + "timeSn": "1131", + "timeZoneGMT": "EST5" + }, + { + "timeZoneName": "Juneau", + "timeId": "America/Juneau", + "timeSn": "1132", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Louisville", + "timeId": "America/Kentucky/Louisville", + "timeSn": "1133", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Monticello, Kentucky", + "timeId": "America/Kentucky/Monticello", + "timeSn": "1134", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Knox IN", + "timeId": "America/Knox_IN", + "timeSn": "1135", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Kralendijk", + "timeId": "America/Kralendijk", + "timeSn": "1136", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "La Paz", + "timeId": "America/La_Paz", + "timeSn": "1137", + "timeZoneGMT": "\u003c-04\u003e4" + }, + { + "timeZoneName": "Lima", + "timeId": "America/Lima", + "timeSn": "1138", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "Los Angeles", + "timeId": "America/Los_Angeles", + "timeSn": "1139", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Lower Prince’s Quarter", + "timeId": "America/Lower_Princes", + "timeSn": "1140", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Maceio", + "timeId": "America/Maceio", + "timeSn": "1141", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Managua", + "timeId": "America/Managua", + "timeSn": "1142", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Manaus", + "timeId": "America/Manaus", + "timeSn": "1143", + "timeZoneGMT": "\u003c-04\u003e4" + }, + { + "timeZoneName": "Marigot", + "timeId": "America/Marigot", + "timeSn": "1144", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Martinique", + "timeId": "America/Martinique", + "timeSn": "1145", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Matamoros", + "timeId": "America/Matamoros", + "timeSn": "1146", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Mazatlan", + "timeId": "America/Mazatlan", + "timeSn": "1147", + "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Menominee", + "timeId": "America/Menominee", + "timeSn": "1148", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Merida", + "timeId": "America/Merida", + "timeSn": "1149", + "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Metlakatla", + "timeId": "America/Metlakatla", + "timeSn": "1150", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Mexico City", + "timeId": "America/Mexico_City", + "timeSn": "1151", + "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Miquelon", + "timeId": "America/Miquelon", + "timeSn": "1152", + "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Moncton", + "timeId": "America/Moncton", + "timeSn": "1153", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Monterrey", + "timeId": "America/Monterrey", + "timeSn": "1154", + "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Montevideo", + "timeId": "America/Montevideo", + "timeSn": "1155", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Montreal", + "timeId": "America/Montreal", + "timeSn": "1156", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Montserrat", + "timeId": "America/Montserrat", + "timeSn": "1157", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Nassau", + "timeId": "America/Nassau", + "timeSn": "1158", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "New York", + "timeId": "America/New_York", + "timeSn": "1159", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Nipigon", + "timeId": "America/Nipigon", + "timeSn": "1160", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Nome", + "timeId": "America/Nome", + "timeSn": "1161", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Noronha", + "timeId": "America/Noronha", + "timeSn": "1162", + "timeZoneGMT": "\u003c-02\u003e2" + }, + { + "timeZoneName": "Beulah, North Dakota", + "timeId": "America/North_Dakota/Beulah", + "timeSn": "1163", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Center, North Dakota", + "timeId": "America/North_Dakota/Center", + "timeSn": "1164", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "New Salem, North Dakota", + "timeId": "America/North_Dakota/New_Salem", + "timeSn": "1165", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Ojinaga", + "timeId": "America/Ojinaga", + "timeSn": "1166", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Panama", + "timeId": "America/Panama", + "timeSn": "1167", + "timeZoneGMT": "EST5" + }, + { + "timeZoneName": "Pangnirtung", + "timeId": "America/Pangnirtung", + "timeSn": "1168", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Paramaribo", + "timeId": "America/Paramaribo", + "timeSn": "1169", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Phoenix", + "timeId": "America/Phoenix", + "timeSn": "1170", + "timeZoneGMT": "MST7" + }, + { + "timeZoneName": "Port-au-Prince", + "timeId": "America/Port-au-Prince", + "timeSn": "1171", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Port of Spain", + "timeId": "America/Port_of_Spain", + "timeSn": "1172", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Porto Acre", + "timeId": "America/Porto_Acre", + "timeSn": "1173", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "Porto Velho", + "timeId": "America/Porto_Velho", + "timeSn": "1174", + "timeZoneGMT": "\u003c-04\u003e4" + }, + { + "timeZoneName": "Puerto Rico", + "timeId": "America/Puerto_Rico", + "timeSn": "1175", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Punta Arenas", + "timeId": "America/Punta_Arenas", + "timeSn": "1176", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Rainy River", + "timeId": "America/Rainy_River", + "timeSn": "1177", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Rankin Inlet", + "timeId": "America/Rankin_Inlet", + "timeSn": "1178", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Recife", + "timeId": "America/Recife", + "timeSn": "1179", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Regina", + "timeId": "America/Regina", + "timeSn": "1180", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Resolute", + "timeId": "America/Resolute", + "timeSn": "1181", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Rio Branco", + "timeId": "America/Rio_Branco", + "timeSn": "1182", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "Rosario", + "timeId": "America/Rosario", + "timeSn": "1183", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Santa Isabel", + "timeId": "America/Santa_Isabel", + "timeSn": "1184", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Santarem", + "timeId": "America/Santarem", + "timeSn": "1185", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Santiago", + "timeId": "America/Santiago", + "timeSn": "1186", + "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M9.1.6/24,M4.1.6/24" + }, + { + "timeZoneName": "Santo Domingo", + "timeId": "America/Santo_Domingo", + "timeSn": "1187", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Sao Paulo", + "timeId": "America/Sao_Paulo", + "timeSn": "1188", + "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M11.1.0/0,M2.3.0/0" + }, + { + "timeZoneName": "Ittoqqortoormiit", + "timeId": "America/Scoresbysund", + "timeSn": "1189", + "timeZoneGMT": "\u003c-01\u003e1\u003c+00\u003e,M3.5.0/0,M10.5.0/1" + }, + { + "timeZoneName": "Shiprock", + "timeId": "America/Shiprock", + "timeSn": "1190", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Sitka", + "timeId": "America/Sitka", + "timeSn": "1191", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "St. Barthelemy", + "timeId": "America/St_Barthelemy", + "timeSn": "1192", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "St. John’s", + "timeId": "America/St_Johns", + "timeSn": "1193", + "timeZoneGMT": "NST3:30NDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "St. Kitts", + "timeId": "America/St_Kitts", + "timeSn": "1194", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "St. Lucia", + "timeId": "America/St_Lucia", + "timeSn": "1195", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "St. Thomas", + "timeId": "America/St_Thomas", + "timeSn": "1196", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "St. Vincent", + "timeId": "America/St_Vincent", + "timeSn": "1197", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Swift Current", + "timeId": "America/Swift_Current", + "timeSn": "1198", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Tegucigalpa", + "timeId": "America/Tegucigalpa", + "timeSn": "1199", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Thule", + "timeId": "America/Thule", + "timeSn": "1200", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Thunder Bay", + "timeId": "America/Thunder_Bay", + "timeSn": "1201", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Tijuana", + "timeId": "America/Tijuana", + "timeSn": "1202", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Toronto", + "timeId": "America/Toronto", + "timeSn": "1203", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Tortola", + "timeId": "America/Tortola", + "timeSn": "1204", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Vancouver", + "timeId": "America/Vancouver", + "timeSn": "1205", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Virgin", + "timeId": "America/Virgin", + "timeSn": "1206", + "timeZoneGMT": "AST4" + }, + { + "timeZoneName": "Whitehorse", + "timeId": "America/Whitehorse", + "timeSn": "1207", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Winnipeg", + "timeId": "America/Winnipeg", + "timeSn": "1208", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Yakutat", + "timeId": "America/Yakutat", + "timeSn": "1209", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Yellowknife", + "timeId": "America/Yellowknife", + "timeSn": "1210", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Casey", + "timeId": "Antarctica/Casey", + "timeSn": "1211", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Davis", + "timeId": "Antarctica/Davis", + "timeSn": "1212", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Dumont d’Urville", + "timeId": "Antarctica/DumontDUrville", + "timeSn": "1213", + "timeZoneGMT": "\u003c+10\u003e-10" + }, + { + "timeZoneName": "Macquarie", + "timeId": "Antarctica/Macquarie", + "timeSn": "1214", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Mawson", + "timeId": "Antarctica/Mawson", + "timeSn": "1215", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "McMurdo", + "timeId": "Antarctica/McMurdo", + "timeSn": "1216", + "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3" + }, + { + "timeZoneName": "Palmer", + "timeId": "Antarctica/Palmer", + "timeSn": "1217", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "Rothera", + "timeId": "Antarctica/Rothera", + "timeSn": "1218", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "South Pole", + "timeId": "Antarctica/South_Pole", + "timeSn": "1219", + "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3" + }, + { + "timeZoneName": "Syowa", + "timeId": "Antarctica/Syowa", + "timeSn": "1220", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Troll", + "timeId": "Antarctica/Troll", + "timeSn": "1221", + "timeZoneGMT": "\u003c+00\u003e0\u003c+02\u003e-2,M3.5.0/1,M10.5.0/3" + }, + { + "timeZoneName": "Vostok", + "timeId": "Antarctica/Vostok", + "timeSn": "1222", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Longyearbyen", + "timeId": "Arctic/Longyearbyen", + "timeSn": "1223", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Aden", + "timeId": "Asia/Aden", + "timeSn": "1224", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Almaty", + "timeId": "Asia/Almaty", + "timeSn": "1225", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Amman", + "timeId": "Asia/Amman", + "timeSn": "1226", + "timeZoneGMT": "EET-2EEST,M3.5.4/24,M10.5.5/1" + }, + { + "timeZoneName": "Anadyr", + "timeId": "Asia/Anadyr", + "timeSn": "1227", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Aqtau", + "timeId": "Asia/Aqtau", + "timeSn": "1228", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Aqtobe", + "timeId": "Asia/Aqtobe", + "timeSn": "1229", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Ashgabat", + "timeId": "Asia/Ashgabat", + "timeSn": "1230", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Ashkhabad", + "timeId": "Asia/Ashkhabad", + "timeSn": "1231", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Atyrau", + "timeId": "Asia/Atyrau", + "timeSn": "1232", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Baghdad", + "timeId": "Asia/Baghdad", + "timeSn": "1233", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Bahrain", + "timeId": "Asia/Bahrain", + "timeSn": "1234", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Baku", + "timeId": "Asia/Baku", + "timeSn": "1235", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Bangkok", + "timeId": "Asia/Bangkok", + "timeSn": "1236", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Barnaul", + "timeId": "Asia/Barnaul", + "timeSn": "1237", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Beirut", + "timeId": "Asia/Beirut", + "timeSn": "1238", + "timeZoneGMT": "EET-2EEST,M3.5.0/0,M10.5.0/0" + }, + { + "timeZoneName": "Bishkek", + "timeId": "Asia/Bishkek", + "timeSn": "1239", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Brunei", + "timeId": "Asia/Brunei", + "timeSn": "1240", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Kolkata", + "timeId": "Asia/Calcutta", + "timeSn": "1241", + "timeZoneGMT": "IST-5:30" + }, + { + "timeZoneName": "Chita", + "timeId": "Asia/Chita", + "timeSn": "1242", + "timeZoneGMT": "\u003c+09\u003e-9" + }, + { + "timeZoneName": "Choibalsan", + "timeId": "Asia/Choibalsan", + "timeSn": "1243", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Chongqing", + "timeId": "Asia/Chongqing", + "timeSn": "1244", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Chungking", + "timeId": "Asia/Chungking", + "timeSn": "1245", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Colombo", + "timeId": "Asia/Colombo", + "timeSn": "1246", + "timeZoneGMT": "\u003c+0530\u003e-5:30" + }, + { + "timeZoneName": "Dacca", + "timeId": "Asia/Dacca", + "timeSn": "1247", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Damascus", + "timeId": "Asia/Damascus", + "timeSn": "1248", + "timeZoneGMT": "EET-2EEST,M3.5.5/0,M10.5.5/0" + }, + { + "timeZoneName": "Dhaka", + "timeId": "Asia/Dhaka", + "timeSn": "1249", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Dili", + "timeId": "Asia/Dili", + "timeSn": "1250", + "timeZoneGMT": "\u003c+09\u003e-9" + }, + { + "timeZoneName": "Dubai", + "timeId": "Asia/Dubai", + "timeSn": "1251", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Dushanbe", + "timeId": "Asia/Dushanbe", + "timeSn": "1252", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Famagusta", + "timeId": "Asia/Famagusta", + "timeSn": "1253", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Gaza", + "timeId": "Asia/Gaza", + "timeSn": "1254", + "timeZoneGMT": "EET-2EEST,M3.4.6/1,M10.5.6/1" + }, + { + "timeZoneName": "Harbin", + "timeId": "Asia/Harbin", + "timeSn": "1255", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Hebron", + "timeId": "Asia/Hebron", + "timeSn": "1256", + "timeZoneGMT": "EET-2EEST,M3.4.6/1,M10.5.6/1" + }, + { + "timeZoneName": "Ho Chi Minh", + "timeId": "Asia/Ho_Chi_Minh", + "timeSn": "1257", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Hong Kong", + "timeId": "Asia/Hong_Kong", + "timeSn": "1258", + "timeZoneGMT": "HKT-8" + }, + { + "timeZoneName": "Hovd", + "timeId": "Asia/Hovd", + "timeSn": "1259", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Irkutsk", + "timeId": "Asia/Irkutsk", + "timeSn": "1260", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Istanbul", + "timeId": "Asia/Istanbul", + "timeSn": "1261", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Jakarta", + "timeId": "Asia/Jakarta", + "timeSn": "1262", + "timeZoneGMT": "WIB-7" + }, + { + "timeZoneName": "Jayapura", + "timeId": "Asia/Jayapura", + "timeSn": "1263", + "timeZoneGMT": "WIT-9" + }, + { + "timeZoneName": "Jerusalem", + "timeId": "Asia/Jerusalem", + "timeSn": "1264", + "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0" + }, + { + "timeZoneName": "Kabul", + "timeId": "Asia/Kabul", + "timeSn": "1265", + "timeZoneGMT": "\u003c+0430\u003e-4:30" + }, + { + "timeZoneName": "Kamchatka", + "timeId": "Asia/Kamchatka", + "timeSn": "1266", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Karachi", + "timeId": "Asia/Karachi", + "timeSn": "1267", + "timeZoneGMT": "PKT-5" + }, + { + "timeZoneName": "Kashgar", + "timeId": "Asia/Kashgar", + "timeSn": "1268", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Kathmandu", + "timeId": "Asia/Kathmandu", + "timeSn": "1269", + "timeZoneGMT": "\u003c+0545\u003e-5:45" + }, + { + "timeZoneName": "Khandyga", + "timeId": "Asia/Khandyga", + "timeSn": "1270", + "timeZoneGMT": "\u003c+09\u003e-9" + }, + { + "timeZoneName": "Krasnoyarsk", + "timeId": "Asia/Krasnoyarsk", + "timeSn": "1271", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Kuala Lumpur", + "timeId": "Asia/Kuala_Lumpur", + "timeSn": "1272", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Kuching", + "timeId": "Asia/Kuching", + "timeSn": "1273", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Kuwait", + "timeId": "Asia/Kuwait", + "timeSn": "1274", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Macao", + "timeId": "Asia/Macao", + "timeSn": "1275", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Macau", + "timeId": "Asia/Macau", + "timeSn": "1276", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Magadan", + "timeId": "Asia/Magadan", + "timeSn": "1277", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Makassar", + "timeId": "Asia/Makassar", + "timeSn": "1278", + "timeZoneGMT": "WITA-8" + }, + { + "timeZoneName": "Manila", + "timeId": "Asia/Manila", + "timeSn": "1279", + "timeZoneGMT": "PST-8" + }, + { + "timeZoneName": "Muscat", + "timeId": "Asia/Muscat", + "timeSn": "1280", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Nicosia", + "timeId": "Asia/Nicosia", + "timeSn": "1281", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Novokuznetsk", + "timeId": "Asia/Novokuznetsk", + "timeSn": "1282", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Novosibirsk", + "timeId": "Asia/Novosibirsk", + "timeSn": "1283", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Omsk", + "timeId": "Asia/Omsk", + "timeSn": "1284", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Oral", + "timeId": "Asia/Oral", + "timeSn": "1285", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Phnom Penh", + "timeId": "Asia/Phnom_Penh", + "timeSn": "1286", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Pontianak", + "timeId": "Asia/Pontianak", + "timeSn": "1287", + "timeZoneGMT": "WIB-7" + }, + { + "timeZoneName": "Pyongyang", + "timeId": "Asia/Pyongyang", + "timeSn": "1288", + "timeZoneGMT": "KST-9" + }, + { + "timeZoneName": "Qatar", + "timeId": "Asia/Qatar", + "timeSn": "1289", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Qyzylorda", + "timeId": "Asia/Qyzylorda", + "timeSn": "1290", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Yangon", + "timeId": "Asia/Rangoon", + "timeSn": "1291", + "timeZoneGMT": "\u003c+0630\u003e-6:30" + }, + { + "timeZoneName": "Riyadh", + "timeId": "Asia/Riyadh", + "timeSn": "1292", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Ho Chi Minh City", + "timeId": "Asia/Saigon", + "timeSn": "1293", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Sakhalin", + "timeId": "Asia/Sakhalin", + "timeSn": "1294", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Samarkand", + "timeId": "Asia/Samarkand", + "timeSn": "1295", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Seoul", + "timeId": "Asia/Seoul", + "timeSn": "1296", + "timeZoneGMT": "KST-9" + }, + { + "timeZoneName": "Beijing", + "timeId": "Asia/Shanghai", + "timeSn": "1297", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Singapore", + "timeId": "Asia/Singapore", + "timeSn": "1298", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Srednekolymsk", + "timeId": "Asia/Srednekolymsk", + "timeSn": "1299", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Taipei", + "timeId": "Asia/Taipei", + "timeSn": "1300", + "timeZoneGMT": "CST-8" + }, + { + "timeZoneName": "Tashkent", + "timeId": "Asia/Tashkent", + "timeSn": "1301", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Tbilisi", + "timeId": "Asia/Tbilisi", + "timeSn": "1302", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Tehran", + "timeId": "Asia/Tehran", + "timeSn": "1303", + "timeZoneGMT": "\u003c+0330\u003e-3:30\u003c+0430\u003e,J80/0,J264/0" + }, + { + "timeZoneName": "Tel Aviv", + "timeId": "Asia/Tel_Aviv", + "timeSn": "1304", + "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0" + }, + { + "timeZoneName": "Thimbu", + "timeId": "Asia/Thimbu", + "timeSn": "1305", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Thimphu", + "timeId": "Asia/Thimphu", + "timeSn": "1306", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Tokyo", + "timeId": "Asia/Tokyo", + "timeSn": "1307", + "timeZoneGMT": "JST-9" + }, + { + "timeZoneName": "Tomsk", + "timeId": "Asia/Tomsk", + "timeSn": "1308", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Ujung Pandang", + "timeId": "Asia/Ujung_Pandang", + "timeSn": "1309", + "timeZoneGMT": "WITA-8" + }, + { + "timeZoneName": "Ulaanbaatar", + "timeId": "Asia/Ulaanbaatar", + "timeSn": "1310", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Ulan Bator", + "timeId": "Asia/Ulan_Bator", + "timeSn": "1311", + "timeZoneGMT": "\u003c+08\u003e-8" + }, + { + "timeZoneName": "Urumqi", + "timeId": "Asia/Urumqi", + "timeSn": "1312", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Ust-Nera", + "timeId": "Asia/Ust-Nera", + "timeSn": "1313", + "timeZoneGMT": "\u003c+10\u003e-10" + }, + { + "timeZoneName": "Vientiane", + "timeId": "Asia/Vientiane", + "timeSn": "1314", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Vladivostok", + "timeId": "Asia/Vladivostok", + "timeSn": "1315", + "timeZoneGMT": "\u003c+10\u003e-10" + }, + { + "timeZoneName": "Yakutsk", + "timeId": "Asia/Yakutsk", + "timeSn": "1316", + "timeZoneGMT": "\u003c+09\u003e-9" + }, + { + "timeZoneName": "Yekaterinburg", + "timeId": "Asia/Yekaterinburg", + "timeSn": "1317", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Yerevan", + "timeId": "Asia/Yerevan", + "timeSn": "1318", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Azores", + "timeId": "Atlantic/Azores", + "timeSn": "1319", + "timeZoneGMT": "\u003c-01\u003e1\u003c+00\u003e,M3.5.0/0,M10.5.0/1" + }, + { + "timeZoneName": "Bermuda", + "timeId": "Atlantic/Bermuda", + "timeSn": "1320", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Canary", + "timeId": "Atlantic/Canary", + "timeSn": "1321", + "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Cape Verde", + "timeId": "Atlantic/Cape_Verde", + "timeSn": "1322", + "timeZoneGMT": "\u003c-01\u003e1" + }, + { + "timeZoneName": "Faroe", + "timeId": "Atlantic/Faeroe", + "timeSn": "1323", + "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Jan Mayen", + "timeId": "Atlantic/Jan_Mayen", + "timeSn": "1324", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Madeira", + "timeId": "Atlantic/Madeira", + "timeSn": "1325", + "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Reykjavik", + "timeId": "Atlantic/Reykjavik", + "timeSn": "1326", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "South Georgia", + "timeId": "Atlantic/South_Georgia", + "timeSn": "1327", + "timeZoneGMT": "\u003c-02\u003e2" + }, + { + "timeZoneName": "St. Helena", + "timeId": "Atlantic/St_Helena", + "timeSn": "1328", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Stanley", + "timeId": "Atlantic/Stanley", + "timeSn": "1329", + "timeZoneGMT": "\u003c-03\u003e3" + }, + { + "timeZoneName": "ACT", + "timeId": "Australia/ACT", + "timeSn": "1330", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Adelaide", + "timeId": "Australia/Adelaide", + "timeSn": "1331", + "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Brisbane", + "timeId": "Australia/Brisbane", + "timeSn": "1332", + "timeZoneGMT": "AEST-10" + }, + { + "timeZoneName": "Broken Hill", + "timeId": "Australia/Broken_Hill", + "timeSn": "1333", + "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Canberra", + "timeId": "Australia/Canberra", + "timeSn": "1334", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Currie", + "timeId": "Australia/Currie", + "timeSn": "1335", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Darwin", + "timeId": "Australia/Darwin", + "timeSn": "1336", + "timeZoneGMT": "ACST-9:30" + }, + { + "timeZoneName": "Eucla", + "timeId": "Australia/Eucla", + "timeSn": "1337", + "timeZoneGMT": "\u003c+0845\u003e-8:45" + }, + { + "timeZoneName": "Hobart", + "timeId": "Australia/Hobart", + "timeSn": "1338", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "LHI", + "timeId": "Australia/LHI", + "timeSn": "1339", + "timeZoneGMT": "\u003c+1030\u003e-10:30\u003c+11\u003e-11,M10.1.0,M4.1.0" + }, + { + "timeZoneName": "Lindeman", + "timeId": "Australia/Lindeman", + "timeSn": "1340", + "timeZoneGMT": "AEST-10" + }, + { + "timeZoneName": "Lord Howe", + "timeId": "Australia/Lord_Howe", + "timeSn": "1341", + "timeZoneGMT": "\u003c+1030\u003e-10:30\u003c+11\u003e-11,M10.1.0,M4.1.0" + }, + { + "timeZoneName": "Melbourne", + "timeId": "Australia/Melbourne", + "timeSn": "1342", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "NSW", + "timeId": "Australia/NSW", + "timeSn": "1343", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "North", + "timeId": "Australia/North", + "timeSn": "1344", + "timeZoneGMT": "ACST-9:30" + }, + { + "timeZoneName": "Perth", + "timeId": "Australia/Perth", + "timeSn": "1345", + "timeZoneGMT": "AWST-8" + }, + { + "timeZoneName": "Queensland", + "timeId": "Australia/Queensland", + "timeSn": "1346", + "timeZoneGMT": "AEST-10" + }, + { + "timeZoneName": "South", + "timeId": "Australia/South", + "timeSn": "1347", + "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Sydney", + "timeId": "Australia/Sydney", + "timeSn": "1348", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Tasmania", + "timeId": "Australia/Tasmania", + "timeSn": "1349", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Victoria", + "timeId": "Australia/Victoria", + "timeSn": "1350", + "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "West", + "timeId": "Australia/West", + "timeSn": "1351", + "timeZoneGMT": "AWST-8" + }, + { + "timeZoneName": "Yancowinna", + "timeId": "Australia/Yancowinna", + "timeSn": "1352", + "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" + }, + { + "timeZoneName": "Acre", + "timeId": "Brazil/Acre", + "timeSn": "1353", + "timeZoneGMT": "\u003c-05\u003e5" + }, + { + "timeZoneName": "DeNoronha", + "timeId": "Brazil/DeNoronha", + "timeSn": "1354", + "timeZoneGMT": "\u003c-02\u003e2" + }, + { + "timeZoneName": "East", + "timeId": "Brazil/East", + "timeSn": "1355", + "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M11.1.0/0,M2.3.0/0" + }, + { + "timeZoneName": "Atlantic", + "timeId": "Canada/Atlantic", + "timeSn": "1356", + "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Central", + "timeId": "Canada/Central", + "timeSn": "1357", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Eastern", + "timeId": "Canada/Eastern", + "timeSn": "1358", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Mountain", + "timeId": "Canada/Mountain", + "timeSn": "1359", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Newfoundland", + "timeId": "Canada/Newfoundland", + "timeSn": "1360", + "timeZoneGMT": "NST3:30NDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Pacific", + "timeId": "Canada/Pacific", + "timeSn": "1361", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Saskatchewan", + "timeId": "Canada/Saskatchewan", + "timeSn": "1362", + "timeZoneGMT": "CST6" + }, + { + "timeZoneName": "Yukon", + "timeId": "Canada/Yukon", + "timeSn": "1363", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Continental", + "timeId": "Chile/Continental", + "timeSn": "1364", + "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M9.1.6/24,M4.1.6/24" + }, + { + "timeZoneName": "EasterIsland", + "timeId": "Chile/EasterIsland", + "timeSn": "1365", + "timeZoneGMT": "\u003c-06\u003e6\u003c-05\u003e,M9.1.6/22,M4.1.6/22" + }, + { + "timeZoneName": "Cuba", + "timeId": "Cuba", + "timeSn": "1366", + "timeZoneGMT": "CST5CDT,M3.2.0/0,M11.1.0/1" + }, + { + "timeZoneName": "Egypt", + "timeId": "Egypt", + "timeSn": "1367", + "timeZoneGMT": "EET-2" + }, + { + "timeZoneName": "Eire", + "timeId": "Eire", + "timeSn": "1368", + "timeZoneGMT": "IST-1GMT0,M10.5.0,M3.5.0/1" + }, + { + "timeZoneName": "Amsterdam", + "timeId": "Europe/Amsterdam", + "timeSn": "1369", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Andorra", + "timeId": "Europe/Andorra", + "timeSn": "1370", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Astrakhan", + "timeId": "Europe/Astrakhan", + "timeSn": "1371", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Athens", + "timeId": "Europe/Athens", + "timeSn": "1372", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Belfast", + "timeId": "Europe/Belfast", + "timeSn": "1373", + "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Belgrade", + "timeId": "Europe/Belgrade", + "timeSn": "1374", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Berlin", + "timeId": "Europe/Berlin", + "timeSn": "1375", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Bratislava", + "timeId": "Europe/Bratislava", + "timeSn": "1376", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Brussels", + "timeId": "Europe/Brussels", + "timeSn": "1377", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Bucharest", + "timeId": "Europe/Bucharest", + "timeSn": "1378", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Budapest", + "timeId": "Europe/Budapest", + "timeSn": "1379", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Busingen", + "timeId": "Europe/Busingen", + "timeSn": "1380", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Chisinau", + "timeId": "Europe/Chisinau", + "timeSn": "1381", + "timeZoneGMT": "EET-2EEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Copenhagen", + "timeId": "Europe/Copenhagen", + "timeSn": "1382", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Dublin", + "timeId": "Europe/Dublin", + "timeSn": "1383", + "timeZoneGMT": "GMT0IST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Gibraltar", + "timeId": "Europe/Gibraltar", + "timeSn": "1384", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Guernsey", + "timeId": "Europe/Guernsey", + "timeSn": "1385", + "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Helsinki", + "timeId": "Europe/Helsinki", + "timeSn": "1386", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Isle of Man", + "timeId": "Europe/Isle_of_Man", + "timeSn": "1387", + "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Jersey", + "timeId": "Europe/Jersey", + "timeSn": "1388", + "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Kaliningrad", + "timeId": "Europe/Kaliningrad", + "timeSn": "1389", + "timeZoneGMT": "EET-2" + }, + { + "timeZoneName": "Kiev", + "timeId": "Europe/Kiev", + "timeSn": "1390", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Kirov", + "timeId": "Europe/Kirov", + "timeSn": "1391", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Lisbon", + "timeId": "Europe/Lisbon", + "timeSn": "1392", + "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Ljubljana", + "timeId": "Europe/Ljubljana", + "timeSn": "1393", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "London", + "timeId": "Europe/London", + "timeSn": "1394", + "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Luxembourg", + "timeId": "Europe/Luxembourg", + "timeSn": "1395", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Madrid", + "timeId": "Europe/Madrid", + "timeSn": "1396", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Malta", + "timeId": "Europe/Malta", + "timeSn": "1397", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Mariehamn", + "timeId": "Europe/Mariehamn", + "timeSn": "1398", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Minsk", + "timeId": "Europe/Minsk", + "timeSn": "1399", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Monaco", + "timeId": "Europe/Monaco", + "timeSn": "1400", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Moscow", + "timeId": "Europe/Moscow", + "timeSn": "1401", + "timeZoneGMT": "MSK-3" + }, + { + "timeZoneName": "Oslo", + "timeId": "Europe/Oslo", + "timeSn": "1402", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Paris", + "timeId": "Europe/Paris", + "timeSn": "1403", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Podgorica", + "timeId": "Europe/Podgorica", + "timeSn": "1404", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Prague", + "timeId": "Europe/Prague", + "timeSn": "1405", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Riga", + "timeId": "Europe/Riga", + "timeSn": "1406", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Rome", + "timeId": "Europe/Rome", + "timeSn": "1407", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Samara", + "timeId": "Europe/Samara", + "timeSn": "1408", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "San Marino", + "timeId": "Europe/San_Marino", + "timeSn": "1409", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Sarajevo", + "timeId": "Europe/Sarajevo", + "timeSn": "1410", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Saratov", + "timeId": "Europe/Saratov", + "timeSn": "1411", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Simferopol", + "timeId": "Europe/Simferopol", + "timeSn": "1412", + "timeZoneGMT": "MSK-3" + }, + { + "timeZoneName": "Skopje", + "timeId": "Europe/Skopje", + "timeSn": "1413", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Sofia", + "timeId": "Europe/Sofia", + "timeSn": "1414", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Stockholm", + "timeId": "Europe/Stockholm", + "timeSn": "1415", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Tallinn", + "timeId": "Europe/Tallinn", + "timeSn": "1416", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Tirane", + "timeId": "Europe/Tirane", + "timeSn": "1417", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Tiraspol", + "timeId": "Europe/Tiraspol", + "timeSn": "1418", + "timeZoneGMT": "EET-2EEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Ulyanovsk", + "timeId": "Europe/Ulyanovsk", + "timeSn": "1419", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Uzhhorod", + "timeId": "Europe/Uzhgorod", + "timeSn": "1420", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Vaduz", + "timeId": "Europe/Vaduz", + "timeSn": "1421", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Vatican", + "timeId": "Europe/Vatican", + "timeSn": "1422", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Vienna", + "timeId": "Europe/Vienna", + "timeSn": "1423", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Vilnius", + "timeId": "Europe/Vilnius", + "timeSn": "1424", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Volgograd", + "timeId": "Europe/Volgograd", + "timeSn": "1425", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Warsaw", + "timeId": "Europe/Warsaw", + "timeSn": "1426", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Zagreb", + "timeId": "Europe/Zagreb", + "timeSn": "1427", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Zaporozhye", + "timeId": "Europe/Zaporozhye", + "timeSn": "1428", + "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" + }, + { + "timeZoneName": "Zurich", + "timeId": "Europe/Zurich", + "timeSn": "1429", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Greenwich", + "timeId": "Greenwich", + "timeSn": "1430", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Iceland", + "timeId": "Iceland", + "timeSn": "1431", + "timeZoneGMT": "GMT0" + }, + { + "timeZoneName": "Antananarivo", + "timeId": "Indian/Antananarivo", + "timeSn": "1432", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Chagos", + "timeId": "Indian/Chagos", + "timeSn": "1433", + "timeZoneGMT": "\u003c+06\u003e-6" + }, + { + "timeZoneName": "Christmas", + "timeId": "Indian/Christmas", + "timeSn": "1434", + "timeZoneGMT": "\u003c+07\u003e-7" + }, + { + "timeZoneName": "Cocos", + "timeId": "Indian/Cocos", + "timeSn": "1435", + "timeZoneGMT": "\u003c+0630\u003e-6:30" + }, + { + "timeZoneName": "Comoro", + "timeId": "Indian/Comoro", + "timeSn": "1436", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Kerguelen", + "timeId": "Indian/Kerguelen", + "timeSn": "1437", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Mahe", + "timeId": "Indian/Mahe", + "timeSn": "1438", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Maldives", + "timeId": "Indian/Maldives", + "timeSn": "1439", + "timeZoneGMT": "\u003c+05\u003e-5" + }, + { + "timeZoneName": "Mauritius", + "timeId": "Indian/Mauritius", + "timeSn": "1440", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Mayotte", + "timeId": "Indian/Mayotte", + "timeSn": "1441", + "timeZoneGMT": "EAT-3" + }, + { + "timeZoneName": "Reunion", + "timeId": "Indian/Reunion", + "timeSn": "1442", + "timeZoneGMT": "\u003c+04\u003e-4" + }, + { + "timeZoneName": "Iran", + "timeId": "Iran", + "timeSn": "1443", + "timeZoneGMT": "\u003c+0330\u003e-3:30\u003c+0430\u003e,J80/0,J264/0" + }, + { + "timeZoneName": "Israel", + "timeId": "Israel", + "timeSn": "1444", + "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0" + }, + { + "timeZoneName": "Japan", + "timeId": "Japan", + "timeSn": "1445", + "timeZoneGMT": "JST-9" + }, + { + "timeZoneName": "Libya", + "timeId": "Libya", + "timeSn": "1446", + "timeZoneGMT": "EET-2" + }, + { + "timeZoneName": "BajaNorte", + "timeId": "Mexico/BajaNorte", + "timeSn": "1447", + "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "BajaSur", + "timeId": "Mexico/BajaSur", + "timeSn": "1448", + "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "General", + "timeId": "Mexico/General", + "timeSn": "1449", + "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" + }, + { + "timeZoneName": "Navajo", + "timeId": "Navajo", + "timeSn": "1450", + "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Apia", + "timeId": "Pacific/Apia", + "timeSn": "1451", + "timeZoneGMT": "\u003c+13\u003e-13\u003c+14\u003e,M9.5.0/3,M4.1.0/4" + }, + { + "timeZoneName": "Auckland", + "timeId": "Pacific/Auckland", + "timeSn": "1452", + "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3" + }, + { + "timeZoneName": "Bougainville", + "timeId": "Pacific/Bougainville", + "timeSn": "1453", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Chatham", + "timeId": "Pacific/Chatham", + "timeSn": "1454", + "timeZoneGMT": "\u003c+1245\u003e-12:45\u003c+1345\u003e,M9.5.0/2:45,M4.1.0/3:45" + }, + { + "timeZoneName": "Chuuk", + "timeId": "Pacific/Chuuk", + "timeSn": "1455", + "timeZoneGMT": "\u003c+10\u003e-10" + }, + { + "timeZoneName": "Easter", + "timeId": "Pacific/Easter", + "timeSn": "1456", + "timeZoneGMT": "\u003c-06\u003e6\u003c-05\u003e,M9.1.6/22,M4.1.6/22" + }, + { + "timeZoneName": "Efate", + "timeId": "Pacific/Efate", + "timeSn": "1457", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Enderbury", + "timeId": "Pacific/Enderbury", + "timeSn": "1458", + "timeZoneGMT": "\u003c+13\u003e-13" + }, + { + "timeZoneName": "Fakaofo", + "timeId": "Pacific/Fakaofo", + "timeSn": "1459", + "timeZoneGMT": "\u003c+13\u003e-13" + }, + { + "timeZoneName": "Fiji", + "timeId": "Pacific/Fiji", + "timeSn": "1460", + "timeZoneGMT": "\u003c+12\u003e-12\u003c+13\u003e,M11.1.0,M1.3.0/3" + }, + { + "timeZoneName": "Funafuti", + "timeId": "Pacific/Funafuti", + "timeSn": "1461", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Galapagos", + "timeId": "Pacific/Galapagos", + "timeSn": "1462", + "timeZoneGMT": "\u003c-06\u003e6" + }, + { + "timeZoneName": "Gambier", + "timeId": "Pacific/Gambier", + "timeSn": "1463", + "timeZoneGMT": "\u003c-09\u003e9" + }, + { + "timeZoneName": "Guadalcanal", + "timeId": "Pacific/Guadalcanal", + "timeSn": "1464", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Guam", + "timeId": "Pacific/Guam", + "timeSn": "1465", + "timeZoneGMT": "ChST-10" + }, + { + "timeZoneName": "Honolulu", + "timeId": "Pacific/Honolulu", + "timeSn": "1466", + "timeZoneGMT": "HST10" + }, + { + "timeZoneName": "Johnston", + "timeId": "Pacific/Johnston", + "timeSn": "1467", + "timeZoneGMT": "HST10" + }, + { + "timeZoneName": "Kiritimati", + "timeId": "Pacific/Kiritimati", + "timeSn": "1468", + "timeZoneGMT": "\u003c+14\u003e-14" + }, + { + "timeZoneName": "Kosrae", + "timeId": "Pacific/Kosrae", + "timeSn": "1469", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Kwajalein", + "timeId": "Pacific/Kwajalein", + "timeSn": "1470", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Majuro", + "timeId": "Pacific/Majuro", + "timeSn": "1471", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Marquesas", + "timeId": "Pacific/Marquesas", + "timeSn": "1472", + "timeZoneGMT": "\u003c-0930\u003e9:30" + }, + { + "timeZoneName": "Midway", + "timeId": "Pacific/Midway", + "timeSn": "1473", + "timeZoneGMT": "SST11" + }, + { + "timeZoneName": "Nauru", + "timeId": "Pacific/Nauru", + "timeSn": "1474", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Niue", + "timeId": "Pacific/Niue", + "timeSn": "1475", + "timeZoneGMT": "\u003c-11\u003e11" + }, + { + "timeZoneName": "Norfolk", + "timeId": "Pacific/Norfolk", + "timeSn": "1476", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Noumea", + "timeId": "Pacific/Noumea", + "timeSn": "1477", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Pago Pago", + "timeId": "Pacific/Pago_Pago", + "timeSn": "1478", + "timeZoneGMT": "SST11" + }, + { + "timeZoneName": "Palau", + "timeId": "Pacific/Palau", + "timeSn": "1479", + "timeZoneGMT": "\u003c+09\u003e-9" + }, + { + "timeZoneName": "Pitcairn", + "timeId": "Pacific/Pitcairn", + "timeSn": "1480", + "timeZoneGMT": "\u003c-08\u003e8" + }, + { + "timeZoneName": "Pohnpei", + "timeId": "Pacific/Pohnpei", + "timeSn": "1481", + "timeZoneGMT": "\u003c+11\u003e-11" + }, + { + "timeZoneName": "Port Moresby", + "timeId": "Pacific/Port_Moresby", + "timeSn": "1482", + "timeZoneGMT": "\u003c+10\u003e-10" + }, + { + "timeZoneName": "Rarotonga", + "timeId": "Pacific/Rarotonga", + "timeSn": "1483", + "timeZoneGMT": "\u003c-10\u003e10" + }, + { + "timeZoneName": "Saipan", + "timeId": "Pacific/Saipan", + "timeSn": "1484", + "timeZoneGMT": "ChST-10" + }, + { + "timeZoneName": "Samoa", + "timeId": "Pacific/Samoa", + "timeSn": "1485", + "timeZoneGMT": "SST11" + }, + { + "timeZoneName": "Tahiti", + "timeId": "Pacific/Tahiti", + "timeSn": "1486", + "timeZoneGMT": "\u003c-10\u003e10" + }, + { + "timeZoneName": "Tarawa", + "timeId": "Pacific/Tarawa", + "timeSn": "1487", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Tongatapu", + "timeId": "Pacific/Tongatapu", + "timeSn": "1488", + "timeZoneGMT": "\u003c+13\u003e-13" + }, + { + "timeZoneName": "Wake", + "timeId": "Pacific/Wake", + "timeSn": "1489", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Wallis", + "timeId": "Pacific/Wallis", + "timeSn": "1490", + "timeZoneGMT": "\u003c+12\u003e-12" + }, + { + "timeZoneName": "Yap", + "timeId": "Pacific/Yap", + "timeSn": "1491", + "timeZoneGMT": "\u003c+10\u003e-10" + }, + { + "timeZoneName": "Poland", + "timeId": "Poland", + "timeSn": "1492", + "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" + }, + { + "timeZoneName": "Portugal", + "timeId": "Portugal", + "timeSn": "1493", + "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" + }, + { + "timeZoneName": "Turkey", + "timeId": "Turkey", + "timeSn": "1494", + "timeZoneGMT": "\u003c+03\u003e-3" + }, + { + "timeZoneName": "Alaska", + "timeId": "US/Alaska", + "timeSn": "1495", + "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Aleutian", + "timeId": "US/Aleutian", + "timeSn": "1496", + "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Arizona", + "timeId": "US/Arizona", + "timeSn": "1497", + "timeZoneGMT": "MST7" + }, + { + "timeZoneName": "East-Indiana", + "timeId": "US/East-Indiana", + "timeSn": "1498", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Hawaii", + "timeId": "US/Hawaii", + "timeSn": "1499", + "timeZoneGMT": "HST10" + }, + { + "timeZoneName": "Indiana-Starke", + "timeId": "US/Indiana-Starke", + "timeSn": "1500", + "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Michigan", + "timeId": "US/Michigan", + "timeSn": "1501", + "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" + }, + { + "timeZoneName": "Zulu", + "timeId": "Zulu", + "timeSn": "1502", + "timeZoneGMT": "UTC0" + } +]; +//# sourceMappingURL=const.js.map \ No newline at end of file diff --git a/build/http/const.js.map b/build/http/const.js.map new file mode 100644 index 00000000..16402c4f --- /dev/null +++ b/build/http/const.js.map @@ -0,0 +1 @@ +{"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/http/const.ts"],"names":[],"mappings":"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AAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,cAAc;IACd,UAAU;IACV,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,SAAS;IACT,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,W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AiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;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;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,OAAO;IACP,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,cAAc;IACd,aAAa;IACb,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS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IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,SAAS;IACT,SAAS;IACT,aAAa;IACb,YAAY;IACZ,eAAe;IACf,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,cAAc;IACd,SAAS;IACT,UAAU;IACV,YAAY;IACZ,cAAc;IACd,aAAa;IACb,YAAY;IACZ,cAAc;IACd,cAAc;IACd,UAAU;IACV,YAAY;IACZ,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;IACV,aAAa;IACb,UAAU;IACV,eAAe;IACf,cAAc;IACd,aAAa;IACb,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV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"} \ No newline at end of file diff --git a/build/http/device.d.ts b/build/http/device.d.ts new file mode 100644 index 00000000..9c112c40 --- /dev/null +++ b/build/http/device.d.ts @@ -0,0 +1,474 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { HTTPApi } from "./api"; +import { CommandName, DeviceEvent, SourceType, TrackerType } from "./types"; +import { DeviceListResponse } from "./models"; +import { DeviceEvents, PropertyValue, PropertyValues, PropertyMetadataAny, IndexedProperty, RawValues, Schedule, Voices, DeviceConfig } from "./interfaces"; +import { PushMessage } from "../push/models"; +import { DeviceSmartLockNotifyData } from "../mqtt/model"; +import { Station } from "./station"; +export declare class Device extends TypedEmitter { + protected api: HTTPApi; + protected rawDevice: DeviceListResponse; + protected eventTimeouts: Map; + protected pictureEventTimeouts: Map; + protected properties: PropertyValues; + protected config: DeviceConfig; + private rawProperties; + private ready; + protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); + protected initializeState(): void; + initialize(): void; + getRawDevice(): DeviceListResponse; + update(device: DeviceListResponse): void; + updateProperty(name: string, value: PropertyValue, force?: boolean): boolean; + updateRawProperties(values: RawValues): void; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + updateRawProperty(type: number, value: string, source: SourceType): boolean; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + getPropertyMetadata(name: string, hidden?: boolean): PropertyMetadataAny; + getPropertyValue(name: string): PropertyValue; + hasPropertyValue(name: string): boolean; + getRawProperty(type: number): string | undefined; + getRawProperties(): RawValues; + getProperties(): PropertyValues; + getPropertiesMetadata(hidden?: boolean): IndexedProperty; + hasProperty(name: string, hidden?: boolean): boolean; + getCommands(): Array; + hasCommand(name: CommandName): boolean; + processPushNotification(_station: Station, _message: PushMessage, _eventDurationSeconds: number): void; + setCustomPropertyValue(name: string, value: PropertyValue): void; + destroy(): void; + protected clearEventTimeout(eventType: DeviceEvent): void; + static isSupported(type: number): boolean; + static isCamera(type: number): boolean; + static hasBattery(type: number): boolean; + static isStation(type: number): boolean; + static isCamera1(type: number): boolean; + static isCameraE(type: number): boolean; + static isSensor(type: number): boolean; + static isKeyPad(type: number): boolean; + static isDoorbell(type: number): boolean; + static isWiredDoorbell(type: number): boolean; + static isWiredDoorbellT8200X(type: number, serialnumber: string): boolean; + static isWiredDoorbellDual(type: number): boolean; + static isIndoorCamera(type: number): boolean; + static isPanAndTiltCamera(type: number): boolean; + static isOutdoorPanAndTiltCamera(type: number): boolean; + static isIndoorPanAndTiltCameraS350(type: number): boolean; + static isFloodLight(type: number): boolean; + static isFloodLightT8420X(type: number, serialnumber: string): boolean; + static isFloodLightT8423(type: number): boolean; + static isFloodLightT8425(type: number): boolean; + static isWallLightCam(type: number): boolean; + static isLock(type: number): boolean; + static isLockKeypad(type: number): boolean; + static isLockBle(type: number): boolean; + static isLockBleNoFinger(type: number): boolean; + static isLockWifi(type: number, serialnumber: string): boolean; + static isLockWifiNoFinger(type: number): boolean; + static isLockWifiR10(type: number): boolean; + static isLockWifiR20(type: number): boolean; + static isLockWifiVideo(type: number): boolean; + static isLockWifiR10Keypad(type: number): boolean; + static isLockWifiR20Keypad(type: number): boolean; + static isLockWifiT8506(type: number): boolean; + static isLockWifiT8502(type: number): boolean; + static isLockWifiT8510P(type: number, serialnumber: string): boolean; + static isLockWifiT8520P(type: number, serialnumber: string): boolean; + static isBatteryDoorbell1(type: number): boolean; + static isBatteryDoorbell2(type: number): boolean; + static isBatteryDoorbellDual(type: number): boolean; + static isBatteryDoorbellDualE340(type: number): boolean; + static isBatteryDoorbellC30(type: number): boolean; + static isBatteryDoorbellC31(type: number): boolean; + static isDoorbellDual(type: number): boolean; + static isBatteryDoorbell(type: number): boolean; + static isSoloCamera(type: number): boolean; + static isSoloCameraPro(type: number): boolean; + static isSoloCameraSpotlight1080(type: number): boolean; + static isSoloCameraSpotlight2k(type: number): boolean; + static isSoloCameraSpotlightSolar(type: number): boolean; + static isSoloCameraSolar(type: number): boolean; + static isSoloCameraC210(type: number): boolean; + static isSoloCameraE30(type: number): boolean; + static isSoloCameras(type: number): boolean; + static isStarlight4GLTE(type: number): boolean; + static isIndoorOutdoorCamera1080p(type: number): boolean; + static isIndoorOutdoorCamera1080pNoLight(type: number): boolean; + static isIndoorOutdoorCamera2k(type: number): boolean; + static isIndoorCamMini(type: number): boolean; + static isCamera1Product(type: number): boolean; + static isCamera2(type: number): boolean; + static isCamera2C(type: number): boolean; + static isCamera2Pro(type: number): boolean; + static isCamera2CPro(type: number): boolean; + static isCamera2Product(type: number): boolean; + static isCamera3(type: number): boolean; + static isCamera3C(type: number): boolean; + static isCamera3Pro(type: number): boolean; + static isCameraProfessional247(type: number): boolean; + static isCamera3Product(type: number): boolean; + static isEntrySensor(type: number): boolean; + static isMotionSensor(type: number): boolean; + static isSmartDrop(type: number): boolean; + static isSmartSafe(type: number): boolean; + static isGarageCamera(type: number): boolean; + static isIntegratedDeviceBySn(sn: string): boolean; + static isSoloCameraBySn(sn: string): boolean; + static isSmartDropBySn(sn: string): boolean; + static isLockBySn(sn: string): boolean; + static isGarageCameraBySn(sn: string): boolean; + static isFloodlightBySn(sn: string): boolean; + static isIndoorCameraBySn(sn: string): boolean; + static is4GCameraBySn(sn: string): boolean; + static isSmartSafeBySn(sn: string): boolean; + static isSmartTrackCard(type: number): boolean; + static isSmartTrackLink(type: number): boolean; + static isSmartTrack(type: number): boolean; + isCamera(): boolean; + isFloodLight(): boolean; + isFloodLightT8420X(): boolean; + isFloodLightT8423(): boolean; + isFloodLightT8425(): boolean; + isWallLightCam(): boolean; + isDoorbell(): boolean; + isWiredDoorbell(): boolean; + isWiredDoorbellT8200X(): boolean; + isWiredDoorbellDual(): boolean; + isLock(): boolean; + isLockKeypad(): boolean; + isLockBle(): boolean; + isLockBleNoFinger(): boolean; + isLockWifi(): boolean; + isLockWifiNoFinger(): boolean; + isLockWifiR10(): boolean; + isLockWifiR20(): boolean; + isLockWifiVideo(): boolean; + isLockWifiR10Keypad(): boolean; + isLockWifiR20Keypad(): boolean; + isLockWifiT8506(): boolean; + isLockWifiT8502(): boolean; + isLockWifiT8510P(): boolean; + isLockWifiT8520P(): boolean; + isBatteryDoorbell1(): boolean; + isBatteryDoorbell2(): boolean; + isBatteryDoorbellDual(): boolean; + isBatteryDoorbellDualE340(): boolean; + isBatteryDoorbellC30(): boolean; + isBatteryDoorbellC31(): boolean; + isDoorbellDual(): boolean; + isBatteryDoorbell(): boolean; + isSoloCamera(): boolean; + isSoloCameraPro(): boolean; + isSoloCameraSpotlight1080(): boolean; + isSoloCameraSpotlight2k(): boolean; + isSoloCameraSpotlightSolar(): boolean; + isSoloCameraSolar(): boolean; + isSoloCameraC210(): boolean; + isSoloCameraE30(): boolean; + isStarlight4GLTE(): boolean; + isIndoorOutdoorCamera1080p(): boolean; + isIndoorOutdoorCamera1080pNoLight(): boolean; + isIndoorOutdoorCamera2k(): boolean; + isIndoorCamMini(): boolean; + isSoloCameras(): boolean; + isCamera2(): boolean; + isCamera2C(): boolean; + isCamera2Pro(): boolean; + isCamera2CPro(): boolean; + isCamera2Product(): boolean; + isCamera3(): boolean; + isCamera3C(): boolean; + isCameraProfessional247(): boolean; + isCamera3Pro(): boolean; + isCamera3Product(): boolean; + isEntrySensor(): boolean; + isKeyPad(): boolean; + isMotionSensor(): boolean; + isIndoorCamera(): boolean; + isPanAndTiltCamera(): boolean; + isOutdoorPanAndTiltCamera(): boolean; + isIndoorPanAndTiltCameraS350(): boolean; + isSmartDrop(): boolean; + isSmartSafe(): boolean; + isGarageCamera(): boolean; + isIntegratedDevice(): boolean; + isSmartTrack(): boolean; + isSmartTrackCard(): boolean; + isSmartTrackLink(): boolean; + hasBattery(): boolean; + getDeviceKey(): string; + getDeviceType(): number; + getHardwareVersion(): string; + getSoftwareVersion(): string; + getModel(): string; + getName(): string; + getSerial(): string; + getStationSerial(): string; + setParameters(params: { + paramType: number; + paramValue: any; + }[]): Promise; + getChannel(): number; + getStateID(state: string, level?: number): string; + getStateChannel(): string; + getWifiRssi(): PropertyValue; + getStoragePath(filename: string): string; + isEnabled(): PropertyValue; +} +export declare class Camera extends Device { + protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + getLastCameraImageURL(): PropertyValue; + getMACAddress(): string; + startDetection(): Promise; + stopDetection(): Promise; + getState(): PropertyValue; + close(): Promise; + getLastChargingDays(): number; + getLastChargingFalseEvents(): number; + getLastChargingRecordedEvents(): number; + getLastChargingTotalEvents(): number; + getBatteryValue(): PropertyValue; + getBatteryTemperature(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; + isLedEnabled(): PropertyValue; + isAutoNightVisionEnabled(): PropertyValue; + isRTSPStreamEnabled(): PropertyValue; + isAntiTheftDetectionEnabled(): PropertyValue; + getWatermark(): PropertyValue; + isMotionDetected(): boolean; + isPersonDetected(): boolean; + getDetectedPerson(): string; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class SoloCamera extends Camera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class IndoorCamera extends Camera { + protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; + isPetDetectionEnabled(): PropertyValue; + isSoundDetectionEnabled(): PropertyValue; + isPetDetected(): boolean; + isSoundDetected(): boolean; + isCryingDetected(): boolean; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; + destroy(): void; +} +export declare class DoorbellCamera extends Camera { + protected voices: Voices; + protected constructor(api: HTTPApi, device: DeviceListResponse, voices: Voices, deviceConfig: DeviceConfig); + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + private loadMetadataVoiceStates; + getVoiceName(id: number): string; + getVoices(): Voices; + getPropertiesMetadata(hidden?: boolean): IndexedProperty; + isRinging(): boolean; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class WiredDoorbellCamera extends DoorbellCamera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; + isAutoNightVisionEnabled(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; +} +export declare class BatteryDoorbellCamera extends DoorbellCamera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; +} +export declare class FloodlightCamera extends Camera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class WallLightCam extends Camera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + getPropertiesMetadata(hidden?: boolean): IndexedProperty; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class GarageCamera extends Camera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isLedEnabled(): PropertyValue; + isMotionDetectionEnabled(): PropertyValue; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class Sensor extends Device { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + getState(): PropertyValue; +} +export declare class EntrySensor extends Sensor { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isSensorOpen(): PropertyValue; + getSensorChangeTime(): PropertyValue; + isBatteryLow(): PropertyValue; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; +} +export declare class MotionSensor extends Sensor { + static readonly MOTION_COOLDOWN_MS = 120000; + protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + isMotionDetected(): boolean; + getMotionSensorPIREvent(): PropertyValue; + isBatteryLow(): PropertyValue; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class Lock extends Device { + static readonly VERSION_CODE_SMART_LOCK = 3; + static readonly VERSION_CODE_LOCKV12 = 18; + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + getState(): PropertyValue; + getBatteryValue(): PropertyValue; + getWifiRssi(): PropertyValue; + isLocked(): PropertyValue; + getLockStatus(): PropertyValue; + static encodeESLCmdOnOff(short_user_id: number, nickname: string, lock: boolean): Buffer; + static encodeESLCmdQueryStatus(admin_user_id: string): Buffer; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; + processMQTTNotification(message: DeviceSmartLockNotifyData, eventDurationSeconds: number): void; + private processNotification; + private static getCurrentTimeInSeconds; + private static getUInt8Buffer; + private static getUint16LEBuffer; + private static getUint16BEBuffer; + static encodeCmdStatus(user_id: string): Buffer; + static encodeCmdUnlock(short_user_id: string, value: number, username: string): Buffer; + static encodeCmdCalibrate(user_id: string): Buffer; + static encodeCmdAddUser(short_user_id: string, passcode: string, username: string, schedule?: Schedule, user_permission?: number): Buffer; + static encodeCmdAddTemporaryUser(schedule?: Schedule, unlimited?: boolean): Buffer; + static encodeCmdDeleteTemporaryUser(password_id: string): Buffer; + static encodeCmdDeleteUser(short_user_id: string): Buffer; + static encodeCmdVerifyPw(password: string): Buffer; + static encodeCmdQueryLockRecord(index: number): Buffer; + static encodeCmdQueryUser(short_user_id: string): Buffer; + static encodeCmdQueryPassword(password_id: string): Buffer; + static encodeCmdModifyPassword(password_id: string, passcode: string): Buffer; + static encodeCmdUpdateSchedule(short_user_id: string, schedule: Schedule): Buffer; + static encodeCmdModifyUsername(username: string, password_id: string): Buffer; + static encodeCmdGetLockParam(user_id: string): Buffer; + static encodeCmdSetLockParamAutoLock(enabled: boolean, lockTimeSeconds: number): Buffer; + private static hexTime; + static encodeCmdSetLockParamAutoLockSchedule(enabled: boolean, schedule_start: string, schedule_end: string): Buffer; + static encodeCmdSetLockParamOneTouchLock(enabled: boolean): Buffer; + static encodeCmdSetLockParamWrongTryProtect(enabled: boolean, lockdownTime: number, attempts: number): Buffer; + static encodeCmdSetLockParamScramblePasscode(enabled: boolean): Buffer; + static encodeCmdSetLockParamSound(value: number): Buffer; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + static encodeCmdSmartLockUnlock(adminUserId: string, lock: boolean, username: string, shortUserId: string): Buffer; + static encodeCmdSmartLockCalibrate(adminUserId: string): Buffer; + static encodeCmdSetSmartLockParamWrongTryProtect(adminUserId: string, enabled: boolean, attempts: number, lockdownTime: number): Buffer; + private static hexTimeSmartLock; + static encodeCmdSetSmartLockParamAutoLock(adminUserId: string, enabled: boolean, lockTimeSeconds: number, schedule: boolean, scheduleStart: string, scheduleEnd: string): Buffer; + static encodeCmdSetSmartLockParamOneTouchLock(adminUserId: string, enabled: boolean): Buffer; + static encodeCmdSetSmartLockParamScramblePasscode(adminUserId: string, enabled: boolean): Buffer; + static encodeCmdSetSmartLockParamSound(adminUserId: string, value: number): Buffer; + static encodeCmdSmartLockAddUser(adminUserId: string, shortUserId: string, passcode: string, username: string, schedule?: Schedule, userPermission?: number): Buffer; + static encodeCmdSmartLockDeleteUser(adminUserId: string, shortUserId: string): Buffer; + static encodeCmdSmartLockUpdateSchedule(adminUserId: string, shortUserId: string, username: string, schedule: Schedule, userPermission?: number): Buffer; + static encodeCmdSmartLockModifyPassword(adminUserId: string, passwordId: string, passcode: string): Buffer; + static encodeCmdSmartLockGetUserList(adminUserId: string): Buffer; + static encodeCmdSmartLockStatus(adminUserId: string): Buffer; + static encodeCmdSmartLockGetParams(adminUserId: string): Buffer; +} +export declare class LockKeypad extends Device { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; +} +export declare class Keypad extends Device { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + getState(): PropertyValue; + isBatteryLow(): PropertyValue; + isBatteryCharging(): PropertyValue; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; +} +export declare class SmartSafe extends Device { + static readonly IV = "052E19EB3F880512E99EBB684D4DC1FE"; + static readonly DATA_HEADER: number[]; + static readonly VERSION_CODE = 1; + static readonly PUSH_NOTIFICATION_POSITION: { + [index: string]: number; + }; + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + private static getCurrentTimeInSeconds; + private static getUInt8Buffer; + private static getUint16LEBuffer; + private static encodeCmdSingleUInt8; + static encodeCmdWrongTryProtect(user_id: string, enabled: boolean, attempts: number, lockdownTime: number): Buffer; + static encodeCmdLeftOpenAlarm(user_id: string, enabled: boolean, duration: number): Buffer; + static encodeCmdDualUnlock(user_id: string, enabled: boolean): Buffer; + static encodeCmdScramblePIN(user_id: string, enabled: boolean): Buffer; + static encodeCmdPowerSave(user_id: string, enabled: boolean): Buffer; + static encodeCmdInteriorBrightness(user_id: string, interiorBrightness: number, duration: number): Buffer; + static encodeCmdTamperAlarm(user_id: string, option: number): Buffer; + static encodeCmdRemoteUnlock(user_id: string, option: number): Buffer; + static encodeCmdAlertVolume(user_id: string, volume: number): Buffer; + static encodeCmdPromptVolume(user_id: string, volume: number): Buffer; + static encodeCmdPushNotification(user_id: string, modes: number): Buffer; + static encodeCmdUnlock(user_id: string): Buffer; + static encodeCmdVerifyPIN(user_id: string, pin: string): Buffer; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + shakeEvent(event: number, eventDurationSeconds: number): void; + alarm911Event(event: number, eventDurationSeconds: number): void; + jammedEvent(eventDurationSeconds: number): void; + lowBatteryEvent(eventDurationSeconds: number): void; + wrongTryProtectAlarmEvent(eventDurationSeconds: number): void; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + getState(): PropertyValue; + getBatteryValue(): PropertyValue; + getWifiRssi(): PropertyValue; + isLocked(): boolean; +} +export declare class Tracker extends Device { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + setFindPhone(value: boolean): Promise; + setLeftBehindAlarm(value: boolean): Promise; + setTrackerType(value: TrackerType): Promise; +} +export declare class DoorbellLock extends DoorbellCamera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + getState(): PropertyValue; + getBatteryValue(): PropertyValue; + getWifiRssi(): PropertyValue; + isLocked(): PropertyValue; + getLockStatus(): PropertyValue; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; +} +export declare class SmartDrop extends Camera { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; + processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; +} +export declare class UnknownDevice extends Device { + static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; + getStateChannel(): string; +} diff --git a/build/http/device.js b/build/http/device.js new file mode 100644 index 00000000..1680792b --- /dev/null +++ b/build/http/device.js @@ -0,0 +1,4314 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UnknownDevice = exports.SmartDrop = exports.DoorbellLock = exports.Tracker = exports.SmartSafe = exports.Keypad = exports.LockKeypad = exports.Lock = exports.MotionSensor = exports.EntrySensor = exports.Sensor = exports.GarageCamera = exports.WallLightCam = exports.FloodlightCamera = exports.BatteryDoorbellCamera = exports.WiredDoorbellCamera = exports.DoorbellCamera = exports.IndoorCamera = exports.SoloCamera = exports.Camera = exports.Device = void 0; +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const types_1 = require("./types"); +const parameter_1 = require("./parameter"); +const types_2 = require("../p2p/types"); +const utils_1 = require("./utils"); +const utils_2 = require("../p2p/utils"); +const types_3 = require("../push/types"); +const utils_3 = require("../utils"); +const error_1 = require("./error"); +const error_2 = require("../error"); +const logging_1 = require("../logging"); +const station_1 = require("./station"); +class Device extends tiny_typed_emitter_1.TypedEmitter { + api; + rawDevice; + eventTimeouts = new Map(); + pictureEventTimeouts = new Map(); + properties = {}; + config = {}; + rawProperties = {}; + ready = false; + constructor(api, device, deviceConfig) { + super(); + this.api = api; + this.rawDevice = device; + this.config = deviceConfig; + } + initializeState() { + this.update(this.rawDevice); + this.ready = true; + setImmediate(() => { + this.emit("ready", this); + }); + } + initialize() { + this.initializeState(); + } + getRawDevice() { + return this.rawDevice; + } + update(device) { + this.rawDevice = device; + const metadata = this.getPropertiesMetadata(true); + for (const property of Object.values(metadata)) { + if (this.rawDevice[property.key] !== undefined && typeof property.key === "string") { + if (property.key === "cover_path" && !this.getPropertyValue(property.name) && this.rawDevice[property.key] !== "") { + // First image initialisation if no image has been set yet and a cloud value is available + this.updateProperty(property.name, this.convertRawPropertyValue(property, (0, utils_1.getImagePath)(this.rawDevice[property.key]))); + } + else { + this.updateProperty(property.name, this.convertRawPropertyValue(property, this.rawDevice[property.key])); + } + } + else if (this.properties[property.name] === undefined && property.default !== undefined && !this.ready) { + this.updateProperty(property.name, property.default); + } + } + if (this.rawDevice.params) { + this.rawDevice.params.forEach(param => { + this.updateRawProperty(param.param_type, param.param_value, "http"); + }); + } + logging_1.rootHTTPLogger.debug("Update device cloud properties", { deviceSN: this.getSerial(), properties: this.properties }); + } + updateProperty(name, value, force = false) { + if ((this.properties[name] !== undefined && this.properties[name] !== value) + || this.properties[name] === undefined || force) { + const oldValue = this.properties[name]; + this.properties[name] = value; + this.emit("property changed", this, name, value, this.ready); + try { + this.handlePropertyChange(this.getPropertyMetadata(name, true), oldValue, this.properties[name]); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + if (error instanceof error_1.InvalidPropertyError) { + logging_1.rootHTTPLogger.error(`Device update property - Invalid Property error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), propertyName: name, propertyValue: value, force: force }); + } + else { + logging_1.rootHTTPLogger.error(`Device update property - Property error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), propertyName: name, propertyValue: value, force: force }); + } + } + return true; + } + return false; + } + updateRawProperties(values) { + Object.keys(values).forEach(paramtype => { + const param_type = Number.parseInt(paramtype); + this.updateRawProperty(param_type, values[param_type].value, values[param_type].source); + }); + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + handlePropertyChange(metadata, oldValue, newValue) { + try { + if ((metadata.key === types_1.ParamType.DETECT_MOTION_SENSITIVE || metadata.key === types_1.ParamType.DETECT_MODE) && this.isWiredDoorbell()) { + //TODO: Not perfectly solved, can in certain cases briefly trigger a double event where the last event is the correct one + const rawSensitivity = this.getRawProperty(types_1.ParamType.DETECT_MOTION_SENSITIVE); + const rawMode = this.getRawProperty(types_1.ParamType.DETECT_MODE); + if (rawSensitivity !== undefined && rawMode !== undefined && this.hasProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity)) { + const sensitivity = Number.parseInt(rawSensitivity); + const mode = Number.parseInt(rawMode); + if (mode === 3 && sensitivity === 2) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 1); + } + else if (mode === 1 && sensitivity === 1) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 2); + } + else if (mode === 1 && sensitivity === 2) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 3); + } + else if (mode === 1 && sensitivity === 3) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 4); + } + else if (mode === 2 && sensitivity === 1) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 5); + } + } + } + else if (metadata.name === types_1.PropertyName.DeviceWifiRSSI && this.hasProperty(types_1.PropertyName.DeviceWifiSignalLevel)) { + this.updateProperty(types_1.PropertyName.DeviceWifiSignalLevel, (0, utils_1.calculateWifiSignalLevel)(this, newValue)); + } + else if (metadata.name === types_1.PropertyName.DeviceCellularRSSI && this.hasProperty(types_1.PropertyName.DeviceCellularSignalLevel)) { + this.updateProperty(types_1.PropertyName.DeviceCellularSignalLevel, (0, utils_1.calculateCellularSignalLevel)(newValue)); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error(`Device handle property change - error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), metadata: metadata, oldValue: oldValue, newValue: newValue }); + } + } + updateRawProperty(type, value, source) { + const parsedValue = parameter_1.ParameterHelper.readValue(this.getStationSerial(), type, value, logging_1.rootHTTPLogger); + if (parsedValue !== undefined && + ((this.rawProperties[type] !== undefined && this.rawProperties[type].value !== parsedValue && (0, utils_1.isPrioritySourceType)(this.rawProperties[type].source, source)) || this.rawProperties[type] === undefined)) { + this.rawProperties[type] = { + value: parsedValue, + source: source + }; + if (this.ready) + this.emit("raw property changed", this, type, this.rawProperties[type].value); + const metadata = this.getPropertiesMetadata(true); + for (const property of Object.values(metadata)) { + if (property.key === type) { + try { + this.updateProperty(property.name, this.convertRawPropertyValue(property, this.rawProperties[type].value)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + if (error instanceof error_1.PropertyNotSupportedError) { + logging_1.rootHTTPLogger.debug("Device update raw property - Property not supported error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), type: type, value: value, source: source }); + } + else { + logging_1.rootHTTPLogger.error("Device update raw property - Property error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), type: type, value: value, source: source }); + } + } + } + } + return true; + } + return false; + } + convertRawPropertyValue(property, value) { + try { + if (property.key === types_1.ParamType.PRIVATE_MODE || property.key === types_1.ParamType.OPEN_DEVICE || property.key === types_2.CommandType.CMD_DEVS_SWITCH) { + if ((this.isIndoorCamera() && !this.isIndoorPanAndTiltCameraS350()) || (this.isWiredDoorbell() && !this.isWiredDoorbellT8200X()) || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424) { + return value !== undefined ? (value === "true" ? true : false) : false; + } + return value !== undefined ? (value === "0" ? true : false) : false; + } + else if (property.key === types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE) { + switch (property.name) { + case types_1.PropertyName.DeviceNotificationRing: { + const booleanProperty = property; + try { + return value !== undefined ? (Number.parseInt(value.notification_ring_onoff) === 1 ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE DeviceNotificationRing Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceNotificationMotion: { + const booleanProperty = property; + try { + return value !== undefined ? (Number.parseInt(value.notification_motion_onoff) === 1 ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE DeviceNotificationMotion Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceNotificationType: { + const numericProperty = property; + try { + return value !== undefined ? Number.parseInt(value.notification_style) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE DeviceNotificationType Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + } + } + else if (property.key === types_1.ParamType.DOORBELL_NOTIFICATION_OPEN) { + try { + switch (property.name) { + case types_1.PropertyName.DeviceNotificationRing: + return value !== undefined ? (Number.parseInt(value) === 3 || Number.parseInt(value) === 1 ? true : false) : false; + case types_1.PropertyName.DeviceNotificationMotion: + return value !== undefined ? (Number.parseInt(value) === 3 || Number.parseInt(value) === 2 ? true : false) : false; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - DOORBELL_NOTIFICATION_OPEN Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return false; + } + } + else if (property.key === types_2.CommandType.CMD_SET_PIRSENSITIVITY) { + const numericProperty = property; + try { + if (this.getDeviceType() === types_1.DeviceType.CAMERA || this.getDeviceType() === types_1.DeviceType.CAMERA_E) { + const convertedValue = ((200 - Number.parseInt(value)) / 2) + 1; + return convertedValue; + } + else if (this.isCamera2Product()) { + let convertedValue; + switch (Number.parseInt(value)) { + case 192: + convertedValue = 1; + break; + case 118: + convertedValue = 2; + break; + case 72: + convertedValue = 3; + break; + case 46: + convertedValue = 4; + break; + case 30: + convertedValue = 5; + break; + case 20: + convertedValue = 6; + break; + case 14: + convertedValue = 7; + break; + default: + convertedValue = 4; + break; + } + return convertedValue; + } + else { + return value !== undefined ? Number.parseInt(value) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_PIRSENSITIVITY Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME || property.key === types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME) { + const tmpBuffer = Buffer.from(value, "hex"); + return `${tmpBuffer.subarray(0, 1).readInt8().toString().padStart(2, "0")}:${tmpBuffer.subarray(1).readInt8().toString().padStart(2, "0")}`; + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY) { + const numericProperty = property; + try { + switch (property.name) { + case types_1.PropertyName.DeviceMotionDetectionSensitivityMode: + return value !== undefined && value.model !== undefined ? value.model : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityStandard: + return value !== undefined && value.model === 0 ? (0, utils_1.getDistances)(value.block_list)[0] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedA: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[0] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedB: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[1] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedC: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[2] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedD: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[3] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedE: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[4] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedF: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[5] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedG: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[6] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedH: + return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[7] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error(`Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY ${property.name} Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE) { + switch (property.name) { + case types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom: { + const stringProperty = property; + try { + return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.start_hour !== undefined && value?.setting[0]?.start_min !== undefined) ? `${value?.setting[0]?.start_hour?.padStart(2, "0")}:${value?.setting[0]?.start_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseTimeFrom Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo: { + const stringProperty = property; + try { + return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.end_hour !== undefined && value?.setting[0]?.end_min !== undefined) ? `${value?.setting[0]?.end_hour?.padStart(2, "0")}:${value?.setting[0]?.end_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseTimeTo Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification: { + const booleanProperty = property; + try { + return value?.setting[0]?.push_notify === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponsePhoneNotification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification: { + const booleanProperty = property; + try { + return value?.setting[0]?.homebase_alert === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseHomeBaseNotification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse: { + const booleanProperty = property; + try { + return value?.setting[0]?.auto_voice_resp === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseAutoVoiceResponse Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice: { + const numericProperty = property; + try { + return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.auto_voice_id !== undefined) ? value?.setting[0]?.auto_voice_id : numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseAutoVoiceResponseVoice Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH) { + const booleanProperty = property; + try { + return value !== undefined && value.ai_bottom_switch !== undefined ? value.ai_bottom_switch === 1024 : (booleanProperty.default !== undefined ? booleanProperty.default : false); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME) { + const stringProperty = property; + try { + return (value?.start_h !== undefined && value?.start_m !== undefined) ? `${value?.start_h?.toString().padStart(2, "0")}:${value?.start_m?.toString().padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE) { + switch (property.name) { + case types_1.PropertyName.DeviceRingAutoResponse: { + const booleanProperty = property; + try { + return value?.setting[0]?.active === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponse Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceRingAutoResponseVoiceResponse: { + const booleanProperty = property; + try { + return value?.setting[0]?.active === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseVoiceResponse Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceRingAutoResponseTimeFrom: { + const stringProperty = property; + try { + return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.start_hour !== undefined && value?.setting[0]?.start_min !== undefined) ? `${value?.setting[0]?.start_hour?.padStart(2, "0")}:${value?.setting[0]?.start_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseTimeFrom Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceRingAutoResponseTimeTo: { + const stringProperty = property; + try { + return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.end_hour !== undefined && value?.setting[0]?.end_min !== undefined) ? `${value?.setting[0]?.end_hour?.padStart(2, "0")}:${value?.setting[0]?.end_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseTimeTo Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice: { + const numericProperty = property; + try { + return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.auto_voice_id !== undefined) ? value?.setting[0]?.auto_voice_id : numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseVoiceResponseVoice Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME) { + switch (property.name) { + case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom: { + const stringProperty = property; + try { + return (value?.start_h !== undefined && value?.start_m !== undefined) ? `${value?.start_h?.toString().padStart(2, "0")}:${value?.start_m?.toString().padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME DeviceDeliveryGuardPackageGuardingActivatedTimeFrom Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo: { + const stringProperty = property; + try { + return (value?.end_h !== undefined && value?.end_m !== undefined) ? `${value?.end_h?.toString().padStart(2, "0")}:${value?.end_m?.toString().padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME DeviceDeliveryGuardPackageGuardingActivatedTimeTo Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE) { + const numericProperty = property; + try { + return value !== undefined && value.radar_wd_distance !== undefined ? value.radar_wd_distance : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME) { + const numericProperty = property; + try { + return value !== undefined && value.radar_wd_time !== undefined ? value.radar_wd_time : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_TIME Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE) { + const numericProperty = property; + try { + return value !== undefined && value.auto_voice_id !== undefined ? value.auto_voice_id : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS) { + switch (property.name) { + case types_1.PropertyName.DeviceLeavingReactionStartTime: { + const stringProperty = property; + try { + return (value !== undefined && value.start_hour !== undefined && value.start_min !== undefined) ? `${value.start_hour.padStart(2, "0")}:${value.start_min.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_MOTION_SET_LEAVING_REACTIONS DeviceLeavingReactionStartTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceLeavingReactionEndTime: { + const stringProperty = property; + try { + return (value !== undefined && value.end_hour !== undefined && value.end_min !== undefined) ? `${value.end_hour.padStart(2, "0")}:${value.end_min.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_MOTION_SET_LEAVING_REACTIONS DeviceLeavingReactionEndTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return stringProperty.default !== undefined ? stringProperty.default : ""; + } + } + case types_1.PropertyName.DeviceLeavingReactionNotification: { + const booleanProperty = property; + try { + return value !== undefined && value.push_notify === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_MOTION_SET_LEAVING_REACTIONS DeviceLeavingReactionNotification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + } + } + else if (property.key === types_2.CommandType.CMD_SET_SNOOZE_MODE) { + switch (property.name) { + case types_1.PropertyName.DeviceSnooze: { + const booleanProperty = property; + try { + return value !== undefined && value.snooze_time !== undefined && value.snooze_time !== "" && Number.parseInt(value.snooze_time) !== 0 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnooze Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceSnoozeTime: { + const numericProperty = property; + try { + return value !== undefined && value.snooze_time !== undefined && value.snooze_time !== "" ? Number.parseInt(value.snooze_time) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + case types_1.PropertyName.DeviceSnoozeStartTime: { + const numericProperty = property; + try { + return value !== undefined && value.startTime !== undefined ? Number.parseInt(value.startTime) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + case types_1.PropertyName.DeviceSnoozeHomebase: { + const booleanProperty = property; + try { + return value !== undefined && value.homebase_onoff !== undefined ? (value.homebase_onoff === 1 ? true : false) : (booleanProperty.default !== undefined ? booleanProperty.default : false); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeHomebase Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceSnoozeMotion: { + const booleanProperty = property; + try { + return value !== undefined && value.motion_notify_onoff !== undefined ? (value.motion_notify_onoff === 1 ? true : false) : (booleanProperty.default !== undefined ? booleanProperty.default : false); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeMotion Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + case types_1.PropertyName.DeviceSnoozeChime: { + const booleanProperty = property; + try { + return value !== undefined && value.chime_onoff !== undefined ? (value.chime_onoff === 1 ? true : false) : (booleanProperty.default !== undefined ? booleanProperty.default : false); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeChime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + } + } + else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition || + property.name === types_1.PropertyName.DeviceMotionDetectionTypePet || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.getStationSerial().startsWith("T8030")) { + const booleanProperty = property; + try { + return (0, utils_1.isHB3DetectionModeEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.HB3DetectionTypes.HUMAN_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition ? types_1.HB3DetectionTypes.HUMAN_RECOGNITION : property.name === types_1.PropertyName.DeviceMotionDetectionTypePet ? types_1.HB3DetectionTypes.PET_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle ? types_1.HB3DetectionTypes.VEHICLE_DETECTION : types_1.HB3DetectionTypes.ALL_OTHER_MOTION); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - HB3 motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.isOutdoorPanAndTiltCamera()) { + const booleanProperty = property; + try { + return (0, utils_1.isT8170DetectionModeEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.T8170DetectionTypes.HUMAN_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle ? types_1.T8170DetectionTypes.VEHICLE_DETECTION : types_1.T8170DetectionTypes.ALL_OTHER_MOTION); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - T8170 motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || + property.name === types_1.PropertyName.DeviceMotionDetectionTypePet || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.isIndoorPanAndTiltCameraS350()) { + const booleanProperty = property; + try { + return (0, utils_1.isIndoorS350DetectionModeEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.IndoorS350DetectionTypes.HUMAN_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypePet ? types_1.IndoorS350DetectionTypes.PET_DETECTION : types_1.IndoorS350DetectionTypes.ALL_OTHER_MOTION); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - T8416 motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || + property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.isSoloCameras()) { + const booleanProperty = property; + try { + return property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.SoloCameraDetectionTypes.HUMAN_DETECTION === Number.parseInt(value) ? true : false : types_1.SoloCameraDetectionTypes.ALL_OTHER_MOTION === Number.parseInt(value) ? true : false; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - SoloCamera motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if ((property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion || + property.name === types_1.PropertyName.DeviceNotificationPerson || + property.name === types_1.PropertyName.DeviceNotificationPet || + property.name === types_1.PropertyName.DeviceNotificationCrying || + property.name === types_1.PropertyName.DeviceNotificationAllSound) && this.isIndoorPanAndTiltCameraS350()) { + const booleanProperty = property; + try { + return (0, utils_1.isIndoorNotitficationEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion ? types_1.IndoorS350NotificationTypes.ALL_OTHER_MOTION : property.name === types_1.PropertyName.DeviceNotificationPerson ? types_1.IndoorS350NotificationTypes.HUMAN : property.name === types_1.PropertyName.DeviceNotificationPet ? types_1.IndoorS350NotificationTypes.PET : property.name === types_1.PropertyName.DeviceNotificationCrying ? types_1.IndoorS350NotificationTypes.CRYING : types_1.IndoorS350NotificationTypes.ALL_SOUND); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - IndoorPanAndTiltCameraS350 notification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if ((property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion || + property.name === types_1.PropertyName.DeviceNotificationPerson || + property.name === types_1.PropertyName.DeviceNotificationPet || + property.name === types_1.PropertyName.DeviceNotificationVehicle) && this.isFloodLightT8425()) { + const booleanProperty = property; + try { + return (0, utils_1.isFloodlightT8425NotitficationEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion ? types_1.FloodlightT8425NotificationTypes.ALL_OTHER_MOTION : property.name === types_1.PropertyName.DeviceNotificationPerson ? types_1.FloodlightT8425NotificationTypes.HUMAN : property.name === types_1.PropertyName.DeviceNotificationPet ? types_1.FloodlightT8425NotificationTypes.PET : types_1.FloodlightT8425NotificationTypes.VEHICLE); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - FloodLightT8425 notification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if (property.key === types_2.CommandType.CELLULAR_INFO) { + switch (property.name) { + case types_1.PropertyName.DeviceCellularSignal: { + const stringProperty = property; + return value !== undefined && value.Signal !== undefined ? String(value.Signal) : (stringProperty.default !== undefined ? stringProperty.default : ""); + } + case types_1.PropertyName.DeviceCellularBand: { + const stringProperty = property; + return value !== undefined && value.band !== undefined ? String(value.band) : (stringProperty.default !== undefined ? stringProperty.default : ""); + } + case types_1.PropertyName.DeviceCellularIMEI: { + const stringProperty = property; + return value !== undefined && value.imei !== undefined ? String(value.imei) : (stringProperty.default !== undefined ? stringProperty.default : ""); + } + case types_1.PropertyName.DeviceCellularICCID: { + const stringProperty = property; + return value !== undefined && value.iccid !== undefined ? String(value.iccid) : (stringProperty.default !== undefined ? stringProperty.default : ""); + } + } + } + else if (property.key === types_2.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2) { + const numericProperty = property; + const quality = value; + let mode = quality.mode_1; + if (quality.cur_mode === 0) { + mode = quality.mode_0; + } + try { + return value !== undefined && mode !== undefined && mode.quality !== undefined ? mode.quality : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_VIDEO_QUALITY2 Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2) { + const numericProperty = property; + const quality = value; + let mode = quality.mode_1; + if (quality.cur_mode === 0) { + mode = quality.mode_0; + } + try { + return value !== undefined && mode !== undefined && mode.quality !== undefined ? mode.quality : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_RECORD_QUALITY2 Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.key === types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP && this.isCameraProfessional247()) { + return value !== undefined ? (value === "0" ? true : false) : false; + } + else if (property.key === types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425) { + const currentValue = value; + switch (property.name) { + case types_1.PropertyName.DeviceMotionDetectionRange: { + const numericProperty = property; + return currentValue !== undefined && currentValue.cur_mode !== undefined ? currentValue.cur_mode : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceMotionDetectionRangeStandardSensitivity: { + const numericProperty = property; + return currentValue !== undefined && currentValue.mode0 !== undefined && Array.isArray(currentValue.mode0) && currentValue.mode0.length > 0 && currentValue.mode0.find((element) => element.id === 1) !== undefined ? currentValue.mode0.find((element) => element.id === 1).sst : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity: { + const numericProperty = property; + return currentValue !== undefined && currentValue.mode1 !== undefined && Array.isArray(currentValue.mode1) && currentValue.mode1.length > 0 && currentValue.mode1.find((element) => element.id === 1) !== undefined ? currentValue.mode1.find((element) => element.id === 1).sst : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity: { + const numericProperty = property; + return currentValue !== undefined && currentValue.mode1 !== undefined && Array.isArray(currentValue.mode1) && currentValue.mode1.length > 0 && currentValue.mode1.find((element) => element.id === 2) !== undefined ? currentValue.mode1.find((element) => element.id === 2).sst : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceMotionDetectionTestMode: { + const booleanProperty = property; + return currentValue !== undefined && currentValue.test_mode !== undefined ? currentValue.test_mode === 1 ? true : false : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + } + else if (property.key === types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425) { + const currentValue = value; + const numericProperty = property; + return currentValue !== undefined && currentValue.brightness !== undefined ? currentValue.brightness : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + else if (property.key === types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425) { + const currentValue = value; + switch (property.name) { + case types_1.PropertyName.DeviceLightSettingsBrightnessMotion: { + const numericProperty = property; + return currentValue !== undefined && currentValue.brightness !== undefined ? currentValue.brightness : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceLightSettingsMotionActivationMode: { + const numericProperty = property; + return currentValue !== undefined && currentValue.mode !== undefined ? currentValue.mode : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceLightSettingsMotionTriggeredTimer: { + const numericProperty = property; + return currentValue !== undefined && currentValue.time !== undefined ? currentValue.time : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + case types_1.PropertyName.DeviceLightSettingsMotionTriggered: { + const booleanProperty = property; + return currentValue !== undefined && currentValue.enable !== undefined ? currentValue.enable === 1 ? true : false : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + } + else if (property.key === types_2.CommandType.SUB1G_REP_UNPLUG_POWER_LINE) { + const numericProperty = property; + try { + const rawCharging = Number.parseInt(value); + return rawCharging !== undefined ? ((0, utils_2.isCharging)(rawCharging) ? 1 : 0) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.warn("Device convert raw property - SUB1G_REP_UNPLUG_POWER_LINE Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.name === types_1.PropertyName.Model && this.isLockWifiT8510P()) { + return "T8510P"; + } + else if (property.type === "number") { + const numericProperty = property; + try { + return value !== undefined ? Number.parseInt(value) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.warn("Device convert raw property - PropertyMetadataNumeric Convert Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); + } + } + else if (property.type === "boolean") { + const booleanProperty = property; + try { + return value !== undefined ? (typeof value === "number" ? !!value : (value === "1" || value.toLowerCase() === "true" ? true : false)) : (booleanProperty.default !== undefined ? booleanProperty.default : false); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.warn("Device convert raw property - PropertyMetadataBoolean Convert Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + return booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + else if (property.type === "string") { + const stringProperty = property; + return value !== undefined ? value : (stringProperty.default !== undefined ? stringProperty.default : ""); + } + else if (property.type === "object") { + const objectProperty = property; + return value !== undefined ? value : (objectProperty.default !== undefined ? objectProperty.default : undefined); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Device convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return value; + } + getPropertyMetadata(name, hidden = false) { + const property = this.getPropertiesMetadata(hidden)[name]; + if (property !== undefined) + return property; + throw new error_1.InvalidPropertyError("Property name is not valid", { context: { name: name } }); + } + getPropertyValue(name) { + return this.properties[name]; + } + hasPropertyValue(name) { + return this.getPropertyValue(name) !== undefined; + } + getRawProperty(type) { + return this.rawProperties[type]?.value; + } + getRawProperties() { + return this.rawProperties; + } + getProperties() { + const result = {}; + for (const property of Object.keys(this.properties)) { + if (!property.startsWith("hidden-")) + result[property] = this.properties[property]; + } + return result; + } + getPropertiesMetadata(hidden = false) { + let metadata = { + ...types_1.DeviceProperties[this.getDeviceType()] + }; + if (this.isFloodLightT8420X()) { + metadata = { + ...types_1.FloodlightT8420XDeviceProperties + }; + } + else if (this.isWiredDoorbellT8200X()) { + metadata = { + ...types_1.WiredDoorbellT8200XDeviceProperties + }; + } + else if (this.isLockWifiT8510P()) { + metadata = { + ...types_1.LockT8510PDeviceProperties + }; + metadata[types_1.PropertyName.Type].states[this.getDeviceType()] = "Smart Lock S230 (T8510P)"; + } + else if (this.isLockWifiT8520P()) { + metadata = { + ...types_1.LockT8520PDeviceProperties + }; + metadata[types_1.PropertyName.Type].states[this.getDeviceType()] = "Smart Lock S231 (T8520P)"; + } + else if (this.isSoloCameras() && station_1.Station.isStationHomeBase3BySn(this.getStationSerial())) { + const newMetadata = { + ...metadata + }; + newMetadata[types_1.PropertyName.DeviceAudioRecording] = types_1.DeviceAudioRecordingProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetectionSensitivity] = types_1.DeviceMotionDetectionSensitivityCamera2Property; + newMetadata[types_1.PropertyName.DeviceVideoRecordingQuality] = types_1.DeviceVideoRecordingQualitySoloCamerasHB3Property; + newMetadata[types_1.PropertyName.DeviceNotificationType] = types_1.DeviceNotificationTypeProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetection] = types_1.DeviceMotionDetectionProperty; + metadata = newMetadata; + } + else if (this.isIndoorPanAndTiltCameraS350() && station_1.Station.isStationHomeBase3BySn(this.getStationSerial())) { + const newMetadata = { + ...metadata + }; + newMetadata[types_1.PropertyName.DeviceMotionDetection] = types_1.DeviceMotionDetectionProperty; + newMetadata[types_1.PropertyName.DeviceAudioRecording] = types_1.DeviceAudioRecordingProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetectionSensitivity] = types_1.DeviceMotionDetectionSensitivityBatteryDoorbellProperty; + newMetadata[types_1.PropertyName.DeviceStatusLed] = types_1.DeviceStatusLedIndoorS350Property; + metadata = newMetadata; + } + if (station_1.Station.isStationHomeBase3BySn(this.getStationSerial()) && (metadata[types_1.PropertyName.DeviceMotionDetectionType] !== undefined || metadata[types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions] !== undefined) && this.isCamera()) { + const newMetadata = { + ...metadata + }; + delete newMetadata[types_1.PropertyName.DeviceMotionDetectionType]; + delete newMetadata[types_1.PropertyName.DeviceLastChargingDays]; + delete newMetadata[types_1.PropertyName.DeviceLastChargingFalseEvents]; + delete newMetadata[types_1.PropertyName.DeviceLastChargingRecordedEvents]; + delete newMetadata[types_1.PropertyName.DeviceLastChargingTotalEvents]; + delete newMetadata[types_1.PropertyName.DeviceBatteryUsageLastWeek]; + newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeHuman] = types_1.DeviceMotionHB3DetectionTypeHumanProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition] = types_1.DeviceMotionHB3DetectionTypeHumanRecognitionProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetectionTypePet] = types_1.DeviceMotionHB3DetectionTypePetProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeVehicle] = types_1.DeviceMotionHB3DetectionTypeVehicleProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions] = types_1.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty; + newMetadata[types_1.PropertyName.DevicePersonDetected] = types_1.DevicePersonDetectedProperty; + newMetadata[types_1.PropertyName.DeviceMotionDetected] = types_1.DeviceMotionDetectedProperty; + newMetadata[types_1.PropertyName.DevicePetDetected] = types_1.DevicePetDetectedProperty; + newMetadata[types_1.PropertyName.DeviceSoundDetected] = types_1.DeviceSoundDetectedProperty; + newMetadata[types_1.PropertyName.DeviceCryingDetected] = types_1.DeviceCryingDetectedProperty; + newMetadata[types_1.PropertyName.DeviceIdentityPersonDetected] = types_1.DeviceIdentityPersonDetectedProperty; + newMetadata[types_1.PropertyName.DeviceStrangerPersonDetected] = types_1.DeviceStrangerPersonDetectedProperty; + newMetadata[types_1.PropertyName.DeviceVehicleDetected] = types_1.DeviceVehicleDetectedProperty; + newMetadata[types_1.PropertyName.DeviceDogDetected] = types_1.DeviceDogDetectedProperty; + newMetadata[types_1.PropertyName.DeviceDogLickDetected] = types_1.DeviceDogLickDetectedProperty; + newMetadata[types_1.PropertyName.DeviceDogPoopDetected] = types_1.DeviceDogPoopDetectedProperty; + newMetadata[types_1.PropertyName.DeviceDetectionStatisticsWorkingDays] = types_1.DeviceDetectionStatisticsWorkingDaysProperty; + newMetadata[types_1.PropertyName.DeviceDetectionStatisticsDetectedEvents] = types_1.DeviceDetectionStatisticsDetectedEventsProperty; + newMetadata[types_1.PropertyName.DeviceDetectionStatisticsRecordedEvents] = types_1.DeviceDetectionStatisticsRecordedEventsProperty; + if (!this.isSmartDrop()) { + //TODO: Check with future devices if this property overriding is correct (for example with indoor cameras etc.) + newMetadata[types_1.PropertyName.DeviceEnabled] = types_1.DeviceEnabledSoloProperty; + } + metadata = newMetadata; + } + else if (Object.keys(metadata).length === 0) { + metadata = { + ...types_1.GenericDeviceProperties + }; + } + if (!hidden) { + for (const property of Object.keys(metadata)) { + if (property.startsWith("hidden-")) + delete metadata[property]; + } + } + return metadata; + } + hasProperty(name, hidden = false) { + return this.getPropertiesMetadata(hidden)[name] !== undefined; + } + getCommands() { + const commands = types_1.DeviceCommands[this.getDeviceType()]; + if (commands === undefined) + return []; + return commands; + } + hasCommand(name) { + return this.getCommands().includes(name); + } + processPushNotification(_station, _message, _eventDurationSeconds) { + // Nothing to do + } + setCustomPropertyValue(name, value) { + const metadata = this.getPropertyMetadata(name); + if (typeof metadata.key === "string" && metadata.key.startsWith("custom_")) { + this.updateProperty(name, value); + } + } + destroy() { + this.eventTimeouts.forEach((timeout) => { + clearTimeout(timeout); + }); + this.eventTimeouts.clear(); + this.pictureEventTimeouts.forEach((timeout) => { + clearTimeout(timeout); + }); + this.pictureEventTimeouts.clear(); + } + clearEventTimeout(eventType) { + const timeout = this.eventTimeouts.get(eventType); + if (timeout !== undefined) { + clearTimeout(timeout); + this.eventTimeouts.delete(eventType); + } + } + static isSupported(type) { + return types_1.DeviceProperties[type] !== undefined ? true : false; + } + static isCamera(type) { + if (type == types_1.DeviceType.CAMERA || + type == types_1.DeviceType.CAMERA2 || + type == types_1.DeviceType.CAMERA_E || + type == types_1.DeviceType.CAMERA2C || + type == types_1.DeviceType.INDOOR_CAMERA || + type == types_1.DeviceType.INDOOR_PT_CAMERA || + type == types_1.DeviceType.FLOODLIGHT || + type == types_1.DeviceType.DOORBELL || + type == types_1.DeviceType.BATTERY_DOORBELL || + type == types_1.DeviceType.BATTERY_DOORBELL_2 || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || + type == types_1.DeviceType.BATTERY_DOORBELL_C30 || + type == types_1.DeviceType.BATTERY_DOORBELL_C31 || + type == types_1.DeviceType.DOORBELL_SOLO || + type == types_1.DeviceType.CAMERA2C_PRO || + type == types_1.DeviceType.CAMERA2_PRO || + type == types_1.DeviceType.CAMERA3 || + type == types_1.DeviceType.CAMERA3C || + type == types_1.DeviceType.CAMERA3_PRO || + type == types_1.DeviceType.PROFESSIONAL_247 || + type == types_1.DeviceType.INDOOR_CAMERA_1080 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_1080 || + type == types_1.DeviceType.OUTDOOR_PT_CAMERA || + type == types_1.DeviceType.EUFYCAM_S4 || + type == types_1.DeviceType.SOLO_CAMERA || + type == types_1.DeviceType.SOLO_CAMERA_PRO || + type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 || + type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_2K || + type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR || + type == types_1.DeviceType.SOLO_CAMERA_SOLAR || + type == types_1.DeviceType.SOLO_CAMERA_C210 || + type == types_1.DeviceType.SOLO_CAMERA_E30 || + type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P || + type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT || + type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_2K || + type == types_1.DeviceType.INDOOR_COST_DOWN_CAMERA || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425 || + type == types_1.DeviceType.WALL_LIGHT_CAM || + type == types_1.DeviceType.WALL_LIGHT_CAM_81A0 || + type == types_1.DeviceType.CAMERA_GARAGE_T8453_COMMON || + type == types_1.DeviceType.CAMERA_GARAGE_T8453 || + type == types_1.DeviceType.CAMERA_GARAGE_T8452 || + type == types_1.DeviceType.CAMERA_FG || + type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3 || + type == types_1.DeviceType.SMART_DROP) + return true; + return false; + } + static hasBattery(type) { + if (type == types_1.DeviceType.CAMERA || + type == types_1.DeviceType.CAMERA2 || + type == types_1.DeviceType.CAMERA_E || + type == types_1.DeviceType.CAMERA2C || + type == types_1.DeviceType.BATTERY_DOORBELL || + type == types_1.DeviceType.BATTERY_DOORBELL_2 || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || + type == types_1.DeviceType.BATTERY_DOORBELL_C30 || + type == types_1.DeviceType.BATTERY_DOORBELL_C31 || + type == types_1.DeviceType.CAMERA2C_PRO || + type == types_1.DeviceType.CAMERA2_PRO || + type == types_1.DeviceType.CAMERA3 || + type == types_1.DeviceType.CAMERA3C || + type == types_1.DeviceType.CAMERA3_PRO || + type == types_1.DeviceType.SOLO_CAMERA || + type == types_1.DeviceType.SOLO_CAMERA_PRO || + type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 || + type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_2K || + type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR || + type == types_1.DeviceType.SOLO_CAMERA_SOLAR || + type == types_1.DeviceType.SOLO_CAMERA_C210 || + type == types_1.DeviceType.SOLO_CAMERA_E30 || + type == types_1.DeviceType.LOCK_WIFI || + type == types_1.DeviceType.LOCK_WIFI_NO_FINGER || + type == types_1.DeviceType.LOCK_8503 || + type == types_1.DeviceType.LOCK_8504 || + type == types_1.DeviceType.LOCK_8530 || + type == types_1.DeviceType.LOCK_8592 || + type == types_1.DeviceType.LOCK_85A3 || + type == types_1.DeviceType.LOCK_8506 || + type == types_1.DeviceType.LOCK_8502 || + type == types_1.DeviceType.SMART_SAFE_7400 || + type == types_1.DeviceType.SMART_SAFE_7401 || + type == types_1.DeviceType.SMART_SAFE_7402 || + type == types_1.DeviceType.SMART_SAFE_7403 || + type == types_1.DeviceType.CAMERA_FG || + type == types_1.DeviceType.WALL_LIGHT_CAM_81A0 || + type == types_1.DeviceType.SMART_DROP || + type == types_1.DeviceType.OUTDOOR_PT_CAMERA || + type == types_1.DeviceType.EUFYCAM_S4) + //TODO: Add other battery devices + return true; + return false; + } + static isStation(type) { + if (type == types_1.DeviceType.STATION || type === types_1.DeviceType.MINIBASE_CHIME) + return true; + return false; + } + static isCamera1(type) { + return types_1.DeviceType.CAMERA == type; + } + static isCameraE(type) { + return types_1.DeviceType.CAMERA_E == type; + } + static isSensor(type) { + if (type == types_1.DeviceType.SENSOR || + type == types_1.DeviceType.MOTION_SENSOR) + return true; + return false; + } + static isKeyPad(type) { + return types_1.DeviceType.KEYPAD == type; + } + static isDoorbell(type) { + if (type == types_1.DeviceType.DOORBELL || + type == types_1.DeviceType.BATTERY_DOORBELL || + type == types_1.DeviceType.BATTERY_DOORBELL_2 || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || + type == types_1.DeviceType.BATTERY_DOORBELL_C30 || + type == types_1.DeviceType.BATTERY_DOORBELL_C31 || + type == types_1.DeviceType.DOORBELL_SOLO) + return true; + return false; + } + static isWiredDoorbell(type) { + if (type == types_1.DeviceType.DOORBELL) + return true; + return false; + } + static isWiredDoorbellT8200X(type, serialnumber) { + if (type == types_1.DeviceType.DOORBELL && serialnumber.startsWith("T8200") && serialnumber.length > 7 && serialnumber.charAt(6) === "6") + return true; + return false; + } + static isWiredDoorbellDual(type) { + if (type == types_1.DeviceType.DOORBELL_SOLO) + return true; + return false; + } + static isIndoorCamera(type) { + if (type == types_1.DeviceType.INDOOR_CAMERA || + type == types_1.DeviceType.INDOOR_CAMERA_1080 || + type == types_1.DeviceType.INDOOR_PT_CAMERA || + type == types_1.DeviceType.INDOOR_PT_CAMERA_1080 || + type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P || + type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT || + type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_2K || + type == types_1.DeviceType.INDOOR_COST_DOWN_CAMERA || + type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3) + return true; + return false; + } + static isPanAndTiltCamera(type) { + if (type == types_1.DeviceType.INDOOR_PT_CAMERA || + type == types_1.DeviceType.INDOOR_PT_CAMERA_1080 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425 || + type == types_1.DeviceType.INDOOR_COST_DOWN_CAMERA || + type == types_1.DeviceType.OUTDOOR_PT_CAMERA || + type == types_1.DeviceType.EUFYCAM_S4 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3) + return true; + return false; + } + static isOutdoorPanAndTiltCamera(type) { + if (type == types_1.DeviceType.OUTDOOR_PT_CAMERA || + type == types_1.DeviceType.EUFYCAM_S4 || + type == types_1.DeviceType.SOLO_CAMERA_E30) + return true; + return false; + } + static isIndoorPanAndTiltCameraS350(type) { + if (type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || + type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3) + return true; + return false; + } + static isFloodLight(type) { + if (type == types_1.DeviceType.FLOODLIGHT || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || + type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425) + return true; + return false; + } + static isFloodLightT8420X(type, serialnumber) { + if (type == types_1.DeviceType.FLOODLIGHT && serialnumber.startsWith("T8420") && serialnumber.length > 7 && serialnumber.charAt(6) === "6") + return true; + return false; + } + static isFloodLightT8423(type) { + if (type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423) + return true; + return false; + } + static isFloodLightT8425(type) { + if (type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425) + return true; + return false; + } + static isWallLightCam(type) { + if (type == types_1.DeviceType.WALL_LIGHT_CAM || type == types_1.DeviceType.WALL_LIGHT_CAM_81A0) + return true; + return false; + } + static isLock(type) { + return Device.isLockBle(type) || + Device.isLockWifi(type, "") || + Device.isLockBleNoFinger(type) || + Device.isLockWifiNoFinger(type) || + Device.isLockWifiR10(type) || + Device.isLockWifiR20(type) || + Device.isLockWifiVideo(type) || + Device.isLockWifiT8506(type) || + Device.isLockWifiT8502(type); + } + static isLockKeypad(type) { + return Device.isLockWifiR10Keypad(type) || Device.isLockWifiR20Keypad(type); + } + static isLockBle(type) { + return types_1.DeviceType.LOCK_BLE == type; + } + static isLockBleNoFinger(type) { + return types_1.DeviceType.LOCK_BLE_NO_FINGER == type; + } + static isLockWifi(type, serialnumber) { + return types_1.DeviceType.LOCK_WIFI == type && !Device.isLockWifiT8510P(type, serialnumber) && !Device.isLockWifiT8520P(type, serialnumber); + } + static isLockWifiNoFinger(type) { + return types_1.DeviceType.LOCK_WIFI_NO_FINGER == type; + } + static isLockWifiR10(type) { + return types_1.DeviceType.LOCK_8503 == type; + } + static isLockWifiR20(type) { + return types_1.DeviceType.LOCK_8504 == type /*|| DeviceType.LOCK_8592 == type*/; + } + static isLockWifiVideo(type) { + return types_1.DeviceType.LOCK_8530 == type; + } + static isLockWifiR10Keypad(type) { + return types_1.DeviceType.LOCK_85A3 == type; + } + static isLockWifiR20Keypad(type) { + return types_1.DeviceType.LOCK_8592 == type; + } + static isLockWifiT8506(type) { + return types_1.DeviceType.LOCK_8506 == type; + } + static isLockWifiT8502(type) { + return types_1.DeviceType.LOCK_8502 == type; + } + static isLockWifiT8510P(type, serialnumber) { + if (type == types_1.DeviceType.LOCK_WIFI && serialnumber.startsWith("T8520") && serialnumber.length > 6 && serialnumber.charAt(6) === "8") + return true; + return false; + } + static isLockWifiT8520P(type, serialnumber) { + if (type == types_1.DeviceType.LOCK_WIFI && serialnumber.startsWith("T8520") && serialnumber.length > 6 && serialnumber.charAt(6) === "9") + return true; + return false; + } + static isBatteryDoorbell1(type) { + return types_1.DeviceType.BATTERY_DOORBELL == type; + } + static isBatteryDoorbell2(type) { + return types_1.DeviceType.BATTERY_DOORBELL_2 == type; + } + static isBatteryDoorbellDual(type) { + return types_1.DeviceType.BATTERY_DOORBELL_PLUS == type; + } + static isBatteryDoorbellDualE340(type) { + return types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 == type; + } + static isBatteryDoorbellC30(type) { + return types_1.DeviceType.BATTERY_DOORBELL_C30 == type; + } + static isBatteryDoorbellC31(type) { + return types_1.DeviceType.BATTERY_DOORBELL_C31 == type; + } + static isDoorbellDual(type) { + return types_1.DeviceType.DOORBELL_SOLO == type; + } + static isBatteryDoorbell(type) { + if (type == types_1.DeviceType.BATTERY_DOORBELL || + type == types_1.DeviceType.BATTERY_DOORBELL_2 || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || + type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || + type == types_1.DeviceType.BATTERY_DOORBELL_C30 || + type == types_1.DeviceType.BATTERY_DOORBELL_C31) + return true; + return false; + } + static isSoloCamera(type) { + return types_1.DeviceType.SOLO_CAMERA == type; + } + static isSoloCameraPro(type) { + return types_1.DeviceType.SOLO_CAMERA_PRO == type; + } + static isSoloCameraSpotlight1080(type) { + return types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 == type; + } + static isSoloCameraSpotlight2k(type) { + return types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_2K == type; + } + static isSoloCameraSpotlightSolar(type) { + return types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR == type; + } + static isSoloCameraSolar(type) { + return types_1.DeviceType.SOLO_CAMERA_SOLAR == type; + } + static isSoloCameraC210(type) { + return types_1.DeviceType.SOLO_CAMERA_C210 == type; + } + static isSoloCameraE30(type) { + return types_1.DeviceType.SOLO_CAMERA_E30 == type; + } + static isSoloCameras(type) { + return Device.isSoloCamera(type) || + Device.isSoloCameraPro(type) || + Device.isSoloCameraSpotlight1080(type) || + Device.isSoloCameraSpotlight2k(type) || + Device.isSoloCameraSpotlightSolar(type) || + Device.isOutdoorPanAndTiltCamera(type) || + Device.isSoloCameraSolar(type) || + Device.isSoloCameraC210(type) || + Device.isSoloCameraE30(type); + } + static isStarlight4GLTE(type) { + return types_1.DeviceType.CAMERA_FG == type; + } + static isIndoorOutdoorCamera1080p(type) { + return types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P == type; + } + static isIndoorOutdoorCamera1080pNoLight(type) { + return types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT == type; + } + static isIndoorOutdoorCamera2k(type) { + return types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_2K == type; + } + static isIndoorCamMini(type) { + return types_1.DeviceType.INDOOR_COST_DOWN_CAMERA == type; + } + static isCamera1Product(type) { + return Device.isCamera1(type) || Device.isCameraE(type); + } + static isCamera2(type) { + //T8114 + return types_1.DeviceType.CAMERA2 == type; + } + static isCamera2C(type) { + //T8113 + return types_1.DeviceType.CAMERA2C == type; + } + static isCamera2Pro(type) { + //T8140 + return types_1.DeviceType.CAMERA2_PRO == type; + } + static isCamera2CPro(type) { + //T8142 + return types_1.DeviceType.CAMERA2C_PRO == type; + } + static isCamera2Product(type) { + return Device.isCamera2(type) || Device.isCamera2C(type) || Device.isCamera2Pro(type) || Device.isCamera2CPro(type); + } + static isCamera3(type) { + return types_1.DeviceType.CAMERA3 == type; + } + static isCamera3C(type) { + return types_1.DeviceType.CAMERA3C == type; + } + static isCamera3Pro(type) { + return types_1.DeviceType.CAMERA3_PRO == type; + } + static isCameraProfessional247(type) { + // T8600 - E330 + return types_1.DeviceType.PROFESSIONAL_247 == type; + } + static isCamera3Product(type) { + return Device.isCamera3(type) || Device.isCamera3C(type) || Device.isCameraProfessional247(type) || Device.isCamera3Pro(type); + } + static isEntrySensor(type) { + //T8900 + return types_1.DeviceType.SENSOR == type; + } + static isMotionSensor(type) { + return types_1.DeviceType.MOTION_SENSOR == type; + } + static isSmartDrop(type) { + return types_1.DeviceType.SMART_DROP == type; + } + static isSmartSafe(type) { + if (type == types_1.DeviceType.SMART_SAFE_7400 || + type == types_1.DeviceType.SMART_SAFE_7401 || + type == types_1.DeviceType.SMART_SAFE_7402 || + type == types_1.DeviceType.SMART_SAFE_7403) + return true; + return false; + } + static isGarageCamera(type) { + if (type == types_1.DeviceType.CAMERA_GARAGE_T8452 || + type == types_1.DeviceType.CAMERA_GARAGE_T8453 || + type == types_1.DeviceType.CAMERA_GARAGE_T8453_COMMON) + return true; + return false; + } + static isIntegratedDeviceBySn(sn) { + //TODO: Update this implementation! + return sn.startsWith("T8420") || + sn.startsWith("T820") || + sn.startsWith("T8410") || + sn.startsWith("T8400") || + sn.startsWith("T8401") || + sn.startsWith("T8411") || + sn.startsWith("T8414") || + sn.startsWith("T8130") || + sn.startsWith("T8131") || + sn.startsWith("T8171") || + sn.startsWith("T8422") || + sn.startsWith("T8423") || + sn.startsWith("T8424") || + sn.startsWith("T8426") || + sn.startsWith("T8440") || + sn.startsWith("T8441") || + sn.startsWith("T8442"); + } + static isSoloCameraBySn(sn) { + return sn.startsWith("T8130") || + sn.startsWith("T8131") || + sn.startsWith("T8122") || + sn.startsWith("T8123") || + sn.startsWith("T8124") || + sn.startsWith("T8171") || + sn.startsWith("T8134"); + } + static isSmartDropBySn(sn) { + return sn.startsWith("T8790"); + } + static isLockBySn(sn) { + return sn.startsWith("T8510") || + sn.startsWith("T8520") || + sn.startsWith("T8500") || + sn.startsWith("T8501") || + sn.startsWith("T8503") || + sn.startsWith("T8502") || + sn.startsWith("T8504") || + sn.startsWith("T8506") || + sn.startsWith("T8530"); + } + static isGarageCameraBySn(sn) { + return sn.startsWith("T8453") || + sn.startsWith("T8452"); + } + static isFloodlightBySn(sn) { + return sn.startsWith("T8420") || + sn.startsWith("T8422") || + sn.startsWith("T8423") || + sn.startsWith("T8424") || + sn.startsWith("T8426"); + //(sn.startsWith("T8420") && sn.length > 7 && sn[6] == "6"); + } + static isIndoorCameraBySn(sn) { + return sn.startsWith("T8410") || + sn.startsWith("T8400") || + sn.startsWith("T8401") || + sn.startsWith("T8411") || + sn.startsWith("T8440") || + sn.startsWith("T8441") || + sn.startsWith("T8442") || + sn.startsWith("T8414"); + } + static is4GCameraBySn(sn) { + return sn.startsWith("T8150") || + sn.startsWith("T8151") || + sn.startsWith("T8152") || + sn.startsWith("T8153"); + } + static isSmartSafeBySn(sn) { + return sn.startsWith("T7400") || + sn.startsWith("T7401") || + sn.startsWith("T7402"); + } + static isSmartTrackCard(type) { + if (type == types_1.DeviceType.SMART_TRACK_CARD) + return true; + return false; + } + static isSmartTrackLink(type) { + if (type == types_1.DeviceType.SMART_TRACK_LINK) + return true; + return false; + } + static isSmartTrack(type) { + if (type == types_1.DeviceType.SMART_TRACK_LINK || + type == types_1.DeviceType.SMART_TRACK_CARD) + return true; + return false; + } + isCamera() { + return Device.isCamera(this.rawDevice.device_type); + } + isFloodLight() { + return Device.isFloodLight(this.rawDevice.device_type); + } + isFloodLightT8420X() { + return Device.isFloodLightT8420X(this.rawDevice.device_type, this.rawDevice.device_sn); + } + isFloodLightT8423() { + return Device.isFloodLightT8423(this.rawDevice.device_type); + } + isFloodLightT8425() { + return Device.isFloodLightT8425(this.rawDevice.device_type); + } + isWallLightCam() { + return Device.isWallLightCam(this.rawDevice.device_type); + } + isDoorbell() { + return Device.isDoorbell(this.rawDevice.device_type); + } + isWiredDoorbell() { + return Device.isWiredDoorbell(this.rawDevice.device_type); + } + isWiredDoorbellT8200X() { + return Device.isWiredDoorbellT8200X(this.rawDevice.device_type, this.rawDevice.device_sn); + } + isWiredDoorbellDual() { + return Device.isWiredDoorbellDual(this.rawDevice.device_type); + } + isLock() { + return Device.isLock(this.rawDevice.device_type); + } + isLockKeypad() { + return Device.isLockKeypad(this.rawDevice.device_type); + } + isLockBle() { + return Device.isLockBle(this.rawDevice.device_type); + } + isLockBleNoFinger() { + return Device.isLockBleNoFinger(this.rawDevice.device_type); + } + isLockWifi() { + return Device.isLockWifi(this.rawDevice.device_type, this.rawDevice.device_sn); + } + isLockWifiNoFinger() { + return Device.isLockWifiNoFinger(this.rawDevice.device_type); + } + isLockWifiR10() { + return Device.isLockWifiR10(this.rawDevice.device_type); + } + isLockWifiR20() { + return Device.isLockWifiR20(this.rawDevice.device_type); + } + isLockWifiVideo() { + return Device.isLockWifiVideo(this.rawDevice.device_type); + } + isLockWifiR10Keypad() { + return Device.isLockWifiR10Keypad(this.rawDevice.device_type); + } + isLockWifiR20Keypad() { + return Device.isLockWifiR20Keypad(this.rawDevice.device_type); + } + isLockWifiT8506() { + return Device.isLockWifiT8506(this.rawDevice.device_type); + } + isLockWifiT8502() { + return Device.isLockWifiT8502(this.rawDevice.device_type); + } + isLockWifiT8510P() { + return Device.isLockWifiT8510P(this.rawDevice.device_type, this.rawDevice.device_sn); + } + isLockWifiT8520P() { + return Device.isLockWifiT8520P(this.rawDevice.device_type, this.rawDevice.device_sn); + } + isBatteryDoorbell1() { + return Device.isBatteryDoorbell1(this.rawDevice.device_type); + } + isBatteryDoorbell2() { + return Device.isBatteryDoorbell2(this.rawDevice.device_type); + } + isBatteryDoorbellDual() { + return Device.isBatteryDoorbellDual(this.rawDevice.device_type); + } + isBatteryDoorbellDualE340() { + return Device.isBatteryDoorbellDualE340(this.rawDevice.device_type); + } + isBatteryDoorbellC30() { + return Device.isBatteryDoorbellC30(this.rawDevice.device_type); + } + isBatteryDoorbellC31() { + return Device.isBatteryDoorbellC31(this.rawDevice.device_type); + } + isDoorbellDual() { + return Device.isDoorbellDual(this.rawDevice.device_type); + } + isBatteryDoorbell() { + return Device.isBatteryDoorbell(this.rawDevice.device_type); + } + isSoloCamera() { + return Device.isSoloCamera(this.rawDevice.device_type); + } + isSoloCameraPro() { + return Device.isSoloCameraPro(this.rawDevice.device_type); + } + isSoloCameraSpotlight1080() { + return Device.isSoloCameraSpotlight1080(this.rawDevice.device_type); + } + isSoloCameraSpotlight2k() { + return Device.isSoloCameraSpotlight2k(this.rawDevice.device_type); + } + isSoloCameraSpotlightSolar() { + return Device.isSoloCameraSpotlightSolar(this.rawDevice.device_type); + } + isSoloCameraSolar() { + return Device.isSoloCameraSolar(this.rawDevice.device_type); + } + isSoloCameraC210() { + return Device.isSoloCameraC210(this.rawDevice.device_type); + } + isSoloCameraE30() { + return Device.isSoloCameraE30(this.rawDevice.device_type); + } + isStarlight4GLTE() { + return Device.isStarlight4GLTE(this.rawDevice.device_type); + } + isIndoorOutdoorCamera1080p() { + return Device.isIndoorOutdoorCamera1080p(this.rawDevice.device_type); + } + isIndoorOutdoorCamera1080pNoLight() { + return Device.isIndoorOutdoorCamera1080pNoLight(this.rawDevice.device_type); + } + isIndoorOutdoorCamera2k() { + return Device.isIndoorOutdoorCamera2k(this.rawDevice.device_type); + } + isIndoorCamMini() { + return Device.isIndoorCamMini(this.rawDevice.device_type); + } + isSoloCameras() { + return Device.isSoloCameras(this.rawDevice.device_type); + } + isCamera2() { + return Device.isCamera2(this.rawDevice.device_type); + } + isCamera2C() { + return Device.isCamera2C(this.rawDevice.device_type); + } + isCamera2Pro() { + return Device.isCamera2Pro(this.rawDevice.device_type); + } + isCamera2CPro() { + return Device.isCamera2CPro(this.rawDevice.device_type); + } + isCamera2Product() { + return Device.isCamera2Product(this.rawDevice.device_type); + } + isCamera3() { + return Device.isCamera3(this.rawDevice.device_type); + } + isCamera3C() { + return Device.isCamera3C(this.rawDevice.device_type); + } + isCameraProfessional247() { + return Device.isCameraProfessional247(this.rawDevice.device_type); + } + isCamera3Pro() { + return Device.isCamera3Pro(this.rawDevice.device_type); + } + isCamera3Product() { + return Device.isCamera3Product(this.rawDevice.device_type); + } + isEntrySensor() { + return Device.isEntrySensor(this.rawDevice.device_type); + } + isKeyPad() { + return Device.isKeyPad(this.rawDevice.device_type); + } + isMotionSensor() { + return Device.isMotionSensor(this.rawDevice.device_type); + } + isIndoorCamera() { + return Device.isIndoorCamera(this.rawDevice.device_type); + } + isPanAndTiltCamera() { + return Device.isPanAndTiltCamera(this.rawDevice.device_type); + } + isOutdoorPanAndTiltCamera() { + return Device.isOutdoorPanAndTiltCamera(this.rawDevice.device_type); + } + isIndoorPanAndTiltCameraS350() { + return Device.isIndoorPanAndTiltCameraS350(this.rawDevice.device_type); + } + isSmartDrop() { + return Device.isSmartDrop(this.rawDevice.device_type); + } + isSmartSafe() { + return Device.isSmartSafe(this.rawDevice.device_type); + } + isGarageCamera() { + return Device.isGarageCamera(this.rawDevice.device_type); + } + isIntegratedDevice() { + if (this.isLock() || this.isSmartDrop()) { + return this.rawDevice.device_sn === this.rawDevice.station_sn; + } + return this.isWiredDoorbellDual() || this.isFloodLight() || this.isWiredDoorbell() || this.isIndoorCamera() || this.isSoloCameras() || this.isWallLightCam(); + } + isSmartTrack() { + return Device.isSmartTrack(this.rawDevice.device_type); + } + isSmartTrackCard() { + return Device.isSmartTrackCard(this.rawDevice.device_type); + } + isSmartTrackLink() { + return Device.isSmartTrackLink(this.rawDevice.device_type); + } + hasBattery() { + return Device.hasBattery(this.rawDevice.device_type); + } + getDeviceKey() { + return this.rawDevice.station_sn + this.rawDevice.device_channel; + } + getDeviceType() { + return this.rawDevice.device_type; + } + getHardwareVersion() { + return this.rawDevice.main_hw_version; + } + getSoftwareVersion() { + return this.rawDevice.main_sw_version; + } + getModel() { + return this.rawDevice.device_model; + } + getName() { + return this.rawDevice.device_name; + } + getSerial() { + return this.rawDevice.device_sn; + } + getStationSerial() { + return this.rawDevice.station_sn; + } + async setParameters(params) { + return this.api.setParameters(this.rawDevice.station_sn, this.rawDevice.device_sn, params); + } + getChannel() { + return this.rawDevice.device_channel; + } + //TODO: To remove + getStateID(state, level = 2) { + switch (level) { + case 0: + return `${this.getStationSerial()}.${this.getStateChannel()}`; + case 1: + return `${this.getStationSerial()}.${this.getStateChannel()}.${this.getSerial()}`; + default: + if (state) + return `${this.getStationSerial()}.${this.getStateChannel()}.${this.getSerial()}.${state}`; + throw new Error("No state value passed."); + } + } + getStateChannel() { + return "devices"; + } + getWifiRssi() { + return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); + } + getStoragePath(filename) { + return (0, utils_1.getAbsoluteFilePath)(this.rawDevice.device_type, this.rawDevice.device_channel, filename); + } + isEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceEnabled); + } +} +exports.Device = Device; +class Camera extends Device { + constructor(api, device, deviceConfig) { + super(api, device, deviceConfig); + this.properties[types_1.PropertyName.DeviceMotionDetected] = false; + this.properties[types_1.PropertyName.DevicePersonDetected] = false; + this.properties[types_1.PropertyName.DevicePersonName] = ""; + } + static async getInstance(api, device, deviceConfig) { + return new Camera(api, device, deviceConfig); + } + getStateChannel() { + return "cameras"; + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: + return value !== undefined ? (value === "0" ? true : false) : false; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Camera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + getLastCameraImageURL() { + return this.getPropertyValue(types_1.PropertyName.DevicePictureUrl); + } + getMACAddress() { + return this.rawDevice.wifi_mac; + } + async startDetection() { + // Start camera detection. + //TODO: Deprecated. Will be removed! + await this.setParameters([{ paramType: types_1.ParamType.DETECT_SWITCH, paramValue: 1 }]).catch(err => { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Camera start detection - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial() }); + }); + } + async stopDetection() { + // Stop camera detection. + await this.setParameters([{ paramType: types_1.ParamType.DETECT_SWITCH, paramValue: 0 }]); + } + getState() { + return this.getPropertyValue(types_1.PropertyName.DeviceState); + } + async close() { + //TODO: Stop other things if implemented such as detection feature + } + getLastChargingDays() { + return this.rawDevice.charging_days; + } + getLastChargingFalseEvents() { + return this.rawDevice.charging_missing; + } + getLastChargingRecordedEvents() { + return this.rawDevice.charging_reserve; + } + getLastChargingTotalEvents() { + return this.rawDevice.charing_total; + } + getBatteryValue() { + return this.getPropertyValue(types_1.PropertyName.DeviceBattery); + } + getBatteryTemperature() { + return this.getPropertyValue(types_1.PropertyName.DeviceBatteryTemp); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isAutoNightVisionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceAutoNightvision); + } + isRTSPStreamEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceRTSPStream); + } + isAntiTheftDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceAntitheftDetection); + } + getWatermark() { + return this.getPropertyValue(types_1.PropertyName.DeviceWatermark); + } + isMotionDetected() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetected); + } + isPersonDetected() { + return this.getPropertyValue(types_1.PropertyName.DevicePersonDetected); + } + getDetectedPerson() { + return this.getPropertyValue(types_1.PropertyName.DevicePersonName); + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DevicePersonDetected || + metadata.name === types_1.PropertyName.DeviceIdentityPersonDetected || + metadata.name === types_1.PropertyName.DeviceStrangerPersonDetected) { + this.emit("person detected", this, newValue, this.getPropertyValue(types_1.PropertyName.DevicePersonName)); + if (metadata.name === types_1.PropertyName.DeviceStrangerPersonDetected) + this.emit("stranger person detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceMotionDetected) { + this.emit("motion detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceCryingDetected) { + this.emit("crying detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceDogDetected) { + this.emit("dog detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceDogLickDetected) { + this.emit("dog lick detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceDogPoopDetected) { + this.emit("dog poop detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DevicePetDetected) { + this.emit("pet detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceSoundDetected) { + this.emit("sound detected", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceVehicleDetected) { + this.emit("vehicle detected", this, newValue); + } + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined) { + if (message.event_type === types_3.CusPushEvent.SECURITY && message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + if (message.fetch_id !== undefined) { + // Person or someone identified + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + } + // Motion detected + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`Camera process push notification - CusPushEvent.SECURITY - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + else if (message.msg_type === types_1.DeviceType.HB3) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.HB3PairedDevicePushEvent.PRESS_DOORBELL: + this.updateProperty(types_1.PropertyName.DeviceRinging, true); + this.clearEventTimeout(types_1.DeviceEvent.Ringing); + this.eventTimeouts.set(types_1.DeviceEvent.Ringing, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceRinging, false); + this.eventTimeouts.delete(types_1.DeviceEvent.Ringing); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.FACE_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.HB3PairedDevicePushEvent.CRYING_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceCryingDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.CryingDetected); + this.eventTimeouts.set(types_1.DeviceEvent.CryingDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceCryingDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.CryingDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.DOG_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceDogDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.DogDetected); + this.eventTimeouts.set(types_1.DeviceEvent.DogDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceDogDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.DogDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.DOG_LICK_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceDogLickDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.DogLickDetected); + this.eventTimeouts.set(types_1.DeviceEvent.DogLickDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceDogLickDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.DogLickDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.DOG_POOP_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceDogPoopDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.DogPoopDetected); + this.eventTimeouts.set(types_1.DeviceEvent.DogPoopDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceDogPoopDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.DogPoopDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.PET_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePetDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PetDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PetDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePetDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PetDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.HB3PairedDevicePushEvent.SOUND_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceSoundDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.SoundDetected); + this.eventTimeouts.set(types_1.DeviceEvent.SoundDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceSoundDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.SoundDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.HB3PairedDevicePushEvent.VEHICLE_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceVehicleDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.VehicleDetected); + this.eventTimeouts.set(types_1.DeviceEvent.VehicleDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceVehicleDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.VehicleDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.HB3PairedDevicePushEvent.IDENTITY_PERSON_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DeviceIdentityPersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.IdentityPersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.IdentityPersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DeviceIdentityPersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.IdentityPersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.HB3PairedDevicePushEvent.STRANGER_PERSON_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DeviceStrangerPersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.StrangerPersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.StrangerPersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DeviceStrangerPersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.StrangerPersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + default: + logging_1.rootHTTPLogger.debug("Camera process push notification - Unhandled homebase3 camera push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`Camera process push notification - HB3PairedDevicePushEvent - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } + } +} +exports.Camera = Camera; +class SoloCamera extends Camera { + static async getInstance(api, device, deviceConfig) { + return new SoloCamera(api, device, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: + return value !== undefined ? (value === "0" ? true : false) : false; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("SoloCamera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.IndoorPushEvent.MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.IndoorPushEvent.FACE_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + default: + logging_1.rootHTTPLogger.debug("SoloCamera process push notification - Unhandled solo camera push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`SoloCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } +} +exports.SoloCamera = SoloCamera; +class IndoorCamera extends Camera { + constructor(api, device, deviceConfig) { + super(api, device, deviceConfig); + this.properties[types_1.PropertyName.DevicePetDetected] = false; + this.properties[types_1.PropertyName.DeviceSoundDetected] = false; + this.properties[types_1.PropertyName.DeviceCryingDetected] = false; + } + static async getInstance(api, device, deviceConfig) { + return new IndoorCamera(api, device, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } + isPetDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DevicePetDetection); + } + isSoundDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceSoundDetection); + } + isPetDetected() { + return this.getPropertyValue(types_1.PropertyName.DevicePetDetected); + } + isSoundDetected() { + return this.getPropertyValue(types_1.PropertyName.DeviceSoundDetected); + } + isCryingDetected() { + return this.getPropertyValue(types_1.PropertyName.DeviceCryingDetected); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.IndoorPushEvent.MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.IndoorPushEvent.FACE_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.IndoorPushEvent.CRYING_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceCryingDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.CryingDetected); + this.eventTimeouts.set(types_1.DeviceEvent.CryingDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceCryingDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.CryingDetected); + }, eventDurationSeconds * 1000)); + this.updateProperty(types_1.PropertyName.DeviceSoundDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.SoundDetected); + this.eventTimeouts.set(types_1.DeviceEvent.SoundDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceSoundDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.SoundDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.IndoorPushEvent.SOUND_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceSoundDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.SoundDetected); + this.eventTimeouts.set(types_1.DeviceEvent.SoundDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceSoundDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.SoundDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.IndoorPushEvent.PET_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePetDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PetDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PetDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePetDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PetDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + default: + logging_1.rootHTTPLogger.debug("IndoorCamera process push notification - Unhandled indoor camera push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`IndoorCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } + destroy() { + super.destroy(); + } +} +exports.IndoorCamera = IndoorCamera; +class DoorbellCamera extends Camera { + voices; + constructor(api, device, voices, deviceConfig) { + super(api, device, deviceConfig); + this.voices = voices; + this.properties[types_1.PropertyName.DeviceRinging] = false; + } + static async getInstance(api, device, deviceConfig) { + const voices = await api.getVoices(device.device_sn); + return new DoorbellCamera(api, device, voices, deviceConfig); + } + loadMetadataVoiceStates(propertyName, metadata) { + if (metadata[propertyName] !== undefined) { + const states = {}; + for (const voice of Object.values(this.voices)) { + states[voice.voice_id] = voice.desc; + } + metadata[propertyName].states = states; + } + return metadata; + } + getVoiceName(id) { + if (this.voices[id] !== undefined) + return this.voices[id].desc; + return ""; + } + getVoices() { + return this.voices; + } + getPropertiesMetadata(hidden = false) { + let metadata = super.getPropertiesMetadata(hidden); + metadata = this.loadMetadataVoiceStates(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice, metadata); + metadata = this.loadMetadataVoiceStates(types_1.PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice, metadata); + metadata = this.loadMetadataVoiceStates(types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice, metadata); + return metadata; + } + isRinging() { + return this.getPropertyValue(types_1.PropertyName.DeviceRinging); + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceRinging) { + this.emit("rings", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DevicePackageDelivered) { + this.emit("package delivered", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DevicePackageStranded) { + this.emit("package stranded", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DevicePackageTaken) { + this.emit("package taken", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceSomeoneLoitering) { + this.emit("someone loitering", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceRadarMotionDetected) { + this.emit("radar motion detected", this, newValue); + } + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.DoorbellPushEvent.MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.DoorbellPushEvent.FACE_DETECTION: + case types_3.DoorbellPushEvent.FAMILY_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.DoorbellPushEvent.PRESS_DOORBELL: + this.updateProperty(types_1.PropertyName.DeviceRinging, true); + this.clearEventTimeout(types_1.DeviceEvent.Ringing); + this.eventTimeouts.set(types_1.DeviceEvent.Ringing, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceRinging, false); + this.eventTimeouts.delete(types_1.DeviceEvent.Ringing); + }, eventDurationSeconds * 1000)); + break; + case types_3.DoorbellPushEvent.PACKAGE_DELIVERED: + this.updateProperty(types_1.PropertyName.DevicePackageDelivered, true); + this.clearEventTimeout(types_1.DeviceEvent.PackageDelivered); + this.eventTimeouts.set(types_1.DeviceEvent.PackageDelivered, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePackageDelivered, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PackageDelivered); + }, eventDurationSeconds * 1000)); + break; + case types_3.DoorbellPushEvent.PACKAGE_STRANDED: + this.updateProperty(types_1.PropertyName.DevicePackageStranded, true); + this.clearEventTimeout(types_1.DeviceEvent.PackageStranded); + this.eventTimeouts.set(types_1.DeviceEvent.PackageStranded, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePackageStranded, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PackageStranded); + }, eventDurationSeconds * 1000)); + break; + case types_3.DoorbellPushEvent.PACKAGE_TAKEN: + this.updateProperty(types_1.PropertyName.DevicePackageTaken, true); + this.clearEventTimeout(types_1.DeviceEvent.PackageTaken); + this.eventTimeouts.set(types_1.DeviceEvent.PackageTaken, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePackageTaken, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PackageTaken); + }, eventDurationSeconds * 1000)); + break; + case types_3.DoorbellPushEvent.SOMEONE_LOITERING: + this.updateProperty(types_1.PropertyName.DeviceSomeoneLoitering, true); + this.clearEventTimeout(types_1.DeviceEvent.SomeoneLoitering); + this.eventTimeouts.set(types_1.DeviceEvent.SomeoneLoitering, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceSomeoneLoitering, false); + this.eventTimeouts.delete(types_1.DeviceEvent.SomeoneLoitering); + }, eventDurationSeconds * 1000)); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.DoorbellPushEvent.RADAR_MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceRadarMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.RadarMotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.RadarMotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceRadarMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.RadarMotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.DoorbellPushEvent.AWAY_FROM_HOME: + this.updateProperty(types_1.PropertyName.DeviceSomeoneGoing, true); + this.clearEventTimeout(types_1.DeviceEvent.SomeoneGoing); + this.eventTimeouts.set(types_1.DeviceEvent.SomeoneGoing, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceSomeoneGoing, false); + this.eventTimeouts.delete(types_1.DeviceEvent.SomeoneGoing); + }, eventDurationSeconds * 1000)); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + default: + logging_1.rootHTTPLogger.debug("DoorbellCamera process push notification - Unhandled doorbell push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`DoorbellCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } +} +exports.DoorbellCamera = DoorbellCamera; +class WiredDoorbellCamera extends DoorbellCamera { + static async getInstance(api, device, deviceConfig) { + const voices = await api.getVoices(device.device_sn); + return new WiredDoorbellCamera(api, device, voices, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isAutoNightVisionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceAutoNightvision); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } +} +exports.WiredDoorbellCamera = WiredDoorbellCamera; +class BatteryDoorbellCamera extends DoorbellCamera { + static async getInstance(api, device, deviceConfig) { + const voices = await api.getVoices(device.device_sn); + return new BatteryDoorbellCamera(api, device, voices, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } +} +exports.BatteryDoorbellCamera = BatteryDoorbellCamera; +class FloodlightCamera extends Camera { + static async getInstance(api, device, deviceConfig) { + return new FloodlightCamera(api, device, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: + if (this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT) + return value !== undefined ? (value === "0" ? true : false) : false; + break; + case types_2.CommandType.CMD_FLOODLIGHT_SET_AUTO_CALIBRATION: + if (this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) + return value !== undefined ? (value === "0" ? true : false) : false; + break; + case types_2.CommandType.CMD_RECORD_AUDIO_SWITCH: + return value !== undefined ? (value === "0" ? true : false) : false; + case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: + if (this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) + return value !== undefined ? (value === "1" ? true : false) : false; + return value !== undefined ? (value === "0" ? true : false) : false; + case types_2.CommandType.CMD_SET_PIRSENSITIVITY: + switch (Number.parseInt(value)) { + case types_1.FloodlightMotionTriggeredDistance.MIN: + return 1; + case types_1.FloodlightMotionTriggeredDistance.LOW: + return 2; + case types_1.FloodlightMotionTriggeredDistance.MEDIUM: + return 3; + case types_1.FloodlightMotionTriggeredDistance.HIGH: + return 4; + case types_1.FloodlightMotionTriggeredDistance.MAX: + return 5; + default: + return 5; + } + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("FloodlightCamera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.IndoorPushEvent.MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.IndoorPushEvent.FACE_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + default: + logging_1.rootHTTPLogger.debug("FloodlightCamera process push notification - Unhandled floodlight push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`FloodlightCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } +} +exports.FloodlightCamera = FloodlightCamera; +class WallLightCam extends Camera { + static async getInstance(api, device, deviceConfig) { + return new WallLightCam(api, device, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: + return value !== undefined ? (value === "0" ? true : false) : false; + case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: + return value !== undefined ? (value === "1" ? true : false) : false; + case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING: + case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING: + case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING: + { + const defaultColor = { + red: 0, + green: 0, + blue: 0 + }; + const internal = value; + return internal !== undefined ? (internal.rgb_color !== undefined ? (0, utils_2.DecimalToRGBColor)(internal.rgb_color) : defaultColor) : defaultColor; + } + case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS: { + const result = []; + for (const color of value) { + result.push((0, utils_2.DecimalToRGBColor)(color.color)); + } + return result; + } + case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES: { + const result = []; + for (const theme of value) { + result.push({ + colors: theme.colors.map((color) => (0, utils_2.DecimalToRGBColor)(color)), + mode: theme.mode, + name: theme.name, // 1 fade 2 blink + speed: theme.speed // Control speed 500 msec to 5 sec.; 500 msec steps + }); + } + return result; + } + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("WallLightCam convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + getPropertiesMetadata(hidden = false) { + const metadata = super.getPropertiesMetadata(hidden); + const themes = this.getPropertyValue(types_1.PropertyName.DeviceLightSettingsDynamicLightingThemes); + if (themes !== undefined) { + const states = {}; + for (let i = 0; i < themes.length; i++) { + states[i] = themes[i].name; + } + metadata[types_1.PropertyName.DeviceLightSettingsManualDynamicLighting].states = states; + metadata[types_1.PropertyName.DeviceLightSettingsScheduleDynamicLighting].states = states; + metadata[types_1.PropertyName.DeviceLightSettingsMotionDynamicLighting].states = states; + } + return metadata; + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.IndoorPushEvent.MOTION_DETECTION: + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + break; + case types_3.IndoorPushEvent.FACE_DETECTION: + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + if (this.config.simultaneousDetections) { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + break; + default: + logging_1.rootHTTPLogger.debug("WallLightCam process push notification - Unhandled WallLightCam push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`WallLightCam process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } +} +exports.WallLightCam = WallLightCam; +class GarageCamera extends Camera { + static async getInstance(api, device, deviceConfig) { + return new GarageCamera(api, device, deviceConfig); + } + isLedEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); + } + isMotionDetectionEnabled() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: + return value !== undefined ? (value === "1" ? true : false) : false; + case types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS: + if (value != undefined) { + const status = Number.parseInt(value); + if (status >= 0) { + if (property.name === types_1.PropertyName.DeviceDoor1Open) { + return (status & types_1.GarageDoorState.A_OPENED) === types_1.GarageDoorState.A_OPENED; + } + else if (property.name === types_1.PropertyName.DeviceDoor2Open) { + return (status & types_1.GarageDoorState.B_OPENED) === types_1.GarageDoorState.B_OPENED; + } + } + } + return false; + case types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS: + if (value != undefined) { + const sensorsData = value; + if (property.name === types_1.PropertyName.DeviceDoorSensor1BatteryLevel) { + if (sensorsData?.data?.door_1?.power !== undefined && sensorsData?.data?.door_1?.power > 1) { + this.updateProperty(types_1.PropertyName.DeviceDoorSensor1LowBattery, false); + } + return sensorsData?.data?.door_1?.power !== undefined ? sensorsData?.data?.door_1?.power : 0; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor2BatteryLevel) { + if (sensorsData?.data?.door_2?.power !== undefined && sensorsData?.data?.door_2?.power > 1) { + this.updateProperty(types_1.PropertyName.DeviceDoorSensor1LowBattery, false); + } + return sensorsData?.data?.door_2?.power !== undefined ? sensorsData?.data?.door_2?.power : 0; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor1MacAddress) { + return sensorsData?.data?.door_1?.mac_address !== undefined ? sensorsData?.data?.door_1?.mac_address : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor2MacAddress) { + return sensorsData?.data?.door_2?.mac_address !== undefined ? sensorsData?.data?.door_2?.mac_address : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor1Name) { + return sensorsData?.data?.door_1?.name !== undefined ? sensorsData?.data?.door_1?.name : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor2Name) { + return sensorsData?.data?.door_2?.name !== undefined ? sensorsData?.data?.door_2?.name : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor1SerialNumber) { + return sensorsData?.data?.door_1?.sn !== undefined ? sensorsData?.data?.door_1?.sn : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor2SerialNumber) { + return sensorsData?.data?.door_2?.sn !== undefined ? sensorsData?.data?.door_2?.sn : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor1Version) { + return sensorsData?.data?.door_1?.version !== undefined ? sensorsData?.data?.door_1?.version : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor2Version) { + return sensorsData?.data?.door_2?.version !== undefined ? sensorsData?.data?.door_2?.version : ""; + } + else if (property.name === types_1.PropertyName.DeviceDoorControlWarning) { + return sensorsData?.data?.door_1?.playalarm !== undefined ? sensorsData?.data?.door_1?.playalarm === 1 ? true : false : false; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor1Status) { + return sensorsData?.data?.door_1?.power !== undefined ? sensorsData?.data?.door_1?.power >= 1 && sensorsData?.data?.door_1?.sn !== "" ? 1 : 0 : 0; + } + else if (property.name === types_1.PropertyName.DeviceDoorSensor2Status) { + return sensorsData?.data?.door_2?.power !== undefined ? sensorsData?.data?.door_2?.power >= 1 && sensorsData?.data?.door_2?.sn !== "" ? 1 : 0 : 0; + } + } + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("GarageCamera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + switch (message.event_type) { + case types_3.GarageDoorPushEvent.CLOSED_DOOR_BY_APP: + case types_3.GarageDoorPushEvent.CLOSED_DOOR_WITHOUT_APP: + case types_3.GarageDoorPushEvent.TIMEOUT_CLOSED_DOOR: + if (message.door_id === 1) { + this.updateProperty(types_1.PropertyName.DeviceDoor1Open, false); + } + else if (message.door_id === 2) { + this.updateProperty(types_1.PropertyName.DeviceDoor2Open, false); + } + break; + case types_3.GarageDoorPushEvent.OPEN_DOOR_BY_APP: + case types_3.GarageDoorPushEvent.OPEN_DOOR_WITHOUT_APP: + case types_3.GarageDoorPushEvent.TIMEOUT_DOOR_OPEN_WARNING: + case types_3.GarageDoorPushEvent.TIMEOUT_DOOR_OPEN_WARNING_MINUTES: + if (message.door_id === 1) { + this.updateProperty(types_1.PropertyName.DeviceDoor1Open, true); + } + else if (message.door_id === 2) { + this.updateProperty(types_1.PropertyName.DeviceDoor2Open, true); + } + break; + case types_3.GarageDoorPushEvent.LOW_BATTERY: + //TODO: Check if low battery status resets to false after battery change + if (message.door_id === 1) { + this.updateProperty(types_1.PropertyName.DeviceDoorSensor1LowBattery, true); + } + else if (message.door_id === 2) { + this.updateProperty(types_1.PropertyName.DeviceDoorSensor2LowBattery, true); + } + break; + default: + logging_1.rootHTTPLogger.debug("GarageCamera process push notification - Unhandled GarageDoor push event", message); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`GarageCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } +} +exports.GarageCamera = GarageCamera; +class Sensor extends Device { + static async getInstance(api, device, deviceConfig) { + return new Sensor(api, device, deviceConfig); + } + getStateChannel() { + return "sensors"; + } + getState() { + return this.getPropertyValue(types_1.PropertyName.DeviceState); + } +} +exports.Sensor = Sensor; +class EntrySensor extends Sensor { + static async getInstance(api, device, deviceConfig) { + return new EntrySensor(api, device, deviceConfig); + } + isSensorOpen() { + return this.getPropertyValue(types_1.PropertyName.DeviceSensorOpen); + } + getSensorChangeTime() { + return this.getPropertyValue(types_1.PropertyName.DeviceSensorChangeTime); + } + isBatteryLow() { + return this.getPropertyValue(types_1.PropertyName.DeviceBatteryLow); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined) { + if (message.event_type === types_3.CusPushEvent.DOOR_SENSOR && message.device_sn === this.getSerial()) { + try { + if (message.sensor_open !== undefined) { + this.updateRawProperty(types_2.CommandType.CMD_ENTRY_SENSOR_STATUS, message.sensor_open ? "1" : "0", "push"); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`EntrySensor process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceSensorOpen && metadata.key === types_2.CommandType.CMD_ENTRY_SENSOR_STATUS) { + this.emit("open", this, newValue); + } + } +} +exports.EntrySensor = EntrySensor; +class MotionSensor extends Sensor { + static MOTION_COOLDOWN_MS = 120000; + //TODO: CMD_MOTION_SENSOR_ENABLE_LED = 1607 + //TODO: CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE = 1613 + //TODO: CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE = 1610 + //TODO: CMD_MOTION_SENSOR_SET_CHIRP_TONE = 1611 + //TODO: CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY = 1609 + //TODO: CMD_MOTION_SENSOR_WORK_MODE = 1612 + /*public static isMotionDetected(millis: number): { motion: boolean, cooldown_ms: number} { + const delta = new Date().getUTCMilliseconds() - millis; + if (delta < this.MOTION_COOLDOWN_MS) { + return { motion: true, cooldown_ms: this.MOTION_COOLDOWN_MS - delta}; + } + return { motion: false, cooldown_ms: 0}; + } + + public isMotionDetected(): { motion: boolean, cooldown_ms: number} { + return MotionSensor.isMotionDetected(this.getMotionSensorPIREvent()); + }*/ + constructor(api, device, deviceConfig) { + super(api, device, deviceConfig); + this.properties[types_1.PropertyName.DeviceMotionDetected] = false; + } + static async getInstance(api, device, deviceConfig) { + return new MotionSensor(api, device, deviceConfig); + } + isMotionDetected() { + return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetected); + } + getMotionSensorPIREvent() { + //TODO: Implement P2P Control Event over active station connection + return this.getPropertyValue(types_1.PropertyName.DeviceMotionSensorPIREvent); + } + isBatteryLow() { + return this.getPropertyValue(types_1.PropertyName.DeviceBatteryLow); + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceMotionDetected) { + this.emit("motion detected", this, newValue); + } + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined) { + if (message.event_type === types_3.CusPushEvent.MOTION_SENSOR_PIR && message.device_sn === this.getSerial()) { + try { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); + this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); + }, eventDurationSeconds * 1000)); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`MotionSensor process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } +} +exports.MotionSensor = MotionSensor; +class Lock extends Device { + static VERSION_CODE_SMART_LOCK = 3; + static VERSION_CODE_LOCKV12 = 18; + static async getInstance(api, device, deviceConfig) { + return new Lock(api, device, deviceConfig); + } + getStateChannel() { + return "locks"; + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceLocked) { + this.emit("locked", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { + this.emit("low battery", this, newValue); + } + else if ((metadata.key === types_2.CommandType.CMD_DOORLOCK_GET_STATE || metadata.key === types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS) && ((oldValue !== undefined && ((oldValue === 4 && newValue !== 4) || (oldValue !== 4 && newValue === 4))) || oldValue === undefined)) { + this.updateProperty(types_1.PropertyName.DeviceLocked, newValue === 4 ? true : false); + } + } + getState() { + return this.getPropertyValue(types_1.PropertyName.DeviceState); + } + getBatteryValue() { + return this.getPropertyValue(types_1.PropertyName.DeviceBattery); + } + getWifiRssi() { + return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); + } + isLocked() { + const param = this.getLockStatus(); + return param ? (param === 4 ? true : false) : false; + } + getLockStatus() { + return this.getPropertyValue(types_1.PropertyName.DeviceLockStatus); + } + // public isBatteryLow(): PropertyValue { + // return this.getPropertyValue(PropertyName.DeviceBatteryLow); + // } + static encodeESLCmdOnOff(short_user_id, nickname, lock) { + const buf1 = Buffer.from([types_2.ESLAnkerBleConstant.a, 2]); + const buf2 = Buffer.allocUnsafe(2); + buf2.writeUInt16BE(short_user_id); + const buf3 = Buffer.from([types_2.ESLAnkerBleConstant.b, 1, lock === true ? 1 : 0, types_2.ESLAnkerBleConstant.c, 4]); + const buf4 = Buffer.from((0, utils_2.eslTimestamp)()); + const buf5 = Buffer.from([types_2.ESLAnkerBleConstant.d, nickname.length]); + const buf6 = Buffer.from(nickname); + return Buffer.concat([buf1, buf2, buf3, buf4, buf5, buf6]); + } + static encodeESLCmdQueryStatus(admin_user_id) { + const buf1 = Buffer.from([types_2.ESLAnkerBleConstant.a, admin_user_id.length]); + const buf2 = Buffer.from(admin_user_id); + const buf3 = Buffer.from([types_2.ESLAnkerBleConstant.b, 4]); + const buf4 = Buffer.from((0, utils_2.eslTimestamp)()); + return Buffer.concat([buf1, buf2, buf3, buf4]); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.event_type !== undefined) { + this.processNotification(message.event_type, message.event_time, message.device_sn, message.person_name, eventDurationSeconds, "push"); + } + } + processMQTTNotification(message, eventDurationSeconds) { + if (message.eventType === types_3.LockPushEvent.STATUS_CHANGE) { + // Lock state event + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, message.lockState, "mqtt"); + } + else if (message.eventType === types_3.LockPushEvent.OTA_STATUS) { + // OTA Status - ignore event + } + else { + this.processNotification(message.eventType, message.eventTime, this.getSerial(), message.nickName, eventDurationSeconds, "mqtt"); + } + } + processNotification(eventType, eventTime, deviceSN, personName, eventDurationSeconds, source) { + if (deviceSN === this.getSerial()) { + try { + switch (eventType) { + case types_3.LockPushEvent.APP_LOCK: + case types_3.LockPushEvent.AUTO_LOCK: + case types_3.LockPushEvent.FINGER_LOCK: + case types_3.LockPushEvent.KEYPAD_LOCK: + case types_3.LockPushEvent.MANUAL_LOCK: + case types_3.LockPushEvent.PW_LOCK: + case types_3.LockPushEvent.TEMPORARY_PW_LOCK: + { + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, "4", source); + if (!(0, utils_3.isEmpty)(personName)) { + this.updateProperty(types_1.PropertyName.DevicePersonName, personName); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(eventType)); + this.clearEventTimeout(types_1.DeviceEvent.Lock); + this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); + this.eventTimeouts.delete(types_1.DeviceEvent.Lock); + }, eventDurationSeconds * 1000)); + } + break; + } + case types_3.LockPushEvent.APP_UNLOCK: + case types_3.LockPushEvent.AUTO_UNLOCK: + case types_3.LockPushEvent.FINGERPRINT_UNLOCK: + case types_3.LockPushEvent.MANUAL_UNLOCK: + case types_3.LockPushEvent.PW_UNLOCK: + case types_3.LockPushEvent.TEMPORARY_PW_UNLOCK: + { + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, "3", source); + if (!(0, utils_3.isEmpty)(personName)) { + this.updateProperty(types_1.PropertyName.DevicePersonName, personName); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(eventType)); + this.clearEventTimeout(types_1.DeviceEvent.Lock); + this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); + this.eventTimeouts.delete(types_1.DeviceEvent.Lock); + }, eventDurationSeconds * 1000)); + } + break; + } + case types_3.LockPushEvent.LOCK_MECHANICAL_ANOMALY: + case types_3.LockPushEvent.MECHANICAL_ANOMALY: + case types_3.LockPushEvent.VIOLENT_DESTRUCTION: + case types_3.LockPushEvent.MULTIPLE_ERRORS: + { + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, "5", source); + break; + } + case types_3.LockPushEvent.LOW_POWER: + case types_3.LockPushEvent.VERY_LOW_POWER: + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LowBattery); + this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); + }, eventDurationSeconds * 1000)); + break; + // case LockPushEvent.LOW_POWE: + // this.updateRawProperty(CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, "10"); + // break; + // case LockPushEvent.VERY_LOW_POWE: + // this.updateRawProperty(CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, "5"); + // break; + default: + logging_1.rootHTTPLogger.debug("Lock process push notification - Unhandled lock notification event", eventType, eventTime, deviceSN); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`Lock process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), eventType: eventType, eventTime: eventTime, eventDurationSeconds: eventDurationSeconds, source: source }); + } + } + } + /*public static decodeCommand(command: number): void { + switch (command) { + case ESLCommand.ON_OFF_LOCK: + case 8: + break; + + case ESLCommand.QUERY_STATUS_IN_LOCK: + case 17: + break; + + case ESLCommand.NOTIFY: + case 18: + break; + default: + break; + } + }*/ + static getCurrentTimeInSeconds() { + const buffer = Buffer.allocUnsafe(4); + buffer.writeUint32LE((0, utils_2.getCurrentTimeInSeconds)()); + return buffer; + } + static getUInt8Buffer(value) { + const buffer = Buffer.allocUnsafe(1); + buffer.writeUInt8(value); + return buffer; + } + static getUint16LEBuffer(value) { + const buffer = Buffer.allocUnsafe(2); + buffer.writeUint16LE(value); + return buffer; + } + static getUint16BEBuffer(value) { + const buffer = Buffer.allocUnsafe(2); + buffer.writeUint16BE(value); + return buffer; + } + static encodeCmdStatus(user_id) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id, "hex")); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdUnlock(short_user_id, value, username) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(short_user_id, "hex")); + payload.write(this.getUInt8Buffer(value)); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(username)); + return payload.getData(); + } + static encodeCmdCalibrate(user_id) { + return this.encodeCmdStatus(user_id); + } + static encodeCmdAddUser(short_user_id, passcode, username, schedule, user_permission = 4) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(short_user_id, "hex")); + payload.write(Buffer.from(passcode, "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); + payload.write(this.getUInt8Buffer(user_permission)); + payload.write(Buffer.from(username)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdAddTemporaryUser(schedule, unlimited = false) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); + payload.write(this.getUInt8Buffer(unlimited === false ? 1 : 2)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdDeleteTemporaryUser(password_id) { + return this.encodeCmdStatus(password_id); + } + static encodeCmdDeleteUser(short_user_id) { + return this.encodeCmdStatus(short_user_id); + } + static encodeCmdVerifyPw(password) { + return this.encodeCmdStatus(password); + } + static encodeCmdQueryLockRecord(index) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16LEBuffer(index)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdQueryUser(short_user_id) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(short_user_id, "hex")); + payload.write(this.getUInt8Buffer(0)); //TODO: eSLQueryAllUsers.index + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdQueryPassword(password_id) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(password_id, "hex")); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdModifyPassword(password_id, passcode) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(password_id, "hex")); + payload.write(Buffer.from(passcode, "hex")); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdUpdateSchedule(short_user_id, schedule) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(short_user_id, "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdModifyUsername(username, password_id) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(password_id, "hex")); + payload.write(Buffer.from(username)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdGetLockParam(user_id) { + return this.encodeCmdStatus(user_id); + } + static encodeCmdSetLockParamAutoLock(enabled, lockTimeSeconds) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getUint16LEBuffer(lockTimeSeconds)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static hexTime = function (time) { + const buf = Buffer.allocUnsafe(2); + buf.writeUint8(Number.parseInt(time.split(":")[0])); + buf.writeUint8(Number.parseInt(time.split(":")[1]), 1); + return buf.readUInt16BE().toString(16).padStart(4, "0"); + }; + static encodeCmdSetLockParamAutoLockSchedule(enabled, schedule_start, schedule_end) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(Buffer.from(Lock.hexTime(schedule_start), "hex")); + payload.write(Buffer.from(Lock.hexTime(schedule_end), "hex")); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdSetLockParamOneTouchLock(enabled) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdSetLockParamWrongTryProtect(enabled, lockdownTime, attempts) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getUint16LEBuffer(lockdownTime)); + payload.write(this.getUInt8Buffer(attempts)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdSetLockParamScramblePasscode(enabled) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdSetLockParamSound(value) { + const payload = new utils_1.WritePayload(); + payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_LOCK_SOUND)); + payload.write(this.getUInt8Buffer(value)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE: + if (property.name === types_1.PropertyName.DeviceNotification) { + return value !== undefined ? (0, utils_1.isSmartLockNotification)(Number.parseInt(value), 1 /* SmartLockNotification.ENABLED */) : false; + } + else if (property.name === types_1.PropertyName.DeviceNotificationLocked) { + return value !== undefined ? (0, utils_1.isSmartLockNotification)(Number.parseInt(value), 4 /* SmartLockNotification.LOCKED */) : false; + } + else if (property.name === types_1.PropertyName.DeviceNotificationUnlocked) { + return value !== undefined ? (0, utils_1.isSmartLockNotification)(Number.parseInt(value), 2 /* SmartLockNotification.UNLOCKED */) : false; + } + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("WallLightCam convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + static encodeCmdSmartLockUnlock(adminUserId, lock, username, shortUserId) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(lock ? 0 : 1)); + payload.write(Buffer.from(username)); + payload.write(Buffer.from(shortUserId, "hex")); + return payload.getData(); + } + static encodeCmdSmartLockCalibrate(adminUserId) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + return payload.getData(); + } + static encodeCmdSetSmartLockParamWrongTryProtect(adminUserId, enabled, attempts, lockdownTime) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(2)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getUInt8Buffer(attempts)); + payload.write(this.getUint16LEBuffer(lockdownTime)); + return payload.getData(); + } + static hexTimeSmartLock = function (time) { + const buf = Buffer.allocUnsafe(2); + buf.writeUint8(Number.parseInt(time.split(":")[0])); + buf.writeUint8(Number.parseInt(time.split(":")[1]), 1); + return buf; + }; + static encodeCmdSetSmartLockParamAutoLock(adminUserId, enabled, lockTimeSeconds, schedule, scheduleStart, scheduleEnd) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(0)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getUint16LEBuffer(lockTimeSeconds)); + payload.write(this.getUInt8Buffer(schedule === true ? 1 : 0)); + payload.write(this.hexTimeSmartLock(scheduleStart)); + payload.write(this.hexTimeSmartLock(scheduleEnd)); + return payload.getData(); + } + static encodeCmdSetSmartLockParamOneTouchLock(adminUserId, enabled) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(1)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + return payload.getData(); + } + static encodeCmdSetSmartLockParamScramblePasscode(adminUserId, enabled) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(3)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + return payload.getData(); + } + static encodeCmdSetSmartLockParamSound(adminUserId, value) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(4)); + payload.write(this.getUInt8Buffer(value)); + return payload.getData(); + } + static encodeCmdSmartLockAddUser(adminUserId, shortUserId, passcode, username, schedule, userPermission = 4) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(Buffer.from(passcode, "hex")); + payload.write(this.getUInt8Buffer(userPermission)); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); + payload.write(this.getUInt8Buffer(userPermission === 5 ? 1 : 0)); + payload.write(Buffer.from(username)); + payload.write(Buffer.from(shortUserId, "hex")); + return payload.getData(); + } + static encodeCmdSmartLockDeleteUser(adminUserId, shortUserId) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(Buffer.from(shortUserId, "hex")); + return payload.getData(); + } + static encodeCmdSmartLockUpdateSchedule(adminUserId, shortUserId, username, schedule, userPermission = 4) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(userPermission)); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); + payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); + payload.write(this.getUInt8Buffer(userPermission === 5 ? 1 : 0)); + payload.write(Buffer.from(username)); + payload.write(Buffer.from(shortUserId, "hex")); + return payload.getData(); + } + static encodeCmdSmartLockModifyPassword(adminUserId, passwordId, passcode) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(Buffer.from(passwordId, "hex")); + payload.write(Buffer.from(passcode, "hex")); + return payload.getData(); + } + static encodeCmdSmartLockGetUserList(adminUserId) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + payload.write(this.getUInt8Buffer(0)); + return payload.getData(); + } + static encodeCmdSmartLockStatus(adminUserId) { + const payload = new utils_1.WritePayload(); + payload.write(this.getCurrentTimeInSeconds()); + payload.write(Buffer.from(adminUserId)); + return payload.getData(); + } + static encodeCmdSmartLockGetParams(adminUserId) { + return this.encodeCmdSmartLockStatus(adminUserId); + } +} +exports.Lock = Lock; +class LockKeypad extends Device { + static async getInstance(api, device, deviceConfig) { + return new LockKeypad(api, device, deviceConfig); + } + getStateChannel() { + return "lock_keypads"; + } +} +exports.LockKeypad = LockKeypad; +class Keypad extends Device { + //TODO: CMD_KEYPAD_BATTERY_CHARGER_STATE = 1655 + //TODO: CMD_KEYPAD_BATTERY_TEMP_STATE = 1654 + //TODO: CMD_KEYPAD_GET_PASSWORD = 1657 + //TODO: CMD_KEYPAD_GET_PASSWORD_LIST = 1662 + //TODO: CMD_KEYPAD_IS_PSW_SET = 1670 + //TODO: CMD_KEYPAD_SET_CUSTOM_MAP = 1660 + //TODO: CMD_KEYPAD_SET_PASSWORD = 1650 + static async getInstance(api, device, deviceConfig) { + return new Keypad(api, device, deviceConfig); + } + getStateChannel() { + return "keypads"; + } + getState() { + return this.getPropertyValue(types_1.PropertyName.DeviceState); + } + isBatteryLow() { + return this.getPropertyValue(types_1.PropertyName.DeviceBatteryLow); + } + isBatteryCharging() { + return this.getPropertyValue(types_1.PropertyName.DeviceBatteryIsCharging); + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_KEYPAD_BATTERY_CHARGER_STATE: + return value !== undefined ? (value === "0" || value === "2" ? false : true) : false; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Keypad convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } +} +exports.Keypad = Keypad; +class SmartSafe extends Device { + static IV = "052E19EB3F880512E99EBB684D4DC1FE"; + static DATA_HEADER = [-1, 9]; + static VERSION_CODE = 1; + static PUSH_NOTIFICATION_POSITION = { + [types_1.PropertyName.DeviceNotificationUnlockByKey]: 0, + [types_1.PropertyName.DeviceNotificationUnlockByPIN]: 1, + [types_1.PropertyName.DeviceNotificationUnlockByFingerprint]: 2, + [types_1.PropertyName.DeviceNotificationUnlockByApp]: 3, + [types_1.PropertyName.DeviceNotificationDualUnlock]: 4, + [types_1.PropertyName.DeviceNotificationDualLock]: 5, + [types_1.PropertyName.DeviceNotificationWrongTryProtect]: 6, + [types_1.PropertyName.DeviceNotificationJammed]: 7, + }; + static async getInstance(api, device, deviceConfig) { + return new SmartSafe(api, device, deviceConfig); + } + getStateChannel() { + return "smartsafes"; + } + static getCurrentTimeInSeconds() { + const timeInSeconds = (0, utils_2.getCurrentTimeInSeconds)(); + const arr = new Uint8Array(4); + for (let i = 0; i < 4; i++) { + arr[i] = ((timeInSeconds >> (i * 8)) & 255); + } + return Buffer.from(arr); + } + static getUInt8Buffer(value) { + const buffer = Buffer.allocUnsafe(1); + buffer.writeUInt8(value); + return buffer; + } + static getUint16LEBuffer(value) { + const buffer = Buffer.allocUnsafe(2); + buffer.writeUint16LE(value); + return buffer; + } + static encodeCmdSingleUInt8(user_id, value) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id)); + payload.write(this.getUInt8Buffer(value)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdWrongTryProtect(user_id, enabled, attempts, lockdownTime) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getUInt8Buffer(attempts)); + payload.write(this.getUInt8Buffer(lockdownTime)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdLeftOpenAlarm(user_id, enabled, duration) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id)); + payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); + payload.write(this.getUint16LEBuffer(duration)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdDualUnlock(user_id, enabled) { + return SmartSafe.encodeCmdSingleUInt8(user_id, enabled === true ? 1 : 0); + } + static encodeCmdScramblePIN(user_id, enabled) { + return SmartSafe.encodeCmdSingleUInt8(user_id, enabled === true ? 1 : 0); + } + static encodeCmdPowerSave(user_id, enabled) { + return SmartSafe.encodeCmdSingleUInt8(user_id, enabled === true ? 1 : 0); + } + static encodeCmdInteriorBrightness(user_id, interiorBrightness, duration) { + let convertedinteriorBrightness = 0; + switch (interiorBrightness) { + case 25: + convertedinteriorBrightness = 1; + break; + case 60: + convertedinteriorBrightness = 2; + break; + case 100: + convertedinteriorBrightness = 3; + break; + } + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id)); + payload.write(this.getUInt8Buffer(convertedinteriorBrightness)); + payload.write(this.getUInt8Buffer(duration)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdTamperAlarm(user_id, option) { + return SmartSafe.encodeCmdSingleUInt8(user_id, option); + } + static encodeCmdRemoteUnlock(user_id, option) { + return SmartSafe.encodeCmdSingleUInt8(user_id, option); + } + static encodeCmdAlertVolume(user_id, volume) { + return SmartSafe.encodeCmdSingleUInt8(user_id, volume); + } + static encodeCmdPromptVolume(user_id, volume) { + return SmartSafe.encodeCmdSingleUInt8(user_id, volume); + } + static encodeCmdPushNotification(user_id, modes) { + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id)); + payload.write(this.getUint16LEBuffer(modes)); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + static encodeCmdUnlock(user_id) { + return SmartSafe.encodeCmdSingleUInt8(user_id, 1); + } + static encodeCmdVerifyPIN(user_id, pin) { + const pinBuffer = Buffer.alloc(8); + pinBuffer.write(pin); + const payload = new utils_1.WritePayload(); + payload.write(Buffer.from(user_id)); + payload.write(pinBuffer); + payload.write(this.getCurrentTimeInSeconds()); + return payload.getData(); + } + convertRawPropertyValue(property, value) { + try { + if (property.key === types_2.CommandType.CMD_SMARTSAFE_REMOTE_OPEN_TYPE) { + switch (property.name) { + case types_1.PropertyName.DeviceRemoteUnlock: + { + const booleanProperty = property; + return value !== undefined ? (value === "0" || value === "1" ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + case types_1.PropertyName.DeviceRemoteUnlockMasterPIN: + { + const booleanProperty = property; + return value !== undefined ? (value === "0" ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + } + else if (property.key === types_2.CommandType.CMD_SMARTSAFE_NOTIF) { + const booleanProperty = property; + return value !== undefined ? ((Number.parseInt(value) >> SmartSafe.PUSH_NOTIFICATION_POSITION[property.name]) & 1) === 1 : booleanProperty.default !== undefined ? booleanProperty.default : false; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("SmartSafe convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + shakeEvent(event, eventDurationSeconds) { + this.updateProperty(types_1.PropertyName.DeviceShakeAlertEvent, event); + this.updateProperty(types_1.PropertyName.DeviceShakeAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.ShakeAlarm); + this.eventTimeouts.set(types_1.DeviceEvent.ShakeAlarm, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceShakeAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.ShakeAlarm); + }, eventDurationSeconds * 1000)); + } + alarm911Event(event, eventDurationSeconds) { + this.updateProperty(types_1.PropertyName.Device911AlertEvent, event); + this.updateProperty(types_1.PropertyName.Device911Alert, true); + this.clearEventTimeout(types_1.DeviceEvent.Alarm911); + this.eventTimeouts.set(types_1.DeviceEvent.Alarm911, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.Device911Alert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.Alarm911); + }, eventDurationSeconds * 1000)); + } + jammedEvent(eventDurationSeconds) { + this.updateProperty(types_1.PropertyName.DeviceJammedAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.Jammed); + this.eventTimeouts.set(types_1.DeviceEvent.Jammed, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceJammedAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.Jammed); + }, eventDurationSeconds * 1000)); + } + lowBatteryEvent(eventDurationSeconds) { + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LowBattery); + this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); + }, eventDurationSeconds * 1000)); + } + wrongTryProtectAlarmEvent(eventDurationSeconds) { + this.updateProperty(types_1.PropertyName.DeviceWrongTryProtectAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.WrontTryProtectAlarm); + this.eventTimeouts.set(types_1.DeviceEvent.WrontTryProtectAlarm, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceWrongTryProtectAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.WrontTryProtectAlarm); + }, eventDurationSeconds * 1000)); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.event_type !== undefined) { + if (message.station_sn === this.getSerial()) { + try { + switch (message.event_type) { + //TODO: Finish smart safe push notification handling implementation + case types_3.SmartSafeEvent.LOCK_STATUS: + { + const eventValues = message.event_value; + if (eventValues.action === 0) { + this.updateRawProperty(types_2.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "0", "push"); + /* + type values: + 1: Unlocked by PIN + 2: Unlocked by User + 3: Unlocked by key + 4: Unlocked by App + 5: Unlocked by Dual Unlock + */ + } + else if (eventValues.action === 1) { + this.updateRawProperty(types_2.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "1", "push"); + } + else if (eventValues.action === 2) { + this.jammedEvent(eventDurationSeconds); + } + else if (eventValues.action === 3) { + this.lowBatteryEvent(eventDurationSeconds); + } + break; + } + case types_3.SmartSafeEvent.ALARM_911: + { + const eventValue = message.event_value; + this.alarm911Event(eventValue, eventDurationSeconds); + break; + } + case types_3.SmartSafeEvent.SHAKE_ALARM: + { + const eventValue = message.event_value; + this.shakeEvent(eventValue, eventDurationSeconds); + break; + } + case types_3.SmartSafeEvent.LONG_TIME_NOT_CLOSE: + { + const eventValue = message.event_value; + if (eventValue === 1) { + this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LongTimeNotClose); + this.eventTimeouts.set(types_1.DeviceEvent.LongTimeNotClose, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LongTimeNotClose); + }, eventDurationSeconds * 1000)); + } + break; + } + case types_3.SmartSafeEvent.LOW_POWER: + { + this.lowBatteryEvent(eventDurationSeconds); + break; + } + case types_3.SmartSafeEvent.INPUT_ERR_MAX: + { + this.wrongTryProtectAlarmEvent(eventDurationSeconds); + break; + } + default: + logging_1.rootHTTPLogger.debug("SmartSafe process push notification - Unhandled smart safe notification event", message.event_type, message.event_time, message.device_sn); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`SmartSafe process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceLocked && metadata.key === types_2.CommandType.CMD_SMARTSAFE_LOCK_STATUS) { + this.emit("locked", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceJammedAlert) { + this.emit("jammed", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { + this.emit("low battery", this, newValue); + } + else if (metadata.name === types_1.PropertyName.Device911Alert) { + this.emit("911 alarm", this, newValue, this.getPropertyValue(types_1.PropertyName.Device911AlertEvent)); + } + else if (metadata.name === types_1.PropertyName.DeviceShakeAlert) { + this.emit("shake alarm", this, newValue, this.getPropertyValue(types_1.PropertyName.DeviceShakeAlertEvent)); + } + else if (metadata.name === types_1.PropertyName.DeviceLongTimeNotCloseAlert) { + this.emit("long time not close", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceWrongTryProtectAlert) { + this.emit("wrong try-protect alarm", this, newValue); + } + } + getState() { + return this.getPropertyValue(types_1.PropertyName.DeviceState); + } + getBatteryValue() { + return this.getPropertyValue(types_1.PropertyName.DeviceBattery); + } + getWifiRssi() { + return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); + } + isLocked() { + return this.getPropertyValue(types_1.PropertyName.DeviceLocked); + } +} +exports.SmartSafe = SmartSafe; +class Tracker extends Device { + static async getInstance(api, device, deviceConfig) { + return new Tracker(api, device, deviceConfig); + } + getStateChannel() { + return "tracker"; + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.TrackerCommandType.COMMAND_NEW_LOCATION: + { + if (value !== undefined && typeof value === "string") { + const items = value.split(","); + if (items.length === 3) { + switch (property.name) { + case types_1.PropertyName.DeviceLocationCoordinates: + return `${items[1]},${items[0]}`; + case types_1.PropertyName.DeviceLocationLastUpdate: + return Number.parseInt(items[2]); + default: break; + } + } + } + break; + } + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Tracker convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + async setFindPhone(value) { + try { + const property = this.getPropertyMetadata(types_1.PropertyName.DeviceFindPhone); + (0, utils_3.validValue)(property, value); + return await this.setParameters([{ + paramType: types_2.TrackerCommandType.COMMAND_TYPE_FINDMYPHONE, + paramValue: value ? "1" : "0" + }]); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Tracker set find phone - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), value: value }); + } + return false; + } + async setLeftBehindAlarm(value) { + try { + const property = this.getPropertyMetadata(types_1.PropertyName.DeviceLeftBehindAlarm); + (0, utils_3.validValue)(property, value); + return await this.setParameters([{ + paramType: types_2.TrackerCommandType.COMMAND_ANTILOST, + paramValue: value ? "1" : "0" + }]); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Tracker set left behind alarm - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), value: value }); + } + return false; + } + async setTrackerType(value) { + try { + const property = this.getPropertyMetadata(types_1.PropertyName.DeviceTrackerType); + (0, utils_3.validValue)(property, value); + return await this.setParameters([{ + paramType: types_2.TrackerCommandType.TYPE_ICON_INDEX, + paramValue: value.toString() + }]); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("Tracker set tracker type - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), value: value }); + } + return false; + } +} +exports.Tracker = Tracker; +class DoorbellLock extends DoorbellCamera { + static async getInstance(api, device, deviceConfig) { + const voices = await api.getVoices(device.device_sn); + return new DoorbellLock(api, device, voices, deviceConfig); + } + getStateChannel() { + return "locks"; + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceLocked) { + this.emit("locked", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { + this.emit("low battery", this, newValue); + } + else if ((metadata.key === types_2.CommandType.CMD_DOORLOCK_GET_STATE || metadata.key === types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS) && ((oldValue !== undefined && ((oldValue === 4 && newValue !== 4) || (oldValue !== 4 && newValue === 4))) || oldValue === undefined)) { + this.updateProperty(types_1.PropertyName.DeviceLocked, newValue === 4 ? true : false); + } + } + convertRawPropertyValue(property, value) { + try { + switch (property.key) { + case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: + return value !== undefined ? (value === "0" ? true : false) : false; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.error("DoorbellLock convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); + } + return super.convertRawPropertyValue(property, value); + } + getState() { + return this.getPropertyValue(types_1.PropertyName.DeviceState); + } + getBatteryValue() { + return this.getPropertyValue(types_1.PropertyName.DeviceBattery); + } + getWifiRssi() { + return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); + } + isLocked() { + const param = this.getLockStatus(); + return param ? (param === 4 ? true : false) : false; + } + getLockStatus() { + return this.getPropertyValue(types_1.PropertyName.DeviceLockStatus); + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.event_type !== undefined && message.device_sn === this.getSerial()) { + try { + switch (message.event_type) { + case types_3.LockPushEvent.APP_LOCK: + case types_3.LockPushEvent.AUTO_LOCK: + case types_3.LockPushEvent.FINGER_LOCK: + case types_3.LockPushEvent.KEYPAD_LOCK: + case types_3.LockPushEvent.MANUAL_LOCK: + case types_3.LockPushEvent.PW_LOCK: + case types_3.LockPushEvent.TEMPORARY_PW_LOCK: + { + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, "4", "push"); + if (!(0, utils_3.isEmpty)(message.person_name)) { + this.updateProperty(types_1.PropertyName.DevicePersonName, message.person_name); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(message.event_type)); + this.clearEventTimeout(types_1.DeviceEvent.Lock); + this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); + this.eventTimeouts.delete(types_1.DeviceEvent.Lock); + }, eventDurationSeconds * 1000)); + } + break; + } + case types_3.LockPushEvent.APP_UNLOCK: + case types_3.LockPushEvent.AUTO_UNLOCK: + case types_3.LockPushEvent.FINGERPRINT_UNLOCK: + case types_3.LockPushEvent.MANUAL_UNLOCK: + case types_3.LockPushEvent.PW_UNLOCK: + case types_3.LockPushEvent.TEMPORARY_PW_UNLOCK: + { + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, "3", "push"); + if (!(0, utils_3.isEmpty)(message.person_name)) { + this.updateProperty(types_1.PropertyName.DevicePersonName, message.person_name); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(message.event_type)); + this.clearEventTimeout(types_1.DeviceEvent.Lock); + this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); + this.eventTimeouts.delete(types_1.DeviceEvent.Lock); + }, eventDurationSeconds * 1000)); + } + break; + } + case types_3.LockPushEvent.LOCK_MECHANICAL_ANOMALY: + case types_3.LockPushEvent.MECHANICAL_ANOMALY: + case types_3.LockPushEvent.VIOLENT_DESTRUCTION: + case types_3.LockPushEvent.MULTIPLE_ERRORS: + { + const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; + this.updateRawProperty(cmdType, "5", "push"); + break; + } + case types_3.LockPushEvent.LOW_POWER: + case types_3.LockPushEvent.VERY_LOW_POWER: + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LowBattery); + this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); + }, eventDurationSeconds * 1000)); + break; + case types_3.LockPushEvent.DOOR_OPEN_LEFT: //TODO: Implement event + break; + case types_3.LockPushEvent.DOOR_TAMPER: //TODO: Implement event + break; + case types_3.LockPushEvent.DOOR_STATE_ERROR: //TODO: Implement event + break; + default: + logging_1.rootHTTPLogger.debug("DoorbellLock process push notification - Unhandled lock notification event", { eventType: message.event_type, eventTime: message.event_time, deviceSN: this.getSerial() }); + break; + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`DoorbellLock process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), eventType: message.event_type, eventTime: message.event_time, eventDurationSeconds: eventDurationSeconds }); + } + } + } +} +exports.DoorbellLock = DoorbellLock; +class SmartDrop extends Camera { + static async getInstance(api, device, deviceConfig) { + return new SmartDrop(api, device, deviceConfig); + } + getStateChannel() { + return "boxes"; + } + processPushNotification(station, message, eventDurationSeconds) { + super.processPushNotification(station, message, eventDurationSeconds); + if (message.type !== undefined && message.event_type !== undefined) { + if (message.device_sn === this.getSerial()) { + try { + (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); + if (message.event_type === types_3.CusPushEvent.SMART_DROP) { + switch (message.open) { + case types_3.SmartDropOpen.OPEN: + // Open + this.updateRawProperty(types_2.CommandType.CMD_SMART_DROP_OPEN, "1", "push"); + switch (message.openType) { + case types_3.SmartDropOpenedBy.APP: + // Open remotely via App + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 1); + break; + case types_3.SmartDropOpenedBy.PIN: + // Open with PIN + if (message.pin === "0") { + // Master PIN + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 2); + } + else { + // Delivery PIN + // who: message.person_name + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 3); + this.updateProperty(types_1.PropertyName.DeviceOpenedByName, message.person_name !== undefined ? message.person_name : ""); + } + break; + case types_3.SmartDropOpenedBy.WITHOUT_KEY: + // Opened without key + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 4); + break; + case types_3.SmartDropOpenedBy.EMERGENCY_RELEASE_BUTTON: + // Opened via emergency release button + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 5); + break; + case types_3.SmartDropOpenedBy.KEY: + // Opened with key + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 6); + break; + default: + logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event (openType)", message); + break; + } + break; + case types_3.SmartDropOpen.CLOSED: + // Closed + this.updateRawProperty(types_2.CommandType.CMD_SMART_DROP_OPEN, "0", "push"); + break; + case types_3.SmartDropOpen.LID_STUCK: + // The lid may be stuck + this.updateProperty(types_1.PropertyName.DeviceLidStuckAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LidStuckAlert); + this.eventTimeouts.set(types_1.DeviceEvent.LidStuckAlert, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLidStuckAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LidStuckAlert); + }, eventDurationSeconds * 1000)); + break; + case types_3.SmartDropOpen.PIN_INCORRECT: + // Someone had entered incorrect PIN + this.updateProperty(types_1.PropertyName.DevicePinIncorrectAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.PinIncorrectAlert); + this.eventTimeouts.set(types_1.DeviceEvent.PinIncorrectAlert, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePinIncorrectAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PinIncorrectAlert); + }, eventDurationSeconds * 1000)); + break; + case types_3.SmartDropOpen.LEFT_OPENED: + // Has been left opened for 1 minute + this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LongTimeNotClose); + this.eventTimeouts.set(types_1.DeviceEvent.LongTimeNotClose, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LongTimeNotClose); + }, eventDurationSeconds * 1000)); + break; + case types_3.SmartDropOpen.LOW_TEMPERATURE_WARNING: + // Low temperature warning + this.updateProperty(types_1.PropertyName.DeviceLowTemperatureAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LowTemperatureAlert); + this.eventTimeouts.set(types_1.DeviceEvent.LowTemperatureAlert, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLowTemperatureAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LowTemperatureAlert); + }, eventDurationSeconds * 1000)); + break; + default: + logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event (1)", message); + break; + } + } + else if (message.event_type !== 0) { + switch (message.event_type) { + case types_3.SmartDropPushEvent.LOW_BATTERY: + // Low battery warning + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.LowBattery); + this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); + }, eventDurationSeconds * 1000)); + break; + case types_3.SmartDropPushEvent.OVERHEATING_WARNING: + // Overheating warning + this.updateProperty(types_1.PropertyName.DeviceHighTemperatureAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.HighTemperatureAlert); + this.eventTimeouts.set(types_1.DeviceEvent.HighTemperatureAlert, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceHighTemperatureAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.HighTemperatureAlert); + }, eventDurationSeconds * 1000)); + break; + case types_3.SmartDropPushEvent.TAMPERED_WARNING: + if (message.type === 2) { + // Warning have been tampered + this.updateProperty(types_1.PropertyName.DeviceTamperingAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.TamperingAlert); + this.eventTimeouts.set(types_1.DeviceEvent.TamperingAlert, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceTamperingAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.TamperingAlert); + }, eventDurationSeconds * 1000)); + } + break; + case types_3.SmartDropPushEvent.BATTERY_FULLY_CHARGED: + // Battery fully charged + this.updateProperty(types_1.PropertyName.DeviceBatteryFullyChargedAlert, true); + this.clearEventTimeout(types_1.DeviceEvent.BatteryFullyChargedAlert); + this.eventTimeouts.set(types_1.DeviceEvent.BatteryFullyChargedAlert, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DeviceBatteryFullyChargedAlert, false); + this.eventTimeouts.delete(types_1.DeviceEvent.BatteryFullyChargedAlert); + }, eventDurationSeconds * 1000)); + break; + case types_3.SmartDropPushEvent.PERSON_DETECTED: + //Someone has been spotted + this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); + this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); + this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { + this.updateProperty(types_1.PropertyName.DevicePersonName, ""); + this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); + this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); + }, eventDurationSeconds * 1000)); + break; + default: + logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event (2)", message); + } + } + else { + logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event type", message); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootHTTPLogger.debug(`SmartDrop process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); + } + } + } + } + handlePropertyChange(metadata, oldValue, newValue) { + super.handlePropertyChange(metadata, oldValue, newValue); + if (metadata.name === types_1.PropertyName.DeviceOpen) { + const open = newValue; + if (open === false) { + this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 0); + this.updateProperty(types_1.PropertyName.DeviceOpenedByName, ""); + } + this.emit("open", this, open); + } + else if (metadata.name === types_1.PropertyName.DeviceDeliveries) { + this.updateProperty(types_1.PropertyName.DevicePackageDelivered, newValue > 0); + } + else if (metadata.name === types_1.PropertyName.DevicePackageDelivered) { + this.emit("package delivered", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { + this.emit("low battery", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceTamperingAlert) { + this.emit("tampering", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLongTimeNotCloseAlert) { + this.emit("long time not close", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLowTemperatureAlert) { + this.emit("low temperature", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceHighTemperatureAlert) { + this.emit("high temperature", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DevicePinIncorrectAlert) { + this.emit("pin incorrect", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceLidStuckAlert) { + this.emit("lid stuck", this, newValue); + } + else if (metadata.name === types_1.PropertyName.DeviceBatteryFullyChargedAlert) { + this.emit("battery fully charged", this, newValue); + } + } +} +exports.SmartDrop = SmartDrop; +class UnknownDevice extends Device { + static async getInstance(api, device, deviceConfig) { + return new UnknownDevice(api, device, deviceConfig); + } + getStateChannel() { + return "unknown"; + } +} +exports.UnknownDevice = UnknownDevice; +//# sourceMappingURL=device.js.map \ No newline at end of file diff --git a/build/http/device.js.map b/build/http/device.js.map new file mode 100644 index 00000000..e2abdf4a --- /dev/null +++ b/build/http/device.js.map @@ -0,0 +1 @@ +{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/http/device.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/error.d.ts b/build/http/error.d.ts new file mode 100644 index 00000000..8e7d2b76 --- /dev/null +++ b/build/http/error.d.ts @@ -0,0 +1,73 @@ +import { BaseError, Jsonable } from "../error"; +export declare class InvalidPropertyError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class LivestreamAlreadyRunningError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class LivestreamNotRunningError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class PropertyNotSupportedError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ApiResponseCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ApiInvalidResponseError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ApiHTTPResponseCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ApiGenericError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ApiBaseLoadError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ApiRequestError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ImageBaseCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ImageSeedError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} diff --git a/build/http/error.js b/build/http/error.js new file mode 100644 index 00000000..3227215b --- /dev/null +++ b/build/http/error.js @@ -0,0 +1,101 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ImageSeedError = exports.ImageBaseCodeError = exports.ApiRequestError = exports.ApiBaseLoadError = exports.ApiGenericError = exports.ApiHTTPResponseCodeError = exports.ApiInvalidResponseError = exports.ApiResponseCodeError = exports.PropertyNotSupportedError = exports.LivestreamNotRunningError = exports.LivestreamAlreadyRunningError = exports.InvalidPropertyError = void 0; +const error_1 = require("../error"); +class InvalidPropertyError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = InvalidPropertyError.name; + } +} +exports.InvalidPropertyError = InvalidPropertyError; +class LivestreamAlreadyRunningError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = LivestreamAlreadyRunningError.name; + } +} +exports.LivestreamAlreadyRunningError = LivestreamAlreadyRunningError; +class LivestreamNotRunningError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = LivestreamNotRunningError.name; + } +} +exports.LivestreamNotRunningError = LivestreamNotRunningError; +class PropertyNotSupportedError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = PropertyNotSupportedError.name; + } +} +exports.PropertyNotSupportedError = PropertyNotSupportedError; +class ApiResponseCodeError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ApiResponseCodeError.name; + } +} +exports.ApiResponseCodeError = ApiResponseCodeError; +class ApiInvalidResponseError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ApiInvalidResponseError.name; + } +} +exports.ApiInvalidResponseError = ApiInvalidResponseError; +class ApiHTTPResponseCodeError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ApiHTTPResponseCodeError.name; + } +} +exports.ApiHTTPResponseCodeError = ApiHTTPResponseCodeError; +class ApiGenericError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ApiGenericError.name; + } +} +exports.ApiGenericError = ApiGenericError; +class ApiBaseLoadError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ApiBaseLoadError.name; + } +} +exports.ApiBaseLoadError = ApiBaseLoadError; +class ApiRequestError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ApiRequestError.name; + } +} +exports.ApiRequestError = ApiRequestError; +class ImageBaseCodeError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ImageBaseCodeError.name; + } +} +exports.ImageBaseCodeError = ImageBaseCodeError; +class ImageSeedError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ImageSeedError.name; + } +} +exports.ImageSeedError = ImageSeedError; +//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/http/error.js.map b/build/http/error.js.map new file mode 100644 index 00000000..de4bb01e --- /dev/null +++ b/build/http/error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/http/error.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/index.d.ts b/build/http/index.d.ts new file mode 100644 index 00000000..359509da --- /dev/null +++ b/build/http/index.d.ts @@ -0,0 +1,10 @@ +export * from "./api"; +export * from "./cache"; +export * from "./device"; +export * from "./interfaces"; +export * from "./models"; +export * from "./parameter"; +export * from "./station"; +export * from "./types"; +export * from "./error"; +export { isGreaterEqualMinVersion, getAbsoluteFilePath } from "./utils"; diff --git a/build/http/index.js b/build/http/index.js new file mode 100644 index 00000000..58c93f59 --- /dev/null +++ b/build/http/index.js @@ -0,0 +1,30 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getAbsoluteFilePath = exports.isGreaterEqualMinVersion = void 0; +__exportStar(require("./api"), exports); +__exportStar(require("./cache"), exports); +__exportStar(require("./device"), exports); +__exportStar(require("./interfaces"), exports); +__exportStar(require("./models"), exports); +__exportStar(require("./parameter"), exports); +__exportStar(require("./station"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./error"), exports); +var utils_1 = require("./utils"); +Object.defineProperty(exports, "isGreaterEqualMinVersion", { enumerable: true, get: function () { return utils_1.isGreaterEqualMinVersion; } }); +Object.defineProperty(exports, "getAbsoluteFilePath", { enumerable: true, get: function () { return utils_1.getAbsoluteFilePath; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/http/index.js.map b/build/http/index.js.map new file mode 100644 index 00000000..bb46301b --- /dev/null +++ b/build/http/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,iCAAuE;AAA9D,iHAAA,wBAAwB,OAAA;AAAE,4GAAA,mBAAmB,OAAA"} \ No newline at end of file diff --git a/build/http/interfaces.d.ts b/build/http/interfaces.d.ts new file mode 100644 index 00000000..6c56de98 --- /dev/null +++ b/build/http/interfaces.d.ts @@ -0,0 +1,241 @@ +import { Readable } from "stream"; +import type { Method } from "got" with { + "resolution-mode": "import" +}; +import type { ImageFileExtension } from "image-type" with { + "resolution-mode": "import" +}; +import { DatabaseCountByDate, DatabaseQueryLatestInfo, DatabaseQueryLocal, StreamMetadata } from "../p2p/interfaces"; +import { CommandResult, StorageInfoBodyHB3 } from "../p2p/models"; +import { AlarmEvent, DatabaseReturnCode, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent, TFCardStatus } from "../p2p/types"; +import { Camera, Device } from "./device"; +import { Cipher, Voice, Invite, DeviceListResponse, StationListResponse, HouseListResponse } from "./models"; +import { Station } from "./station"; +import { CommandName, PropertyName, SourceType } from "./types"; +import { TalkbackStream } from "../p2p/talkback"; +export type PropertyValue = number | boolean | string | object; +export interface PropertyValues { + [index: string]: PropertyValue; +} +export interface DeviceConfig { + simultaneousDetections?: boolean; +} +export interface RawValue { + value: string; + source: SourceType; +} +export interface RawValues { + [index: number]: RawValue; +} +export interface Devices { + [index: string]: Device; +} +export interface Cameras { + [index: string]: Camera; +} +export interface Stations { + [index: string]: Station; +} +export interface Houses { + [index: string]: HouseListResponse; +} +export interface Hubs { + [index: string]: StationListResponse; +} +export interface FullDevices { + [index: string]: DeviceListResponse; +} +export interface Ciphers { + [index: number]: Cipher; +} +export interface Voices { + [index: number]: Voice; +} +export interface Invites { + [index: number]: Invite; +} +export interface HTTPApiRequest { + method: Method; + endpoint: string | URL; + responseType?: "text" | "json" | "buffer"; + data?: any; +} +export type PropertyMetadataType = "number" | "boolean" | "string" | "object"; +export interface PropertyMetadataAny { + key: number | string; + name: PropertyName; + type: PropertyMetadataType; + default?: any; + readable: boolean; + writeable: boolean; + description?: string; + label?: string; + commandId?: number; +} +export interface PropertyMetadataNumeric extends PropertyMetadataAny { + type: "number"; + min?: number; + max?: number; + steps?: number; + default?: number; + states?: Record; + unit?: string; +} +export interface PropertyMetadataBoolean extends PropertyMetadataAny { + type: "boolean"; + default?: boolean; +} +export interface PropertyMetadataString extends PropertyMetadataAny { + type: "string"; + minLength?: number; + maxLength?: number; + default?: string; + format?: RegExp; +} +export interface PropertyMetadataObject extends PropertyMetadataAny { + type: "object"; + isValidObject?: (obj: any) => boolean; + default?: any; +} +export interface IndexedProperty { + [index: string]: PropertyMetadataAny; +} +export interface Properties { + [index: number]: IndexedProperty; +} +export interface Commands { + [index: number]: Array; +} +export interface HTTPApiPersistentData { + user_id: string; + email: string; + nick_name: string; + device_public_keys: { + [index: string]: string; + }; + clientPrivateKey: string; + serverPublicKey: string; +} +export interface CaptchaOptions { + captchaCode: string; + captchaId: string; +} +export interface LoginOptions { + verifyCode?: string; + captcha?: CaptchaOptions; + force: boolean; +} +export interface Schedule { + startDateTime?: Date; + endDateTime?: Date; + week?: { + monday: boolean; + tuesday: boolean; + wednesday: boolean; + thursday: boolean; + friday: boolean; + saturday: boolean; + sunday: boolean; + }; +} +export interface ImageType { + ext: ImageFileExtension | "unknown"; + mime: string; +} +export interface Picture { + data: Buffer; + type: ImageType; +} +export interface HTTPApiEvents { + "devices": (devices: FullDevices) => void; + "hubs": (hubs: Hubs) => void; + "houses": (houses: Houses) => void; + "connect": () => void; + "close": () => void; + "connection error": (error: Error) => void; + "tfa request": () => void; + "captcha request": (id: string, captcha: string) => void; + "auth token invalidated": () => void; +} +export interface StationEvents { + "connect": (station: Station) => void; + "close": (station: Station) => void; + "connection error": (station: Station, error: Error) => void; + "raw device property changed": (deviceSN: string, params: RawValues) => void; + "property changed": (station: Station, name: string, value: PropertyValue, ready: boolean) => void; + "raw property changed": (station: Station, type: number, value: string) => void; + "command result": (station: Station, result: CommandResult) => void; + "download start": (station: Station, channel: number, metadata: StreamMetadata, videostream: Readable, audiostream: Readable) => void; + "download finish": (station: Station, channel: number) => void; + "livestream start": (station: Station, channel: number, metadata: StreamMetadata, videostream: Readable, audiostream: Readable) => void; + "livestream stop": (station: Station, channel: number) => void; + "livestream error": (station: Station, channel: number, error: Error) => void; + "rtsp livestream start": (station: Station, channel: number) => void; + "rtsp livestream stop": (station: Station, channel: number) => void; + "rtsp url": (station: Station, channel: number, value: string) => void; + "guard mode": (station: Station, guardMode: number) => void; + "current mode": (station: Station, currentMode: number) => void; + "alarm event": (station: Station, alarmEvent: AlarmEvent) => void; + "ready": (station: Station) => void; + "runtime state": (station: Station, channel: number, batteryLevel: number, temperature: number) => void; + "charging state": (station: Station, channel: number, chargeType: number, batteryLevel: number) => void; + "wifi rssi": (station: Station, channel: number, rssi: number) => void; + "floodlight manual switch": (station: Station, channel: number, enabled: boolean) => void; + "alarm delay event": (station: Station, alarmDelayEvent: AlarmEvent, alarmDelay: number) => void; + "alarm arm delay event": (station: Station, armDelay: number) => void; + "alarm armed event": (station: Station) => void; + "talkback started": (station: Station, channel: number, talkbackStream: TalkbackStream) => void; + "talkback stopped": (station: Station, channel: number) => void; + "talkback error": (station: Station, channel: number, error: Error) => void; + "secondary command result": (station: Station, result: CommandResult) => void; + "device shake alarm": (deviceSN: string, event: SmartSafeShakeAlarmEvent) => void; + "device 911 alarm": (deviceSN: string, event: SmartSafeAlarm911Event) => void; + "device jammed": (deviceSN: string) => void; + "device low battery": (deviceSN: string) => void; + "device wrong try-protect alarm": (deviceSN: string) => void; + "device pin verified": (deviceSN: string, successfull: boolean) => void; + "sd info ex": (station: Station, sdStatus: TFCardStatus, sdCapacity: number, sdCapacityAvailable: number) => void; + "image download": (station: Station, file: string, image: Buffer) => void; + "database query latest": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; + "database query local": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; + "database count by date": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; + "database delete": (station: Station, returnCode: DatabaseReturnCode, failedIds: Array) => void; + "sensor status": (station: Station, channel: number, status: number) => void; + "garage door status": (station: Station, channel: number, doorId: number, status: number) => void; + "storage info hb3": (station: Station, channel: number, storageInfo: StorageInfoBodyHB3) => void; +} +export interface DeviceEvents { + "property changed": (device: Device, name: string, value: PropertyValue, ready: boolean) => void; + "raw property changed": (device: Device, type: number, value: string) => void; + "motion detected": (device: Device, state: boolean) => void; + "person detected": (device: Device, state: boolean, person: string) => void; + "pet detected": (device: Device, state: boolean) => void; + "sound detected": (device: Device, state: boolean) => void; + "crying detected": (device: Device, state: boolean) => void; + "vehicle detected": (device: Device, state: boolean) => void; + "dog detected": (device: Device, state: boolean) => void; + "dog lick detected": (device: Device, state: boolean) => void; + "dog poop detected": (device: Device, state: boolean) => void; + "stranger person detected": (device: Device, state: boolean) => void; + "rings": (device: Device, state: boolean) => void; + "locked": (device: Device, state: boolean) => void; + "open": (device: Device, state: boolean) => void; + "ready": (device: Device) => void; + "package delivered": (device: Device, state: boolean) => void; + "package stranded": (device: Device, state: boolean) => void; + "package taken": (device: Device, state: boolean) => void; + "someone loitering": (device: Device, state: boolean) => void; + "radar motion detected": (device: Device, state: boolean) => void; + "911 alarm": (device: Device, state: boolean, detail: SmartSafeAlarm911Event) => void; + "shake alarm": (device: Device, state: boolean, detail: SmartSafeShakeAlarmEvent) => void; + "wrong try-protect alarm": (device: Device, state: boolean) => void; + "long time not close": (device: Device, state: boolean) => void; + "low battery": (device: Device, state: boolean) => void; + "jammed": (device: Device, state: boolean) => void; + "tampering": (device: Device, state: boolean) => void; + "low temperature": (device: Device, state: boolean) => void; + "high temperature": (device: Device, state: boolean) => void; + "pin incorrect": (device: Device, state: boolean) => void; + "lid stuck": (device: Device, state: boolean) => void; + "battery fully charged": (device: Device, state: boolean) => void; +} diff --git a/build/http/interfaces.js b/build/http/interfaces.js new file mode 100644 index 00000000..db919115 --- /dev/null +++ b/build/http/interfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/http/interfaces.js.map b/build/http/interfaces.js.map new file mode 100644 index 00000000..7edafefc --- /dev/null +++ b/build/http/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/http/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/http/models.d.ts b/build/http/models.d.ts new file mode 100644 index 00000000..1d7cf25d --- /dev/null +++ b/build/http/models.d.ts @@ -0,0 +1,608 @@ +import { UserPasswordType, UserType } from "./types"; +export interface ApiResponse { + status: number; + statusText: string; + data: any; + headers: any; +} +export interface ResultResponse { + code: number; + msg: string; + data?: any; + outline?: any; +} +export interface LoginResultResponse { + user_id: string; + email: string; + nick_name: string; + auth_token: string; + token_expires_at: number; + avatar: string; + invitation_code: string; + inviter_code: string; + verify_code_url: string; + mac_addr: string; + domain: string; + ab_code: string; + geo_key: string; + privilege: number; + phone: string; + phone_code: string; + server_secret_info: { + public_key: string; + } | null; + params: Array<{ + param_type: number; + param_value: string; + }> | null; + trust_list: Array; +} +export interface CaptchaResponse { + captcha_id: string; + item: string; +} +export interface LoginRequest { + ab: string; + client_secret_info: { + public_key: string; + }; + enc: number; + email: string; + password: string; + time_zone: number; + verify_code?: string; + captcha_id?: string; + answer?: string; + transaction: string; +} +export interface Member { + family_id: number; + station_sn: string; + admin_user_id: string; + member_user_id: string; + short_user_id: string; + member_type: number; + permissions: number; + member_nick: string; + action_user_id: string; + fence_state: number; + extra: string; + member_avatar: string; + house_id: string; + create_time: number; + update_time: number; + status: number; + email: string; + nick_name: string; + avatar: string; + action_user_email: string; + action_user_name: string; +} +export interface StationListDevice { + device_id: number; + is_init_complete: boolean; + device_sn: string; + device_name: string; + device_model: string; + time_zone: string; + device_type: number; + device_channel: number; + station_sn: string; + schedule: string; + schedulex: string; + wifi_mac: string; + sub1g_mac: string; + main_sw_version: string; + main_hw_version: string; + sec_sw_version: string; + sec_hw_version: string; + sector_id: number; + event_num: number; + wifi_ssid: string; + ip_addr: string; + main_sw_time: number; + sec_sw_time: number; + bind_time: number; + local_ip: string; + language: string; + sku_number: string; + lot_number: string; + cpu_id: string; + create_time: number; + update_time: number; + status: number; +} +export interface StationListResponse { + readonly [index: string]: unknown; + station_id: number; + station_sn: string; + station_name: string; + station_model: string; + time_zone: string; + wifi_ssid: string; + ip_addr: string; + wifi_mac: string; + sub1g_mac: string; + main_sw_version: string; + main_hw_version: string; + sec_sw_version: string; + sec_hw_version: string; + volume: string; + main_sw_time: number; + sec_sw_time: number; + bt_mac: string; + setup_code: string; + setup_id: string; + device_type: number; + event_num: number; + sku_number: string; + lot_number: string; + create_time: number; + update_time: number; + status: number; + station_status: number; + status_change_time: number; + p2p_did: string; + push_did: string; + p2p_license: string; + push_license: string; + ndt_did: string; + ndt_license: string; + wakeup_flag: number; + p2p_conn: string; + app_conn: string; + wipn_enc_dec_key: string; + wipn_ndt_aes128key: string; + query_server_did: string; + prefix: string; + wakeup_key: string; + member: Member; + params: Array; + devices: Array; + sensor_info: null; + is_init_complete: boolean; + virtual_version: string; + house_id?: string; +} +export interface ParameterResponse { + param_id: number; + station_sn: string; + param_type: number; + param_value: string; + create_time: number; + update_time: number; + status: number; +} +export interface DeviceResponse { + device_id: number; + is_init_complete: boolean; + device_sn: string; + device_name: string; + device_model: string; + time_zone: string; + device_type: number; + device_channel: number; + station_sn: string; + schedule: string; + schedulex: string; + wifi_mac: string; + sub1g_mac: string; + main_sw_version: string; + main_hw_version: string; + sec_sw_version: string; + sec_hw_version: string; + sector_id: number; + event_num: number; + wifi_ssid: string; + ip_addr: string; + main_sw_time: number; + sec_sw_time: number; + bind_time: number; + cover_path: string; + cover_time: number; + local_ip: string; + language: string; + sku_number: string; + lot_number: string; + create_time: number; + update_time: number; + status: number; +} +export interface DeviceRequest { + device_sn: string; + num: number; + orderby: string; + page: number; + station_sn: string; +} +export interface DeviceListResponse { + readonly [index: string]: unknown; + device_id: number; + is_init_complete: boolean; + device_sn: string; + device_name: string; + device_model: string; + time_zone: string; + device_type: number; + device_channel: number; + station_sn: string; + schedule: string; + schedulex: string; + wifi_mac: string; + sub1g_mac: string; + main_sw_version: string; + main_hw_version: string; + sec_sw_version: string; + sec_hw_version: string; + sector_id: number; + event_num: number; + wifi_ssid: string; + ip_addr: string; + volume: string; + main_sw_time: number; + sec_sw_time: number; + bind_time: number; + bt_mac: string; + cover_path: string; + cover_time: number; + local_ip: string; + language: string; + sku_number: string; + lot_number: string; + cpu_id: string; + create_time: number; + update_time: number; + status: number; + svr_domain: string; + svr_port: number; + station_conn: { + station_sn: string; + station_name: string; + station_model: string; + main_sw_version: string; + main_hw_version: string; + p2p_did: string; + push_did: string; + ndt_did: string; + p2p_conn: string; + app_conn: string; + binded: false; + setup_code: string; + setup_id: string; + bt_mac: string; + wifi_mac: string; + dsk_key: string; + expiration: number; + }; + family_num: number; + member: Member; + permission: any; + params: Array; + pir_total: number; + pir_none: number; + pir_missing: number; + week_pir_total: number; + week_pir_none: number; + month_pir_total: number; + month_pir_none: number; + charging_days: number; + charing_total: number; + charging_reserve: number; + charging_missing: number; + battery_usage_last_week: number; + virtual_version: string; + relate_devices: any; + house_id?: string; +} +export interface DskKeyResponse { + enabled: boolean; + dsk_keys: Array<{ + station_sn: string; + dsk_key: string; + expiration: number; + about_to_be_replaced: boolean; + }>; +} +export interface EventRecordResponse { + monitor_id: number; + transfer_monitor_id: number; + station_sn: string; + device_sn: string; + storage_type: number; + storage_path: string; + hevc_storage_path: string; + cloud_path: string; + frame_num: number; + thumb_path: string; + thumb_data: string; + start_time: number; + end_time: number; + cipher_id: number; + cipher_user_id: string; + has_human: number; + volume: string; + vision: number; + device_name: string; + device_type: number; + video_type: number; + extra: string; + user_range_id: number; + viewed: boolean; + create_time: number; + update_time: number; + status: number; + station_name: string; + p2p_did: string; + push_did: string; + p2p_license: string; + push_license: string; + ndt_did: string; + ndt_license: string; + wakeup_flag: number; + p2p_conn: string; + app_conn: string; + wipn_enc_dec_key: string; + wipn_ndt_aes128key: string; + query_server_did: string; + prefix: string; + wakeup_key: string; + ai_faces: Array<{ + is_stranger: number; + face_url: string; + owner_id: string; + user_range_id: number; + }>; + is_favorite: boolean; + storage_alias: number; +} +export interface EventRecordRequest { + device_sn: string; + end_time: number; + id: number; + id_type: number; + is_favorite: boolean; + num: number; + pullup: boolean; + shared: boolean; + start_time: number; + station_sn: string; + storage: number; +} +export interface StreamRequest { + device_sn: string; + station_sn: string; + proto?: number; +} +export interface TrustDevice { + open_udid: string; + phone_model: string; + is_current_device: number; +} +export interface Cipher { + cipher_id: number; + user_id: string; + private_key: string; +} +export interface Voice { + voice_id: number; + user_id: string; + desc: string; + device_sn: string; + voice_link: string; + voice_type: number; + key_prefix: string; +} +export interface DeviceInvite { + device_sn: string; + checked: boolean; +} +export interface Invite { + invite_id: number; + station_sn: string; + email: string; + devices: Array; + action_user_id: string; + member_nick: string; + member_type: number; + permissions: number; + create_time: number; + update_time: number; + status: number; + action_user_email: string; + action_user_nick: string; +} +export interface ConfirmInvite { + device_sns: Array; + invite_id: number; + station_sn: string; +} +export interface SensorHistoryEntry { + trigger_time: number; + create_time: number; + status: string; +} +export interface HouseUser { + id: number; + house_id: string; + email: string; + avatar: string; + user_id: string; + admin_user_id: string; + state: string; + role_type: number; +} +export interface HouseDetail { + house_id: string; + house_name: string; + is_default: number; + id: number; + geofence_id: number; + address: string; + latitude: number; + longitude: number; + radius_range: number; + away_mode: number; + home_mode: number; + location_msg: number; + create_time: number; + house_users: Array; + house_stations: any; +} +export interface HouseListResponse { + readonly [index: string]: unknown; + house_id: string; + user_id: string; + admin_user_id: string; + role_type: number; + house_name: string; + is_default: number; + geofence_id: number; + address: string; + latitude: number; + longitude: number; + radius_range: number; + location_msg: number; + create_time: number; + away_mode: number; + home_mode: number; +} +export interface HouseInviteListResponse { + readonly [index: string]: unknown; + id: number; + house_name: string; + action_user_nick: string; + action_user_email: string; + house_id: string; + email: string; + user_id: string; + role_type: number; +} +export interface ConfirmHouseInvite { + house_id: string; + invite_id: number; + is_inviter: number; + user_id: string; +} +export interface PassportProfileResponse { + user_id: string; + email: string; + nick_name: string; + avatar: string; + invitation_code: string; + inviter_code: string; + verify_code_url: string; + mac_addr: string; + country: { + id: number; + name: string; + code: string; + }; +} +export interface StationSecuritySettings { + account_id: string; + count_down_alarm: StationSecuritySettingsDelayDetails; + count_down_arm: StationSecuritySettingsDelayDetails; + devices: StationSecuritySettingsDeviceDetails; +} +export interface StationSecuritySettingsDelayDetails { + account_id: string; + channel_list: number[]; + delay_time: number; +} +export interface StationSecuritySettingsDeviceDetails { + action: number; + device_channel: number; +} +export interface SnoozeDetail { + snooze_time: number; + snooze_chime?: boolean; + snooze_motion?: boolean; + snooze_homebase?: boolean; +} +export interface RawSchedule { + endDay: string; + week: string; + startDay: string; + startTime: string; + endTime: string; +} +export interface UserPassword { + expiration_time: number; + is_permanent: number; + password: string; + password_id: string; + password_type: UserPasswordType; + name: string; + schedule: RawSchedule; +} +export interface User { + avatar: string; + password_list: Array; + user_id: string; + short_user_id: string; + user_name: string; + user_type: UserType; + is_show: boolean; +} +export interface UsersResponse { + device_sn: string; + user_list: Array; +} +export interface AddUserResponse { + user_id: string; + short_user_id: string; +} +export interface GarageDoorSensorsProperty { + cmd: number; + data: { + door_1: { + power: number; + mac_address: string; + version: string; + name: string; + sn: string; + playalarm: number; + ota: number; + needota: number; + }; + door_2: { + power: number; + mac_address: string; + version: string; + name: string; + sn: string; + playalarm: number; + ota: number; + needota: number; + }; + }; +} +export interface FloodlightDetectionRangeT8425Property { + cur_mode: number; + test_mode: number; + mode0: Array<{ + id: number; + sst: number; + }>; + mode1: Array<{ + id: number; + sst: number; + }>; + mode2: Array<{ + id: number; + sst: number; + }>; +} +export interface FloodlightLightSettingsBrightnessScheduleT8425Property { + sunset2rise: number; + longtitude: string; + latitude: string; + brightness: number; + schedule: Array; +} +export interface FloodlightLightSettingsMotionT8425Property { + brightness: number; + enable: number; + mode: number; + time: number; +} diff --git a/build/http/models.js b/build/http/models.js new file mode 100644 index 00000000..b2dccd68 --- /dev/null +++ b/build/http/models.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/build/http/models.js.map b/build/http/models.js.map new file mode 100644 index 00000000..800216d7 --- /dev/null +++ b/build/http/models.js.map @@ -0,0 +1 @@ +{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/http/models.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/http/parameter.d.ts b/build/http/parameter.d.ts new file mode 100644 index 00000000..2c6c3fb9 --- /dev/null +++ b/build/http/parameter.d.ts @@ -0,0 +1,5 @@ +import { Category } from "typescript-logging-category-style"; +export declare class ParameterHelper { + static readValue(serialNumber: string, type: number, value: string, log: Category): string | undefined; + static writeValue(type: number, value: string): string; +} diff --git a/build/http/parameter.js b/build/http/parameter.js new file mode 100644 index 00000000..ffe0ec07 --- /dev/null +++ b/build/http/parameter.js @@ -0,0 +1,103 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ParameterHelper = void 0; +const types_1 = require("../p2p/types"); +const utils_1 = require("../p2p/utils"); +const utils_2 = require("../utils"); +const types_2 = require("./types"); +const utils_3 = require("./utils"); +const error_1 = require("../error"); +class ParameterHelper { + static readValue(serialNumber, type, value, log) { + if (value) { + if (type === types_2.ParamType.SNOOZE_MODE || + type === types_2.ParamType.CAMERA_MOTION_ZONES || + type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY || + type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN || + type === types_1.CommandType.ARM_DELAY_HOME || + type === types_1.CommandType.ARM_DELAY_AWAY || + type === types_1.CommandType.ARM_DELAY_CUS1 || + type === types_1.CommandType.ARM_DELAY_CUS2 || + type === types_1.CommandType.ARM_DELAY_CUS3 || + type === types_1.CommandType.ARM_DELAY_OFF || + type === types_1.CommandType.CELLULAR_INFO || + type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING || + type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING || + type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING || + type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS || + type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES || + type === types_1.CommandType.CMD_INDOOR_DET_SET_ACTIVE_ZONE || + type === types_1.CommandType.CMD_SET_PRIVACYPARAM || + type === types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2 || + type === types_1.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2 || + type === types_1.CommandType.CMD_SET_CROSS_TRACKING_CAMERA_LIST || + type === types_1.CommandType.CMD_SET_CROSS_TRACKING_GROUP_LIST || + type === types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425 || + type === types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425 || + type === types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425) { + if (typeof value === "string") { + const parsedValue = (0, utils_2.parseJSON)((0, utils_1.getNullTerminatedString)((0, utils_1.decodeBase64)(value), "utf-8"), log); + if (parsedValue === undefined) { + log.debug("Non-parsable parameter value received from eufy cloud. Will be ignored.", { serialNumber: serialNumber, type: type, value: value }); + } + return parsedValue; + } + else { + return value; //return object + } + } + else if (type === types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE || + type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY || + type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE || + type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME || + type === types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE || + type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME || + type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE || + type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME || + type === types_1.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH || + type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE || + type === types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS || + type === types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS) { + if (typeof value === "string") { + const parsedValue = (0, utils_2.parseJSON)(value, log); + if (parsedValue === undefined) { + log.debug("Non-parsable parameter value received from eufy cloud. Will be ignored.", { serialNumber: serialNumber, type: type, value: value }); + } + return parsedValue; + } + else { + return value; //return object + } + } + else if (type === types_1.TrackerCommandType.COMMAND_NEW_LOCATION || + type === types_1.TrackerCommandType.LOCATION_NEW_ADDRESS) { + try { + const decrypted = (0, utils_3.decryptTrackerData)(Buffer.from(value, "hex"), Buffer.from(serialNumber)); + if (decrypted !== undefined) { + return decrypted.toString("utf8").trim(); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + log.debug("Non-parsable parameter value received from eufy cloud. Will be ignored.", { serialNumber: serialNumber, type: type, value: value, error: (0, utils_2.getError)(error) }); + } + return ""; + } + } + return value; + } + static writeValue(type, value) { + if (value) { + if (type === types_2.ParamType.SNOOZE_MODE || + type === types_2.ParamType.CAMERA_MOTION_ZONES || + type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY || + type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN) { + return Buffer.from(JSON.stringify(value)).toString("base64"); + } + return value; + } + return ""; + } +} +exports.ParameterHelper = ParameterHelper; +//# sourceMappingURL=parameter.js.map \ No newline at end of file diff --git a/build/http/parameter.js.map b/build/http/parameter.js.map new file mode 100644 index 00000000..87b7a925 --- /dev/null +++ b/build/http/parameter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/http/parameter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/station.d.ts b/build/http/station.d.ts new file mode 100644 index 00000000..a651d21b --- /dev/null +++ b/build/http/station.d.ts @@ -0,0 +1,364 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { HTTPApi } from "./api"; +import { AlarmTone, NotificationSwitchMode, DeviceType, FloodlightMotionTriggeredDistance, GuardMode, NotificationType, PowerSource, PropertyName, TimeFormat, CommandName, VideoTypeStoreToNAS, HB3DetectionTypes, WalllightNotificationType, DailyLightingType, MotionActivationMode, LightingActiveMode, SourceType, T8170DetectionTypes, IndoorS350NotificationTypes, SoloCameraDetectionTypes, MotionDetectionRangeType, ViewModeType, FloodlightT8425NotificationTypes, PresetPositionType, IndoorS350DetectionTypes } from "./types"; +import { SnoozeDetail, StationListResponse } from "./models"; +import { IndexedProperty, PropertyMetadataAny, PropertyValue, PropertyValues, RawValues, StationEvents, Schedule } from "./interfaces"; +import { CrossTrackingGroupEntry, DynamicLighting, MotionZone, RGBColor } from "../p2p/interfaces"; +import { CalibrateGarageType, FilterDetectType, FilterEventType, FilterStorageType, P2PConnectionType, PanTiltDirection, VideoCodec, WatermarkSetting1, WatermarkSetting2, WatermarkSetting3, WatermarkSetting4, WatermarkSetting5 } from "../p2p/types"; +import { Device } from "./device"; +import { PushMessage } from "../push/models"; +export declare class Station extends TypedEmitter { + private api; + private rawStation; + private p2pSession; + private properties; + private rawProperties; + private ready; + private lockPublicKey; + private currentDelay; + private reconnectTimeout?; + private terminating; + private p2pConnectionType; + static readonly CHANNEL: number; + static readonly CHANNEL_INDOOR: number; + private pinVerified; + protected constructor(api: HTTPApi, station: StationListResponse, ipAddress?: string, listeningPort?: number, publicKey?: string, enableEmbeddedPKCS1Support?: boolean); + protected initializeState(): void; + initialize(): void; + static getInstance(api: HTTPApi, stationData: StationListResponse, ipAddress?: string, listeningPort?: number, enableEmbeddedPKCS1Support?: boolean): Promise; + getStateID(state: string, level?: number): string; + getStateChannel(): string; + getRawStation(): StationListResponse; + update(station: StationListResponse): void; + updateProperty(name: string, value: PropertyValue, force?: boolean): boolean; + updateRawProperties(values: RawValues): void; + protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; + updateRawProperty(type: number, value: string, source: SourceType): boolean; + protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; + getPropertyMetadata(name: string, hidden?: boolean): PropertyMetadataAny; + getPropertyValue(name: string): PropertyValue; + hasPropertyValue(name: string): boolean; + getRawProperty(type: number): string | undefined; + getRawProperties(): RawValues; + getProperties(): PropertyValues; + getPropertiesMetadata(hidden?: boolean): IndexedProperty; + hasProperty(name: string, hidden?: boolean): boolean; + getCommands(): Array; + hasCommand(name: CommandName): boolean; + static getChannel(type: number): number; + static isStation(type: number): boolean; + isStation(): boolean; + static isStationHomeBase3(type: number): boolean; + static isStationHomeBase3BySn(sn: string): boolean; + isStationHomeBase3(): boolean; + isIntegratedDevice(): boolean; + isP2PConnectableDevice(): 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; + 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): void; + getCameraInfo(): void; + getStorageInfoEx(): void; + private onAlarmMode; + private getArmDelay; + private _getDeviceSerial; + private _handleCameraInfoParameters; + private onCameraInfo; + private onCommandResponse; + private onSecondaryCommandResponse; + private onConnect; + private onDisconnect; + private onTimeout; + private getCurrentDelay; + private resetCurrentDelay; + private scheduleReconnect; + rebootHUB(): void; + setStatusLed(device: Device, value: boolean): void; + setAutoNightVision(device: Device, value: boolean): void; + setNightVision(device: Device, value: number): void; + setMotionDetection(device: Device, value: boolean): void; + setSoundDetection(device: Device, value: boolean): void; + setSoundDetectionType(device: Device, value: number): void; + setSoundDetectionSensitivity(device: Device, value: number): void; + setPetDetection(device: Device, value: boolean): void; + panAndTilt(device: Device, direction: PanTiltDirection, command?: number): void; + switchLight(device: Device, value: boolean): void; + setMotionDetectionSensitivity(device: Device, value: number): void; + setMotionDetectionType(device: Device, value: number): void; + setMotionDetectionTypeHB3(device: Device, type: HB3DetectionTypes | T8170DetectionTypes | SoloCameraDetectionTypes | IndoorS350DetectionTypes, value: boolean): void; + setMotionZone(device: Device, value: MotionZone): void; + setMotionTracking(device: Device, value: boolean): void; + setPanAndTiltRotationSpeed(device: Device, value: number): void; + setMicMute(device: Device, value: boolean): void; + setAudioRecording(device: Device, value: boolean): void; + enableSpeaker(device: Device, value: boolean): void; + setSpeakerVolume(device: Device, value: number): void; + setRingtoneVolume(device: Device, value: number): void; + enableIndoorChime(device: Device, value: boolean): void; + enableHomebaseChime(device: Device, value: boolean): void; + setHomebaseChimeRingtoneVolume(device: Device, value: number): void; + setHomebaseChimeRingtoneType(device: Device, value: number): void; + setNotificationType(device: Device, value: NotificationType | WalllightNotificationType): void; + setNotificationPerson(device: Device, value: boolean): void; + setNotificationPet(device: Device, value: boolean): void; + setNotificationAllOtherMotion(device: Device, value: boolean): void; + setNotificationAllSound(device: Device, value: boolean): void; + setNotificationCrying(device: Device, value: boolean): void; + setNotificationRing(device: Device, value: boolean): void; + setNotificationMotion(device: Device, value: boolean): void; + setPowerSource(device: Device, value: PowerSource): void; + setPowerWorkingMode(device: Device, value: number): void; + setRecordingClipLength(device: Device, value: number): void; + setRecordingRetriggerInterval(device: Device, value: number): void; + setRecordingEndClipMotionStops(device: Device, value: boolean): void; + setVideoStreamingQuality(device: Device, value: number): void; + setVideoRecordingQuality(device: Device, value: number): void; + setWDR(device: Device, value: boolean): void; + setFloodlightLightSettingsEnable(device: Device, value: boolean): void; + setFloodlightLightSettingsBrightnessManual(device: Device, value: number): void; + setFloodlightLightSettingsBrightnessMotion(device: Device, value: number): void; + setFloodlightLightSettingsBrightnessSchedule(device: Device, value: number): void; + setFloodlightLightSettingsMotionTriggered(device: Device, value: boolean): void; + setFloodlightLightSettingsMotionTriggeredDistance(device: Device, value: FloodlightMotionTriggeredDistance): void; + setFloodlightLightSettingsMotionTriggeredTimer(device: Device, seconds: number): void; + triggerStationAlarmSound(seconds: number): void; + resetStationAlarmSound(): void; + triggerDeviceAlarmSound(device: Device, seconds: number): void; + resetDeviceAlarmSound(device: Device): void; + setStationAlarmRingtoneVolume(value: number): void; + setStationAlarmTone(value: AlarmTone): void; + setStationPromptVolume(value: number): void; + setStationNotificationSwitchMode(mode: NotificationSwitchMode, value: boolean): void; + setStationNotificationStartAlarmDelay(value: boolean): void; + setStationTimeFormat(value: TimeFormat): void; + setRTSPStream(device: Device, value: boolean): void; + setAntiTheftDetection(device: Device, value: boolean): void; + setWatermark(device: Device, value: WatermarkSetting1 | WatermarkSetting2 | WatermarkSetting3 | WatermarkSetting4 | WatermarkSetting5): void; + enableDevice(device: Device, value: boolean): void; + startDownload(device: Device, path: string, cipher_id?: number): Promise; + cancelDownload(device: Device): void; + startLivestream(device: Device, videoCodec?: VideoCodec): void; + stopLivestream(device: Device): void; + isLiveStreaming(device: Device): boolean; + isDownloading(device: Device): boolean; + quickResponse(device: Device, voice_id: number): void; + setChirpVolume(device: Device, value: number): void; + setChirpTone(device: Device, value: number): void; + setHDR(device: Device, value: boolean): void; + setDistortionCorrection(device: Device, value: boolean): void; + setRingRecord(device: Device, value: number): void; + lockDevice(device: Device, value: boolean): void; + setStationSwitchModeWithAccessCode(value: boolean): void; + setStationAutoEndAlarm(value: boolean): void; + setStationTurnOffAlarmWithButton(value: boolean): void; + startRTSPStream(device: Device): void; + stopRTSPStream(device: Device): void; + setMotionDetectionRange(device: Device, type: MotionDetectionRangeType): void; + setMotionDetectionRangeStandardSensitivity(device: Device, sensitivity: number): void; + setMotionDetectionRangeAdvancedLeftSensitivity(device: Device, sensitivity: number): void; + setMotionDetectionRangeAdvancedMiddleSensitivity(device: Device, sensitivity: number): void; + setMotionDetectionRangeAdvancedRightSensitivity(device: Device, sensitivity: number): void; + setMotionDetectionTestMode(device: Device, enabled: boolean): void; + setMotionTrackingSensitivity(device: Device, sensitivity: number): void; + setMotionAutoCruise(device: Device, enabled: boolean): void; + setMotionOutOfViewDetection(device: Device, enabled: boolean): void; + setLightSettingsColorTemperatureManual(device: Device, value: number): void; + setLightSettingsColorTemperatureMotion(device: Device, value: number): void; + setLightSettingsColorTemperatureSchedule(device: Device, value: number): void; + setLightSettingsMotionActivationMode(device: Device, value: MotionActivationMode): void; + setVideoNightvisionImageAdjustment(device: Device, enabled: boolean): void; + setVideoColorNightvision(device: Device, enabled: boolean): void; + setAutoCalibration(device: Device, enabled: boolean): 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): void; + private convertAdvancedLockSettingValue; + private convertAdvancedLockSettingValueT8530; + private getAdvancedLockSettingsPayload; + private getAdvancedLockSettingsPayloadT8530; + private getAdvancedLockSettingName; + private getAdvancedLockSettingNameT8530; + setAdvancedLockParams(device: Device, property: PropertyName, value: PropertyValue): void; + setLoiteringDetection(device: Device, value: boolean): void; + setLoiteringDetectionRange(device: Device, value: number): void; + setLoiteringDetectionLength(device: Device, value: number): void; + private _setMotionDetectionSensitivity; + private _getMotionDetectionSensitivityAdvanced; + setMotionDetectionSensitivityMode(device: Device, value: number): void; + setMotionDetectionSensitivityStandard(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedA(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedB(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedC(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedD(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedE(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedF(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedG(device: Device, value: number): void; + setMotionDetectionSensitivityAdvancedH(device: Device, value: number): void; + private _setLoiteringCustomResponse; + setLoiteringCustomResponseAutoVoiceResponse(device: Device, value: boolean): void; + setLoiteringCustomResponseAutoVoiceResponseVoice(device: Device, value: number): void; + setLoiteringCustomResponseHomeBaseNotification(device: Device, value: boolean): void; + setLoiteringCustomResponsePhoneNotification(device: Device, value: boolean): void; + setLoiteringCustomResponseTimeFrom(device: Device, value: string): void; + setLoiteringCustomResponseTimeTo(device: Device, value: string): void; + setDeliveryGuard(device: Device, value: boolean): void; + setDeliveryGuardPackageGuarding(device: Device, value: boolean): void; + setDeliveryGuardPackageGuardingVoiceResponseVoice(device: Device, value: number): void; + private setDeliveryGuardPackageGuardingActivatedTime; + setDeliveryGuardPackageGuardingActivatedTimeFrom(device: Device, value: string): void; + setDeliveryGuardPackageGuardingActivatedTimeTo(device: Device, value: string): void; + setDeliveryGuardUncollectedPackageAlert(device: Device, value: boolean): void; + setDeliveryGuardUncollectedPackageAlertTimeToCheck(device: Device, value: string): void; + setDeliveryGuardPackageLiveCheckAssistance(device: Device, value: boolean): void; + setDualCamWatchViewMode(device: Device, value: ViewModeType): void; + private _setRingAutoResponse; + setRingAutoResponse(device: Device, value: boolean): void; + setRingAutoResponseVoiceResponse(device: Device, value: boolean): void; + setRingAutoResponseVoiceResponseVoice(device: Device, value: number): void; + setRingAutoResponseTimeFrom(device: Device, value: string): void; + setRingAutoResponseTimeTo(device: Device, value: string): void; + setNotificationRadarDetector(device: Device, value: boolean): void; + calibrate(device: Device): void; + setContinuousRecording(device: Device, value: boolean): void; + setContinuousRecordingType(device: Device, value: number): void; + enableDefaultAngle(device: Device, value: boolean): void; + setDefaultAngleIdleTime(device: Device, value: number): void; + setDefaultAngle(device: Device): void; + setPrivacyAngle(device: Device): void; + setNotificationIntervalTime(device: Device, value: number): void; + setSoundDetectionRoundLook(device: Device, value: boolean): void; + startTalkback(device: Device): void; + stopTalkback(device: Device): void; + private onTalkbackStarted; + private onTalkbackStopped; + private onTalkbackError; + isTalkbackOngoing(device: Device): boolean; + setScramblePasscode(device: Device, value: boolean): void; + setWrongTryProtection(device: Device, value: boolean): void; + setWrongTryAttempts(device: Device, value: number): void; + setWrongTryLockdownTime(device: Device, value: number): void; + private _sendSmartSafeCommand; + setSmartSafeParams(device: Device, property: PropertyName, value: PropertyValue): void; + unlock(device: Device): void; + verifyPIN(device: Device, pin: string): void; + private onDeviceShakeAlarm; + private onDevice911Alarm; + private onDeviceJammed; + private onDeviceLowBattery; + private onDeviceWrongTryProtectAlarm; + private onSdInfoEx; + setVideoTypeStoreToNAS(device: Device, value: VideoTypeStoreToNAS): void; + snooze(device: Device, value: SnoozeDetail): void; + addUser(device: Device, username: string, shortUserId: string, passcode: string, schedule?: Schedule): void; + deleteUser(device: Device, username: string, shortUserId: string): void; + updateUserSchedule(device: Device, username: string, shortUserId: string, schedule: Schedule): void; + updateUserPasscode(device: Device, username: string, passwordId: string, passcode: string): void; + setLockV12Params(device: Device, property: PropertyName, value: PropertyValue): void; + setSmartLockParams(device: Device, property: PropertyName, value: PropertyValue): void; + setAutoLock(device: Device, value: boolean): void; + setAutoLockSchedule(device: Device, value: boolean): void; + setAutoLockScheduleStartTime(device: Device, value: string): void; + setAutoLockScheduleEndTime(device: Device, value: string): void; + setAutoLockTimer(device: Device, value: number): void; + setOneTouchLocking(device: Device, value: boolean): void; + setSound(device: Device, value: number): void; + setNotification(device: Device, value: boolean): void; + setNotificationLocked(device: Device, value: boolean): void; + setNotificationUnlocked(device: Device, value: boolean): void; + private _sendLockV12P2PCommand; + queryAllUserId(device: Device): void; + chimeHomebase(value: number): void; + private onImageDownload; + downloadImage(cover_path: string): void; + private onTFCardStatus; + databaseQueryLatestInfo(failureCallback?: () => void): void; + databaseQueryLocal(serialNumbers: Array, startDate: Date, endDate: Date, eventType?: FilterEventType, detectionType?: FilterDetectType, storageType?: FilterStorageType): void; + databaseDelete(ids: Array): void; + databaseCountByDate(startDate: Date, endDate: Date): void; + private onDatabaseQueryLatest; + private onDatabaseQueryLocal; + private onDatabaseCountByDate; + private onDatabaseDelete; + private onSensorStatus; + setMotionDetectionTypeHuman(device: Device, value: boolean): void; + setMotionDetectionTypeAllOtherMotions(device: Device, value: boolean): void; + private _setLightSettingsLightingActiveMode; + setLightSettingsManualLightingActiveMode(device: Device, value: LightingActiveMode): void; + setLightSettingsManualDailyLighting(device: Device, value: DailyLightingType): void; + setLightSettingsManualColoredLighting(device: Device, value: RGBColor): void; + setLightSettingsManualDynamicLighting(device: Device, value: number): void; + setLightSettingsMotionLightingActiveMode(device: Device, value: LightingActiveMode): void; + setLightSettingsMotionDailyLighting(device: Device, value: DailyLightingType): void; + setLightSettingsMotionColoredLighting(device: Device, value: RGBColor): void; + setLightSettingsMotionDynamicLighting(device: Device, value: number): void; + setLightSettingsScheduleLightingActiveMode(device: Device, value: LightingActiveMode): void; + setLightSettingsScheduleDailyLighting(device: Device, value: DailyLightingType): void; + setLightSettingsScheduleColoredLighting(device: Device, value: RGBColor): void; + setLightSettingsScheduleDynamicLighting(device: Device, value: number): void; + setLightSettingsColoredLightingColors(device: Device, value: Array): void; + setLightSettingsDynamicLightingThemes(device: Device, value: Array): void; + setDoorControlWarning(device: Device, value: boolean): void; + openDoor(device: Device, value: boolean, doorId?: number): void; + private onGarageDoorStatus; + calibrateGarageDoor(device: Device, doorId: number, type: CalibrateGarageType): void; + private onStorageInfoHB3; + setMirrorMode(device: Device, value: boolean): void; + setFlickerAdjustment(device: Device, value: number): void; + setCrossCameraTracking(value: boolean): void; + setContinuousTrackingTime(value: number): void; + setTrackingAssistance(value: boolean): void; + setCrossTrackingCameraList(value: Array): void; + setCrossTrackingGroupList(value: Array): void; + setNotificationIndoor(device: Device, type: IndoorS350NotificationTypes, value: boolean): void; + setNotificationFloodlightT8425(device: Device, type: FloodlightT8425NotificationTypes, value: boolean): void; + presetPosition(device: Device, position: PresetPositionType): void; + savePresetPosition(device: Device, position: PresetPositionType): void; + deletePresetPosition(device: Device, position: PresetPositionType): void; + setLeavingDetection(device: Device, value: boolean): void; + private _setLeavingReactions; + setLeavingReactionNotification(device: Device, value: boolean): void; + setLeavingReactionStartTime(device: Device, value: string): void; + setLeavingReactionEndTime(device: Device, value: string): void; + setBeepVolume(device: Device, value: number): void; + setNightvisionOptimization(device: Device, value: boolean): void; + setNightvisionOptimizationSide(device: Device, value: number): void; + getLockParameters(): void; + getLockStatus(): void; + private onSequenceError; + updateUsername(device: Device, username: string, passwordId: string): void; + setOpenMethod(device: Device, value: number): void; + setMotionActivatedPrompt(device: Device, value: boolean): void; + open(device: Device): void; +} diff --git a/build/http/station.js b/build/http/station.js index 68940f8a..29324dec 100644 --- a/build/http/station.js +++ b/build/http/station.js @@ -4758,7 +4758,7 @@ class Station extends tiny_typed_emitter_1.TypedEmitter { command: commandData }); } - startLivestream(device, videoCodec = types_2.VideoCodec.H264, skipLiveStreamingCheck = true) { + startLivestream(device, videoCodec = types_2.VideoCodec.H264) { const commandData = { name: types_1.CommandName.DeviceStartLivestream, value: videoCodec @@ -4769,7 +4769,7 @@ class Station extends tiny_typed_emitter_1.TypedEmitter { if (!device.hasCommand(types_1.CommandName.DeviceStartLivestream)) { throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); } - if (!skipLiveStreamingCheck && this.isLiveStreaming(device)) { + if (this.isLiveStreaming(device)) { throw new error_2.LivestreamAlreadyRunningError("Livestream for device is already running", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); } logging_1.rootHTTPLogger.debug(`Station start livestream - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec }); @@ -10165,7 +10165,7 @@ class Station extends tiny_typed_emitter_1.TypedEmitter { throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); } logging_1.rootHTTPLogger.debug(`Station preset position - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), preset: types_1.PresetPositionType[position] }); - if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera()) { + if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8423()) { this.p2pSession.sendCommandWithStringPayload({ commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, value: JSON.stringify({ @@ -10195,7 +10195,7 @@ class Station extends tiny_typed_emitter_1.TypedEmitter { throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); } logging_1.rootHTTPLogger.debug(`Station save preset position - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), preset: types_1.PresetPositionType[position] }); - if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera()) { + if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8423()) { this.p2pSession.sendCommandWithStringPayload({ commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, value: JSON.stringify({ @@ -10225,7 +10225,7 @@ class Station extends tiny_typed_emitter_1.TypedEmitter { throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); } logging_1.rootHTTPLogger.debug(`Station delete preset position - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), preset: types_1.PresetPositionType[position] }); - if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera()) { + if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8423()) { this.p2pSession.sendCommandWithStringPayload({ commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, value: JSON.stringify({ diff --git a/build/http/station.js.map b/build/http/station.js.map index 6e313227..ef0a422d 100644 --- a/build/http/station.js.map +++ b/build/http/station.js.map @@ -1 +1 @@ -{"version":3,"file":"station.js","sourceRoot":"","sources":["../../src/http/station.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"station.js","sourceRoot":"","sources":["../../src/http/station.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/types.d.ts b/build/http/types.d.ts new file mode 100644 index 00000000..e88ae598 --- /dev/null +++ b/build/http/types.d.ts @@ -0,0 +1,1335 @@ +import { Commands, IndexedProperty, Properties, PropertyMetadataBoolean, PropertyMetadataNumeric, PropertyMetadataObject, PropertyMetadataString } from "./interfaces"; +export type SourceType = "p2p" | "http" | "push" | "mqtt"; +export declare enum DeviceType { + STATION = 0, + CAMERA = 1, + SENSOR = 2, + FLOODLIGHT = 3, + CAMERA_E = 4, + DOORBELL = 5, + BATTERY_DOORBELL = 7, + CAMERA2C = 8, + CAMERA2 = 9, + MOTION_SENSOR = 10, + KEYPAD = 11, + CAMERA2_PRO = 14, + CAMERA2C_PRO = 15, + BATTERY_DOORBELL_2 = 16, + HB3 = 18, + CAMERA3 = 19, + CAMERA3C = 23, + PROFESSIONAL_247 = 24,// T8600 + MINIBASE_CHIME = 25, + CAMERA3_PRO = 26, + INDOOR_CAMERA = 30, + INDOOR_PT_CAMERA = 31, + SOLO_CAMERA = 32, + SOLO_CAMERA_PRO = 33, + INDOOR_CAMERA_1080 = 34, + INDOOR_PT_CAMERA_1080 = 35, + FLOODLIGHT_CAMERA_8422 = 37, + FLOODLIGHT_CAMERA_8423 = 38, + FLOODLIGHT_CAMERA_8424 = 39, + INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT = 44, + INDOOR_OUTDOOR_CAMERA_2K = 45, + INDOOR_OUTDOOR_CAMERA_1080P = 46, + FLOODLIGHT_CAMERA_8425 = 47, + OUTDOOR_PT_CAMERA = 48,//S340 + LOCK_BLE = 50, + LOCK_WIFI = 51, + LOCK_BLE_NO_FINGER = 52, + LOCK_WIFI_NO_FINGER = 53, + LOCK_8503 = 54,//Smart Lock R10 + LOCK_8530 = 55, + LOCK_85A3 = 56, + LOCK_8592 = 57, + LOCK_8504 = 58,//Smart Lock R20 + SOLO_CAMERA_SPOTLIGHT_1080 = 60, + SOLO_CAMERA_SPOTLIGHT_2K = 61, + SOLO_CAMERA_SPOTLIGHT_SOLAR = 62, + SOLO_CAMERA_SOLAR = 63, + SOLO_CAMERA_C210 = 64, + FLOODLIGHT_CAMERA_8426 = 87,//E30 + SOLO_CAMERA_E30 = 88, + EUFYCAM_S4 = 89,// T8172 - Outdoor PTZ Dual Camera (no floodlight) + SMART_DROP = 90, + BATTERY_DOORBELL_PLUS = 91, + DOORBELL_SOLO = 93, + BATTERY_DOORBELL_PLUS_E340 = 94, + BATTERY_DOORBELL_C30 = 95, + BATTERY_DOORBELL_C31 = 96, + INDOOR_COST_DOWN_CAMERA = 100, + CAMERA_GUN = 101, + CAMERA_SNAIL = 102, + INDOOR_PT_CAMERA_S350 = 104, + INDOOR_PT_CAMERA_E30 = 105, + CAMERA_FG = 110,//T8150 + CAMERA_GARAGE_T8453_COMMON = 131, + CAMERA_GARAGE_T8452 = 132, + CAMERA_GARAGE_T8453 = 133, + SMART_SAFE_7400 = 140, + SMART_SAFE_7401 = 141, + SMART_SAFE_7402 = 142, + SMART_SAFE_7403 = 143, + WALL_LIGHT_CAM = 151, + SMART_TRACK_LINK = 157,//T87B0 + SMART_TRACK_CARD = 159,//T87B2 + LOCK_8502 = 180, + LOCK_8506 = 184, + WALL_LIGHT_CAM_81A0 = 10005, + INDOOR_PT_CAMERA_C220 = 10008,// T8W11C + INDOOR_PT_CAMERA_C210 = 10009,// T8419 / T8W11P? + INDOOR_PT_CAMERA_C220_V2 = 10010,// T8W11C (Type 10010) + INDOOR_PT_CAMERA_C220_V3 = 10011 +} +export declare enum ParamType { + CHIME_STATE = 2015, + DETECT_EXPOSURE = 2023, + DETECT_MODE = 2004, + DETECT_MOTION_SENSITIVE = 2005, + DETECT_SCENARIO = 2028, + DETECT_SWITCH = 2027, + DETECT_ZONE = 2006, + DOORBELL_AUDIO_RECODE = 2042, + DOORBELL_BRIGHTNESS = 2032, + DOORBELL_DISTORTION = 2033, + DOORBELL_HDR = 2029, + DOORBELL_IR_MODE = 2030, + DOORBELL_LED_NIGHT_MODE = 2039, + DOORBELL_MOTION_ADVANCE_OPTION = 2041, + DOORBELL_MOTION_NOTIFICATION = 2035, + DOORBELL_NOTIFICATION_JUMP_MODE = 2038, + DOORBELL_NOTIFICATION_OPEN = 2036, + DOORBELL_RECORD_QUALITY = 2034, + DOORBELL_RING_RECORD = 2040, + DOORBELL_SNOOZE_START_TIME = 2037, + DOORBELL_VIDEO_QUALITY = 2031, + DOORBELL_CHIME_MODE = 100000, + NIGHT_VISUAL = 2002, + OPEN_DEVICE = 2001, + RINGING_VOLUME = 2022, + SDCARD = 2010, + UN_DETECT_ZONE = 2007, + VOLUME = 2003, + COMMAND_LED_NIGHT_OPEN = 1026, + COMMAND_MOTION_DETECTION_PACKAGE = 1016, + COMMAND_HDR = 1019, + COMMAND_DISTORTION_CORRECTION = 1022, + COMMAND_VIDEO_QUALITY = 1020, + COMMAND_VIDEO_RECORDING_QUALITY = 1023, + COMMAND_VIDEO_RING_RECORD = 1027, + COMMAND_AUDIO_RECORDING = 1029, + COMMAND_INDOOR_CHIME = 1006, + COMMAND_RINGTONE_VOLUME = 1012, + COMMAND_NOTIFICATION_RING = 1031, + COMMAND_NOTIFICATION_TYPE = 1030, + COMMAND_QUICK_RESPONSE = 1004, + COMMAND_START_LIVESTREAM = 1000, + COMMAND_STREAM_INFO = 1005, + COMMAND_VOLTAGE_INFO = 1015, + SNOOZE_MODE = 1271,// The value is base64 encoded + WATERMARK_MODE = 1214,// 1 - hide, 2 - show + DEVICE_UPGRADE_NOW = 1134, + CAMERA_UPGRADE_NOW = 1133, + DEFAULT_SCHEDULE_MODE = 1257,// 0 - Away, 1 - Home, 63 - Disarmed + GUARD_MODE = 1224,// 0 - Away, 1 - Home, 63 - Disarmed, 2 - Schedule + FLOODLIGHT_MANUAL_SWITCH = 1400, + FLOODLIGHT_MANUAL_BRIGHTNESS = 1401,// The range is 22-100 + FLOODLIGHT_MOTION_BRIGHTNESS = 1412,// The range is 22-100 + FLOODLIGHT_SCHEDULE_BRIGHTNESS = 1413,// The range is 22-100 + FLOODLIGHT_MOTION_SENSITIVTY = 1272,// The range is 1-5 + CAMERA_SPEAKER_VOLUME = 1230, + CAMERA_RECORD_ENABLE_AUDIO = 1366,// Enable microphone + CAMERA_RECORD_RETRIGGER_INTERVAL = 1250,// In seconds + CAMERA_RECORD_CLIP_LENGTH = 1249,// In seconds + CAMERA_IR_CUT = 1013, + CAMERA_PIR = 1011, + CAMERA_WIFI_RSSI = 1142, + CAMERA_MOTION_ZONES = 1204, + PUSH_MSG_MODE = 1252,// 0 to ??? + PRIVATE_MODE = 99904, + CUSTOM_RTSP_URL = 999991 +} +export declare enum AlarmMode { + AWAY = 0, + HOME = 1, + CUSTOM1 = 3, + CUSTOM2 = 4, + CUSTOM3 = 5, + DISARMED = 63 +} +export declare enum GuardMode { + UNKNOWN = -1, + AWAY = 0, + HOME = 1, + DISARMED = 63, + SCHEDULE = 2, + GEO = 47, + CUSTOM1 = 3, + CUSTOM2 = 4, + CUSTOM3 = 5, + OFF = 6 +} +export declare enum ResponseErrorCode { + CODE_CONNECT_ERROR = 997, + CODE_ERROR_PIN = 36006, + CODE_MULTI_ALARM = 36002, + CODE_NEED_VERIFY_CODE = 26052, + CODE_NETWORK_ERROR = 998, + CODE_PHONE_NONE_SUPPORT = 26058, + CODE_SERVER_ERROR = 999, + CODE_SERVER_UNDER_MAINTENANCE = 424, + CODE_VERIFY_CODE_ERROR = 26050, + CODE_VERIFY_CODE_EXPIRED = 26051, + CODE_VERIFY_CODE_MAX = 26053, + CODE_VERIFY_CODE_NONE_MATCH = 26054, + CODE_VERIFY_PASSWORD_ERROR = 26055, + CODE_WHATEVER_ERROR = 0, + CODE_EMAIL_LIMIT_EXCEED = 25077, + CODE_GIVE_AWAY_EXPIRED = 25075, + CODE_GIVE_AWAY_INVALID = 25076, + CODE_GIVE_AWAY_NOT_EXIST = 25079, + CODE_GIVE_AWAY_PACKAGE_NOT_MATCH = 25078, + CODE_GIVE_AWAY_PACKAGE_TYPE_NOT_MATCH = 25080, + CODE_GIVE_AWAY_RECORD_EXIST = 25074, + CODE_INPUT_PARAM_INVALID = 10000, + CODE_MAX_FORGET_PASSWORD_ERROR = 100035, + CODE_MAX_LOGIN_LIMIT = 100028, + CODE_MAX_REGISTER_ERROR = 100034, + EMAIL_NOT_REGISTERED_ERROR = 22008, + LOGIN_CAPTCHA_ERROR = 100033, + LOGIN_DECRYPTION_FAIL = 100030, + LOGIN_ENCRYPTION_FAIL = 100029, + LOGIN_INVALID_TOUCH_ID = 26047, + LOGIN_NEED_CAPTCHA = 100032, + MULTIPLE_EMAIL_PASSWORD_ERROR = 26006, + MULTIPLE_INACTIVATED_ERROR = 26015, + MULTIPLE_REGISTRATION_ERROR = 26000, + RESP_ERROR_CODE_SESSION_TIMEOUT = 401, + CODE_REQUEST_TOO_FAST = 250999 +} +export declare enum VerfyCodeTypes { + TYPE_SMS = 0, + TYPE_PUSH = 1, + TYPE_EMAIL = 2 +} +export declare enum StorageType { + NONE = 0, + LOCAL = 1, + CLOUD = 2, + LOCAL_AND_CLOUD = 3 +} +export declare enum PowerSource { + BATTERY = 0, + SOLAR_PANEL = 1 +} +export declare enum PublicKeyType { + SERVER = 1, + LOCK = 2 +} +export declare enum FloodlightMotionTriggeredDistance { + MIN = 66, + LOW = 76, + MEDIUM = 86, + HIGH = 91, + MAX = 96 +} +export declare enum NotificationType { + MOST_EFFICIENT = 1, + INCLUDE_THUMBNAIL = 2, + FULL_EFFECT = 3 +} +export declare enum WalllightNotificationType { + ONLY_TEXT = 1, + WITH_THUMBNAIL = 2 +} +export declare enum AlarmTone { + ALARM_TONE1 = 1, + ALARM_TONE2 = 2 +} +export declare enum NotificationSwitchMode { + APP = 16, + GEOFENCE = 32, + SCHEDULE = 64, + KEYPAD = 128 +} +export declare enum GuardModeSecuritySettingsAction { + VIDEO_RECORDING = 1, + CAMERA_ALARM = 2, + HOMEBASE_ALARM = 4, + NOTIFICATON = 8, + PRIVACY = 16, + LIGHT_ALARM = 32, + PROFESSIONAL_SECURITY = 64 +} +export declare enum TimeFormat { + FORMAT_12H = 0, + FORMAT_24H = 1 +} +export declare enum SignalLevel { + NO_SIGNAL = 0, + WEAK = 1, + NORMAL = 2, + STRONG = 3, + FULL = 4 +} +export declare enum MotionDetectionMode { + STANDARD = 0, + ADVANCED = 1 +} +export declare enum VideoTypeStoreToNAS { + Events = 0, + ContinuousRecording = 1 +} +export declare enum DualCamStreamMode { + SINGLE_MAIN = 0, + SINGLE_SECOND = 1, + PIP_MAIN_UPPER_LEFT = 2, + PIP_MAIN_UPPER_RIGHT = 3, + PIP_MAIN_LOWER_LEFT = 4, + PIP_MAIN_LOWER_RIGHT = 5, + PIP_SECOND_UPPER_LEFT = 6, + PIP_SECOND_UPPER_RIGHT = 7, + PIP_SECOND_LOWER_LEFT = 8, + PIP_SECOND_LOWER_RIGHT = 9, + SPLICE_LEFT = 10, + SPLICE_RIGHT = 11, + SPLICE_ABOVE = 12, + SPLICE_UNDER = 13, + SPLICE_MIRROR = 14 +} +export declare enum UserType { + NORMAL = 0, + ADMIN = 1, + SUPER_ADMIN = 2, + ENTRY_ONLY = 4 +} +export declare enum UserPasswordType { + PIN = 1, + FINGERPRINT = 2 +} +export declare enum HB3DetectionTypes { + HUMAN_DETECTION = 2, + VEHICLE_DETECTION = 4, + PET_DETECTION = 8, + ALL_OTHER_MOTION = 32768, + HUMAN_RECOGNITION = 131072 +} +export declare enum T8170DetectionTypes { + HUMAN_DETECTION = 3, + VEHICLE_DETECTION = 4, + ALL_OTHER_MOTION = 32768 +} +export declare enum SoloCameraDetectionTypes { + HUMAN_DETECTION = 3, + ALL_OTHER_MOTION = 32771 +} +export declare enum IndoorS350DetectionTypes { + HUMAN_DETECTION = 3, + PET_DETECTION = 8, + ALL_OTHER_MOTION = 32768 +} +export declare enum IndoorDetectionTypes { + PERSON_DETECTION = 1, + PET_DETECTION = 2, + ALL_MOTION = 4 +} +export declare enum IndoorMiniDetectionTypes { + PERSON_DETECTION = 1, + ALL_MOTION = 4 +} +export declare enum IndoorS350NotificationTypes { + ALL_OTHER_MOTION = 801, + HUMAN = 802, + PET = 804, + CRYING = 808, + ALL_SOUND = 816 +} +export declare enum FloodlightT8425NotificationTypes { + ALL_OTHER_MOTION = 1, + HUMAN = 2, + PET = 4, + VEHICLE = 512 +} +export declare enum VideoType { + RECEIVED_RING = 1000, + MISSED_RING = 1001, + MOTION = 1002, + PERSON = 1003, + PET = 1004, + CRYING = 1005, + SOUND = 1006, + PUTDOWN_PACKAGE = 65536, + TAKE_PACKAGE = 131072, + DETECT_PACKAGE = 262144, + RECEIVED_RING_ACK = 524288, + RECEIVED_RING_MISS = 1048576, + RECEIVED_CAR_GUARD = 2097152 +} +export declare enum MediaType { + NONE = -1, + H264 = 0, + H265 = 1 +} +export declare enum RecordType { + MOTION = 256, + PERSON = 512, + PET = 1024, + CRY = 2048, + SOUND = 4096, + VEHICLE = 16384, + CAR_GUARD = 131072 +} +export declare enum MicStatus { + CLOSED = 0, + OPENED = 1 +} +export declare enum TriggerType { + MOTION1 = 0, + MOTION2 = 1, + MOTION3 = 2, + PERSON = 4, + RING = 8, + SENSOR = 16, + UNKNOWN = 32, + MISSED_RING = 64, + ANSWER_RING = 128 +} +export declare enum LightingActiveMode { + DAILY = 0, + COLORED = 1, + DYNAMIC = 2 +} +export declare enum DailyLightingType { + COLD = 0, + WARM = 1, + VERY_WARM = 2 +} +export declare enum MotionActivationMode { + SMART = 0, + FAST = 1 +} +export declare enum DynamicLightingEffect { + FADE = 1, + BLINK = 2 +} +export declare enum GarageDoorState { + A_CLOSED = 2, + A_CLOSING = -102, + A_NO_MOTOR = -108, + A_OPENED = 1, + A_OPENING = -101, + A_UNKNOWN = 16, + B_CLOSED = 8, + B_CLOSING = -104, + B_NO_MOTOR = -109, + B_OPENED = 4, + B_OPENING = -103, + B_UNKNOWN = 32, + UNKNOWN = 0 +} +export declare enum TrackerType { + TRACKER = 0, + KEY = 1, + WALLET = 2, + BAG = 3, + REMOTE = 4, + CAMERA = 5, + HEADPHONES = 6, + TOY = 7, + SUITCASE = 8, + HANDBAG = 9 +} +export declare enum MotionDetectionRangeType { + STANDARD = 0, + ADVANCED = 1, + AUTOMATIC = 2 +} +export declare enum ViewModeType { + SINGLE_VIEW = 0, + DUAL_VIEW = 12 +} +export declare enum PresetPositionType { + PRESET_1 = 0, + PRESET_2 = 1, + PRESET_3 = 2, + PRESET_4 = 3 +} +export declare const enum SmartLockNotification { + ENABLED = 1, + UNLOCKED = 2, + LOCKED = 4 +} +export interface EventFilterType { + deviceSN?: string; + stationSN?: string; + storageType?: StorageType; +} +export declare enum DeviceEvent { + MotionDetected = 0, + PersonDetected = 1, + PetDetected = 2, + SoundDetected = 3, + CryingDetected = 4, + Ringing = 5, + PackageDelivered = 6, + PackageTaken = 7, + PackageStranded = 8, + SomeoneLoitering = 9, + RadarMotionDetected = 10, + SomeoneGoing = 11, + LeftOpen = 12, + Jammed = 13, + Alarm911 = 14, + LowBattery = 15, + LongTimeNotClose = 16, + ShakeAlarm = 17, + WrontTryProtectAlarm = 18, + IdentityPersonDetected = 19, + StrangerPersonDetected = 20, + VehicleDetected = 21, + DogDetected = 22, + DogLickDetected = 23, + DogPoopDetected = 24, + Lock = 25, + TamperingAlert = 26, + LowTemperatureAlert = 27, + HighTemperatureAlert = 28, + LidStuckAlert = 29, + PinIncorrectAlert = 30, + BatteryFullyChargedAlert = 31 +} +export declare enum PropertyName { + Name = "name", + Model = "model", + SerialNumber = "serialNumber", + HardwareVersion = "hardwareVersion", + SoftwareVersion = "softwareVersion", + Type = "type", + DeviceStationSN = "stationSerialNumber", + DeviceBattery = "battery", + DeviceBatteryTemp = "batteryTemperature", + DeviceBatteryLow = "batteryLow", + DeviceBatteryIsCharging = "batteryIsCharging", + DeviceLastChargingDays = "lastChargingDays", + DeviceLastChargingTotalEvents = "lastChargingTotalEvents", + DeviceLastChargingRecordedEvents = "lastChargingRecordedEvents", + DeviceLastChargingFalseEvents = "lastChargingFalseEvents", + DeviceBatteryUsageLastWeek = "batteryUsageLastWeek", + DeviceWifiRSSI = "wifiRssi", + DeviceWifiSignalLevel = "wifiSignalLevel", + DeviceEnabled = "enabled", + DeviceAntitheftDetection = "antitheftDetection", + DeviceAutoNightvision = "autoNightvision", + DeviceNightvision = "nightvision", + DeviceStatusLed = "statusLed", + DeviceMotionDetection = "motionDetection", + DeviceMotionDetectionType = "motionDetectionType", + DeviceMotionDetectionSensitivity = "motionDetectionSensitivity", + DeviceMotionZone = "motionZone", + DeviceMotionDetectionRange = "motionDetectionRange",// Flooglight T8423 + DeviceMotionDetectionRangeStandardSensitivity = "motionDetectionRangeStandardSensitivity",// Flooglight T8423 + DeviceMotionDetectionRangeAdvancedLeftSensitivity = "motionDetectionRangeAdvancedLeftSensitivity",// Flooglight T8423 + DeviceMotionDetectionRangeAdvancedMiddleSensitivity = "motionDetectionRangeAdvancedMiddleSensitivity",// Flooglight T8423 + DeviceMotionDetectionRangeAdvancedRightSensitivity = "motionDetectionRangeAdvancedRightSensitivity",// Flooglight T8423 + DeviceMotionDetectionTestMode = "motionDetectionTestMode",// Flooglight T8420, T8423 + DeviceMotionDetectionTypeHuman = "motionDetectionTypeHuman", + DeviceMotionDetectionTypeHumanRecognition = "motionDetectionTypeHumanRecognition", + DeviceMotionDetectionTypePet = "motionDetectionTypePet", + DeviceMotionDetectionTypeVehicle = "motionDetectionTypeVehicle", + DeviceMotionDetectionTypeAllOtherMotions = "motionDetectionTypeAllOtherMotions", + DeviceMotionDetected = "motionDetected", + DeviceMotionTracking = "motionTracking", + DeviceMotionTrackingSensitivity = "motionTrackingSensitivity",// Flooglight T8423 + DeviceMotionAutoCruise = "motionAutoCruise",// Flooglight T8423 + DeviceMotionOutOfViewDetection = "motionOutOfViewDetection",// Flooglight T8423 + DevicePersonDetected = "personDetected", + DevicePersonName = "personName", + DeviceRTSPStream = "rtspStream", + DeviceRTSPStreamUrl = "rtspStreamUrl", + DeviceWatermark = "watermark", + DevicePictureUrl = "hidden-pictureUrl", + DevicePicture = "picture", + DeviceState = "state", + DevicePetDetection = "petDetection", + DevicePetDetected = "petDetected", + DeviceSoundDetection = "soundDetection", + DeviceSoundDetectionType = "soundDetectionType", + DeviceSoundDetectionSensitivity = "soundDetectionSensitivity", + DeviceSoundDetected = "soundDetected", + DeviceCryingDetected = "cryingDetected", + DeviceSensorOpen = "sensorOpen", + DeviceSensorChangeTime = "sensorChangeTime", + DeviceMotionSensorPIREvent = "motionSensorPirEvent", + DeviceLocked = "locked", + DeviceRinging = "ringing", + DeviceLockStatus = "lockStatus", + DeviceLight = "light", + DeviceMicrophone = "microphone", + DeviceSpeaker = "speaker", + DeviceSpeakerVolume = "speakerVolume", + DeviceRingtoneVolume = "ringtoneVolume", + DeviceAudioRecording = "audioRecording", + DevicePowerSource = "powerSource", + DevicePowerWorkingMode = "powerWorkingMode", + DeviceChargingStatus = "chargingStatus", + DeviceRecordingEndClipMotionStops = "recordingEndClipMotionStops", + DeviceRecordingClipLength = "recordingClipLength", + DeviceRecordingRetriggerInterval = "recordingRetriggerInterval", + DeviceVideoStreamingQuality = "videoStreamingQuality", + DeviceVideoRecordingQuality = "videoRecordingQuality", + DeviceVideoWDR = "videoWdr", + DeviceLightSettingsEnable = "lightSettingsEnable", + DeviceLightSettingsBrightnessManual = "lightSettingsBrightnessManual", + DeviceLightSettingsColorTemperatureManual = "lightSettingsColorTemperatureManual",// Flooglight T8423 + DeviceLightSettingsBrightnessMotion = "lightSettingsBrightnessMotion", + DeviceLightSettingsColorTemperatureMotion = "lightSettingsColorTemperatureMotion",// Flooglight T8423 + DeviceLightSettingsBrightnessSchedule = "lightSettingsBrightnessSchedule", + DeviceLightSettingsColorTemperatureSchedule = "lightSettingsColorTemperatureSchedule",// Flooglight T8423 + DeviceLightSettingsMotionTriggered = "lightSettingsMotionTriggered", + DeviceLightSettingsMotionActivationMode = "lightSettingsMotionActivationMode",// Flooglight T8423 / Walllight T84A1 + DeviceLightSettingsMotionTriggeredDistance = "lightSettingsMotionTriggeredDistance", + DeviceLightSettingsMotionTriggeredTimer = "lightSettingsMotionTriggeredTimer", + DeviceLightSettingsManualLightingActiveMode = "lightSettingsManualLightingActiveMode",// Walllight T84A1 + DeviceLightSettingsManualDailyLighting = "lightSettingsManualDailyLighting",// Walllight T84A1 + DeviceLightSettingsManualColoredLighting = "lightSettingsManualColoredLighting",// Walllight T84A1 + DeviceLightSettingsManualDynamicLighting = "lightSettingsManualDynamicLighting",// Walllight T84A1 + DeviceLightSettingsMotionLightingActiveMode = "lightSettingsMotionLightingActiveMode",// Walllight T84A1 + DeviceLightSettingsMotionDailyLighting = "lightSettingsMotionDailyLighting",// Walllight T84A1 + DeviceLightSettingsMotionColoredLighting = "lightSettingsMotionColoredLighting",// Walllight T84A1 + DeviceLightSettingsMotionDynamicLighting = "lightSettingsMotionDynamicLighting",// Walllight T84A1 + DeviceLightSettingsScheduleLightingActiveMode = "lightSettingsScheduleLightingActiveMode",// Walllight T84A1 + DeviceLightSettingsScheduleDailyLighting = "lightSettingsScheduleDailyLighting",// Walllight T84A1 + DeviceLightSettingsScheduleColoredLighting = "lightSettingsScheduleColoredLighting",// Walllight T84A1 + DeviceLightSettingsScheduleDynamicLighting = "lightSettingsScheduleDynamicLighting",// Walllight T84A1 + DeviceLightSettingsColoredLightingColors = "lightSettingsColoredLightingColors",// Walllight T84A1 + DeviceLightSettingsDynamicLightingThemes = "lightSettingsDynamicLightingThemes",// Walllight T84A1 + DeviceChimeIndoor = "chimeIndoor",//BatteryDoorbell, WiredDoorbell + DeviceChimeHomebase = "chimeHomebase",//BatteryDoorbell + DeviceChimeHomebaseRingtoneVolume = "chimeHomebaseRingtoneVolume",//BatteryDoorbell + DeviceChimeHomebaseRingtoneType = "chimeHomebaseRingtoneType",//BatteryDoorbell + DeviceNotificationType = "notificationType", + DeviceRotationSpeed = "rotationSpeed", + DeviceImageMirrored = "imageMirrored", + DeviceNotificationPerson = "notificationPerson",//Indoor + DeviceNotificationPet = "notificationPet",//Indoor + DeviceNotificationAllOtherMotion = "notificationAllOtherMotion",//Indoor + DeviceNotificationCrying = "notificationCrying",//Indoor + DeviceNotificationAllSound = "notificationAllSound",//Indoor + DeviceNotificationIntervalTime = "notificationIntervalTime",//Indoor + DeviceNotificationRing = "notificationRing",//BatteryDoorbell + DeviceNotificationMotion = "notificationMotion",//BatteryDoorbell + DeviceNotificationRadarDetector = "notificationRadarDetector",//BatteryDoorbell Dual + DeviceNotificationVehicle = "notificationVehicle",//Floodlight + DeviceContinuousRecording = "continuousRecording", + DeviceContinuousRecordingType = "continuousRecordingType", + DeviceChirpVolume = "chirpVolume", + DeviceChirpTone = "chirpTone", + DeviceVideoHDR = "videoHdr",// Wired Doorbell + DeviceVideoDistortionCorrection = "videoDistortionCorrection",// Wired Doorbell + DeviceVideoRingRecord = "videoRingRecord",// Wired Doorbell + DeviceVideoNightvisionImageAdjustment = "videoNightvisionImageAdjustment",// Flooglight T8423 + DeviceVideoColorNightvision = "videoColorNightvision",// Flooglight T8423 + DeviceAutoCalibration = "autoCalibration",// Flooglight T8423 + DeviceAutoLock = "autoLock", + DeviceAutoLockTimer = "autoLockTimer", + DeviceAutoLockSchedule = "autoLockSchedule", + DeviceAutoLockScheduleStartTime = "autoLockScheduleStartTime", + DeviceAutoLockScheduleEndTime = "autoLockScheduleEndTime", + DeviceOneTouchLocking = "oneTouchLocking", + DeviceWrongTryProtection = "wrongTryProtection", + DeviceWrongTryAttempts = "wrongTryAttempts", + DeviceWrongTryLockdownTime = "wrongTryLockdownTime", + DeviceScramblePasscode = "scramblePasscode", + DeviceSound = "sound", + DeviceNotification = "notification", + DeviceNotificationUnlocked = "notificationUnlocked", + DeviceNotificationLocked = "notificationLocked", + DeviceLoiteringDetection = "loiteringDetection", + DeviceLoiteringDetectionRange = "loiteringDetectionRange", + DeviceLoiteringDetectionLength = "loiteringDetectionLength", + DeviceMotionDetectionSensitivityMode = "motionDetectionSensitivityMode", + DeviceMotionDetectionSensitivityStandard = "motionDetectionSensitivityStandard", + DeviceMotionDetectionSensitivityAdvancedA = "motionDetectionSensitivityAdvancedA", + DeviceMotionDetectionSensitivityAdvancedB = "motionDetectionSensitivityAdvancedB", + DeviceMotionDetectionSensitivityAdvancedC = "motionDetectionSensitivityAdvancedC", + DeviceMotionDetectionSensitivityAdvancedD = "motionDetectionSensitivityAdvancedD", + DeviceMotionDetectionSensitivityAdvancedE = "motionDetectionSensitivityAdvancedE", + DeviceMotionDetectionSensitivityAdvancedF = "motionDetectionSensitivityAdvancedF", + DeviceMotionDetectionSensitivityAdvancedG = "motionDetectionSensitivityAdvancedG", + DeviceMotionDetectionSensitivityAdvancedH = "motionDetectionSensitivityAdvancedH", + DeviceLoiteringCustomResponsePhoneNotification = "loiteringCustomResponsePhoneNotification", + DeviceLoiteringCustomResponseAutoVoiceResponse = "loiteringCustomResponseAutoVoiceResponse", + DeviceLoiteringCustomResponseAutoVoiceResponseVoice = "loiteringCustomResponseAutoVoiceResponseVoice", + DeviceLoiteringCustomResponseHomeBaseNotification = "loiteringCustomResponseHomeBaseNotification", + DeviceLoiteringCustomResponseTimeFrom = "loiteringCustomResponseTimeFrom", + DeviceLoiteringCustomResponseTimeTo = "loiteringCustomResponseTimeTo", + DeviceDeliveryGuard = "deliveryGuard", + DeviceDeliveryGuardPackageGuarding = "deliveryGuardPackageGuarding", + DeviceDeliveryGuardPackageGuardingVoiceResponseVoice = "deliveryGuardPackageGuardingVoiceResponseVoice", + DeviceDeliveryGuardPackageGuardingActivatedTimeFrom = "deliveryGuardPackageGuardingActivatedTimeFrom", + DeviceDeliveryGuardPackageGuardingActivatedTimeTo = "deliveryGuardPackageGuardingActivatedTimeTo", + DeviceDeliveryGuardUncollectedPackageAlert = "deliveryGuardUncollectedPackageAlert", + DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck = "deliveryGuardUncollectedPackageAlertTimeToCheck", + DeviceDeliveryGuardPackageLiveCheckAssistance = "deliveryGuardPackageLiveCheckAssistance", + DeviceDualCamWatchViewMode = "dualCamWatchViewMode", + DeviceRingAutoResponse = "ringAutoResponse", + DeviceRingAutoResponseVoiceResponse = "ringAutoResponseVoiceResponse", + DeviceRingAutoResponseVoiceResponseVoice = "ringAutoResponseVoiceResponseVoice", + DeviceRingAutoResponseTimeFrom = "ringAutoResponseTimeFrom", + DeviceRingAutoResponseTimeTo = "ringAutoResponseTimeTo", + DeviceDefaultAngle = "defaultAngle", + DeviceDefaultAngleIdleTime = "defaultAngleIdleTime", + DeviceSoundDetectionRoundLook = "soundDetectionRoundLook", + DevicePackageDelivered = "packageDelivered", + DevicePackageStranded = "packageStranded", + DevicePackageTaken = "packageTaken", + DeviceSomeoneLoitering = "someoneLoitering", + DeviceRadarMotionDetected = "radarMotionDetected", + DeviceLeftOpenAlarm = "leftOpenAlarm", + DeviceLeftOpenAlarmDuration = "leftOpenAlarmDuration", + DeviceDualUnlock = "dualUnlock", + DevicePowerSave = "powerSave", + DeviceInteriorBrightness = "interiorBrightness", + DeviceInteriorBrightnessDuration = "interiorBrightnessDuration", + DeviceTamperAlarm = "tamperAlarm", + DeviceRemoteUnlock = "remoteUnlock", + DeviceRemoteUnlockMasterPIN = "remoteUnlockMasterPIN", + DeviceAlarmVolume = "alarmVolume", + DevicePromptVolume = "promptVolume", + DeviceNotificationUnlockByKey = "notificationUnlockByKey", + DeviceNotificationUnlockByPIN = "notificationUnlockByPIN", + DeviceNotificationUnlockByFingerprint = "notificationUnlockByFingerprint", + DeviceNotificationUnlockByApp = "notificationUnlockByApp", + DeviceNotificationDualUnlock = "notificationDualUnlock", + DeviceNotificationDualLock = "notificationDualLock", + DeviceNotificationWrongTryProtect = "notificationWrongTryProtect", + DeviceNotificationJammed = "notificationJammed", + DeviceJammedAlert = "jammedAlert", + Device911Alert = "911Alert", + Device911AlertEvent = "911AlertEvent", + DeviceShakeAlert = "shakeAlert", + DeviceShakeAlertEvent = "shakeAlertEvent", + DeviceLowBatteryAlert = "lowBatteryAlert", + DeviceLongTimeNotCloseAlert = "longTimeNotCloseAlert", + DeviceWrongTryProtectAlert = "wrongTryProtectAlert", + DeviceVideoTypeStoreToNAS = "videoTypeStoreToNAS", + DeviceSnooze = "snooze", + DeviceSnoozeTime = "snoozeTime", + DeviceSnoozeStartTime = "snoozeStartTime", + DeviceSnoozeHomebase = "snoozeHomebase", + DeviceSnoozeMotion = "snoozeMotion", + DeviceSnoozeChime = "snoozeStartChime", + DeviceIdentityPersonDetected = "identityPersonDetected", + DeviceStrangerPersonDetected = "strangerPersonDetected", + DeviceVehicleDetected = "vehicleDetected", + DeviceDogDetected = "dogDetected", + DeviceDogLickDetected = "dogLickDetected", + DeviceDogPoopDetected = "dogPoopDetected", + DeviceDetectionStatisticsWorkingDays = "detectionStatisticsWorkingDays", + DeviceDetectionStatisticsDetectedEvents = "detectionStatisticsDetectedEvents", + DeviceDetectionStatisticsRecordedEvents = "detectionStatisticsRecordedEvents", + DeviceCellularRSSI = "cellularRSSI", + DeviceCellularSignalLevel = "cellularSignalLevel", + DeviceCellularSignal = "cellularSignal", + DeviceCellularBand = "cellularBand", + DeviceCellularIMEI = "cellularIMEI", + DeviceCellularICCID = "cellularICCID", + DeviceDoorControlWarning = "doorControlWarning", + DeviceDoor1Open = "door1Open", + DeviceDoor2Open = "door2Open", + DeviceDoorSensor1Status = "doorSensor1Status", + DeviceDoorSensor2Status = "doorSensor2Status", + DeviceDoorSensor1MacAddress = "doorSensor1MacAddress", + DeviceDoorSensor2MacAddress = "doorSensor2MacAddress", + DeviceDoorSensor1Name = "doorSensor1Name", + DeviceDoorSensor2Name = "doorSensor2Name", + DeviceDoorSensor1SerialNumber = "doorSensor1SerialNumber", + DeviceDoorSensor2SerialNumber = "doorSensor2SerialNumber", + DeviceDoorSensor1Version = "doorSensor1Version", + DeviceDoorSensor2Version = "doorSensor2Version", + DeviceDoorSensor1LowBattery = "doorSensor1LowBattery", + DeviceDoorSensor2LowBattery = "doorSensor2LowBattery", + DeviceDoorSensor1BatteryLevel = "doorSensor1BatteryLevel", + DeviceDoorSensor2BatteryLevel = "doorSensor2BatteryLevel", + DeviceLocationCoordinates = "locationCoordinates", + DeviceLocationAddress = "locationAddress", + DeviceLocationLastUpdate = "locationLastUpdate", + DeviceTrackerType = "trackerType", + DeviceLeftBehindAlarm = "leftBehindAlarm", + DeviceFindPhone = "findPhone", + DeviceFlickerAdjustment = "flickerAdjustment", + DeviceLeavingDetection = "leavingDetection", + DeviceLeavingReactionNotification = "leavingReactionNotification", + DeviceLeavingReactionStartTime = "leavingReactionStartTime", + DeviceLeavingReactionEndTime = "leavingReactionEndTime", + DeviceSomeoneGoing = "someoneGoing", + DeviceLockEventOrigin = "lockEventOrigin", + DeviceBeepVolume = "beepVolume", + DeviceNightvisionOptimization = "nightvisionOptimization", + DeviceNightvisionOptimizationSide = "nightvisionOptimizationSide", + DeviceOpenMethod = "openMethod", + DeviceMotionActivatedPrompt = "motionActivatedPrompt", + DeviceOpen = "open", + DeviceOpenedByType = "openedByType", + DeviceOpenedByName = "openedByName", + DeviceTamperingAlert = "tamperingAlert", + DeviceLowTemperatureAlert = "lowTemperatureAlert", + DeviceHighTemperatureAlert = "highTemperatureAlert", + DeviceLidStuckAlert = "lidStuckAlert", + DevicePinIncorrectAlert = "pinIncorrectAlert", + DeviceBatteryFullyChargedAlert = "batteryFullyChargedAlert", + DeviceIsDeliveryDenied = "isDeliveryDenied", + DeviceHasMasterPin = "hasMasterPin", + DeviceDeliveries = "deliveries", + DeviceHiddenMotionDetectionSensitivity = "hidden-motionDetectionSensitivity", + DeviceHiddenMotionDetectionMode = "hidden-motionDetectionMode", + StationLANIpAddress = "lanIpAddress", + StationMacAddress = "macAddress", + StationGuardMode = "guardMode", + StationCurrentMode = "currentMode", + StationTimeFormat = "timeFormat", + StationTimeZone = "timeZone", + StationAlarmVolume = "alarmVolume", + StationAlarmTone = "alarmTone", + StationPromptVolume = "promptVolume", + StationNotificationSwitchModeSchedule = "notificationSwitchModeSchedule", + StationNotificationSwitchModeGeofence = "notificationSwitchModeGeofence", + StationNotificationSwitchModeApp = "notificationSwitchModeApp", + StationNotificationSwitchModeKeypad = "notificationSwitchModeKeypad", + StationNotificationStartAlarmDelay = "notificationStartAlarmDelay", + StationSwitchModeWithAccessCode = "switchModeWithAccessCode", + StationAutoEndAlarm = "autoEndAlarm", + StationTurnOffAlarmWithButton = "turnOffAlarmWithButton", + StationHomeSecuritySettings = "hidden-stationHomeSecuritySettings", + StationAwaySecuritySettings = "hidden-stationAwaySecuritySettings", + StationCustom1SecuritySettings = "hidden-stationCustom1SecuritySettings", + StationCustom2SecuritySettings = "hidden-stationCustom2SecuritySettings", + StationCustom3SecuritySettings = "hidden-stationCustom3SecuritySettings", + StationOffSecuritySettings = "hidden-stationOffSecuritySettings", + StationAlarm = "alarm", + StationAlarmType = "alarmType", + StationAlarmArmed = "alarmArmed", + StationAlarmArmDelay = "alarmArmDelay", + StationAlarmDelay = "alarmDelay", + StationAlarmDelayType = "alarmDelayType", + StationSdStatus = "sdStatus", + StationSdCapacity = "sdCapacity", + StationSdCapacityAvailable = "sdCapacityAvailable", + StationStorageInfoEmmc = "storageInfoEmmc", + StationStorageInfoHdd = "storageInfoHdd", + StationCrossCameraTracking = "crossCameraTracking", + StationContinuousTrackingTime = "continuousTrackingTime", + StationTrackingAssistance = "trackingAssistance", + StationCrossTrackingCameraList = "crossTrackingCameraList", + StationCrossTrackingGroupList = "crossTrackingGroupList" +} +export declare const DeviceNameProperty: PropertyMetadataString; +export declare const DeviceModelProperty: PropertyMetadataString; +export declare const DeviceSerialNumberProperty: PropertyMetadataString; +export declare const GenericHWVersionProperty: PropertyMetadataString; +export declare const GenericSWVersionProperty: PropertyMetadataString; +export declare const GenericTypeProperty: PropertyMetadataNumeric; +export declare const BaseDeviceProperties: IndexedProperty; +export declare const GenericDeviceProperties: IndexedProperty; +export declare const DeviceBatteryProperty: PropertyMetadataNumeric; +export declare const DeviceBatteryLockProperty: PropertyMetadataNumeric; +export declare const DeviceBatteryTrackerProperty: PropertyMetadataNumeric; +export declare const DeviceBatteryLowMotionSensorProperty: PropertyMetadataBoolean; +export declare const DeviceBatteryLowKeypadProperty: PropertyMetadataBoolean; +export declare const DeviceBatteryLowSensorProperty: PropertyMetadataBoolean; +export declare const DeviceBatteryTempProperty: PropertyMetadataNumeric; +export declare const DeviceBatteryIsChargingKeypadProperty: PropertyMetadataBoolean; +export declare const DeviceAntitheftDetectionProperty: PropertyMetadataBoolean; +export declare const DeviceAutoNightvisionProperty: PropertyMetadataBoolean; +export declare const DeviceAutoNightvisionWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceAutoNightvisionSoloProperty: PropertyMetadataBoolean; +export declare const DeviceNightvisionProperty: PropertyMetadataNumeric; +export declare const DeviceNightvisionS350Property: PropertyMetadataNumeric; +export declare const DeviceWifiRSSIProperty: PropertyMetadataNumeric; +export declare const DeviceWifiSignalLevelProperty: PropertyMetadataNumeric; +export declare const DeviceCellularRSSIProperty: PropertyMetadataNumeric; +export declare const DeviceCellularSignalLevelProperty: PropertyMetadataNumeric; +export declare const DeviceCellularSignalProperty: PropertyMetadataString; +export declare const DeviceCellularBandProperty: PropertyMetadataString; +export declare const DeviceCellularIMEIProperty: PropertyMetadataString; +export declare const DeviceCellularICCIDProperty: PropertyMetadataString; +export declare const DeviceWifiRSSILockProperty: PropertyMetadataNumeric; +export declare const DeviceWifiRSSIEntrySensorProperty: PropertyMetadataNumeric; +export declare const DeviceWifiRSSIKeypadProperty: PropertyMetadataNumeric; +export declare const DeviceWifiRSSISmartSafeProperty: PropertyMetadataNumeric; +export declare const DeviceEnabledProperty: PropertyMetadataBoolean; +export declare const DeviceEnabledStandaloneProperty: PropertyMetadataBoolean; +export declare const DeviceEnabledSoloProperty: PropertyMetadataBoolean; +export declare const DeviceEnabledIndoorMiniProperty: PropertyMetadataBoolean; +export declare const DeviceEnabledIndoorS350Property: PropertyMetadataBoolean; +export declare const DeviceStatusLedProperty: PropertyMetadataBoolean; +export declare const DeviceStatusLedIndoorFloodProperty: PropertyMetadataBoolean; +export declare const DeviceStatusLedBatteryDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceStatusLedIndoorS350Property: PropertyMetadataBoolean; +export declare const DeviceStatusLedBatteryDoorbellDualProperty: PropertyMetadataNumeric; +export declare const DeviceStatusLedDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceStatusLedT8200XProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionIndoorSoloFloodProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceSoundDetectionProperty: PropertyMetadataBoolean; +export declare const DevicePetDetectionProperty: PropertyMetadataBoolean; +export declare const DeviceRTSPStreamProperty: PropertyMetadataBoolean; +export declare const DeviceRTSPStreamUrlProperty: PropertyMetadataString; +export declare const DeviceWatermarkProperty: PropertyMetadataNumeric; +export declare const DeviceWatermarkIndoorFloodProperty: PropertyMetadataNumeric; +export declare const DeviceWatermarkSoloWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceWatermarkBatteryDoorbellCamera1Property: PropertyMetadataNumeric; +export declare const DeviceWatermarkGarageCameraProperty: PropertyMetadataNumeric; +export declare const DeviceStateProperty: PropertyMetadataNumeric; +export declare const DeviceStateLockProperty: PropertyMetadataNumeric; +export declare const DeviceLastChargingDaysProperty: PropertyMetadataNumeric; +export declare const DeviceLastChargingTotalEventsProperty: PropertyMetadataNumeric; +export declare const DeviceLastChargingRecordedEventsProperty: PropertyMetadataNumeric; +export declare const DeviceLastChargingFalseEventsProperty: PropertyMetadataNumeric; +export declare const DeviceBatteryUsageLastWeekProperty: PropertyMetadataNumeric; +export declare const DeviceLockedProperty: PropertyMetadataBoolean; +export declare const DeviceLockedSmartSafeProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectedProperty: PropertyMetadataBoolean; +export declare const DevicePersonDetectedProperty: PropertyMetadataBoolean; +export declare const DevicePetDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceSoundDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceCryingDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceRingingProperty: PropertyMetadataBoolean; +export declare const DeviceSensorOpenProperty: PropertyMetadataBoolean; +export declare const DeviceSensorChangeTimeProperty: PropertyMetadataNumeric; +export declare const DeviceMotionSensorPIREventProperty: PropertyMetadataNumeric; +export declare const DeviceBasicLockStatusProperty: PropertyMetadataNumeric; +export declare const DeviceAdvancedLockStatusProperty: PropertyMetadataNumeric; +export declare const DevicePictureUrlProperty: PropertyMetadataString; +export declare const DeviceMotionHB3DetectionTypeHumanProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionTypeHumanWallLightProperty: PropertyMetadataBoolean; +export declare const DeviceMotionHB3DetectionTypeHumanRecognitionProperty: PropertyMetadataBoolean; +export declare const DeviceMotionHB3DetectionTypePetProperty: PropertyMetadataBoolean; +export declare const DeviceMotionHB3DetectionTypeVehicleProperty: PropertyMetadataBoolean; +export declare const DeviceMotionHB3DetectionTypeAllOtherMotionsProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionTypeProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTypeT8200XProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionCamera1Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTypeFloodlightT8423Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTypeFloodlightProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTypeIndoorProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTypeIndoorS350Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTypeIndoorMiniProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityCamera2Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityCamera1Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityIndoorProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityDoorbellE340Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivitySoloProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityFloodlightT8420Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityGarageCameraProperty: PropertyMetadataNumeric; +export declare const DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceHiddenMotionDetectionModeWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceMotionZoneProperty: PropertyMetadataObject; +export declare const DeviceFloodlightLightProperty: PropertyMetadataBoolean; +export declare const DeviceFloodlightLightSettingsEnableProperty: PropertyMetadataBoolean; +export declare const DeviceFloodlightLightSettingsBrightnessManualProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsBrightnessManualCamera3Property: PropertyMetadataNumeric; +export declare const DeviceCameraLightSettingsBrightnessManualProperty: PropertyMetadataNumeric; +export declare const DeviceCameraLightSettingsBrightnessManualWalllightS120Property: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsBrightnessMotionProperty: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsBrightnessMotionT8425Property: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsBrightnessScheduleProperty: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsBrightnessScheduleT8425Property: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsMotionTriggeredProperty: PropertyMetadataBoolean; +export declare const DeviceFloodlightLightSettingsMotionTriggeredT8425Property: PropertyMetadataBoolean; +export declare const DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsMotionTriggeredTimerProperty: PropertyMetadataNumeric; +export declare const DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property: PropertyMetadataNumeric; +export declare const DeviceMicrophoneProperty: PropertyMetadataBoolean; +export declare const DeviceSpeakerProperty: PropertyMetadataBoolean; +export declare const DeviceAudioRecordingProperty: PropertyMetadataBoolean; +export declare const DeviceAudioRecordingIndoorSoloFloodlightProperty: PropertyMetadataBoolean; +export declare const DeviceAudioRecordingStarlight4gLTEProperty: PropertyMetadataBoolean; +export declare const DeviceAudioRecordingWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceAudioRecordingFloodlightT8420Property: PropertyMetadataBoolean; +export declare const DeviceMotionTrackingProperty: PropertyMetadataBoolean; +export declare const DeviceSpeakerVolumeProperty: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeSoloProperty: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeCamera3Property: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeIndoorFloodDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeFloodlightT8420Property: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeWalllightProperty: PropertyMetadataNumeric; +export declare const DeviceSpeakerVolumeSmartDropProperty: PropertyMetadataNumeric; +export declare const DeviceRingtoneVolumeBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceRingtoneVolumeWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceRingtoneVolumeT8200XProperty: PropertyMetadataNumeric; +export declare const DevicePowerSourceProperty: PropertyMetadataNumeric; +export declare const DevicePowerWorkingModeProperty: PropertyMetadataNumeric; +export declare const DevicePowerWorkingModeSmartDropProperty: PropertyMetadataNumeric; +export declare const DevicePowerWorkingModeBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceChargingStatusProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingClipLengthProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingClipLengthFloodlightProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingClipLengthWalllightProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingClipLengthWalllightS120Property: PropertyMetadataNumeric; +export declare const DeviceRecordingClipLengthOutdoorPTProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingRetriggerIntervalProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingRetriggerIntervalBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingRetriggerIntervalFloodlightProperty: PropertyMetadataNumeric; +export declare const DeviceRecordingEndClipMotionStopsProperty: PropertyMetadataBoolean; +export declare const DeviceVideoStreamingQualityProperty: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityCameraProperty: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualitySoloProperty: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityWalllightProperty: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityCamera3Property: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityCameraProfessionalProperty: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityDoorbellE340Property: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityS350Property: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualityS340Property: PropertyMetadataNumeric; +export declare const DeviceVideoStreamingQualitySmartDropProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityIndoorProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityDoorbellE340Property: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityS340Property: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityS350Property: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityWalllightProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityT8200XProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityCamera2CProProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityCamera3Property: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualitySoloProperty: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualitySoloCamerasHB3Property: PropertyMetadataNumeric; +export declare const DeviceVideoRecordingQualityT8530Property: PropertyMetadataNumeric; +export declare const DeviceWDRProperty: PropertyMetadataBoolean; +export declare const DeviceChimeIndoorBatteryDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceChimeIndoorWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceChimeIndoorT8200XProperty: PropertyMetadataBoolean; +export declare const DeviceChimeHomebaseBatteryDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationTypeProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationTypeIndoorFloodlightProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationTypeBatteryDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationTypeWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationTypeWalllightProperty: PropertyMetadataNumeric; +export declare const DeviceRotationSpeedProperty: PropertyMetadataNumeric; +export declare const DeviceImageMirroredProperty: PropertyMetadataBoolean; +export declare const DeviceSoundDetectionTypeProperty: PropertyMetadataNumeric; +export declare const DeviceSoundDetectionTypeS350Property: PropertyMetadataNumeric; +export declare const DeviceSoundDetectionSensitivityProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationPersonProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationPersonWalllightProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationPetProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationAllOtherMotionProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationAllOtherMotionWalllightProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationAllSoundProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationCryingProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationRingProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationRingWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationMotionProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationRadarDetectorProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationMotionWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceChirpVolumeEntrySensorProperty: PropertyMetadataNumeric; +export declare const DeviceChirpToneEntrySensorProperty: PropertyMetadataNumeric; +export declare const DeviceVideoHDRWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceVideoDistortionCorrectionWiredDoorbellProperty: PropertyMetadataBoolean; +export declare const DeviceVideoRingRecordWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeT8425Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeStandardSensitivityProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeStandardSensitivityT8425Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeAdvancedRightSensitivityProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionTestModeProperty: PropertyMetadataBoolean; +export declare const DeviceMotionDetectionTestModeT8425Property: PropertyMetadataBoolean; +export declare const DeviceMotionTrackingSensitivityProperty: PropertyMetadataNumeric; +export declare const DeviceMotionAutoCruiseProperty: PropertyMetadataBoolean; +export declare const DeviceMotionOutOfViewDetectionProperty: PropertyMetadataBoolean; +export declare const DeviceLightSettingsColorTemperatureManualProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsColorTemperatureMotionProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsColorTemperatureScheduleProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsMotionActivationModeProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsMotionActivationModeT8425Property: PropertyMetadataNumeric; +export declare const DeviceVideoNightvisionImageAdjustmentProperty: PropertyMetadataBoolean; +export declare const DeviceVideoColorNightvisionProperty: PropertyMetadataBoolean; +export declare const DeviceAutoCalibrationProperty: PropertyMetadataBoolean; +export declare const DeviceAutoLockProperty: PropertyMetadataBoolean; +export declare const DeviceAutoLockTimerProperty: PropertyMetadataNumeric; +export declare const DeviceAutoLockScheduleProperty: PropertyMetadataBoolean; +export declare const DeviceAutoLockScheduleStartTimeProperty: PropertyMetadataString; +export declare const DeviceAutoLockScheduleEndTimeProperty: PropertyMetadataString; +export declare const DeviceOneTouchLockingProperty: PropertyMetadataBoolean; +export declare const DeviceWrongTryProtectionProperty: PropertyMetadataBoolean; +export declare const DeviceWrongTryProtectionSmartSafeProperty: PropertyMetadataBoolean; +export declare const DeviceWrongTryLockdownTimeProperty: PropertyMetadataNumeric; +export declare const DeviceWrongTryLockdownTimeSmartSafeProperty: PropertyMetadataNumeric; +export declare const DeviceWrongTryAttemptsProperty: PropertyMetadataNumeric; +export declare const DeviceWrongTryAttemptsSmartSafeProperty: PropertyMetadataNumeric; +export declare const DeviceScramblePasscodeProperty: PropertyMetadataBoolean; +export declare const DeviceScramblePasscodeSmartSafeProperty: PropertyMetadataBoolean; +export declare const DeviceSoundProperty: PropertyMetadataNumeric; +export declare const DeviceSoundSimpleProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationSmartLockProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationWalllightProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationUnlockedProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationUnlockedSmartLockProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationLockedProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationLockedSmartLockProperty: PropertyMetadataBoolean; +export declare const DeviceLoiteringDetectionProperty: PropertyMetadataBoolean; +export declare const DeviceLoiteringDetectionRangeProperty: PropertyMetadataNumeric; +export declare const DeviceLoiteringDetectionLengthProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityModeProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityStandardProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedAProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedBProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedCProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedDProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedEProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedFProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedGProperty: PropertyMetadataNumeric; +export declare const DeviceMotionDetectionSensitivityAdvancedHProperty: PropertyMetadataNumeric; +export declare const DeviceLoiteringCustomResponsePhoneNotificationProperty: PropertyMetadataBoolean; +export declare const DeviceLoiteringCustomResponseAutoVoiceResponseProperty: PropertyMetadataBoolean; +export declare const DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty: PropertyMetadataNumeric; +export declare const DeviceLoiteringCustomResponseHomeBaseNotificationProperty: PropertyMetadataBoolean; +export declare const DeviceLoiteringCustomResponseTimeFromProperty: PropertyMetadataString; +export declare const DeviceLoiteringCustomResponseTimeToProperty: PropertyMetadataString; +export declare const DeviceDeliveryGuardProperty: PropertyMetadataBoolean; +export declare const DeviceDeliveryGuardPackageGuardingProperty: PropertyMetadataBoolean; +export declare const DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty: PropertyMetadataNumeric; +export declare const DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty: PropertyMetadataString; +export declare const DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty: PropertyMetadataString; +export declare const DeviceDeliveryGuardUncollectedPackageAlertProperty: PropertyMetadataBoolean; +export declare const DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty: PropertyMetadataString; +export declare const DeviceDeliveryGuardPackageLiveCheckAssistanceProperty: PropertyMetadataBoolean; +export declare const DeviceDualCamWatchViewModeProperty: PropertyMetadataNumeric; +export declare const DeviceDualCamWatchViewModeE340Property: PropertyMetadataNumeric; +export declare const DeviceDualCamWatchViewModeS340Property: PropertyMetadataNumeric; +export declare const DeviceRingAutoResponseProperty: PropertyMetadataBoolean; +export declare const DeviceRingAutoResponseVoiceResponseProperty: PropertyMetadataBoolean; +export declare const DeviceRingAutoResponseVoiceResponseVoiceProperty: PropertyMetadataNumeric; +export declare const DeviceRingAutoResponseTimeFromProperty: PropertyMetadataString; +export declare const DeviceRingAutoResponseTimeToProperty: PropertyMetadataString; +export declare const DeviceContinuousRecordingProperty: PropertyMetadataBoolean; +export declare const DeviceContinuousRecordingTypeProperty: PropertyMetadataNumeric; +export declare const DeviceDefaultAngleProperty: PropertyMetadataBoolean; +export declare const DeviceDefaultAngleIdleTimeProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationIntervalTimeProperty: PropertyMetadataNumeric; +export declare const DeviceSoundDetectionRoundLookProperty: PropertyMetadataBoolean; +export declare const DeviceSoundDetectionRoundLookS350Property: PropertyMetadataBoolean; +export declare const StationHomeSecuritySettings: PropertyMetadataString; +export declare const StationAwaySecuritySettings: PropertyMetadataString; +export declare const StationCustom1SecuritySettings: PropertyMetadataString; +export declare const StationCustom2SecuritySettings: PropertyMetadataString; +export declare const StationCustom3SecuritySettings: PropertyMetadataString; +export declare const StationOffSecuritySettings: PropertyMetadataString; +export declare const DevicePackageDeliveredProperty: PropertyMetadataBoolean; +export declare const DevicePackageStrandedProperty: PropertyMetadataBoolean; +export declare const DevicePackageTakenProperty: PropertyMetadataBoolean; +export declare const DeviceSomeoneLoiteringProperty: PropertyMetadataBoolean; +export declare const DeviceRadarMotionDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceLeftOpenAlarmProperty: PropertyMetadataBoolean; +export declare const DeviceLeftOpenAlarmDurationProperty: PropertyMetadataNumeric; +export declare const DeviceDualUnlockProperty: PropertyMetadataBoolean; +export declare const DevicePowerSaveProperty: PropertyMetadataBoolean; +export declare const DeviceInteriorBrightnessProperty: PropertyMetadataNumeric; +export declare const DeviceInteriorBrightnessDurationProperty: PropertyMetadataNumeric; +export declare const DeviceTamperAlarmProperty: PropertyMetadataNumeric; +export declare const DeviceRemoteUnlockProperty: PropertyMetadataBoolean; +export declare const DeviceRemoteUnlockMasterPINProperty: PropertyMetadataBoolean; +export declare const DevicePromptVolumeProperty: PropertyMetadataNumeric; +export declare const DeviceAlarmVolumeProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationUnlockByKeyProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationUnlockByPINProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationUnlockByFingerprintProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationUnlockByAppProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationDualUnlockProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationDualLockProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationWrongTryProtectProperty: PropertyMetadataBoolean; +export declare const DeviceNotificationJammedProperty: PropertyMetadataBoolean; +export declare const DeviceJammedAlertProperty: PropertyMetadataBoolean; +export declare const Device911AlertProperty: PropertyMetadataBoolean; +export declare const Device911AlertEventProperty: PropertyMetadataNumeric; +export declare const DeviceShakeAlertProperty: PropertyMetadataBoolean; +export declare const DeviceShakeAlertEventProperty: PropertyMetadataNumeric; +export declare const DeviceLowBatteryAlertProperty: PropertyMetadataBoolean; +export declare const DeviceLongTimeNotCloseAlertProperty: PropertyMetadataBoolean; +export declare const DeviceWrongTryProtectAlertProperty: PropertyMetadataBoolean; +export declare const DeviceVideoTypeStoreToNASProperty: PropertyMetadataNumeric; +export declare const DeviceSnoozeProperty: PropertyMetadataBoolean; +export declare const DeviceSnoozeTimeProperty: PropertyMetadataNumeric; +export declare const DeviceSnoozeStartTimeProperty: PropertyMetadataNumeric; +export declare const DeviceSnoozeStartTimeWiredDoorbellProperty: PropertyMetadataNumeric; +export declare const DeviceSnoozeHomebaseProperty: PropertyMetadataBoolean; +export declare const DeviceSnoozeMotionProperty: PropertyMetadataBoolean; +export declare const DeviceSnoozeChimeProperty: PropertyMetadataBoolean; +export declare const DevicePersonNameProperty: PropertyMetadataString; +export declare const DeviceIdentityPersonDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceStrangerPersonDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceVehicleDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceDogDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceDogLickDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceDogPoopDetectedProperty: PropertyMetadataBoolean; +export declare const DeviceDetectionStatisticsWorkingDaysProperty: PropertyMetadataNumeric; +export declare const DeviceDetectionStatisticsDetectedEventsProperty: PropertyMetadataNumeric; +export declare const DeviceDetectionStatisticsRecordedEventsProperty: PropertyMetadataNumeric; +export declare const DevicePictureProperty: PropertyMetadataObject; +export declare const DeviceLightSettingsManualDailyLightingProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsManualColoredLightingProperty: PropertyMetadataObject; +export declare const DeviceLightSettingsManualDynamicLightingProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsManualLightingActiveModeProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsMotionDailyLightingProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsMotionColoredLightingProperty: PropertyMetadataObject; +export declare const DeviceLightSettingsMotionDynamicLightingProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsMotionLightingActiveModeProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsScheduleDailyLightingProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsScheduleColoredLightingProperty: PropertyMetadataObject; +export declare const DeviceLightSettingsScheduleDynamicLightingProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsScheduleLightingActiveModeProperty: PropertyMetadataNumeric; +export declare const DeviceLightSettingsColoredLightingColorsProperty: PropertyMetadataObject; +export declare const DeviceLightSettingsDynamicLightingThemesProperty: PropertyMetadataObject; +export declare const DeviceDoorControlWarningProperty: PropertyMetadataBoolean; +export declare const DeviceDoor1OpenProperty: PropertyMetadataBoolean; +export declare const DeviceDoor2OpenProperty: PropertyMetadataBoolean; +export declare const DeviceDoorSensor1StatusProperty: PropertyMetadataNumeric; +export declare const DeviceDoorSensor2StatusProperty: PropertyMetadataNumeric; +export declare const DeviceDoorSensor1MacAddressProperty: PropertyMetadataString; +export declare const DeviceDoorSensor2MacAddressProperty: PropertyMetadataString; +export declare const DeviceDoorSensor1NameProperty: PropertyMetadataString; +export declare const DeviceDoorSensor2NameProperty: PropertyMetadataString; +export declare const DeviceDoorSensor1SerialNumberProperty: PropertyMetadataString; +export declare const DeviceDoorSensor2SerialNumberProperty: PropertyMetadataString; +export declare const DeviceDoorSensor1VersionProperty: PropertyMetadataString; +export declare const DeviceDoorSensor2VersionProperty: PropertyMetadataString; +export declare const DeviceDoorSensor1LowBatteryProperty: PropertyMetadataBoolean; +export declare const DeviceDoorSensor2LowBatteryProperty: PropertyMetadataBoolean; +export declare const DeviceDoorSensor1BatteryLevelProperty: PropertyMetadataNumeric; +export declare const DeviceDoorSensor2BatteryLevelProperty: PropertyMetadataNumeric; +export declare const DeviceLocationCoordinatesProperty: PropertyMetadataString; +export declare const DeviceLocationAddressProperty: PropertyMetadataString; +export declare const DeviceLocationLastUpdateProperty: PropertyMetadataNumeric; +export declare const DeviceTrackerTypeProperty: PropertyMetadataNumeric; +export declare const DeviceLeftBehindAlarmProperty: PropertyMetadataBoolean; +export declare const DeviceFindPhoneProperty: PropertyMetadataBoolean; +export declare const DeviceFlickerAdjustmentProperty: PropertyMetadataNumeric; +export declare const DeviceNotificationPersonS350Property: PropertyMetadataBoolean; +export declare const DeviceNotificationPetS350Property: PropertyMetadataBoolean; +export declare const DeviceNotificationAllOtherMotionS350Property: PropertyMetadataBoolean; +export declare const DeviceNotificationAllSoundS350Property: PropertyMetadataBoolean; +export declare const DeviceNotificationCryingS350Property: PropertyMetadataBoolean; +export declare const DeviceNotificationVehicleProperty: PropertyMetadataBoolean; +export declare const DeviceLeavingDetectionProperty: PropertyMetadataBoolean; +export declare const DeviceLeavingReactionNotificationProperty: PropertyMetadataBoolean; +export declare const DeviceLeavingReactionStartTimeProperty: PropertyMetadataString; +export declare const DeviceLeavingReactionEndTimeProperty: PropertyMetadataString; +export declare const DeviceSomeoneGoingProperty: PropertyMetadataBoolean; +export declare const DeviceLockEventOriginProperty: PropertyMetadataNumeric; +export declare const DeviceBeepVolumeProperty: PropertyMetadataNumeric; +export declare const DeviceNightvisionOptimizationProperty: PropertyMetadataBoolean; +export declare const DeviceNightvisionOptimizationSideProperty: PropertyMetadataNumeric; +export declare const DeviceOpenMethodProperty: PropertyMetadataNumeric; +export declare const DeviceMotionActivatedPromptProperty: PropertyMetadataBoolean; +export declare const DeviceOpenProperty: PropertyMetadataBoolean; +export declare const DeviceOpenedByTypeProperty: PropertyMetadataNumeric; +export declare const DeviceOpenedByNameProperty: PropertyMetadataString; +export declare const DeviceTamperingAlertProperty: PropertyMetadataBoolean; +export declare const DeviceLowTemperatureAlertProperty: PropertyMetadataBoolean; +export declare const DeviceHighTemperatureAlertProperty: PropertyMetadataBoolean; +export declare const DeviceLidStuckAlertProperty: PropertyMetadataBoolean; +export declare const DevicePinIncorrectAlertProperty: PropertyMetadataBoolean; +export declare const DeviceBatteryFullyChargedAlertProperty: PropertyMetadataBoolean; +export declare const DeviceIsDeliveryDeniedProperty: PropertyMetadataBoolean; +export declare const DeviceHasMasterPinProperty: PropertyMetadataBoolean; +export declare const DeviceDeliveriesProperty: PropertyMetadataNumeric; +export declare const FloodlightT8420XDeviceProperties: IndexedProperty; +export declare const WiredDoorbellT8200XDeviceProperties: IndexedProperty; +export declare const LockT8510PDeviceProperties: IndexedProperty; +export declare const LockT8520PDeviceProperties: IndexedProperty; +export declare const DeviceProperties: Properties; +export declare const StationNameProperty: PropertyMetadataString; +export declare const StationModelProperty: PropertyMetadataString; +export declare const StationSerialNumberProperty: PropertyMetadataString; +export declare const BaseStationProperties: IndexedProperty; +export declare const StationGuardModeProperty: PropertyMetadataNumeric; +export declare const StationGuardModeKeyPadProperty: PropertyMetadataNumeric; +export declare const StationCurrentModeProperty: PropertyMetadataNumeric; +export declare const StationCurrentModeKeyPadProperty: PropertyMetadataNumeric; +export declare const StationLanIpAddressProperty: PropertyMetadataString; +export declare const StationLanIpAddressStandaloneProperty: PropertyMetadataString; +export declare const StationMacAddressProperty: PropertyMetadataString; +export declare const StationAlarmVolumeProperty: PropertyMetadataNumeric; +export declare const StationAlarmVolumeWalllightProperty: PropertyMetadataNumeric; +export declare const StationPromptVolumeProperty: PropertyMetadataNumeric; +export declare const StationAlarmToneProperty: PropertyMetadataNumeric; +export declare const StationNotificationSwitchModeScheduleProperty: PropertyMetadataBoolean; +export declare const StationNotificationSwitchModeGeofenceProperty: PropertyMetadataBoolean; +export declare const StationNotificationSwitchModeAppProperty: PropertyMetadataBoolean; +export declare const StationNotificationSwitchModeKeypadProperty: PropertyMetadataBoolean; +export declare const StationNotificationStartAlarmDelayProperty: PropertyMetadataBoolean; +export declare const StationTimeFormatProperty: PropertyMetadataNumeric; +export declare const StationTimeZoneProperty: PropertyMetadataString; +export declare const StationSwitchModeWithAccessCodeProperty: PropertyMetadataBoolean; +export declare const StationAutoEndAlarmProperty: PropertyMetadataBoolean; +export declare const StationTurnOffAlarmWithButtonProperty: PropertyMetadataBoolean; +export declare const StationAlarmProperty: PropertyMetadataBoolean; +export declare const StationAlarmTypeProperty: PropertyMetadataNumeric; +export declare const StationAlarmArmedProperty: PropertyMetadataBoolean; +export declare const StationAlarmArmDelayProperty: PropertyMetadataNumeric; +export declare const StationAlarmDelayProperty: PropertyMetadataNumeric; +export declare const StationAlarmDelayTypeProperty: PropertyMetadataNumeric; +export declare const StationSdStatusProperty: PropertyMetadataNumeric; +export declare const StationSdCapacityProperty: PropertyMetadataNumeric; +export declare const StationSdAvailableCapacityProperty: PropertyMetadataNumeric; +export declare const StationStorageInfoEmmcProperty: PropertyMetadataObject; +export declare const StationStorageInfoHddProperty: PropertyMetadataObject; +export declare const StationContinuousTrackingTimeProperty: PropertyMetadataNumeric; +export declare const StationCrossCameraTrackingProperty: PropertyMetadataBoolean; +export declare const StationTrackingAssistanceProperty: PropertyMetadataBoolean; +export declare const StationCrossTrackingCameraListProperty: PropertyMetadataObject; +export declare const StationCrossTrackingGroupListProperty: PropertyMetadataObject; +export declare const StationProperties: Properties; +export declare enum CommandName { + DeviceStartLivestream = "deviceStartLivestream", + DeviceStopLivestream = "deviceStopLivestream", + DeviceQuickResponse = "deviceQuickResponse", + DevicePanAndTilt = "devicePanAndTilt", + DeviceTriggerAlarmSound = "deviceTriggerAlarmSound", + DeviceStartDownload = "deviceStartDownload", + DeviceCancelDownload = "deviceCancelDownload", + DeviceLockCalibration = "deviceLockCalibration", + DeviceCalibrate = "deviceCalibrate", + DeviceAddUser = "deviceAddUser", + DeviceDeleteUser = "deviceDeleteUser", + DeviceUpdateUserPasscode = "deviceUpdateUserPasscode", + DeviceUpdateUserSchedule = "deviceUpdateUserSchedule", + DeviceUpdateUsername = "deviceUpdateUsername", + DeviceSetDefaultAngle = "deviceSetDefaultAngle", + DeviceSetPrivacyAngle = "deviceSetPrivacyAngle", + DeviceStartTalkback = "deviceStartTalkback", + DeviceStopTalkback = "deviceStopTalkback", + DeviceUnlock = "deviceUnlock", + DeviceSnooze = "deviceSnooze", + DeviceVerifyPIN = "deviceVerifyPIN", + DeviceQueryAllUserId = "deviceQueryAllUserId", + DeviceCalibrateGarageDoor = "deviceCalibrateGarageDoor", + DevicePresetPosition = "devicePresetPosition", + DeviceSavePresetPosition = "deviceSavePresetPosition", + DeviceDeletePresetPosition = "deviceDeletePresetPosition", + DeviceOpen = "deviceOpen", + StationReboot = "stationReboot", + StationTriggerAlarmSound = "stationTriggerAlarmSound", + StationChime = "stationChime", + StationDownloadImage = "stationDownloadImage", + StationDatabaseQueryLatestInfo = "stationDatabaseQueryLatestInfo", + StationDatabaseQueryLocal = "stationDatabaseQueryLocal", + StationDatabaseDelete = "stationDatabaseDelete", + StationDatabaseCountByDate = "stationDatabaseCoundByDate" +} +export declare const DeviceCommands: Commands; +export declare const StationCommands: Commands; diff --git a/build/http/types.js b/build/http/types.js new file mode 100644 index 00000000..93efcaca --- /dev/null +++ b/build/http/types.js @@ -0,0 +1,9743 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GenericHWVersionProperty = exports.DeviceSerialNumberProperty = exports.DeviceModelProperty = exports.DeviceNameProperty = exports.PropertyName = exports.DeviceEvent = exports.PresetPositionType = exports.ViewModeType = exports.MotionDetectionRangeType = exports.TrackerType = exports.GarageDoorState = exports.DynamicLightingEffect = exports.MotionActivationMode = exports.DailyLightingType = exports.LightingActiveMode = exports.TriggerType = exports.MicStatus = exports.RecordType = exports.MediaType = exports.VideoType = exports.FloodlightT8425NotificationTypes = exports.IndoorS350NotificationTypes = exports.IndoorMiniDetectionTypes = exports.IndoorDetectionTypes = exports.IndoorS350DetectionTypes = exports.SoloCameraDetectionTypes = exports.T8170DetectionTypes = exports.HB3DetectionTypes = exports.UserPasswordType = exports.UserType = exports.DualCamStreamMode = exports.VideoTypeStoreToNAS = exports.MotionDetectionMode = exports.SignalLevel = exports.TimeFormat = exports.GuardModeSecuritySettingsAction = exports.NotificationSwitchMode = exports.AlarmTone = exports.WalllightNotificationType = exports.NotificationType = exports.FloodlightMotionTriggeredDistance = exports.PublicKeyType = exports.PowerSource = exports.StorageType = exports.VerfyCodeTypes = exports.ResponseErrorCode = exports.GuardMode = exports.AlarmMode = exports.ParamType = exports.DeviceType = void 0; +exports.DeviceWatermarkProperty = exports.DeviceRTSPStreamUrlProperty = exports.DeviceRTSPStreamProperty = exports.DevicePetDetectionProperty = exports.DeviceSoundDetectionProperty = exports.DeviceMotionDetectionDoorbellProperty = exports.DeviceMotionDetectionIndoorSoloFloodProperty = exports.DeviceMotionDetectionProperty = exports.DeviceStatusLedT8200XProperty = exports.DeviceStatusLedDoorbellProperty = exports.DeviceStatusLedBatteryDoorbellDualProperty = exports.DeviceStatusLedIndoorS350Property = exports.DeviceStatusLedBatteryDoorbellProperty = exports.DeviceStatusLedIndoorFloodProperty = exports.DeviceStatusLedProperty = exports.DeviceEnabledIndoorS350Property = exports.DeviceEnabledIndoorMiniProperty = exports.DeviceEnabledSoloProperty = exports.DeviceEnabledStandaloneProperty = exports.DeviceEnabledProperty = exports.DeviceWifiRSSISmartSafeProperty = exports.DeviceWifiRSSIKeypadProperty = exports.DeviceWifiRSSIEntrySensorProperty = exports.DeviceWifiRSSILockProperty = exports.DeviceCellularICCIDProperty = exports.DeviceCellularIMEIProperty = exports.DeviceCellularBandProperty = exports.DeviceCellularSignalProperty = exports.DeviceCellularSignalLevelProperty = exports.DeviceCellularRSSIProperty = exports.DeviceWifiSignalLevelProperty = exports.DeviceWifiRSSIProperty = exports.DeviceNightvisionS350Property = exports.DeviceNightvisionProperty = exports.DeviceAutoNightvisionSoloProperty = exports.DeviceAutoNightvisionWiredDoorbellProperty = exports.DeviceAutoNightvisionProperty = exports.DeviceAntitheftDetectionProperty = exports.DeviceBatteryIsChargingKeypadProperty = exports.DeviceBatteryTempProperty = exports.DeviceBatteryLowSensorProperty = exports.DeviceBatteryLowKeypadProperty = exports.DeviceBatteryLowMotionSensorProperty = exports.DeviceBatteryTrackerProperty = exports.DeviceBatteryLockProperty = exports.DeviceBatteryProperty = exports.GenericDeviceProperties = exports.BaseDeviceProperties = exports.GenericTypeProperty = exports.GenericSWVersionProperty = void 0; +exports.DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty = exports.DeviceMotionDetectionSensitivityGarageCameraProperty = exports.DeviceMotionDetectionSensitivityFloodlightT8420Property = exports.DeviceMotionDetectionSensitivitySoloProperty = exports.DeviceMotionDetectionSensitivityWiredDoorbellProperty = exports.DeviceMotionDetectionSensitivityDoorbellE340Property = exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty = exports.DeviceMotionDetectionSensitivityIndoorProperty = exports.DeviceMotionDetectionSensitivityCamera1Property = exports.DeviceMotionDetectionSensitivityCamera2Property = exports.DeviceMotionDetectionTypeIndoorMiniProperty = exports.DeviceMotionDetectionTypeIndoorS350Property = exports.DeviceMotionDetectionTypeIndoorProperty = exports.DeviceMotionDetectionTypeFloodlightProperty = exports.DeviceMotionDetectionTypeFloodlightT8423Property = exports.DeviceMotionDetectionCamera1Property = exports.DeviceMotionDetectionTypeT8200XProperty = exports.DeviceMotionDetectionTypeProperty = exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty = exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty = exports.DeviceMotionHB3DetectionTypeVehicleProperty = exports.DeviceMotionHB3DetectionTypePetProperty = exports.DeviceMotionHB3DetectionTypeHumanRecognitionProperty = exports.DeviceMotionDetectionTypeHumanWallLightProperty = exports.DeviceMotionHB3DetectionTypeHumanProperty = exports.DevicePictureUrlProperty = exports.DeviceAdvancedLockStatusProperty = exports.DeviceBasicLockStatusProperty = exports.DeviceMotionSensorPIREventProperty = exports.DeviceSensorChangeTimeProperty = exports.DeviceSensorOpenProperty = exports.DeviceRingingProperty = exports.DeviceCryingDetectedProperty = exports.DeviceSoundDetectedProperty = exports.DevicePetDetectedProperty = exports.DevicePersonDetectedProperty = exports.DeviceMotionDetectedProperty = exports.DeviceLockedSmartSafeProperty = exports.DeviceLockedProperty = exports.DeviceBatteryUsageLastWeekProperty = exports.DeviceLastChargingFalseEventsProperty = exports.DeviceLastChargingRecordedEventsProperty = exports.DeviceLastChargingTotalEventsProperty = exports.DeviceLastChargingDaysProperty = exports.DeviceStateLockProperty = exports.DeviceStateProperty = exports.DeviceWatermarkGarageCameraProperty = exports.DeviceWatermarkBatteryDoorbellCamera1Property = exports.DeviceWatermarkSoloWiredDoorbellProperty = exports.DeviceWatermarkIndoorFloodProperty = void 0; +exports.DeviceRecordingEndClipMotionStopsProperty = exports.DeviceRecordingRetriggerIntervalFloodlightProperty = exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty = exports.DeviceRecordingRetriggerIntervalProperty = exports.DeviceRecordingClipLengthOutdoorPTProperty = exports.DeviceRecordingClipLengthWalllightS120Property = exports.DeviceRecordingClipLengthWalllightProperty = exports.DeviceRecordingClipLengthFloodlightProperty = exports.DeviceRecordingClipLengthProperty = exports.DeviceChargingStatusProperty = exports.DevicePowerWorkingModeBatteryDoorbellProperty = exports.DevicePowerWorkingModeSmartDropProperty = exports.DevicePowerWorkingModeProperty = exports.DevicePowerSourceProperty = exports.DeviceRingtoneVolumeT8200XProperty = exports.DeviceRingtoneVolumeWiredDoorbellProperty = exports.DeviceRingtoneVolumeBatteryDoorbellProperty = exports.DeviceSpeakerVolumeSmartDropProperty = exports.DeviceSpeakerVolumeWalllightProperty = exports.DeviceSpeakerVolumeFloodlightT8420Property = exports.DeviceSpeakerVolumeWiredDoorbellProperty = exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty = exports.DeviceSpeakerVolumeCamera3Property = exports.DeviceSpeakerVolumeSoloProperty = exports.DeviceSpeakerVolumeProperty = exports.DeviceMotionTrackingProperty = exports.DeviceAudioRecordingFloodlightT8420Property = exports.DeviceAudioRecordingWiredDoorbellProperty = exports.DeviceAudioRecordingStarlight4gLTEProperty = exports.DeviceAudioRecordingIndoorSoloFloodlightProperty = exports.DeviceAudioRecordingProperty = exports.DeviceSpeakerProperty = exports.DeviceMicrophoneProperty = exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property = exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty = exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty = exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property = exports.DeviceFloodlightLightSettingsMotionTriggeredProperty = exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property = exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty = exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property = exports.DeviceFloodlightLightSettingsBrightnessMotionProperty = exports.DeviceCameraLightSettingsBrightnessManualWalllightS120Property = exports.DeviceCameraLightSettingsBrightnessManualProperty = exports.DeviceLightSettingsBrightnessManualCamera3Property = exports.DeviceFloodlightLightSettingsBrightnessManualProperty = exports.DeviceFloodlightLightSettingsEnableProperty = exports.DeviceFloodlightLightProperty = exports.DeviceMotionZoneProperty = exports.DeviceHiddenMotionDetectionModeWiredDoorbellProperty = void 0; +exports.DeviceNotificationRingWiredDoorbellProperty = exports.DeviceNotificationRingProperty = exports.DeviceNotificationCryingProperty = exports.DeviceNotificationAllSoundProperty = exports.DeviceNotificationAllOtherMotionWalllightProperty = exports.DeviceNotificationAllOtherMotionProperty = exports.DeviceNotificationPetProperty = exports.DeviceNotificationPersonWalllightProperty = exports.DeviceNotificationPersonProperty = exports.DeviceSoundDetectionSensitivityProperty = exports.DeviceSoundDetectionTypeS350Property = exports.DeviceSoundDetectionTypeProperty = exports.DeviceImageMirroredProperty = exports.DeviceRotationSpeedProperty = exports.DeviceNotificationTypeWalllightProperty = exports.DeviceNotificationTypeWiredDoorbellProperty = exports.DeviceNotificationTypeBatteryDoorbellProperty = exports.DeviceNotificationTypeIndoorFloodlightProperty = exports.DeviceNotificationTypeProperty = exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty = exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty = exports.DeviceChimeHomebaseBatteryDoorbellProperty = exports.DeviceChimeIndoorT8200XProperty = exports.DeviceChimeIndoorWiredDoorbellProperty = exports.DeviceChimeIndoorBatteryDoorbellProperty = exports.DeviceWDRProperty = exports.DeviceVideoRecordingQualityT8530Property = exports.DeviceVideoRecordingQualitySoloCamerasHB3Property = exports.DeviceVideoRecordingQualitySoloProperty = exports.DeviceVideoRecordingQualityCamera3Property = exports.DeviceVideoRecordingQualityCamera2CProProperty = exports.DeviceVideoRecordingQualityT8200XProperty = exports.DeviceVideoRecordingQualityWalllightProperty = exports.DeviceVideoRecordingQualityS350Property = exports.DeviceVideoRecordingQualityS340Property = exports.DeviceVideoRecordingQualityDoorbellE340Property = exports.DeviceVideoRecordingQualityProperty = exports.DeviceVideoRecordingQualityWiredDoorbellProperty = exports.DeviceVideoRecordingQualityIndoorProperty = exports.DeviceVideoStreamingQualitySmartDropProperty = exports.DeviceVideoStreamingQualityS340Property = exports.DeviceVideoStreamingQualityS350Property = exports.DeviceVideoStreamingQualityDoorbellE340Property = exports.DeviceVideoStreamingQualityCameraProfessionalProperty = exports.DeviceVideoStreamingQualityCamera3Property = exports.DeviceVideoStreamingQualityWalllightProperty = exports.DeviceVideoStreamingQualitySoloProperty = exports.DeviceVideoStreamingQualityCameraProperty = exports.DeviceVideoStreamingQualityBatteryDoorbellProperty = exports.DeviceVideoStreamingQualityProperty = void 0; +exports.DeviceNotificationUnlockedProperty = exports.DeviceNotificationWalllightProperty = exports.DeviceNotificationSmartLockProperty = exports.DeviceNotificationProperty = exports.DeviceSoundSimpleProperty = exports.DeviceSoundProperty = exports.DeviceScramblePasscodeSmartSafeProperty = exports.DeviceScramblePasscodeProperty = exports.DeviceWrongTryAttemptsSmartSafeProperty = exports.DeviceWrongTryAttemptsProperty = exports.DeviceWrongTryLockdownTimeSmartSafeProperty = exports.DeviceWrongTryLockdownTimeProperty = exports.DeviceWrongTryProtectionSmartSafeProperty = exports.DeviceWrongTryProtectionProperty = exports.DeviceOneTouchLockingProperty = exports.DeviceAutoLockScheduleEndTimeProperty = exports.DeviceAutoLockScheduleStartTimeProperty = exports.DeviceAutoLockScheduleProperty = exports.DeviceAutoLockTimerProperty = exports.DeviceAutoLockProperty = exports.DeviceAutoCalibrationProperty = exports.DeviceVideoColorNightvisionProperty = exports.DeviceVideoNightvisionImageAdjustmentProperty = exports.DeviceLightSettingsMotionActivationModeT8425Property = exports.DeviceLightSettingsMotionActivationModeProperty = exports.DeviceLightSettingsColorTemperatureScheduleProperty = exports.DeviceLightSettingsColorTemperatureMotionProperty = exports.DeviceLightSettingsColorTemperatureManualProperty = exports.DeviceMotionOutOfViewDetectionProperty = exports.DeviceMotionAutoCruiseProperty = exports.DeviceMotionTrackingSensitivityProperty = exports.DeviceMotionDetectionTestModeT8425Property = exports.DeviceMotionDetectionTestModeProperty = exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property = exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty = exports.DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty = exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property = exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty = exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property = exports.DeviceMotionDetectionRangeStandardSensitivityProperty = exports.DeviceMotionDetectionRangeT8425Property = exports.DeviceMotionDetectionRangeProperty = exports.DeviceVideoRingRecordWiredDoorbellProperty = exports.DeviceVideoDistortionCorrectionWiredDoorbellProperty = exports.DeviceVideoHDRWiredDoorbellProperty = exports.DeviceChirpToneEntrySensorProperty = exports.DeviceChirpVolumeEntrySensorProperty = exports.DeviceNotificationMotionWiredDoorbellProperty = exports.DeviceNotificationRadarDetectorProperty = exports.DeviceNotificationMotionProperty = void 0; +exports.StationCustom3SecuritySettings = exports.StationCustom2SecuritySettings = exports.StationCustom1SecuritySettings = exports.StationAwaySecuritySettings = exports.StationHomeSecuritySettings = exports.DeviceSoundDetectionRoundLookS350Property = exports.DeviceSoundDetectionRoundLookProperty = exports.DeviceNotificationIntervalTimeProperty = exports.DeviceDefaultAngleIdleTimeProperty = exports.DeviceDefaultAngleProperty = exports.DeviceContinuousRecordingTypeProperty = exports.DeviceContinuousRecordingProperty = exports.DeviceRingAutoResponseTimeToProperty = exports.DeviceRingAutoResponseTimeFromProperty = exports.DeviceRingAutoResponseVoiceResponseVoiceProperty = exports.DeviceRingAutoResponseVoiceResponseProperty = exports.DeviceRingAutoResponseProperty = exports.DeviceDualCamWatchViewModeS340Property = exports.DeviceDualCamWatchViewModeE340Property = exports.DeviceDualCamWatchViewModeProperty = exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty = exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty = exports.DeviceDeliveryGuardUncollectedPackageAlertProperty = exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty = exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty = exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty = exports.DeviceDeliveryGuardPackageGuardingProperty = exports.DeviceDeliveryGuardProperty = exports.DeviceLoiteringCustomResponseTimeToProperty = exports.DeviceLoiteringCustomResponseTimeFromProperty = exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty = exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty = exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty = exports.DeviceLoiteringCustomResponsePhoneNotificationProperty = exports.DeviceMotionDetectionSensitivityAdvancedHProperty = exports.DeviceMotionDetectionSensitivityAdvancedGProperty = exports.DeviceMotionDetectionSensitivityAdvancedFProperty = exports.DeviceMotionDetectionSensitivityAdvancedEProperty = exports.DeviceMotionDetectionSensitivityAdvancedDProperty = exports.DeviceMotionDetectionSensitivityAdvancedCProperty = exports.DeviceMotionDetectionSensitivityAdvancedBProperty = exports.DeviceMotionDetectionSensitivityAdvancedAProperty = exports.DeviceMotionDetectionSensitivityStandardProperty = exports.DeviceMotionDetectionSensitivityModeProperty = exports.DeviceLoiteringDetectionLengthProperty = exports.DeviceLoiteringDetectionRangeProperty = exports.DeviceLoiteringDetectionProperty = exports.DeviceNotificationLockedSmartLockProperty = exports.DeviceNotificationLockedProperty = exports.DeviceNotificationUnlockedSmartLockProperty = void 0; +exports.DeviceDetectionStatisticsDetectedEventsProperty = exports.DeviceDetectionStatisticsWorkingDaysProperty = exports.DeviceDogPoopDetectedProperty = exports.DeviceDogLickDetectedProperty = exports.DeviceDogDetectedProperty = exports.DeviceVehicleDetectedProperty = exports.DeviceStrangerPersonDetectedProperty = exports.DeviceIdentityPersonDetectedProperty = exports.DevicePersonNameProperty = exports.DeviceSnoozeChimeProperty = exports.DeviceSnoozeMotionProperty = exports.DeviceSnoozeHomebaseProperty = exports.DeviceSnoozeStartTimeWiredDoorbellProperty = exports.DeviceSnoozeStartTimeProperty = exports.DeviceSnoozeTimeProperty = exports.DeviceSnoozeProperty = exports.DeviceVideoTypeStoreToNASProperty = exports.DeviceWrongTryProtectAlertProperty = exports.DeviceLongTimeNotCloseAlertProperty = exports.DeviceLowBatteryAlertProperty = exports.DeviceShakeAlertEventProperty = exports.DeviceShakeAlertProperty = exports.Device911AlertEventProperty = exports.Device911AlertProperty = exports.DeviceJammedAlertProperty = exports.DeviceNotificationJammedProperty = exports.DeviceNotificationWrongTryProtectProperty = exports.DeviceNotificationDualLockProperty = exports.DeviceNotificationDualUnlockProperty = exports.DeviceNotificationUnlockByAppProperty = exports.DeviceNotificationUnlockByFingerprintProperty = exports.DeviceNotificationUnlockByPINProperty = exports.DeviceNotificationUnlockByKeyProperty = exports.DeviceAlarmVolumeProperty = exports.DevicePromptVolumeProperty = exports.DeviceRemoteUnlockMasterPINProperty = exports.DeviceRemoteUnlockProperty = exports.DeviceTamperAlarmProperty = exports.DeviceInteriorBrightnessDurationProperty = exports.DeviceInteriorBrightnessProperty = exports.DevicePowerSaveProperty = exports.DeviceDualUnlockProperty = exports.DeviceLeftOpenAlarmDurationProperty = exports.DeviceLeftOpenAlarmProperty = exports.DeviceRadarMotionDetectedProperty = exports.DeviceSomeoneLoiteringProperty = exports.DevicePackageTakenProperty = exports.DevicePackageStrandedProperty = exports.DevicePackageDeliveredProperty = exports.StationOffSecuritySettings = void 0; +exports.DeviceLeavingReactionEndTimeProperty = exports.DeviceLeavingReactionStartTimeProperty = exports.DeviceLeavingReactionNotificationProperty = exports.DeviceLeavingDetectionProperty = exports.DeviceNotificationVehicleProperty = exports.DeviceNotificationCryingS350Property = exports.DeviceNotificationAllSoundS350Property = exports.DeviceNotificationAllOtherMotionS350Property = exports.DeviceNotificationPetS350Property = exports.DeviceNotificationPersonS350Property = exports.DeviceFlickerAdjustmentProperty = exports.DeviceFindPhoneProperty = exports.DeviceLeftBehindAlarmProperty = exports.DeviceTrackerTypeProperty = exports.DeviceLocationLastUpdateProperty = exports.DeviceLocationAddressProperty = exports.DeviceLocationCoordinatesProperty = exports.DeviceDoorSensor2BatteryLevelProperty = exports.DeviceDoorSensor1BatteryLevelProperty = exports.DeviceDoorSensor2LowBatteryProperty = exports.DeviceDoorSensor1LowBatteryProperty = exports.DeviceDoorSensor2VersionProperty = exports.DeviceDoorSensor1VersionProperty = exports.DeviceDoorSensor2SerialNumberProperty = exports.DeviceDoorSensor1SerialNumberProperty = exports.DeviceDoorSensor2NameProperty = exports.DeviceDoorSensor1NameProperty = exports.DeviceDoorSensor2MacAddressProperty = exports.DeviceDoorSensor1MacAddressProperty = exports.DeviceDoorSensor2StatusProperty = exports.DeviceDoorSensor1StatusProperty = exports.DeviceDoor2OpenProperty = exports.DeviceDoor1OpenProperty = exports.DeviceDoorControlWarningProperty = exports.DeviceLightSettingsDynamicLightingThemesProperty = exports.DeviceLightSettingsColoredLightingColorsProperty = exports.DeviceLightSettingsScheduleLightingActiveModeProperty = exports.DeviceLightSettingsScheduleDynamicLightingProperty = exports.DeviceLightSettingsScheduleColoredLightingProperty = exports.DeviceLightSettingsScheduleDailyLightingProperty = exports.DeviceLightSettingsMotionLightingActiveModeProperty = exports.DeviceLightSettingsMotionDynamicLightingProperty = exports.DeviceLightSettingsMotionColoredLightingProperty = exports.DeviceLightSettingsMotionDailyLightingProperty = exports.DeviceLightSettingsManualLightingActiveModeProperty = exports.DeviceLightSettingsManualDynamicLightingProperty = exports.DeviceLightSettingsManualColoredLightingProperty = exports.DeviceLightSettingsManualDailyLightingProperty = exports.DevicePictureProperty = exports.DeviceDetectionStatisticsRecordedEventsProperty = void 0; +exports.StationAlarmProperty = exports.StationTurnOffAlarmWithButtonProperty = exports.StationAutoEndAlarmProperty = exports.StationSwitchModeWithAccessCodeProperty = exports.StationTimeZoneProperty = exports.StationTimeFormatProperty = exports.StationNotificationStartAlarmDelayProperty = exports.StationNotificationSwitchModeKeypadProperty = exports.StationNotificationSwitchModeAppProperty = exports.StationNotificationSwitchModeGeofenceProperty = exports.StationNotificationSwitchModeScheduleProperty = exports.StationAlarmToneProperty = exports.StationPromptVolumeProperty = exports.StationAlarmVolumeWalllightProperty = exports.StationAlarmVolumeProperty = exports.StationMacAddressProperty = exports.StationLanIpAddressStandaloneProperty = exports.StationLanIpAddressProperty = exports.StationCurrentModeKeyPadProperty = exports.StationCurrentModeProperty = exports.StationGuardModeKeyPadProperty = exports.StationGuardModeProperty = exports.BaseStationProperties = exports.StationSerialNumberProperty = exports.StationModelProperty = exports.StationNameProperty = exports.DeviceProperties = exports.LockT8520PDeviceProperties = exports.LockT8510PDeviceProperties = exports.WiredDoorbellT8200XDeviceProperties = exports.FloodlightT8420XDeviceProperties = exports.DeviceDeliveriesProperty = exports.DeviceHasMasterPinProperty = exports.DeviceIsDeliveryDeniedProperty = exports.DeviceBatteryFullyChargedAlertProperty = exports.DevicePinIncorrectAlertProperty = exports.DeviceLidStuckAlertProperty = exports.DeviceHighTemperatureAlertProperty = exports.DeviceLowTemperatureAlertProperty = exports.DeviceTamperingAlertProperty = exports.DeviceOpenedByNameProperty = exports.DeviceOpenedByTypeProperty = exports.DeviceOpenProperty = exports.DeviceMotionActivatedPromptProperty = exports.DeviceOpenMethodProperty = exports.DeviceNightvisionOptimizationSideProperty = exports.DeviceNightvisionOptimizationProperty = exports.DeviceBeepVolumeProperty = exports.DeviceLockEventOriginProperty = exports.DeviceSomeoneGoingProperty = void 0; +exports.StationCommands = exports.DeviceCommands = exports.CommandName = exports.StationProperties = exports.StationCrossTrackingGroupListProperty = exports.StationCrossTrackingCameraListProperty = exports.StationTrackingAssistanceProperty = exports.StationCrossCameraTrackingProperty = exports.StationContinuousTrackingTimeProperty = exports.StationStorageInfoHddProperty = exports.StationStorageInfoEmmcProperty = exports.StationSdAvailableCapacityProperty = exports.StationSdCapacityProperty = exports.StationSdStatusProperty = exports.StationAlarmDelayTypeProperty = exports.StationAlarmDelayProperty = exports.StationAlarmArmDelayProperty = exports.StationAlarmArmedProperty = exports.StationAlarmTypeProperty = void 0; +const types_1 = require("../p2p/types"); +var DeviceType; +(function (DeviceType) { + //List retrieved from com.oceanwing.battery.cam.binder.model.QueryDeviceData + DeviceType[DeviceType["STATION"] = 0] = "STATION"; + DeviceType[DeviceType["CAMERA"] = 1] = "CAMERA"; + DeviceType[DeviceType["SENSOR"] = 2] = "SENSOR"; + DeviceType[DeviceType["FLOODLIGHT"] = 3] = "FLOODLIGHT"; + DeviceType[DeviceType["CAMERA_E"] = 4] = "CAMERA_E"; + DeviceType[DeviceType["DOORBELL"] = 5] = "DOORBELL"; + DeviceType[DeviceType["BATTERY_DOORBELL"] = 7] = "BATTERY_DOORBELL"; + DeviceType[DeviceType["CAMERA2C"] = 8] = "CAMERA2C"; + DeviceType[DeviceType["CAMERA2"] = 9] = "CAMERA2"; + DeviceType[DeviceType["MOTION_SENSOR"] = 10] = "MOTION_SENSOR"; + DeviceType[DeviceType["KEYPAD"] = 11] = "KEYPAD"; + DeviceType[DeviceType["CAMERA2_PRO"] = 14] = "CAMERA2_PRO"; + DeviceType[DeviceType["CAMERA2C_PRO"] = 15] = "CAMERA2C_PRO"; + DeviceType[DeviceType["BATTERY_DOORBELL_2"] = 16] = "BATTERY_DOORBELL_2"; + DeviceType[DeviceType["HB3"] = 18] = "HB3"; + DeviceType[DeviceType["CAMERA3"] = 19] = "CAMERA3"; + DeviceType[DeviceType["CAMERA3C"] = 23] = "CAMERA3C"; + DeviceType[DeviceType["PROFESSIONAL_247"] = 24] = "PROFESSIONAL_247"; + DeviceType[DeviceType["MINIBASE_CHIME"] = 25] = "MINIBASE_CHIME"; + DeviceType[DeviceType["CAMERA3_PRO"] = 26] = "CAMERA3_PRO"; + DeviceType[DeviceType["INDOOR_CAMERA"] = 30] = "INDOOR_CAMERA"; + DeviceType[DeviceType["INDOOR_PT_CAMERA"] = 31] = "INDOOR_PT_CAMERA"; + DeviceType[DeviceType["SOLO_CAMERA"] = 32] = "SOLO_CAMERA"; + DeviceType[DeviceType["SOLO_CAMERA_PRO"] = 33] = "SOLO_CAMERA_PRO"; + DeviceType[DeviceType["INDOOR_CAMERA_1080"] = 34] = "INDOOR_CAMERA_1080"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_1080"] = 35] = "INDOOR_PT_CAMERA_1080"; + DeviceType[DeviceType["FLOODLIGHT_CAMERA_8422"] = 37] = "FLOODLIGHT_CAMERA_8422"; + DeviceType[DeviceType["FLOODLIGHT_CAMERA_8423"] = 38] = "FLOODLIGHT_CAMERA_8423"; + DeviceType[DeviceType["FLOODLIGHT_CAMERA_8424"] = 39] = "FLOODLIGHT_CAMERA_8424"; + DeviceType[DeviceType["INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT"] = 44] = "INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT"; + DeviceType[DeviceType["INDOOR_OUTDOOR_CAMERA_2K"] = 45] = "INDOOR_OUTDOOR_CAMERA_2K"; + DeviceType[DeviceType["INDOOR_OUTDOOR_CAMERA_1080P"] = 46] = "INDOOR_OUTDOOR_CAMERA_1080P"; + DeviceType[DeviceType["FLOODLIGHT_CAMERA_8425"] = 47] = "FLOODLIGHT_CAMERA_8425"; + DeviceType[DeviceType["OUTDOOR_PT_CAMERA"] = 48] = "OUTDOOR_PT_CAMERA"; + DeviceType[DeviceType["LOCK_BLE"] = 50] = "LOCK_BLE"; + DeviceType[DeviceType["LOCK_WIFI"] = 51] = "LOCK_WIFI"; + DeviceType[DeviceType["LOCK_BLE_NO_FINGER"] = 52] = "LOCK_BLE_NO_FINGER"; + DeviceType[DeviceType["LOCK_WIFI_NO_FINGER"] = 53] = "LOCK_WIFI_NO_FINGER"; + DeviceType[DeviceType["LOCK_8503"] = 54] = "LOCK_8503"; + DeviceType[DeviceType["LOCK_8530"] = 55] = "LOCK_8530"; + DeviceType[DeviceType["LOCK_85A3"] = 56] = "LOCK_85A3"; + DeviceType[DeviceType["LOCK_8592"] = 57] = "LOCK_8592"; + DeviceType[DeviceType["LOCK_8504"] = 58] = "LOCK_8504"; + DeviceType[DeviceType["SOLO_CAMERA_SPOTLIGHT_1080"] = 60] = "SOLO_CAMERA_SPOTLIGHT_1080"; + DeviceType[DeviceType["SOLO_CAMERA_SPOTLIGHT_2K"] = 61] = "SOLO_CAMERA_SPOTLIGHT_2K"; + DeviceType[DeviceType["SOLO_CAMERA_SPOTLIGHT_SOLAR"] = 62] = "SOLO_CAMERA_SPOTLIGHT_SOLAR"; + DeviceType[DeviceType["SOLO_CAMERA_SOLAR"] = 63] = "SOLO_CAMERA_SOLAR"; + DeviceType[DeviceType["SOLO_CAMERA_C210"] = 64] = "SOLO_CAMERA_C210"; + DeviceType[DeviceType["FLOODLIGHT_CAMERA_8426"] = 87] = "FLOODLIGHT_CAMERA_8426"; + DeviceType[DeviceType["SOLO_CAMERA_E30"] = 88] = "SOLO_CAMERA_E30"; + DeviceType[DeviceType["EUFYCAM_S4"] = 89] = "EUFYCAM_S4"; + DeviceType[DeviceType["SMART_DROP"] = 90] = "SMART_DROP"; + DeviceType[DeviceType["BATTERY_DOORBELL_PLUS"] = 91] = "BATTERY_DOORBELL_PLUS"; + DeviceType[DeviceType["DOORBELL_SOLO"] = 93] = "DOORBELL_SOLO"; + DeviceType[DeviceType["BATTERY_DOORBELL_PLUS_E340"] = 94] = "BATTERY_DOORBELL_PLUS_E340"; + DeviceType[DeviceType["BATTERY_DOORBELL_C30"] = 95] = "BATTERY_DOORBELL_C30"; + DeviceType[DeviceType["BATTERY_DOORBELL_C31"] = 96] = "BATTERY_DOORBELL_C31"; + DeviceType[DeviceType["INDOOR_COST_DOWN_CAMERA"] = 100] = "INDOOR_COST_DOWN_CAMERA"; + DeviceType[DeviceType["CAMERA_GUN"] = 101] = "CAMERA_GUN"; + DeviceType[DeviceType["CAMERA_SNAIL"] = 102] = "CAMERA_SNAIL"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_S350"] = 104] = "INDOOR_PT_CAMERA_S350"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_E30"] = 105] = "INDOOR_PT_CAMERA_E30"; + DeviceType[DeviceType["CAMERA_FG"] = 110] = "CAMERA_FG"; + DeviceType[DeviceType["CAMERA_GARAGE_T8453_COMMON"] = 131] = "CAMERA_GARAGE_T8453_COMMON"; + DeviceType[DeviceType["CAMERA_GARAGE_T8452"] = 132] = "CAMERA_GARAGE_T8452"; + DeviceType[DeviceType["CAMERA_GARAGE_T8453"] = 133] = "CAMERA_GARAGE_T8453"; + DeviceType[DeviceType["SMART_SAFE_7400"] = 140] = "SMART_SAFE_7400"; + DeviceType[DeviceType["SMART_SAFE_7401"] = 141] = "SMART_SAFE_7401"; + DeviceType[DeviceType["SMART_SAFE_7402"] = 142] = "SMART_SAFE_7402"; + DeviceType[DeviceType["SMART_SAFE_7403"] = 143] = "SMART_SAFE_7403"; + DeviceType[DeviceType["WALL_LIGHT_CAM"] = 151] = "WALL_LIGHT_CAM"; + DeviceType[DeviceType["SMART_TRACK_LINK"] = 157] = "SMART_TRACK_LINK"; + DeviceType[DeviceType["SMART_TRACK_CARD"] = 159] = "SMART_TRACK_CARD"; + DeviceType[DeviceType["LOCK_8502"] = 180] = "LOCK_8502"; + DeviceType[DeviceType["LOCK_8506"] = 184] = "LOCK_8506"; + DeviceType[DeviceType["WALL_LIGHT_CAM_81A0"] = 10005] = "WALL_LIGHT_CAM_81A0"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_C220"] = 10008] = "INDOOR_PT_CAMERA_C220"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_C210"] = 10009] = "INDOOR_PT_CAMERA_C210"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_C220_V2"] = 10010] = "INDOOR_PT_CAMERA_C220_V2"; + DeviceType[DeviceType["INDOOR_PT_CAMERA_C220_V3"] = 10011] = "INDOOR_PT_CAMERA_C220_V3"; +})(DeviceType || (exports.DeviceType = DeviceType = {})); +var ParamType; +(function (ParamType) { + //List retrieved from com.oceanwing.battery.cam.binder.model.CameraParams + ParamType[ParamType["CHIME_STATE"] = 2015] = "CHIME_STATE"; + ParamType[ParamType["DETECT_EXPOSURE"] = 2023] = "DETECT_EXPOSURE"; + ParamType[ParamType["DETECT_MODE"] = 2004] = "DETECT_MODE"; + ParamType[ParamType["DETECT_MOTION_SENSITIVE"] = 2005] = "DETECT_MOTION_SENSITIVE"; + ParamType[ParamType["DETECT_SCENARIO"] = 2028] = "DETECT_SCENARIO"; + ParamType[ParamType["DETECT_SWITCH"] = 2027] = "DETECT_SWITCH"; + ParamType[ParamType["DETECT_ZONE"] = 2006] = "DETECT_ZONE"; + ParamType[ParamType["DOORBELL_AUDIO_RECODE"] = 2042] = "DOORBELL_AUDIO_RECODE"; + ParamType[ParamType["DOORBELL_BRIGHTNESS"] = 2032] = "DOORBELL_BRIGHTNESS"; + ParamType[ParamType["DOORBELL_DISTORTION"] = 2033] = "DOORBELL_DISTORTION"; + ParamType[ParamType["DOORBELL_HDR"] = 2029] = "DOORBELL_HDR"; + ParamType[ParamType["DOORBELL_IR_MODE"] = 2030] = "DOORBELL_IR_MODE"; + ParamType[ParamType["DOORBELL_LED_NIGHT_MODE"] = 2039] = "DOORBELL_LED_NIGHT_MODE"; + ParamType[ParamType["DOORBELL_MOTION_ADVANCE_OPTION"] = 2041] = "DOORBELL_MOTION_ADVANCE_OPTION"; + ParamType[ParamType["DOORBELL_MOTION_NOTIFICATION"] = 2035] = "DOORBELL_MOTION_NOTIFICATION"; + ParamType[ParamType["DOORBELL_NOTIFICATION_JUMP_MODE"] = 2038] = "DOORBELL_NOTIFICATION_JUMP_MODE"; + ParamType[ParamType["DOORBELL_NOTIFICATION_OPEN"] = 2036] = "DOORBELL_NOTIFICATION_OPEN"; + ParamType[ParamType["DOORBELL_RECORD_QUALITY"] = 2034] = "DOORBELL_RECORD_QUALITY"; + ParamType[ParamType["DOORBELL_RING_RECORD"] = 2040] = "DOORBELL_RING_RECORD"; + ParamType[ParamType["DOORBELL_SNOOZE_START_TIME"] = 2037] = "DOORBELL_SNOOZE_START_TIME"; + ParamType[ParamType["DOORBELL_VIDEO_QUALITY"] = 2031] = "DOORBELL_VIDEO_QUALITY"; + ParamType[ParamType["DOORBELL_CHIME_MODE"] = 100000] = "DOORBELL_CHIME_MODE"; + ParamType[ParamType["NIGHT_VISUAL"] = 2002] = "NIGHT_VISUAL"; + ParamType[ParamType["OPEN_DEVICE"] = 2001] = "OPEN_DEVICE"; + ParamType[ParamType["RINGING_VOLUME"] = 2022] = "RINGING_VOLUME"; + ParamType[ParamType["SDCARD"] = 2010] = "SDCARD"; + ParamType[ParamType["UN_DETECT_ZONE"] = 2007] = "UN_DETECT_ZONE"; + ParamType[ParamType["VOLUME"] = 2003] = "VOLUME"; + ParamType[ParamType["COMMAND_LED_NIGHT_OPEN"] = 1026] = "COMMAND_LED_NIGHT_OPEN"; + ParamType[ParamType["COMMAND_MOTION_DETECTION_PACKAGE"] = 1016] = "COMMAND_MOTION_DETECTION_PACKAGE"; + ParamType[ParamType["COMMAND_HDR"] = 1019] = "COMMAND_HDR"; + ParamType[ParamType["COMMAND_DISTORTION_CORRECTION"] = 1022] = "COMMAND_DISTORTION_CORRECTION"; + ParamType[ParamType["COMMAND_VIDEO_QUALITY"] = 1020] = "COMMAND_VIDEO_QUALITY"; + ParamType[ParamType["COMMAND_VIDEO_RECORDING_QUALITY"] = 1023] = "COMMAND_VIDEO_RECORDING_QUALITY"; + ParamType[ParamType["COMMAND_VIDEO_RING_RECORD"] = 1027] = "COMMAND_VIDEO_RING_RECORD"; + ParamType[ParamType["COMMAND_AUDIO_RECORDING"] = 1029] = "COMMAND_AUDIO_RECORDING"; + ParamType[ParamType["COMMAND_INDOOR_CHIME"] = 1006] = "COMMAND_INDOOR_CHIME"; + ParamType[ParamType["COMMAND_RINGTONE_VOLUME"] = 1012] = "COMMAND_RINGTONE_VOLUME"; + ParamType[ParamType["COMMAND_NOTIFICATION_RING"] = 1031] = "COMMAND_NOTIFICATION_RING"; + ParamType[ParamType["COMMAND_NOTIFICATION_TYPE"] = 1030] = "COMMAND_NOTIFICATION_TYPE"; + ParamType[ParamType["COMMAND_QUICK_RESPONSE"] = 1004] = "COMMAND_QUICK_RESPONSE"; + ParamType[ParamType["COMMAND_START_LIVESTREAM"] = 1000] = "COMMAND_START_LIVESTREAM"; + ParamType[ParamType["COMMAND_STREAM_INFO"] = 1005] = "COMMAND_STREAM_INFO"; + ParamType[ParamType["COMMAND_VOLTAGE_INFO"] = 1015] = "COMMAND_VOLTAGE_INFO"; + // Inferred from source + ParamType[ParamType["SNOOZE_MODE"] = 1271] = "SNOOZE_MODE"; + ParamType[ParamType["WATERMARK_MODE"] = 1214] = "WATERMARK_MODE"; + ParamType[ParamType["DEVICE_UPGRADE_NOW"] = 1134] = "DEVICE_UPGRADE_NOW"; + ParamType[ParamType["CAMERA_UPGRADE_NOW"] = 1133] = "CAMERA_UPGRADE_NOW"; + ParamType[ParamType["DEFAULT_SCHEDULE_MODE"] = 1257] = "DEFAULT_SCHEDULE_MODE"; + ParamType[ParamType["GUARD_MODE"] = 1224] = "GUARD_MODE"; + ParamType[ParamType["FLOODLIGHT_MANUAL_SWITCH"] = 1400] = "FLOODLIGHT_MANUAL_SWITCH"; + ParamType[ParamType["FLOODLIGHT_MANUAL_BRIGHTNESS"] = 1401] = "FLOODLIGHT_MANUAL_BRIGHTNESS"; + ParamType[ParamType["FLOODLIGHT_MOTION_BRIGHTNESS"] = 1412] = "FLOODLIGHT_MOTION_BRIGHTNESS"; + ParamType[ParamType["FLOODLIGHT_SCHEDULE_BRIGHTNESS"] = 1413] = "FLOODLIGHT_SCHEDULE_BRIGHTNESS"; + ParamType[ParamType["FLOODLIGHT_MOTION_SENSITIVTY"] = 1272] = "FLOODLIGHT_MOTION_SENSITIVTY"; + ParamType[ParamType["CAMERA_SPEAKER_VOLUME"] = 1230] = "CAMERA_SPEAKER_VOLUME"; + ParamType[ParamType["CAMERA_RECORD_ENABLE_AUDIO"] = 1366] = "CAMERA_RECORD_ENABLE_AUDIO"; + ParamType[ParamType["CAMERA_RECORD_RETRIGGER_INTERVAL"] = 1250] = "CAMERA_RECORD_RETRIGGER_INTERVAL"; + ParamType[ParamType["CAMERA_RECORD_CLIP_LENGTH"] = 1249] = "CAMERA_RECORD_CLIP_LENGTH"; + ParamType[ParamType["CAMERA_IR_CUT"] = 1013] = "CAMERA_IR_CUT"; + ParamType[ParamType["CAMERA_PIR"] = 1011] = "CAMERA_PIR"; + ParamType[ParamType["CAMERA_WIFI_RSSI"] = 1142] = "CAMERA_WIFI_RSSI"; + ParamType[ParamType["CAMERA_MOTION_ZONES"] = 1204] = "CAMERA_MOTION_ZONES"; + // Set only params? + ParamType[ParamType["PUSH_MSG_MODE"] = 1252] = "PUSH_MSG_MODE"; + ParamType[ParamType["PRIVATE_MODE"] = 99904] = "PRIVATE_MODE"; + ParamType[ParamType["CUSTOM_RTSP_URL"] = 999991] = "CUSTOM_RTSP_URL"; +})(ParamType || (exports.ParamType = ParamType = {})); +var AlarmMode; +(function (AlarmMode) { + AlarmMode[AlarmMode["AWAY"] = 0] = "AWAY"; + AlarmMode[AlarmMode["HOME"] = 1] = "HOME"; + AlarmMode[AlarmMode["CUSTOM1"] = 3] = "CUSTOM1"; + AlarmMode[AlarmMode["CUSTOM2"] = 4] = "CUSTOM2"; + AlarmMode[AlarmMode["CUSTOM3"] = 5] = "CUSTOM3"; + AlarmMode[AlarmMode["DISARMED"] = 63] = "DISARMED"; +})(AlarmMode || (exports.AlarmMode = AlarmMode = {})); +var GuardMode; +(function (GuardMode) { + GuardMode[GuardMode["UNKNOWN"] = -1] = "UNKNOWN"; + GuardMode[GuardMode["AWAY"] = 0] = "AWAY"; + GuardMode[GuardMode["HOME"] = 1] = "HOME"; + GuardMode[GuardMode["DISARMED"] = 63] = "DISARMED"; + GuardMode[GuardMode["SCHEDULE"] = 2] = "SCHEDULE"; + GuardMode[GuardMode["GEO"] = 47] = "GEO"; + GuardMode[GuardMode["CUSTOM1"] = 3] = "CUSTOM1"; + GuardMode[GuardMode["CUSTOM2"] = 4] = "CUSTOM2"; + GuardMode[GuardMode["CUSTOM3"] = 5] = "CUSTOM3"; + GuardMode[GuardMode["OFF"] = 6] = "OFF"; +})(GuardMode || (exports.GuardMode = GuardMode = {})); +var ResponseErrorCode; +(function (ResponseErrorCode) { + ResponseErrorCode[ResponseErrorCode["CODE_CONNECT_ERROR"] = 997] = "CODE_CONNECT_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_ERROR_PIN"] = 36006] = "CODE_ERROR_PIN"; + //CODE_IS_OPEN = 25074, + //CODE_IS_OPEN_OTHERS = 25080, + ResponseErrorCode[ResponseErrorCode["CODE_MULTI_ALARM"] = 36002] = "CODE_MULTI_ALARM"; + ResponseErrorCode[ResponseErrorCode["CODE_NEED_VERIFY_CODE"] = 26052] = "CODE_NEED_VERIFY_CODE"; + ResponseErrorCode[ResponseErrorCode["CODE_NETWORK_ERROR"] = 998] = "CODE_NETWORK_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_PHONE_NONE_SUPPORT"] = 26058] = "CODE_PHONE_NONE_SUPPORT"; + ResponseErrorCode[ResponseErrorCode["CODE_SERVER_ERROR"] = 999] = "CODE_SERVER_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_SERVER_UNDER_MAINTENANCE"] = 424] = "CODE_SERVER_UNDER_MAINTENANCE"; + ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_ERROR"] = 26050] = "CODE_VERIFY_CODE_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_EXPIRED"] = 26051] = "CODE_VERIFY_CODE_EXPIRED"; + ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_MAX"] = 26053] = "CODE_VERIFY_CODE_MAX"; + ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_NONE_MATCH"] = 26054] = "CODE_VERIFY_CODE_NONE_MATCH"; + ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_PASSWORD_ERROR"] = 26055] = "CODE_VERIFY_PASSWORD_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_WHATEVER_ERROR"] = 0] = "CODE_WHATEVER_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_EMAIL_LIMIT_EXCEED"] = 25077] = "CODE_EMAIL_LIMIT_EXCEED"; + ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_EXPIRED"] = 25075] = "CODE_GIVE_AWAY_EXPIRED"; + ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_INVALID"] = 25076] = "CODE_GIVE_AWAY_INVALID"; + ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_NOT_EXIST"] = 25079] = "CODE_GIVE_AWAY_NOT_EXIST"; + ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_PACKAGE_NOT_MATCH"] = 25078] = "CODE_GIVE_AWAY_PACKAGE_NOT_MATCH"; + ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_PACKAGE_TYPE_NOT_MATCH"] = 25080] = "CODE_GIVE_AWAY_PACKAGE_TYPE_NOT_MATCH"; + ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_RECORD_EXIST"] = 25074] = "CODE_GIVE_AWAY_RECORD_EXIST"; + ResponseErrorCode[ResponseErrorCode["CODE_INPUT_PARAM_INVALID"] = 10000] = "CODE_INPUT_PARAM_INVALID"; + ResponseErrorCode[ResponseErrorCode["CODE_MAX_FORGET_PASSWORD_ERROR"] = 100035] = "CODE_MAX_FORGET_PASSWORD_ERROR"; + ResponseErrorCode[ResponseErrorCode["CODE_MAX_LOGIN_LIMIT"] = 100028] = "CODE_MAX_LOGIN_LIMIT"; + ResponseErrorCode[ResponseErrorCode["CODE_MAX_REGISTER_ERROR"] = 100034] = "CODE_MAX_REGISTER_ERROR"; + ResponseErrorCode[ResponseErrorCode["EMAIL_NOT_REGISTERED_ERROR"] = 22008] = "EMAIL_NOT_REGISTERED_ERROR"; + ResponseErrorCode[ResponseErrorCode["LOGIN_CAPTCHA_ERROR"] = 100033] = "LOGIN_CAPTCHA_ERROR"; + ResponseErrorCode[ResponseErrorCode["LOGIN_DECRYPTION_FAIL"] = 100030] = "LOGIN_DECRYPTION_FAIL"; + ResponseErrorCode[ResponseErrorCode["LOGIN_ENCRYPTION_FAIL"] = 100029] = "LOGIN_ENCRYPTION_FAIL"; + ResponseErrorCode[ResponseErrorCode["LOGIN_INVALID_TOUCH_ID"] = 26047] = "LOGIN_INVALID_TOUCH_ID"; + ResponseErrorCode[ResponseErrorCode["LOGIN_NEED_CAPTCHA"] = 100032] = "LOGIN_NEED_CAPTCHA"; + ResponseErrorCode[ResponseErrorCode["MULTIPLE_EMAIL_PASSWORD_ERROR"] = 26006] = "MULTIPLE_EMAIL_PASSWORD_ERROR"; + ResponseErrorCode[ResponseErrorCode["MULTIPLE_INACTIVATED_ERROR"] = 26015] = "MULTIPLE_INACTIVATED_ERROR"; + ResponseErrorCode[ResponseErrorCode["MULTIPLE_REGISTRATION_ERROR"] = 26000] = "MULTIPLE_REGISTRATION_ERROR"; + ResponseErrorCode[ResponseErrorCode["RESP_ERROR_CODE_SESSION_TIMEOUT"] = 401] = "RESP_ERROR_CODE_SESSION_TIMEOUT"; + ResponseErrorCode[ResponseErrorCode["CODE_REQUEST_TOO_FAST"] = 250999] = "CODE_REQUEST_TOO_FAST"; +})(ResponseErrorCode || (exports.ResponseErrorCode = ResponseErrorCode = {})); +var VerfyCodeTypes; +(function (VerfyCodeTypes) { + VerfyCodeTypes[VerfyCodeTypes["TYPE_SMS"] = 0] = "TYPE_SMS"; + VerfyCodeTypes[VerfyCodeTypes["TYPE_PUSH"] = 1] = "TYPE_PUSH"; + VerfyCodeTypes[VerfyCodeTypes["TYPE_EMAIL"] = 2] = "TYPE_EMAIL"; +})(VerfyCodeTypes || (exports.VerfyCodeTypes = VerfyCodeTypes = {})); +var StorageType; +(function (StorageType) { + StorageType[StorageType["NONE"] = 0] = "NONE"; + StorageType[StorageType["LOCAL"] = 1] = "LOCAL"; + StorageType[StorageType["CLOUD"] = 2] = "CLOUD"; + StorageType[StorageType["LOCAL_AND_CLOUD"] = 3] = "LOCAL_AND_CLOUD"; +})(StorageType || (exports.StorageType = StorageType = {})); +var PowerSource; +(function (PowerSource) { + PowerSource[PowerSource["BATTERY"] = 0] = "BATTERY"; + PowerSource[PowerSource["SOLAR_PANEL"] = 1] = "SOLAR_PANEL"; +})(PowerSource || (exports.PowerSource = PowerSource = {})); +var PublicKeyType; +(function (PublicKeyType) { + PublicKeyType[PublicKeyType["SERVER"] = 1] = "SERVER"; + PublicKeyType[PublicKeyType["LOCK"] = 2] = "LOCK"; +})(PublicKeyType || (exports.PublicKeyType = PublicKeyType = {})); +var FloodlightMotionTriggeredDistance; +(function (FloodlightMotionTriggeredDistance) { + FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["MIN"] = 66] = "MIN"; + FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["LOW"] = 76] = "LOW"; + FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["MEDIUM"] = 86] = "MEDIUM"; + FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["HIGH"] = 91] = "HIGH"; + FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["MAX"] = 96] = "MAX"; +})(FloodlightMotionTriggeredDistance || (exports.FloodlightMotionTriggeredDistance = FloodlightMotionTriggeredDistance = {})); +var NotificationType; +(function (NotificationType) { + NotificationType[NotificationType["MOST_EFFICIENT"] = 1] = "MOST_EFFICIENT"; + NotificationType[NotificationType["INCLUDE_THUMBNAIL"] = 2] = "INCLUDE_THUMBNAIL"; + NotificationType[NotificationType["FULL_EFFECT"] = 3] = "FULL_EFFECT"; +})(NotificationType || (exports.NotificationType = NotificationType = {})); +var WalllightNotificationType; +(function (WalllightNotificationType) { + WalllightNotificationType[WalllightNotificationType["ONLY_TEXT"] = 1] = "ONLY_TEXT"; + WalllightNotificationType[WalllightNotificationType["WITH_THUMBNAIL"] = 2] = "WITH_THUMBNAIL"; +})(WalllightNotificationType || (exports.WalllightNotificationType = WalllightNotificationType = {})); +var AlarmTone; +(function (AlarmTone) { + AlarmTone[AlarmTone["ALARM_TONE1"] = 1] = "ALARM_TONE1"; + AlarmTone[AlarmTone["ALARM_TONE2"] = 2] = "ALARM_TONE2"; +})(AlarmTone || (exports.AlarmTone = AlarmTone = {})); +var NotificationSwitchMode; +(function (NotificationSwitchMode) { + NotificationSwitchMode[NotificationSwitchMode["APP"] = 16] = "APP"; + NotificationSwitchMode[NotificationSwitchMode["GEOFENCE"] = 32] = "GEOFENCE"; + NotificationSwitchMode[NotificationSwitchMode["SCHEDULE"] = 64] = "SCHEDULE"; + NotificationSwitchMode[NotificationSwitchMode["KEYPAD"] = 128] = "KEYPAD"; +})(NotificationSwitchMode || (exports.NotificationSwitchMode = NotificationSwitchMode = {})); +var GuardModeSecuritySettingsAction; +(function (GuardModeSecuritySettingsAction) { + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["VIDEO_RECORDING"] = 1] = "VIDEO_RECORDING"; + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["CAMERA_ALARM"] = 2] = "CAMERA_ALARM"; + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["HOMEBASE_ALARM"] = 4] = "HOMEBASE_ALARM"; + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["NOTIFICATON"] = 8] = "NOTIFICATON"; + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["PRIVACY"] = 16] = "PRIVACY"; + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["LIGHT_ALARM"] = 32] = "LIGHT_ALARM"; + GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["PROFESSIONAL_SECURITY"] = 64] = "PROFESSIONAL_SECURITY"; +})(GuardModeSecuritySettingsAction || (exports.GuardModeSecuritySettingsAction = GuardModeSecuritySettingsAction = {})); +var TimeFormat; +(function (TimeFormat) { + TimeFormat[TimeFormat["FORMAT_12H"] = 0] = "FORMAT_12H"; + TimeFormat[TimeFormat["FORMAT_24H"] = 1] = "FORMAT_24H"; +})(TimeFormat || (exports.TimeFormat = TimeFormat = {})); +var SignalLevel; +(function (SignalLevel) { + SignalLevel[SignalLevel["NO_SIGNAL"] = 0] = "NO_SIGNAL"; + SignalLevel[SignalLevel["WEAK"] = 1] = "WEAK"; + SignalLevel[SignalLevel["NORMAL"] = 2] = "NORMAL"; + SignalLevel[SignalLevel["STRONG"] = 3] = "STRONG"; + SignalLevel[SignalLevel["FULL"] = 4] = "FULL"; +})(SignalLevel || (exports.SignalLevel = SignalLevel = {})); +var MotionDetectionMode; +(function (MotionDetectionMode) { + MotionDetectionMode[MotionDetectionMode["STANDARD"] = 0] = "STANDARD"; + MotionDetectionMode[MotionDetectionMode["ADVANCED"] = 1] = "ADVANCED"; +})(MotionDetectionMode || (exports.MotionDetectionMode = MotionDetectionMode = {})); +var VideoTypeStoreToNAS; +(function (VideoTypeStoreToNAS) { + VideoTypeStoreToNAS[VideoTypeStoreToNAS["Events"] = 0] = "Events"; + VideoTypeStoreToNAS[VideoTypeStoreToNAS["ContinuousRecording"] = 1] = "ContinuousRecording"; +})(VideoTypeStoreToNAS || (exports.VideoTypeStoreToNAS = VideoTypeStoreToNAS = {})); +var DualCamStreamMode; +(function (DualCamStreamMode) { + DualCamStreamMode[DualCamStreamMode["SINGLE_MAIN"] = 0] = "SINGLE_MAIN"; + DualCamStreamMode[DualCamStreamMode["SINGLE_SECOND"] = 1] = "SINGLE_SECOND"; + DualCamStreamMode[DualCamStreamMode["PIP_MAIN_UPPER_LEFT"] = 2] = "PIP_MAIN_UPPER_LEFT"; + DualCamStreamMode[DualCamStreamMode["PIP_MAIN_UPPER_RIGHT"] = 3] = "PIP_MAIN_UPPER_RIGHT"; + DualCamStreamMode[DualCamStreamMode["PIP_MAIN_LOWER_LEFT"] = 4] = "PIP_MAIN_LOWER_LEFT"; + DualCamStreamMode[DualCamStreamMode["PIP_MAIN_LOWER_RIGHT"] = 5] = "PIP_MAIN_LOWER_RIGHT"; + DualCamStreamMode[DualCamStreamMode["PIP_SECOND_UPPER_LEFT"] = 6] = "PIP_SECOND_UPPER_LEFT"; + DualCamStreamMode[DualCamStreamMode["PIP_SECOND_UPPER_RIGHT"] = 7] = "PIP_SECOND_UPPER_RIGHT"; + DualCamStreamMode[DualCamStreamMode["PIP_SECOND_LOWER_LEFT"] = 8] = "PIP_SECOND_LOWER_LEFT"; + DualCamStreamMode[DualCamStreamMode["PIP_SECOND_LOWER_RIGHT"] = 9] = "PIP_SECOND_LOWER_RIGHT"; + DualCamStreamMode[DualCamStreamMode["SPLICE_LEFT"] = 10] = "SPLICE_LEFT"; + DualCamStreamMode[DualCamStreamMode["SPLICE_RIGHT"] = 11] = "SPLICE_RIGHT"; + DualCamStreamMode[DualCamStreamMode["SPLICE_ABOVE"] = 12] = "SPLICE_ABOVE"; + DualCamStreamMode[DualCamStreamMode["SPLICE_UNDER"] = 13] = "SPLICE_UNDER"; + DualCamStreamMode[DualCamStreamMode["SPLICE_MIRROR"] = 14] = "SPLICE_MIRROR"; +})(DualCamStreamMode || (exports.DualCamStreamMode = DualCamStreamMode = {})); +var UserType; +(function (UserType) { + UserType[UserType["NORMAL"] = 0] = "NORMAL"; + UserType[UserType["ADMIN"] = 1] = "ADMIN"; + UserType[UserType["SUPER_ADMIN"] = 2] = "SUPER_ADMIN"; + UserType[UserType["ENTRY_ONLY"] = 4] = "ENTRY_ONLY"; +})(UserType || (exports.UserType = UserType = {})); +var UserPasswordType; +(function (UserPasswordType) { + UserPasswordType[UserPasswordType["PIN"] = 1] = "PIN"; + UserPasswordType[UserPasswordType["FINGERPRINT"] = 2] = "FINGERPRINT"; +})(UserPasswordType || (exports.UserPasswordType = UserPasswordType = {})); +var HB3DetectionTypes; +(function (HB3DetectionTypes) { + HB3DetectionTypes[HB3DetectionTypes["HUMAN_DETECTION"] = 2] = "HUMAN_DETECTION"; + HB3DetectionTypes[HB3DetectionTypes["VEHICLE_DETECTION"] = 4] = "VEHICLE_DETECTION"; + HB3DetectionTypes[HB3DetectionTypes["PET_DETECTION"] = 8] = "PET_DETECTION"; + HB3DetectionTypes[HB3DetectionTypes["ALL_OTHER_MOTION"] = 32768] = "ALL_OTHER_MOTION"; + HB3DetectionTypes[HB3DetectionTypes["HUMAN_RECOGNITION"] = 131072] = "HUMAN_RECOGNITION"; +})(HB3DetectionTypes || (exports.HB3DetectionTypes = HB3DetectionTypes = {})); +var T8170DetectionTypes; +(function (T8170DetectionTypes) { + T8170DetectionTypes[T8170DetectionTypes["HUMAN_DETECTION"] = 3] = "HUMAN_DETECTION"; + T8170DetectionTypes[T8170DetectionTypes["VEHICLE_DETECTION"] = 4] = "VEHICLE_DETECTION"; + T8170DetectionTypes[T8170DetectionTypes["ALL_OTHER_MOTION"] = 32768] = "ALL_OTHER_MOTION"; +})(T8170DetectionTypes || (exports.T8170DetectionTypes = T8170DetectionTypes = {})); +var SoloCameraDetectionTypes; +(function (SoloCameraDetectionTypes) { + SoloCameraDetectionTypes[SoloCameraDetectionTypes["HUMAN_DETECTION"] = 3] = "HUMAN_DETECTION"; + SoloCameraDetectionTypes[SoloCameraDetectionTypes["ALL_OTHER_MOTION"] = 32771] = "ALL_OTHER_MOTION"; +})(SoloCameraDetectionTypes || (exports.SoloCameraDetectionTypes = SoloCameraDetectionTypes = {})); +var IndoorS350DetectionTypes; +(function (IndoorS350DetectionTypes) { + IndoorS350DetectionTypes[IndoorS350DetectionTypes["HUMAN_DETECTION"] = 3] = "HUMAN_DETECTION"; + IndoorS350DetectionTypes[IndoorS350DetectionTypes["PET_DETECTION"] = 8] = "PET_DETECTION"; + IndoorS350DetectionTypes[IndoorS350DetectionTypes["ALL_OTHER_MOTION"] = 32768] = "ALL_OTHER_MOTION"; +})(IndoorS350DetectionTypes || (exports.IndoorS350DetectionTypes = IndoorS350DetectionTypes = {})); +var IndoorDetectionTypes; +(function (IndoorDetectionTypes) { + IndoorDetectionTypes[IndoorDetectionTypes["PERSON_DETECTION"] = 1] = "PERSON_DETECTION"; + IndoorDetectionTypes[IndoorDetectionTypes["PET_DETECTION"] = 2] = "PET_DETECTION"; + IndoorDetectionTypes[IndoorDetectionTypes["ALL_MOTION"] = 4] = "ALL_MOTION"; +})(IndoorDetectionTypes || (exports.IndoorDetectionTypes = IndoorDetectionTypes = {})); +var IndoorMiniDetectionTypes; +(function (IndoorMiniDetectionTypes) { + IndoorMiniDetectionTypes[IndoorMiniDetectionTypes["PERSON_DETECTION"] = 1] = "PERSON_DETECTION"; + IndoorMiniDetectionTypes[IndoorMiniDetectionTypes["ALL_MOTION"] = 4] = "ALL_MOTION"; +})(IndoorMiniDetectionTypes || (exports.IndoorMiniDetectionTypes = IndoorMiniDetectionTypes = {})); +var IndoorS350NotificationTypes; +(function (IndoorS350NotificationTypes) { + IndoorS350NotificationTypes[IndoorS350NotificationTypes["ALL_OTHER_MOTION"] = 801] = "ALL_OTHER_MOTION"; + IndoorS350NotificationTypes[IndoorS350NotificationTypes["HUMAN"] = 802] = "HUMAN"; + IndoorS350NotificationTypes[IndoorS350NotificationTypes["PET"] = 804] = "PET"; + IndoorS350NotificationTypes[IndoorS350NotificationTypes["CRYING"] = 808] = "CRYING"; + IndoorS350NotificationTypes[IndoorS350NotificationTypes["ALL_SOUND"] = 816] = "ALL_SOUND"; +})(IndoorS350NotificationTypes || (exports.IndoorS350NotificationTypes = IndoorS350NotificationTypes = {})); +var FloodlightT8425NotificationTypes; +(function (FloodlightT8425NotificationTypes) { + FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["ALL_OTHER_MOTION"] = 1] = "ALL_OTHER_MOTION"; + FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["HUMAN"] = 2] = "HUMAN"; + FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["PET"] = 4] = "PET"; + FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["VEHICLE"] = 512] = "VEHICLE"; +})(FloodlightT8425NotificationTypes || (exports.FloodlightT8425NotificationTypes = FloodlightT8425NotificationTypes = {})); +var VideoType; +(function (VideoType) { + VideoType[VideoType["RECEIVED_RING"] = 1000] = "RECEIVED_RING"; + VideoType[VideoType["MISSED_RING"] = 1001] = "MISSED_RING"; + VideoType[VideoType["MOTION"] = 1002] = "MOTION"; + VideoType[VideoType["PERSON"] = 1003] = "PERSON"; + VideoType[VideoType["PET"] = 1004] = "PET"; + VideoType[VideoType["CRYING"] = 1005] = "CRYING"; + VideoType[VideoType["SOUND"] = 1006] = "SOUND"; + VideoType[VideoType["PUTDOWN_PACKAGE"] = 65536] = "PUTDOWN_PACKAGE"; + VideoType[VideoType["TAKE_PACKAGE"] = 131072] = "TAKE_PACKAGE"; + VideoType[VideoType["DETECT_PACKAGE"] = 262144] = "DETECT_PACKAGE"; + VideoType[VideoType["RECEIVED_RING_ACK"] = 524288] = "RECEIVED_RING_ACK"; + VideoType[VideoType["RECEIVED_RING_MISS"] = 1048576] = "RECEIVED_RING_MISS"; + VideoType[VideoType["RECEIVED_CAR_GUARD"] = 2097152] = "RECEIVED_CAR_GUARD"; +})(VideoType || (exports.VideoType = VideoType = {})); +var MediaType; +(function (MediaType) { + MediaType[MediaType["NONE"] = -1] = "NONE"; + MediaType[MediaType["H264"] = 0] = "H264"; + MediaType[MediaType["H265"] = 1] = "H265"; +})(MediaType || (exports.MediaType = MediaType = {})); +var RecordType; +(function (RecordType) { + RecordType[RecordType["MOTION"] = 256] = "MOTION"; + RecordType[RecordType["PERSON"] = 512] = "PERSON"; + RecordType[RecordType["PET"] = 1024] = "PET"; + RecordType[RecordType["CRY"] = 2048] = "CRY"; + RecordType[RecordType["SOUND"] = 4096] = "SOUND"; + RecordType[RecordType["VEHICLE"] = 16384] = "VEHICLE"; + RecordType[RecordType["CAR_GUARD"] = 131072] = "CAR_GUARD"; +})(RecordType || (exports.RecordType = RecordType = {})); +var MicStatus; +(function (MicStatus) { + MicStatus[MicStatus["CLOSED"] = 0] = "CLOSED"; + MicStatus[MicStatus["OPENED"] = 1] = "OPENED"; +})(MicStatus || (exports.MicStatus = MicStatus = {})); +var TriggerType; +(function (TriggerType) { + TriggerType[TriggerType["MOTION1"] = 0] = "MOTION1"; + TriggerType[TriggerType["MOTION2"] = 1] = "MOTION2"; + TriggerType[TriggerType["MOTION3"] = 2] = "MOTION3"; + TriggerType[TriggerType["PERSON"] = 4] = "PERSON"; + TriggerType[TriggerType["RING"] = 8] = "RING"; + TriggerType[TriggerType["SENSOR"] = 16] = "SENSOR"; + TriggerType[TriggerType["UNKNOWN"] = 32] = "UNKNOWN"; + TriggerType[TriggerType["MISSED_RING"] = 64] = "MISSED_RING"; + TriggerType[TriggerType["ANSWER_RING"] = 128] = "ANSWER_RING"; +})(TriggerType || (exports.TriggerType = TriggerType = {})); +var LightingActiveMode; +(function (LightingActiveMode) { + LightingActiveMode[LightingActiveMode["DAILY"] = 0] = "DAILY"; + LightingActiveMode[LightingActiveMode["COLORED"] = 1] = "COLORED"; + LightingActiveMode[LightingActiveMode["DYNAMIC"] = 2] = "DYNAMIC"; +})(LightingActiveMode || (exports.LightingActiveMode = LightingActiveMode = {})); +var DailyLightingType; +(function (DailyLightingType) { + DailyLightingType[DailyLightingType["COLD"] = 0] = "COLD"; + DailyLightingType[DailyLightingType["WARM"] = 1] = "WARM"; + DailyLightingType[DailyLightingType["VERY_WARM"] = 2] = "VERY_WARM"; +})(DailyLightingType || (exports.DailyLightingType = DailyLightingType = {})); +var MotionActivationMode; +(function (MotionActivationMode) { + MotionActivationMode[MotionActivationMode["SMART"] = 0] = "SMART"; + MotionActivationMode[MotionActivationMode["FAST"] = 1] = "FAST"; +})(MotionActivationMode || (exports.MotionActivationMode = MotionActivationMode = {})); +var DynamicLightingEffect; +(function (DynamicLightingEffect) { + DynamicLightingEffect[DynamicLightingEffect["FADE"] = 1] = "FADE"; + DynamicLightingEffect[DynamicLightingEffect["BLINK"] = 2] = "BLINK"; +})(DynamicLightingEffect || (exports.DynamicLightingEffect = DynamicLightingEffect = {})); +var GarageDoorState; +(function (GarageDoorState) { + GarageDoorState[GarageDoorState["A_CLOSED"] = 2] = "A_CLOSED"; + GarageDoorState[GarageDoorState["A_CLOSING"] = -102] = "A_CLOSING"; + GarageDoorState[GarageDoorState["A_NO_MOTOR"] = -108] = "A_NO_MOTOR"; + GarageDoorState[GarageDoorState["A_OPENED"] = 1] = "A_OPENED"; + GarageDoorState[GarageDoorState["A_OPENING"] = -101] = "A_OPENING"; + GarageDoorState[GarageDoorState["A_UNKNOWN"] = 16] = "A_UNKNOWN"; + GarageDoorState[GarageDoorState["B_CLOSED"] = 8] = "B_CLOSED"; + GarageDoorState[GarageDoorState["B_CLOSING"] = -104] = "B_CLOSING"; + GarageDoorState[GarageDoorState["B_NO_MOTOR"] = -109] = "B_NO_MOTOR"; + GarageDoorState[GarageDoorState["B_OPENED"] = 4] = "B_OPENED"; + GarageDoorState[GarageDoorState["B_OPENING"] = -103] = "B_OPENING"; + GarageDoorState[GarageDoorState["B_UNKNOWN"] = 32] = "B_UNKNOWN"; + GarageDoorState[GarageDoorState["UNKNOWN"] = 0] = "UNKNOWN"; +})(GarageDoorState || (exports.GarageDoorState = GarageDoorState = {})); +var TrackerType; +(function (TrackerType) { + TrackerType[TrackerType["TRACKER"] = 0] = "TRACKER"; + TrackerType[TrackerType["KEY"] = 1] = "KEY"; + TrackerType[TrackerType["WALLET"] = 2] = "WALLET"; + TrackerType[TrackerType["BAG"] = 3] = "BAG"; + TrackerType[TrackerType["REMOTE"] = 4] = "REMOTE"; + TrackerType[TrackerType["CAMERA"] = 5] = "CAMERA"; + TrackerType[TrackerType["HEADPHONES"] = 6] = "HEADPHONES"; + TrackerType[TrackerType["TOY"] = 7] = "TOY"; + TrackerType[TrackerType["SUITCASE"] = 8] = "SUITCASE"; + TrackerType[TrackerType["HANDBAG"] = 9] = "HANDBAG"; +})(TrackerType || (exports.TrackerType = TrackerType = {})); +var MotionDetectionRangeType; +(function (MotionDetectionRangeType) { + MotionDetectionRangeType[MotionDetectionRangeType["STANDARD"] = 0] = "STANDARD"; + MotionDetectionRangeType[MotionDetectionRangeType["ADVANCED"] = 1] = "ADVANCED"; + MotionDetectionRangeType[MotionDetectionRangeType["AUTOMATIC"] = 2] = "AUTOMATIC"; +})(MotionDetectionRangeType || (exports.MotionDetectionRangeType = MotionDetectionRangeType = {})); +var ViewModeType; +(function (ViewModeType) { + ViewModeType[ViewModeType["SINGLE_VIEW"] = 0] = "SINGLE_VIEW"; + ViewModeType[ViewModeType["DUAL_VIEW"] = 12] = "DUAL_VIEW"; +})(ViewModeType || (exports.ViewModeType = ViewModeType = {})); +var PresetPositionType; +(function (PresetPositionType) { + PresetPositionType[PresetPositionType["PRESET_1"] = 0] = "PRESET_1"; + PresetPositionType[PresetPositionType["PRESET_2"] = 1] = "PRESET_2"; + PresetPositionType[PresetPositionType["PRESET_3"] = 2] = "PRESET_3"; + PresetPositionType[PresetPositionType["PRESET_4"] = 3] = "PRESET_4"; +})(PresetPositionType || (exports.PresetPositionType = PresetPositionType = {})); +; +var DeviceEvent; +(function (DeviceEvent) { + DeviceEvent[DeviceEvent["MotionDetected"] = 0] = "MotionDetected"; + DeviceEvent[DeviceEvent["PersonDetected"] = 1] = "PersonDetected"; + DeviceEvent[DeviceEvent["PetDetected"] = 2] = "PetDetected"; + DeviceEvent[DeviceEvent["SoundDetected"] = 3] = "SoundDetected"; + DeviceEvent[DeviceEvent["CryingDetected"] = 4] = "CryingDetected"; + DeviceEvent[DeviceEvent["Ringing"] = 5] = "Ringing"; + DeviceEvent[DeviceEvent["PackageDelivered"] = 6] = "PackageDelivered"; + DeviceEvent[DeviceEvent["PackageTaken"] = 7] = "PackageTaken"; + DeviceEvent[DeviceEvent["PackageStranded"] = 8] = "PackageStranded"; + DeviceEvent[DeviceEvent["SomeoneLoitering"] = 9] = "SomeoneLoitering"; + DeviceEvent[DeviceEvent["RadarMotionDetected"] = 10] = "RadarMotionDetected"; + DeviceEvent[DeviceEvent["SomeoneGoing"] = 11] = "SomeoneGoing"; + DeviceEvent[DeviceEvent["LeftOpen"] = 12] = "LeftOpen"; + DeviceEvent[DeviceEvent["Jammed"] = 13] = "Jammed"; + DeviceEvent[DeviceEvent["Alarm911"] = 14] = "Alarm911"; + DeviceEvent[DeviceEvent["LowBattery"] = 15] = "LowBattery"; + DeviceEvent[DeviceEvent["LongTimeNotClose"] = 16] = "LongTimeNotClose"; + DeviceEvent[DeviceEvent["ShakeAlarm"] = 17] = "ShakeAlarm"; + DeviceEvent[DeviceEvent["WrontTryProtectAlarm"] = 18] = "WrontTryProtectAlarm"; + DeviceEvent[DeviceEvent["IdentityPersonDetected"] = 19] = "IdentityPersonDetected"; + DeviceEvent[DeviceEvent["StrangerPersonDetected"] = 20] = "StrangerPersonDetected"; + DeviceEvent[DeviceEvent["VehicleDetected"] = 21] = "VehicleDetected"; + DeviceEvent[DeviceEvent["DogDetected"] = 22] = "DogDetected"; + DeviceEvent[DeviceEvent["DogLickDetected"] = 23] = "DogLickDetected"; + DeviceEvent[DeviceEvent["DogPoopDetected"] = 24] = "DogPoopDetected"; + DeviceEvent[DeviceEvent["Lock"] = 25] = "Lock"; + DeviceEvent[DeviceEvent["TamperingAlert"] = 26] = "TamperingAlert"; + DeviceEvent[DeviceEvent["LowTemperatureAlert"] = 27] = "LowTemperatureAlert"; + DeviceEvent[DeviceEvent["HighTemperatureAlert"] = 28] = "HighTemperatureAlert"; + DeviceEvent[DeviceEvent["LidStuckAlert"] = 29] = "LidStuckAlert"; + DeviceEvent[DeviceEvent["PinIncorrectAlert"] = 30] = "PinIncorrectAlert"; + DeviceEvent[DeviceEvent["BatteryFullyChargedAlert"] = 31] = "BatteryFullyChargedAlert"; +})(DeviceEvent || (exports.DeviceEvent = DeviceEvent = {})); +var PropertyName; +(function (PropertyName) { + PropertyName["Name"] = "name"; + PropertyName["Model"] = "model"; + PropertyName["SerialNumber"] = "serialNumber"; + PropertyName["HardwareVersion"] = "hardwareVersion"; + PropertyName["SoftwareVersion"] = "softwareVersion"; + PropertyName["Type"] = "type"; + PropertyName["DeviceStationSN"] = "stationSerialNumber"; + PropertyName["DeviceBattery"] = "battery"; + PropertyName["DeviceBatteryTemp"] = "batteryTemperature"; + PropertyName["DeviceBatteryLow"] = "batteryLow"; + PropertyName["DeviceBatteryIsCharging"] = "batteryIsCharging"; + PropertyName["DeviceLastChargingDays"] = "lastChargingDays"; + PropertyName["DeviceLastChargingTotalEvents"] = "lastChargingTotalEvents"; + PropertyName["DeviceLastChargingRecordedEvents"] = "lastChargingRecordedEvents"; + PropertyName["DeviceLastChargingFalseEvents"] = "lastChargingFalseEvents"; + PropertyName["DeviceBatteryUsageLastWeek"] = "batteryUsageLastWeek"; + PropertyName["DeviceWifiRSSI"] = "wifiRssi"; + PropertyName["DeviceWifiSignalLevel"] = "wifiSignalLevel"; + PropertyName["DeviceEnabled"] = "enabled"; + PropertyName["DeviceAntitheftDetection"] = "antitheftDetection"; + PropertyName["DeviceAutoNightvision"] = "autoNightvision"; + PropertyName["DeviceNightvision"] = "nightvision"; + PropertyName["DeviceStatusLed"] = "statusLed"; + PropertyName["DeviceMotionDetection"] = "motionDetection"; + PropertyName["DeviceMotionDetectionType"] = "motionDetectionType"; + PropertyName["DeviceMotionDetectionSensitivity"] = "motionDetectionSensitivity"; + PropertyName["DeviceMotionZone"] = "motionZone"; + PropertyName["DeviceMotionDetectionRange"] = "motionDetectionRange"; + PropertyName["DeviceMotionDetectionRangeStandardSensitivity"] = "motionDetectionRangeStandardSensitivity"; + PropertyName["DeviceMotionDetectionRangeAdvancedLeftSensitivity"] = "motionDetectionRangeAdvancedLeftSensitivity"; + PropertyName["DeviceMotionDetectionRangeAdvancedMiddleSensitivity"] = "motionDetectionRangeAdvancedMiddleSensitivity"; + PropertyName["DeviceMotionDetectionRangeAdvancedRightSensitivity"] = "motionDetectionRangeAdvancedRightSensitivity"; + PropertyName["DeviceMotionDetectionTestMode"] = "motionDetectionTestMode"; + PropertyName["DeviceMotionDetectionTypeHuman"] = "motionDetectionTypeHuman"; + PropertyName["DeviceMotionDetectionTypeHumanRecognition"] = "motionDetectionTypeHumanRecognition"; + PropertyName["DeviceMotionDetectionTypePet"] = "motionDetectionTypePet"; + PropertyName["DeviceMotionDetectionTypeVehicle"] = "motionDetectionTypeVehicle"; + PropertyName["DeviceMotionDetectionTypeAllOtherMotions"] = "motionDetectionTypeAllOtherMotions"; + PropertyName["DeviceMotionDetected"] = "motionDetected"; + PropertyName["DeviceMotionTracking"] = "motionTracking"; + PropertyName["DeviceMotionTrackingSensitivity"] = "motionTrackingSensitivity"; + PropertyName["DeviceMotionAutoCruise"] = "motionAutoCruise"; + PropertyName["DeviceMotionOutOfViewDetection"] = "motionOutOfViewDetection"; + PropertyName["DevicePersonDetected"] = "personDetected"; + PropertyName["DevicePersonName"] = "personName"; + PropertyName["DeviceRTSPStream"] = "rtspStream"; + PropertyName["DeviceRTSPStreamUrl"] = "rtspStreamUrl"; + PropertyName["DeviceWatermark"] = "watermark"; + PropertyName["DevicePictureUrl"] = "hidden-pictureUrl"; + PropertyName["DevicePicture"] = "picture"; + PropertyName["DeviceState"] = "state"; + PropertyName["DevicePetDetection"] = "petDetection"; + PropertyName["DevicePetDetected"] = "petDetected"; + PropertyName["DeviceSoundDetection"] = "soundDetection"; + PropertyName["DeviceSoundDetectionType"] = "soundDetectionType"; + PropertyName["DeviceSoundDetectionSensitivity"] = "soundDetectionSensitivity"; + PropertyName["DeviceSoundDetected"] = "soundDetected"; + PropertyName["DeviceCryingDetected"] = "cryingDetected"; + PropertyName["DeviceSensorOpen"] = "sensorOpen"; + PropertyName["DeviceSensorChangeTime"] = "sensorChangeTime"; + PropertyName["DeviceMotionSensorPIREvent"] = "motionSensorPirEvent"; + PropertyName["DeviceLocked"] = "locked"; + PropertyName["DeviceRinging"] = "ringing"; + PropertyName["DeviceLockStatus"] = "lockStatus"; + PropertyName["DeviceLight"] = "light"; + PropertyName["DeviceMicrophone"] = "microphone"; + PropertyName["DeviceSpeaker"] = "speaker"; + PropertyName["DeviceSpeakerVolume"] = "speakerVolume"; + PropertyName["DeviceRingtoneVolume"] = "ringtoneVolume"; + PropertyName["DeviceAudioRecording"] = "audioRecording"; + PropertyName["DevicePowerSource"] = "powerSource"; + PropertyName["DevicePowerWorkingMode"] = "powerWorkingMode"; + PropertyName["DeviceChargingStatus"] = "chargingStatus"; + PropertyName["DeviceRecordingEndClipMotionStops"] = "recordingEndClipMotionStops"; + PropertyName["DeviceRecordingClipLength"] = "recordingClipLength"; + PropertyName["DeviceRecordingRetriggerInterval"] = "recordingRetriggerInterval"; + PropertyName["DeviceVideoStreamingQuality"] = "videoStreamingQuality"; + PropertyName["DeviceVideoRecordingQuality"] = "videoRecordingQuality"; + PropertyName["DeviceVideoWDR"] = "videoWdr"; + PropertyName["DeviceLightSettingsEnable"] = "lightSettingsEnable"; + PropertyName["DeviceLightSettingsBrightnessManual"] = "lightSettingsBrightnessManual"; + PropertyName["DeviceLightSettingsColorTemperatureManual"] = "lightSettingsColorTemperatureManual"; + PropertyName["DeviceLightSettingsBrightnessMotion"] = "lightSettingsBrightnessMotion"; + PropertyName["DeviceLightSettingsColorTemperatureMotion"] = "lightSettingsColorTemperatureMotion"; + PropertyName["DeviceLightSettingsBrightnessSchedule"] = "lightSettingsBrightnessSchedule"; + PropertyName["DeviceLightSettingsColorTemperatureSchedule"] = "lightSettingsColorTemperatureSchedule"; + PropertyName["DeviceLightSettingsMotionTriggered"] = "lightSettingsMotionTriggered"; + PropertyName["DeviceLightSettingsMotionActivationMode"] = "lightSettingsMotionActivationMode"; + PropertyName["DeviceLightSettingsMotionTriggeredDistance"] = "lightSettingsMotionTriggeredDistance"; + PropertyName["DeviceLightSettingsMotionTriggeredTimer"] = "lightSettingsMotionTriggeredTimer"; + //DeviceLightSettingsSunsetToSunrise = "lightSettingsSunsetToSunrise", + PropertyName["DeviceLightSettingsManualLightingActiveMode"] = "lightSettingsManualLightingActiveMode"; + PropertyName["DeviceLightSettingsManualDailyLighting"] = "lightSettingsManualDailyLighting"; + PropertyName["DeviceLightSettingsManualColoredLighting"] = "lightSettingsManualColoredLighting"; + PropertyName["DeviceLightSettingsManualDynamicLighting"] = "lightSettingsManualDynamicLighting"; + PropertyName["DeviceLightSettingsMotionLightingActiveMode"] = "lightSettingsMotionLightingActiveMode"; + PropertyName["DeviceLightSettingsMotionDailyLighting"] = "lightSettingsMotionDailyLighting"; + PropertyName["DeviceLightSettingsMotionColoredLighting"] = "lightSettingsMotionColoredLighting"; + PropertyName["DeviceLightSettingsMotionDynamicLighting"] = "lightSettingsMotionDynamicLighting"; + PropertyName["DeviceLightSettingsScheduleLightingActiveMode"] = "lightSettingsScheduleLightingActiveMode"; + PropertyName["DeviceLightSettingsScheduleDailyLighting"] = "lightSettingsScheduleDailyLighting"; + PropertyName["DeviceLightSettingsScheduleColoredLighting"] = "lightSettingsScheduleColoredLighting"; + PropertyName["DeviceLightSettingsScheduleDynamicLighting"] = "lightSettingsScheduleDynamicLighting"; + PropertyName["DeviceLightSettingsColoredLightingColors"] = "lightSettingsColoredLightingColors"; + PropertyName["DeviceLightSettingsDynamicLightingThemes"] = "lightSettingsDynamicLightingThemes"; + PropertyName["DeviceChimeIndoor"] = "chimeIndoor"; + PropertyName["DeviceChimeHomebase"] = "chimeHomebase"; + PropertyName["DeviceChimeHomebaseRingtoneVolume"] = "chimeHomebaseRingtoneVolume"; + PropertyName["DeviceChimeHomebaseRingtoneType"] = "chimeHomebaseRingtoneType"; + PropertyName["DeviceNotificationType"] = "notificationType"; + PropertyName["DeviceRotationSpeed"] = "rotationSpeed"; + PropertyName["DeviceImageMirrored"] = "imageMirrored"; + PropertyName["DeviceNotificationPerson"] = "notificationPerson"; + PropertyName["DeviceNotificationPet"] = "notificationPet"; + PropertyName["DeviceNotificationAllOtherMotion"] = "notificationAllOtherMotion"; + PropertyName["DeviceNotificationCrying"] = "notificationCrying"; + PropertyName["DeviceNotificationAllSound"] = "notificationAllSound"; + PropertyName["DeviceNotificationIntervalTime"] = "notificationIntervalTime"; + PropertyName["DeviceNotificationRing"] = "notificationRing"; + PropertyName["DeviceNotificationMotion"] = "notificationMotion"; + PropertyName["DeviceNotificationRadarDetector"] = "notificationRadarDetector"; + PropertyName["DeviceNotificationVehicle"] = "notificationVehicle"; + PropertyName["DeviceContinuousRecording"] = "continuousRecording"; + PropertyName["DeviceContinuousRecordingType"] = "continuousRecordingType"; + PropertyName["DeviceChirpVolume"] = "chirpVolume"; + PropertyName["DeviceChirpTone"] = "chirpTone"; + PropertyName["DeviceVideoHDR"] = "videoHdr"; + PropertyName["DeviceVideoDistortionCorrection"] = "videoDistortionCorrection"; + PropertyName["DeviceVideoRingRecord"] = "videoRingRecord"; + PropertyName["DeviceVideoNightvisionImageAdjustment"] = "videoNightvisionImageAdjustment"; + PropertyName["DeviceVideoColorNightvision"] = "videoColorNightvision"; + PropertyName["DeviceAutoCalibration"] = "autoCalibration"; + PropertyName["DeviceAutoLock"] = "autoLock"; + PropertyName["DeviceAutoLockTimer"] = "autoLockTimer"; + PropertyName["DeviceAutoLockSchedule"] = "autoLockSchedule"; + PropertyName["DeviceAutoLockScheduleStartTime"] = "autoLockScheduleStartTime"; + PropertyName["DeviceAutoLockScheduleEndTime"] = "autoLockScheduleEndTime"; + PropertyName["DeviceOneTouchLocking"] = "oneTouchLocking"; + PropertyName["DeviceWrongTryProtection"] = "wrongTryProtection"; + PropertyName["DeviceWrongTryAttempts"] = "wrongTryAttempts"; + PropertyName["DeviceWrongTryLockdownTime"] = "wrongTryLockdownTime"; + PropertyName["DeviceScramblePasscode"] = "scramblePasscode"; + PropertyName["DeviceSound"] = "sound"; + PropertyName["DeviceNotification"] = "notification"; + PropertyName["DeviceNotificationUnlocked"] = "notificationUnlocked"; + PropertyName["DeviceNotificationLocked"] = "notificationLocked"; + PropertyName["DeviceLoiteringDetection"] = "loiteringDetection"; + PropertyName["DeviceLoiteringDetectionRange"] = "loiteringDetectionRange"; + PropertyName["DeviceLoiteringDetectionLength"] = "loiteringDetectionLength"; + PropertyName["DeviceMotionDetectionSensitivityMode"] = "motionDetectionSensitivityMode"; + PropertyName["DeviceMotionDetectionSensitivityStandard"] = "motionDetectionSensitivityStandard"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedA"] = "motionDetectionSensitivityAdvancedA"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedB"] = "motionDetectionSensitivityAdvancedB"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedC"] = "motionDetectionSensitivityAdvancedC"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedD"] = "motionDetectionSensitivityAdvancedD"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedE"] = "motionDetectionSensitivityAdvancedE"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedF"] = "motionDetectionSensitivityAdvancedF"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedG"] = "motionDetectionSensitivityAdvancedG"; + PropertyName["DeviceMotionDetectionSensitivityAdvancedH"] = "motionDetectionSensitivityAdvancedH"; + PropertyName["DeviceLoiteringCustomResponsePhoneNotification"] = "loiteringCustomResponsePhoneNotification"; + PropertyName["DeviceLoiteringCustomResponseAutoVoiceResponse"] = "loiteringCustomResponseAutoVoiceResponse"; + PropertyName["DeviceLoiteringCustomResponseAutoVoiceResponseVoice"] = "loiteringCustomResponseAutoVoiceResponseVoice"; + PropertyName["DeviceLoiteringCustomResponseHomeBaseNotification"] = "loiteringCustomResponseHomeBaseNotification"; + PropertyName["DeviceLoiteringCustomResponseTimeFrom"] = "loiteringCustomResponseTimeFrom"; + PropertyName["DeviceLoiteringCustomResponseTimeTo"] = "loiteringCustomResponseTimeTo"; + PropertyName["DeviceDeliveryGuard"] = "deliveryGuard"; + PropertyName["DeviceDeliveryGuardPackageGuarding"] = "deliveryGuardPackageGuarding"; + PropertyName["DeviceDeliveryGuardPackageGuardingVoiceResponseVoice"] = "deliveryGuardPackageGuardingVoiceResponseVoice"; + PropertyName["DeviceDeliveryGuardPackageGuardingActivatedTimeFrom"] = "deliveryGuardPackageGuardingActivatedTimeFrom"; + PropertyName["DeviceDeliveryGuardPackageGuardingActivatedTimeTo"] = "deliveryGuardPackageGuardingActivatedTimeTo"; + PropertyName["DeviceDeliveryGuardUncollectedPackageAlert"] = "deliveryGuardUncollectedPackageAlert"; + PropertyName["DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck"] = "deliveryGuardUncollectedPackageAlertTimeToCheck"; + PropertyName["DeviceDeliveryGuardPackageLiveCheckAssistance"] = "deliveryGuardPackageLiveCheckAssistance"; + PropertyName["DeviceDualCamWatchViewMode"] = "dualCamWatchViewMode"; + PropertyName["DeviceRingAutoResponse"] = "ringAutoResponse"; + PropertyName["DeviceRingAutoResponseVoiceResponse"] = "ringAutoResponseVoiceResponse"; + PropertyName["DeviceRingAutoResponseVoiceResponseVoice"] = "ringAutoResponseVoiceResponseVoice"; + PropertyName["DeviceRingAutoResponseTimeFrom"] = "ringAutoResponseTimeFrom"; + PropertyName["DeviceRingAutoResponseTimeTo"] = "ringAutoResponseTimeTo"; + PropertyName["DeviceDefaultAngle"] = "defaultAngle"; + PropertyName["DeviceDefaultAngleIdleTime"] = "defaultAngleIdleTime"; + PropertyName["DeviceSoundDetectionRoundLook"] = "soundDetectionRoundLook"; + PropertyName["DevicePackageDelivered"] = "packageDelivered"; + PropertyName["DevicePackageStranded"] = "packageStranded"; + PropertyName["DevicePackageTaken"] = "packageTaken"; + PropertyName["DeviceSomeoneLoitering"] = "someoneLoitering"; + PropertyName["DeviceRadarMotionDetected"] = "radarMotionDetected"; + PropertyName["DeviceLeftOpenAlarm"] = "leftOpenAlarm"; + PropertyName["DeviceLeftOpenAlarmDuration"] = "leftOpenAlarmDuration"; + PropertyName["DeviceDualUnlock"] = "dualUnlock"; + PropertyName["DevicePowerSave"] = "powerSave"; + PropertyName["DeviceInteriorBrightness"] = "interiorBrightness"; + PropertyName["DeviceInteriorBrightnessDuration"] = "interiorBrightnessDuration"; + PropertyName["DeviceTamperAlarm"] = "tamperAlarm"; + PropertyName["DeviceRemoteUnlock"] = "remoteUnlock"; + PropertyName["DeviceRemoteUnlockMasterPIN"] = "remoteUnlockMasterPIN"; + PropertyName["DeviceAlarmVolume"] = "alarmVolume"; + PropertyName["DevicePromptVolume"] = "promptVolume"; + PropertyName["DeviceNotificationUnlockByKey"] = "notificationUnlockByKey"; + PropertyName["DeviceNotificationUnlockByPIN"] = "notificationUnlockByPIN"; + PropertyName["DeviceNotificationUnlockByFingerprint"] = "notificationUnlockByFingerprint"; + PropertyName["DeviceNotificationUnlockByApp"] = "notificationUnlockByApp"; + PropertyName["DeviceNotificationDualUnlock"] = "notificationDualUnlock"; + PropertyName["DeviceNotificationDualLock"] = "notificationDualLock"; + PropertyName["DeviceNotificationWrongTryProtect"] = "notificationWrongTryProtect"; + PropertyName["DeviceNotificationJammed"] = "notificationJammed"; + PropertyName["DeviceJammedAlert"] = "jammedAlert"; + PropertyName["Device911Alert"] = "911Alert"; + PropertyName["Device911AlertEvent"] = "911AlertEvent"; + PropertyName["DeviceShakeAlert"] = "shakeAlert"; + PropertyName["DeviceShakeAlertEvent"] = "shakeAlertEvent"; + PropertyName["DeviceLowBatteryAlert"] = "lowBatteryAlert"; + PropertyName["DeviceLongTimeNotCloseAlert"] = "longTimeNotCloseAlert"; + PropertyName["DeviceWrongTryProtectAlert"] = "wrongTryProtectAlert"; + PropertyName["DeviceVideoTypeStoreToNAS"] = "videoTypeStoreToNAS"; + PropertyName["DeviceSnooze"] = "snooze"; + PropertyName["DeviceSnoozeTime"] = "snoozeTime"; + PropertyName["DeviceSnoozeStartTime"] = "snoozeStartTime"; + PropertyName["DeviceSnoozeHomebase"] = "snoozeHomebase"; + PropertyName["DeviceSnoozeMotion"] = "snoozeMotion"; + PropertyName["DeviceSnoozeChime"] = "snoozeStartChime"; + PropertyName["DeviceIdentityPersonDetected"] = "identityPersonDetected"; + PropertyName["DeviceStrangerPersonDetected"] = "strangerPersonDetected"; + PropertyName["DeviceVehicleDetected"] = "vehicleDetected"; + PropertyName["DeviceDogDetected"] = "dogDetected"; + PropertyName["DeviceDogLickDetected"] = "dogLickDetected"; + PropertyName["DeviceDogPoopDetected"] = "dogPoopDetected"; + PropertyName["DeviceDetectionStatisticsWorkingDays"] = "detectionStatisticsWorkingDays"; + PropertyName["DeviceDetectionStatisticsDetectedEvents"] = "detectionStatisticsDetectedEvents"; + PropertyName["DeviceDetectionStatisticsRecordedEvents"] = "detectionStatisticsRecordedEvents"; + PropertyName["DeviceCellularRSSI"] = "cellularRSSI"; + PropertyName["DeviceCellularSignalLevel"] = "cellularSignalLevel"; + PropertyName["DeviceCellularSignal"] = "cellularSignal"; + PropertyName["DeviceCellularBand"] = "cellularBand"; + PropertyName["DeviceCellularIMEI"] = "cellularIMEI"; + PropertyName["DeviceCellularICCID"] = "cellularICCID"; + PropertyName["DeviceDoorControlWarning"] = "doorControlWarning"; + PropertyName["DeviceDoor1Open"] = "door1Open"; + PropertyName["DeviceDoor2Open"] = "door2Open"; + PropertyName["DeviceDoorSensor1Status"] = "doorSensor1Status"; + PropertyName["DeviceDoorSensor2Status"] = "doorSensor2Status"; + PropertyName["DeviceDoorSensor1MacAddress"] = "doorSensor1MacAddress"; + PropertyName["DeviceDoorSensor2MacAddress"] = "doorSensor2MacAddress"; + PropertyName["DeviceDoorSensor1Name"] = "doorSensor1Name"; + PropertyName["DeviceDoorSensor2Name"] = "doorSensor2Name"; + PropertyName["DeviceDoorSensor1SerialNumber"] = "doorSensor1SerialNumber"; + PropertyName["DeviceDoorSensor2SerialNumber"] = "doorSensor2SerialNumber"; + PropertyName["DeviceDoorSensor1Version"] = "doorSensor1Version"; + PropertyName["DeviceDoorSensor2Version"] = "doorSensor2Version"; + PropertyName["DeviceDoorSensor1LowBattery"] = "doorSensor1LowBattery"; + PropertyName["DeviceDoorSensor2LowBattery"] = "doorSensor2LowBattery"; + PropertyName["DeviceDoorSensor1BatteryLevel"] = "doorSensor1BatteryLevel"; + PropertyName["DeviceDoorSensor2BatteryLevel"] = "doorSensor2BatteryLevel"; + PropertyName["DeviceLocationCoordinates"] = "locationCoordinates"; + PropertyName["DeviceLocationAddress"] = "locationAddress"; + PropertyName["DeviceLocationLastUpdate"] = "locationLastUpdate"; + PropertyName["DeviceTrackerType"] = "trackerType"; + PropertyName["DeviceLeftBehindAlarm"] = "leftBehindAlarm"; + PropertyName["DeviceFindPhone"] = "findPhone"; + PropertyName["DeviceFlickerAdjustment"] = "flickerAdjustment"; + PropertyName["DeviceLeavingDetection"] = "leavingDetection"; + PropertyName["DeviceLeavingReactionNotification"] = "leavingReactionNotification"; + PropertyName["DeviceLeavingReactionStartTime"] = "leavingReactionStartTime"; + PropertyName["DeviceLeavingReactionEndTime"] = "leavingReactionEndTime"; + PropertyName["DeviceSomeoneGoing"] = "someoneGoing"; + PropertyName["DeviceLockEventOrigin"] = "lockEventOrigin"; + PropertyName["DeviceBeepVolume"] = "beepVolume"; + PropertyName["DeviceNightvisionOptimization"] = "nightvisionOptimization"; + PropertyName["DeviceNightvisionOptimizationSide"] = "nightvisionOptimizationSide"; + PropertyName["DeviceOpenMethod"] = "openMethod"; + PropertyName["DeviceMotionActivatedPrompt"] = "motionActivatedPrompt"; + PropertyName["DeviceOpen"] = "open"; + PropertyName["DeviceOpenedByType"] = "openedByType"; + PropertyName["DeviceOpenedByName"] = "openedByName"; + PropertyName["DeviceTamperingAlert"] = "tamperingAlert"; + PropertyName["DeviceLowTemperatureAlert"] = "lowTemperatureAlert"; + PropertyName["DeviceHighTemperatureAlert"] = "highTemperatureAlert"; + PropertyName["DeviceLidStuckAlert"] = "lidStuckAlert"; + PropertyName["DevicePinIncorrectAlert"] = "pinIncorrectAlert"; + PropertyName["DeviceBatteryFullyChargedAlert"] = "batteryFullyChargedAlert"; + PropertyName["DeviceIsDeliveryDenied"] = "isDeliveryDenied"; + PropertyName["DeviceHasMasterPin"] = "hasMasterPin"; + PropertyName["DeviceDeliveries"] = "deliveries"; + PropertyName["DeviceHiddenMotionDetectionSensitivity"] = "hidden-motionDetectionSensitivity"; + PropertyName["DeviceHiddenMotionDetectionMode"] = "hidden-motionDetectionMode"; + PropertyName["StationLANIpAddress"] = "lanIpAddress"; + PropertyName["StationMacAddress"] = "macAddress"; + PropertyName["StationGuardMode"] = "guardMode"; + PropertyName["StationCurrentMode"] = "currentMode"; + PropertyName["StationTimeFormat"] = "timeFormat"; + PropertyName["StationTimeZone"] = "timeZone"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + PropertyName["StationAlarmVolume"] = "alarmVolume"; + PropertyName["StationAlarmTone"] = "alarmTone"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + PropertyName["StationPromptVolume"] = "promptVolume"; + PropertyName["StationNotificationSwitchModeSchedule"] = "notificationSwitchModeSchedule"; + PropertyName["StationNotificationSwitchModeGeofence"] = "notificationSwitchModeGeofence"; + PropertyName["StationNotificationSwitchModeApp"] = "notificationSwitchModeApp"; + PropertyName["StationNotificationSwitchModeKeypad"] = "notificationSwitchModeKeypad"; + PropertyName["StationNotificationStartAlarmDelay"] = "notificationStartAlarmDelay"; + PropertyName["StationSwitchModeWithAccessCode"] = "switchModeWithAccessCode"; + PropertyName["StationAutoEndAlarm"] = "autoEndAlarm"; + PropertyName["StationTurnOffAlarmWithButton"] = "turnOffAlarmWithButton"; + PropertyName["StationHomeSecuritySettings"] = "hidden-stationHomeSecuritySettings"; + PropertyName["StationAwaySecuritySettings"] = "hidden-stationAwaySecuritySettings"; + PropertyName["StationCustom1SecuritySettings"] = "hidden-stationCustom1SecuritySettings"; + PropertyName["StationCustom2SecuritySettings"] = "hidden-stationCustom2SecuritySettings"; + PropertyName["StationCustom3SecuritySettings"] = "hidden-stationCustom3SecuritySettings"; + PropertyName["StationOffSecuritySettings"] = "hidden-stationOffSecuritySettings"; + PropertyName["StationAlarm"] = "alarm"; + PropertyName["StationAlarmType"] = "alarmType"; + PropertyName["StationAlarmArmed"] = "alarmArmed"; + PropertyName["StationAlarmArmDelay"] = "alarmArmDelay"; + PropertyName["StationAlarmDelay"] = "alarmDelay"; + PropertyName["StationAlarmDelayType"] = "alarmDelayType"; + PropertyName["StationSdStatus"] = "sdStatus"; + PropertyName["StationSdCapacity"] = "sdCapacity"; + PropertyName["StationSdCapacityAvailable"] = "sdCapacityAvailable"; + PropertyName["StationStorageInfoEmmc"] = "storageInfoEmmc"; + PropertyName["StationStorageInfoHdd"] = "storageInfoHdd"; + PropertyName["StationCrossCameraTracking"] = "crossCameraTracking"; + PropertyName["StationContinuousTrackingTime"] = "continuousTrackingTime"; + PropertyName["StationTrackingAssistance"] = "trackingAssistance"; + PropertyName["StationCrossTrackingCameraList"] = "crossTrackingCameraList"; + PropertyName["StationCrossTrackingGroupList"] = "crossTrackingGroupList"; +})(PropertyName || (exports.PropertyName = PropertyName = {})); +exports.DeviceNameProperty = { + key: "device_name", + name: PropertyName.Name, + label: "Name", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceModelProperty = { + key: "device_model", + name: PropertyName.Model, + label: "Model", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceSerialNumberProperty = { + key: "device_sn", + name: PropertyName.SerialNumber, + label: "Serial number", + readable: true, + writeable: false, + type: "string", +}; +exports.GenericHWVersionProperty = { + key: "main_hw_version", + name: PropertyName.HardwareVersion, + label: "Hardware version", + readable: true, + writeable: false, + type: "string", +}; +exports.GenericSWVersionProperty = { + key: "main_sw_version", + name: PropertyName.SoftwareVersion, + label: "Software version", + readable: true, + writeable: false, + type: "string", +}; +exports.GenericTypeProperty = { + key: "device_type", + name: PropertyName.Type, + label: "Type", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Station", + 1: "Camera", + 2: "Sensor (T8900)", + 3: "Floodlight", + 4: "Camera E", + 5: "Doorbell", + 7: "Battery Doorbell", + 8: "Camera 2", + 9: "eufyCam S210 (eufyCam 2C)", + 10: "Motion Sensor (T8910)", + 11: "Keypad", + 14: "eufyCam S221 (eufyCam 2 Pro)", + 15: "eufyCam S220 (eufyCam 2C Pro)", + 16: "Battery Doorbell 2", + 18: "HomeBase S380 (HomeBase 3; T8030)", + 19: "eufyCam S330 (eufyCam 3)", + 23: "eufyCam S300 (eufyCam 3C)", + 24: "eufyCam E330 (Professional)", + 25: "MiniBase Chime", + 26: "eufyCam S3 Pro", + 30: "Indoor Camera", + 31: "Indoor Camera PT", + 32: "Solo Camera", + 33: "Solo Camera Pro", + 34: "Indoor Camera 1080", + 35: "Indoor Camera PT 1080", + 37: "Floodlight 8422", + 38: "Floodlight 8423", + 39: "Floodlight 2", + 44: "Outdoor Camera 1080P No Light", + 45: "Outdoor Camera 2k", + 46: "Outdoor Camera 1080P", + 47: "Floodlight Camera E340", + 48: "Solo Camera S340", + 50: "Lock Basic", + 51: "Lock Advanced", + 52: "Lock Basic No Finger", + 53: "Lock Basic Advanced No Finger", + 54: "Retrofit Smart Lock E110 (T8503)", + 55: "Video Smart Lock S330 (T8530)", + 56: "Lock 85A3", + 57: "Lock 8592", + 58: "Retrofit Smart Lock E130 (T8504)", + 60: "Solo Camera Spotlight 1080p", + 61: "Solo Camera Spotlight 2k", + 62: "Solo Camera Spotlight Solar", + 63: "Solo Camera S230", + 64: "Solo Camera C210", + 87: "Floodlight Camera E30", + 88: "Solo Camera E30", + 89: "eufyCam S4 (T8172)", + 90: "Smart Drop S300 (T8790)", + 91: "Video Doorbell Dual", + 93: "Video Doorbell Dual (Wired)", + 94: "Video Doorbell Dual (E340)", + 95: "Video Doorbell (C30)", + 100: "Indoor Cost Down Camera", + 101: "Camera Gun", + 102: "Camera Snail", + 104: "Indoor Camera S350", + 110: "Starlight 4G LTE", //T8150 + 131: "Camera Garage T8453 Common", + 132: "Garage-Control Cam E110 (T8452)", + 133: "Garage-Control Cam E120 (T8453)", + 140: "Smart Safe S10 (T7400)", + 141: "Smart Safe S12 (T7401)", + 142: "Smart Safe (T7402)", + 143: "Smart Safe (T7403)", + 151: "Wired Wall Light Cam S100 (T84A1)", + 157: "SmartTrack Link (T87B0)", + 159: "SmartTrack Card (T87B2)", + 180: "Smart Lock C210 (T8502)", + 184: "Smart Lock C220 (T8506)", + 10005: "Solar Wall Light Cam S120 (T81A0)", + 10008: "Indoor Cam C220 (T8W11C)", + 10009: "Indoor Cam C210 (T8419)", + 10010: "Indoor Cam C220 (T8W11C)", + 10011: "Indoor Cam C220 (T8419N)", + }, +}; +exports.BaseDeviceProperties = { + [exports.DeviceNameProperty.name]: exports.DeviceNameProperty, + [exports.DeviceModelProperty.name]: exports.DeviceModelProperty, + [exports.DeviceSerialNumberProperty.name]: exports.DeviceSerialNumberProperty, + [exports.GenericTypeProperty.name]: exports.GenericTypeProperty, + [exports.GenericHWVersionProperty.name]: exports.GenericHWVersionProperty, + [exports.GenericSWVersionProperty.name]: exports.GenericSWVersionProperty, +}; +exports.GenericDeviceProperties = { + ...exports.BaseDeviceProperties, + [PropertyName.DeviceStationSN]: { + key: "station_sn", + name: PropertyName.DeviceStationSN, + label: "Station serial number", + readable: true, + writeable: false, + type: "string", + }, +}; +exports.DeviceBatteryProperty = { + key: types_1.CommandType.CMD_GET_BATTERY, + name: PropertyName.DeviceBattery, + label: "Battery percentage", + readable: true, + writeable: false, + type: "number", + unit: "%", + min: 0, + max: 100, +}; +exports.DeviceBatteryLockProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, + name: PropertyName.DeviceBattery, + label: "Battery percentage", + readable: true, + writeable: false, + type: "number", + unit: "%", + min: 0, + max: 100, +}; +exports.DeviceBatteryTrackerProperty = { + ...exports.DeviceBatteryProperty, + key: types_1.TrackerCommandType.COMMAND_BATTERY, +}; +exports.DeviceBatteryLowMotionSensorProperty = { + key: types_1.CommandType.CMD_MOTION_SENSOR_BAT_STATE, + name: PropertyName.DeviceBatteryLow, + label: "Battery low", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceBatteryLowKeypadProperty = { + ...exports.DeviceBatteryLowMotionSensorProperty, + key: types_1.CommandType.CMD_KEYPAD_BATTERY_CAP_STATE, +}; +exports.DeviceBatteryLowSensorProperty = { + ...exports.DeviceBatteryLowMotionSensorProperty, + key: types_1.CommandType.CMD_ENTRY_SENSOR_BAT_STATE, +}; +exports.DeviceBatteryTempProperty = { + key: types_1.CommandType.CMD_GET_BATTERY_TEMP, + name: PropertyName.DeviceBatteryTemp, + label: "Battery Temperature", + readable: true, + writeable: false, + type: "number", + unit: "°C", +}; +exports.DeviceBatteryIsChargingKeypadProperty = { + key: types_1.CommandType.CMD_KEYPAD_BATTERY_CHARGER_STATE, + name: PropertyName.DeviceBatteryIsCharging, + label: "Battery is charging", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceAntitheftDetectionProperty = { + key: types_1.CommandType.CMD_EAS_SWITCH, + name: PropertyName.DeviceAntitheftDetection, + label: "Antitheft Detection", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAutoNightvisionProperty = { + key: types_1.CommandType.CMD_IRCUT_SWITCH, + name: PropertyName.DeviceAutoNightvision, + label: "Auto Nightvision", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAutoNightvisionWiredDoorbellProperty = { + ...exports.DeviceAutoNightvisionProperty, + key: ParamType.NIGHT_VISUAL, +}; +exports.DeviceAutoNightvisionSoloProperty = { + ...exports.DeviceAutoNightvisionProperty, + key: types_1.CommandType.CMD_SET_NIGHT_VISION_TYPE, + commandId: types_1.CommandType.CMD_SET_NIGHT_VISION_TYPE, +}; +exports.DeviceNightvisionProperty = { + key: types_1.CommandType.CMD_SET_NIGHT_VISION_TYPE, + name: PropertyName.DeviceNightvision, + label: "Nightvision", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 1: "B&W Night Vision", + 2: "Color Night Vision", + }, +}; +exports.DeviceNightvisionS350Property = { + ...exports.DeviceNightvisionProperty, + states: { + 0: "Off", + 1: "Auto", + 3: "On", + }, +}; +exports.DeviceWifiRSSIProperty = { + key: types_1.CommandType.CMD_GET_WIFI_RSSI, + name: PropertyName.DeviceWifiRSSI, + label: "Wifi RSSI", + readable: true, + writeable: false, + type: "number", + unit: "dBm", +}; +exports.DeviceWifiSignalLevelProperty = { + key: "custom_wifiSignalLevel", + name: PropertyName.DeviceWifiSignalLevel, + label: "Wifi Signal Level", + readable: true, + writeable: false, + type: "number", + min: 0, + max: 4, + states: { + 0: "No signal", + 1: "Weak", + 2: "Normal", + 3: "Strong", + 4: "Full", + }, +}; +exports.DeviceCellularRSSIProperty = { + key: types_1.CommandType.CELLULAR_SIGNAL_STRENGTH, + name: PropertyName.DeviceCellularRSSI, + label: "Cellular RSSI", + readable: true, + writeable: false, + type: "number", + unit: "dBm", +}; +exports.DeviceCellularSignalLevelProperty = { + key: "custom_cellularSignalLevel", + name: PropertyName.DeviceCellularSignalLevel, + label: "Cellular Signal Level", + readable: true, + writeable: false, + type: "number", + min: 1, + max: 4, + states: { + 1: "Weak", + 2: "Normal", + 3: "Strong", + 4: "Full", + }, +}; +exports.DeviceCellularSignalProperty = { + key: types_1.CommandType.CELLULAR_INFO, + name: PropertyName.DeviceCellularSignal, + label: "Cellular Signal", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceCellularBandProperty = { + key: types_1.CommandType.CELLULAR_INFO, + name: PropertyName.DeviceCellularBand, + label: "Cellular Band", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceCellularIMEIProperty = { + key: types_1.CommandType.CELLULAR_INFO, + name: PropertyName.DeviceCellularIMEI, + label: "Cellular IMEI", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceCellularICCIDProperty = { + key: types_1.CommandType.CELLULAR_INFO, + name: PropertyName.DeviceCellularICCID, + label: "Cellular ICCID", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceWifiRSSILockProperty = { + ...exports.DeviceWifiRSSIProperty, + key: types_1.CommandType.CMD_GET_SUB1G_RSSI, +}; +exports.DeviceWifiRSSIEntrySensorProperty = { + ...exports.DeviceWifiRSSIProperty, + key: types_1.CommandType.CMD_GET_SUB1G_RSSI, +}; +exports.DeviceWifiRSSIKeypadProperty = { + ...exports.DeviceWifiRSSIProperty, + key: types_1.CommandType.CMD_GET_SUB1G_RSSI, +}; +exports.DeviceWifiRSSISmartSafeProperty = { + ...exports.DeviceWifiRSSIProperty, + key: types_1.CommandType.CMD_SMARTSAFE_RSSI, +}; +exports.DeviceEnabledProperty = { + key: ParamType.PRIVATE_MODE, + name: PropertyName.DeviceEnabled, + label: "Camera enabled", + readable: true, + writeable: true, + type: "boolean", + commandId: types_1.CommandType.CMD_DEVS_SWITCH, + default: true +}; +exports.DeviceEnabledStandaloneProperty = { + ...exports.DeviceEnabledProperty, + key: ParamType.OPEN_DEVICE, + commandId: types_1.CommandType.CMD_DEVS_SWITCH, +}; +exports.DeviceEnabledSoloProperty = { + ...exports.DeviceEnabledProperty, + key: types_1.CommandType.CMD_DEVS_SWITCH, +}; +exports.DeviceEnabledIndoorMiniProperty = { + ...exports.DeviceEnabledSoloProperty, + key: types_1.CommandType.CMD_DEVS_SWITCH, + commandId: types_1.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE, +}; +exports.DeviceEnabledIndoorS350Property = { + ...exports.DeviceEnabledSoloProperty, + key: types_1.CommandType.CMD_DEVS_SWITCH, + commandId: types_1.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE_S350, +}; +exports.DeviceStatusLedProperty = { + key: types_1.CommandType.CMD_DEV_LED_SWITCH, + name: PropertyName.DeviceStatusLed, + label: "Status LED", + readable: true, + writeable: true, + type: "boolean", + commandId: types_1.CommandType.CMD_INDOOR_LED_SWITCH, +}; +exports.DeviceStatusLedIndoorFloodProperty = { + ...exports.DeviceStatusLedProperty, + key: types_1.CommandType.CMD_INDOOR_LED_SWITCH, +}; +exports.DeviceStatusLedBatteryDoorbellProperty = { + ...exports.DeviceStatusLedProperty, + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, +}; +exports.DeviceStatusLedIndoorS350Property = { + ...exports.DeviceStatusLedBatteryDoorbellProperty, + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, + commandId: types_1.CommandType.CMD_DEV_LED_SWITCH, +}; +exports.DeviceStatusLedBatteryDoorbellDualProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, + name: PropertyName.DeviceStatusLed, + label: "Status LED", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 1: "All day", + 2: "At night", + }, +}; +exports.DeviceStatusLedDoorbellProperty = { + ...exports.DeviceStatusLedProperty, + key: ParamType.DOORBELL_LED_NIGHT_MODE, + commandId: ParamType.COMMAND_LED_NIGHT_OPEN, +}; +exports.DeviceStatusLedT8200XProperty = { + ...exports.DeviceStatusLedProperty, + key: ParamType.COMMAND_LED_NIGHT_OPEN, + commandId: ParamType.COMMAND_LED_NIGHT_OPEN, +}; +exports.DeviceMotionDetectionProperty = { + key: types_1.CommandType.CMD_PIR_SWITCH, + name: PropertyName.DeviceMotionDetection, + label: "Motion Detection", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionDetectionIndoorSoloFloodProperty = { + ...exports.DeviceMotionDetectionProperty, + key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE, +}; +exports.DeviceMotionDetectionDoorbellProperty = { + ...exports.DeviceMotionDetectionProperty, + key: ParamType.DETECT_SWITCH, + commandId: ParamType.COMMAND_MOTION_DETECTION_PACKAGE, +}; +exports.DeviceSoundDetectionProperty = { + key: types_1.CommandType.CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE, + name: PropertyName.DeviceSoundDetection, + label: "Sound Detection", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DevicePetDetectionProperty = { + key: types_1.CommandType.CMD_INDOOR_DET_SET_PET_ENABLE, + name: PropertyName.DevicePetDetection, + label: "Pet Detection", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceRTSPStreamProperty = { + key: types_1.CommandType.CMD_NAS_SWITCH, + name: PropertyName.DeviceRTSPStream, + label: "RTSP Stream", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceRTSPStreamUrlProperty = { + key: "custom_rtspStreamUrl", + name: PropertyName.DeviceRTSPStreamUrl, + label: "RTSP Stream URL", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceWatermarkProperty = { + key: types_1.CommandType.CMD_SET_DEVS_OSD, + name: PropertyName.DeviceWatermark, + label: "Watermark", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 1: "Timestamp", + 2: "Timestamp and Logo", + }, +}; +exports.DeviceWatermarkIndoorFloodProperty = { + ...exports.DeviceWatermarkProperty, + states: { + 0: "Timestamp", + 1: "Timestamp and Logo", + 2: "Off", + }, +}; +exports.DeviceWatermarkSoloWiredDoorbellProperty = { + ...exports.DeviceWatermarkProperty, + states: { + 0: "Off", + 1: "On", + }, +}; +exports.DeviceWatermarkBatteryDoorbellCamera1Property = { + ...exports.DeviceWatermarkProperty, + states: { + 1: "Off", + 2: "On", + }, +}; +exports.DeviceWatermarkGarageCameraProperty = { + ...exports.DeviceWatermarkProperty, + states: { + 1: "Logo", + 2: "Off", + }, +}; +exports.DeviceStateProperty = { + key: types_1.CommandType.CMD_GET_DEV_STATUS, + name: PropertyName.DeviceState, + label: "State", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Offline", + 1: "Online", + 2: "Manually disabled", + 3: "Offline low battery", + 4: "Remove and readd", + 5: "Reset and readd", + } +}; +exports.DeviceStateLockProperty = { + ...exports.DeviceStateProperty, + key: types_1.CommandType.CMD_GET_DEV_STATUS, +}; +exports.DeviceLastChargingDaysProperty = { + key: "charging_days", + name: PropertyName.DeviceLastChargingDays, + label: "Days since last charging", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceLastChargingTotalEventsProperty = { + key: "charing_total", + name: PropertyName.DeviceLastChargingTotalEvents, + label: "Total Events since last charging", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceLastChargingRecordedEventsProperty = { + key: "charging_reserve", + name: PropertyName.DeviceLastChargingRecordedEvents, + label: "Total Recorded Events since last charging", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceLastChargingFalseEventsProperty = { + key: "charging_missing", + name: PropertyName.DeviceLastChargingFalseEvents, + label: "False Events since last charging", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceBatteryUsageLastWeekProperty = { + key: "battery_usage_last_week", + name: PropertyName.DeviceBatteryUsageLastWeek, + label: "Battery usage last week", + readable: true, + writeable: false, + type: "number", + unit: "%", + min: 0, + max: 100, + default: 0, +}; +exports.DeviceLockedProperty = { + key: "custom_locked", + name: PropertyName.DeviceLocked, + label: "locked", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceLockedSmartSafeProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_LOCK_STATUS, + name: PropertyName.DeviceLocked, + label: "locked", + readable: true, + writeable: false, + type: "boolean", +}; +exports.DeviceMotionDetectedProperty = { + key: "custom_motionDetected", + name: PropertyName.DeviceMotionDetected, + label: "Motion detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DevicePersonDetectedProperty = { + key: "custom_personDetected", + name: PropertyName.DevicePersonDetected, + label: "Person detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DevicePetDetectedProperty = { + key: "custom_petDetected", + name: PropertyName.DevicePetDetected, + label: "Pet detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceSoundDetectedProperty = { + key: "custom_soundDetected", + name: PropertyName.DeviceSoundDetected, + label: "Sound detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceCryingDetectedProperty = { + key: "custom_cryingDetected", + name: PropertyName.DeviceCryingDetected, + label: "Crying detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceRingingProperty = { + key: "custom_ringing", + name: PropertyName.DeviceRinging, + label: "Ringing", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceSensorOpenProperty = { + key: types_1.CommandType.CMD_ENTRY_SENSOR_STATUS, + name: PropertyName.DeviceSensorOpen, + label: "Sensor open", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceSensorChangeTimeProperty = { + key: types_1.CommandType.CMD_ENTRY_SENSOR_CHANGE_TIME, + name: PropertyName.DeviceSensorChangeTime, + label: "Sensor change time", + readable: true, + writeable: false, + type: "number", +}; +exports.DeviceMotionSensorPIREventProperty = { + key: types_1.CommandType.CMD_MOTION_SENSOR_PIR_EVT, + name: PropertyName.DeviceMotionSensorPIREvent, + label: "Motion sensor PIR event", + readable: true, + writeable: false, + type: "number", + //TODO: Define states +}; +exports.DeviceBasicLockStatusProperty = { + key: types_1.CommandType.CMD_DOORLOCK_GET_STATE, + name: PropertyName.DeviceLockStatus, + label: "Lock status", + readable: true, + writeable: false, + type: "number", + states: { + 1: "1", //TODO: Finish naming of states + 2: "2", + 3: "Unlocked", + 4: "Locked", + 5: "Mechanical anomaly", + 6: "6", + 7: "7", + } +}; +exports.DeviceAdvancedLockStatusProperty = { + ...exports.DeviceBasicLockStatusProperty, + key: types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, +}; +exports.DevicePictureUrlProperty = { + key: "cover_path", + name: PropertyName.DevicePictureUrl, + label: "Last Camera Picture URL", + readable: true, + writeable: false, + type: "string", +}; +exports.DeviceMotionHB3DetectionTypeHumanProperty = { + key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, + name: PropertyName.DeviceMotionDetectionTypeHuman, + label: "Motion Detection Type Human", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionDetectionTypeHumanWallLightProperty = { + ...exports.DeviceMotionHB3DetectionTypeHumanProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN, +}; +exports.DeviceMotionHB3DetectionTypeHumanRecognitionProperty = { + key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, + name: PropertyName.DeviceMotionDetectionTypeHumanRecognition, + label: "Motion Detection Type Human Recognition", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionHB3DetectionTypePetProperty = { + key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, + name: PropertyName.DeviceMotionDetectionTypePet, + label: "Motion Detection Type Pet", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionHB3DetectionTypeVehicleProperty = { + key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, + name: PropertyName.DeviceMotionDetectionTypeVehicle, + label: "Motion Detection Type Vehicle", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty = { + key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, + name: PropertyName.DeviceMotionDetectionTypeAllOtherMotions, + label: "Motion Detection Type All Other Motions", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty = { + ...exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL, +}; +exports.DeviceMotionDetectionTypeProperty = { + key: types_1.CommandType.CMD_DEV_PUSHMSG_MODE, + name: PropertyName.DeviceMotionDetectionType, + label: "Motion Detection Type", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Humans only", + 2: "All motions", + }, +}; +exports.DeviceMotionDetectionTypeT8200XProperty = { + ...exports.DeviceMotionDetectionTypeProperty, + key: types_1.CommandType.CMD_SET_DETECT_TYPE, +}; +exports.DeviceMotionDetectionCamera1Property = { + ...exports.DeviceMotionDetectionTypeProperty, + states: { + 0: "Person Alerts", + 1: "Facial Alerts", + 2: "All Alerts", + }, +}; +exports.DeviceMotionDetectionTypeFloodlightT8423Property = { + ...exports.DeviceMotionDetectionTypeProperty, + states: { + 2: "All motions", + 6: "Humans only", + }, +}; +exports.DeviceMotionDetectionTypeFloodlightProperty = { + ...exports.DeviceMotionDetectionTypeProperty, + key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, + states: { + 1: "Humans only", + 5: "All motions", + }, +}; +exports.DeviceMotionDetectionTypeIndoorProperty = { + ...exports.DeviceMotionDetectionTypeProperty, + key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, + states: { + 1: "Person", + 2: "Pet", + 3: "Person and Pet", + 4: "All other motions", + 5: "Person and all other motions", + 6: "Pet and all other motions", + 7: "Person, Pet and all other motions", + }, +}; +exports.DeviceMotionDetectionTypeIndoorS350Property = { + ...exports.DeviceMotionDetectionTypeProperty, + key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, + states: { + 3: "Person", + 4: "All other motions", + 5: "Person and all other motions", + 6: "Pet and all other motions", + 7: "Person, Pet and all other motions", + }, +}; +exports.DeviceMotionDetectionTypeIndoorMiniProperty = { + ...exports.DeviceMotionDetectionTypeIndoorProperty, + states: { + 1: "Person", + 4: "All other motions", + 5: "Person and all other motions", + }, +}; +exports.DeviceMotionDetectionSensitivityCamera2Property = { + key: types_1.CommandType.CMD_SET_PIRSENSITIVITY, + name: PropertyName.DeviceMotionDetectionSensitivity, + label: "Motion Detection Sensitivity", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 7, +}; +exports.DeviceMotionDetectionSensitivityCamera1Property = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + min: 1, + max: 100, + steps: 1, +}; +exports.DeviceMotionDetectionSensitivityIndoorProperty = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX, + min: 1, + max: 5, +}; +exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + key: types_1.CommandType.CMD_SET_MOTION_SENSITIVITY, + min: 1, + max: 5, +}; +exports.DeviceMotionDetectionSensitivityDoorbellE340Property = { + ...exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + key: types_1.CommandType.CMD_SET_MOTION_SENSITIVITY, + min: 1, + max: 7, +}; +exports.DeviceMotionDetectionSensitivityWiredDoorbellProperty = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + key: "custom_motionDetectionSensitivity", + min: 1, + max: 5, +}; +exports.DeviceMotionDetectionSensitivitySoloProperty = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + key: types_1.CommandType.CMD_SET_PIR_SENSITIVITY, +}; +exports.DeviceMotionDetectionSensitivityFloodlightT8420Property = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + key: types_1.CommandType.CMD_SET_MDSENSITIVITY, + min: 1, + max: 5, +}; +exports.DeviceMotionDetectionSensitivityGarageCameraProperty = { + ...exports.DeviceMotionDetectionSensitivityCamera2Property, + key: types_1.CommandType.CMD_SET_MOTION_SENSITIVITY, + min: 0, + max: 4, +}; +exports.DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty = { + key: ParamType.DETECT_MOTION_SENSITIVE, + name: PropertyName.DeviceHiddenMotionDetectionSensitivity, + label: "HIDDEN Motion Detection Sensitivity", + readable: true, + writeable: false, + type: "number", + min: 1, + max: 3, +}; +exports.DeviceHiddenMotionDetectionModeWiredDoorbellProperty = { + key: ParamType.DETECT_MODE, + name: PropertyName.DeviceHiddenMotionDetectionMode, + label: "HIDDEN Motion Detection Mode", + readable: true, + writeable: false, + type: "number", + min: 1, + max: 3, +}; +exports.DeviceMotionZoneProperty = { + key: types_1.CommandType.CMD_INDOOR_DET_SET_ACTIVE_ZONE, + name: PropertyName.DeviceMotionZone, + label: "Motion Detection Zone", + readable: true, + writeable: true, + type: "object", + default: { + polygens: [] + }, + isValidObject: (obj) => { + if (typeof obj === "object" && "polygens" in obj) { + if (Array.isArray(obj.polygens)) { + return (obj.polygens.length > 0 && + obj.polygens.every((value) => { + return typeof value === "object" && + "points" in value && + Array.isArray(value.points) && + value.points.length > 0 && + value.points.every((point) => { + return typeof point === "object" && + "x" in point && + "y" in point && + typeof point.x === "number" && + typeof point.y === "number"; + }); + })) || obj.polygens.length === 0; + } + } + return false; + } +}; +exports.DeviceFloodlightLightProperty = { + key: types_1.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH, + name: PropertyName.DeviceLight, + label: "Light", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceFloodlightLightSettingsEnableProperty = { + key: types_1.CommandType.CMD_SET_FLOODLIGHT_TOTAL_SWITCH, + name: PropertyName.DeviceLightSettingsEnable, + label: "Light Enable", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceFloodlightLightSettingsBrightnessManualProperty = { + key: types_1.CommandType.CMD_SET_FLOODLIGHT_BRIGHT_VALUE, + name: PropertyName.DeviceLightSettingsBrightnessManual, + label: "Light Brightness Manual", + readable: true, + writeable: true, + type: "number", + min: 0, + max: 100, +}; +exports.DeviceLightSettingsBrightnessManualCamera3Property = { + ...exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + states: { + 40: "Low", + 70: "Medium", + 100: "High", + }, +}; +exports.DeviceCameraLightSettingsBrightnessManualProperty = { + ...exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + min: 40, + default: 100, +}; +exports.DeviceCameraLightSettingsBrightnessManualWalllightS120Property = { + ...exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + min: 10, + default: 100, +}; +exports.DeviceFloodlightLightSettingsBrightnessMotionProperty = { + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR, + name: PropertyName.DeviceLightSettingsBrightnessMotion, + label: "Light Brightness Motion", + readable: true, + writeable: true, + type: "number", + min: 0, + max: 100, +}; +exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property = { + ...exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, +}; +exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty = { + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH, + name: PropertyName.DeviceLightSettingsBrightnessSchedule, + label: "Light Brightness Schedule", + readable: true, + writeable: true, + type: "number", + min: 0, + max: 100, +}; +exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property = { + ...exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425, +}; +exports.DeviceFloodlightLightSettingsMotionTriggeredProperty = { + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_PIR_SWITCH, + name: PropertyName.DeviceLightSettingsMotionTriggered, + label: "Light Motion Triggered Enable", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property = { + ...exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425 +}; +exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty = { + key: types_1.CommandType.CMD_SET_PIRSENSITIVITY, + name: PropertyName.DeviceLightSettingsMotionTriggeredDistance, + label: "Light Motion Triggered Distance", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Min", + 2: "Low", + 3: "Medium", + 4: "High", + 5: "Max", + }, +}; +exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty = { + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_PIR_TIME, + name: PropertyName.DeviceLightSettingsMotionTriggeredTimer, + label: "Light Motion Triggered Timer", + readable: true, + writeable: true, + type: "number", + unit: "sec", + states: { + 30: "30 sec.", + 60: "1 min.", + 180: "3 min.", + 300: "5 min.", + 900: "15 min.", + }, +}; +exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property = { + ...exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, +}; +exports.DeviceMicrophoneProperty = { + key: types_1.CommandType.CMD_SET_DEV_MIC_MUTE, + name: PropertyName.DeviceMicrophone, + label: "Microphone", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceSpeakerProperty = { + key: types_1.CommandType.CMD_SET_DEV_SPEAKER_MUTE, + name: PropertyName.DeviceSpeaker, + label: "Speaker", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAudioRecordingProperty = { + key: types_1.CommandType.CMD_SET_AUDIO_MUTE_RECORD, + name: PropertyName.DeviceAudioRecording, + label: "Audio Recording", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAudioRecordingIndoorSoloFloodlightProperty = { + ...exports.DeviceAudioRecordingProperty, + key: types_1.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, +}; +exports.DeviceAudioRecordingStarlight4gLTEProperty = { + ...exports.DeviceAudioRecordingProperty, + commandId: types_1.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, +}; +exports.DeviceAudioRecordingWiredDoorbellProperty = { + ...exports.DeviceAudioRecordingProperty, + key: ParamType.DOORBELL_AUDIO_RECODE, + commandId: ParamType.COMMAND_AUDIO_RECORDING, +}; +exports.DeviceAudioRecordingFloodlightT8420Property = { + ...exports.DeviceAudioRecordingProperty, + key: types_1.CommandType.CMD_RECORD_AUDIO_SWITCH, +}; +exports.DeviceMotionTrackingProperty = { + key: types_1.CommandType.CMD_INDOOR_PAN_MOTION_TRACK, + name: PropertyName.DeviceMotionTracking, + label: "Motion Tracking", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceSpeakerVolumeProperty = { + key: types_1.CommandType.CMD_SET_DEV_SPEAKER_VOLUME, + name: PropertyName.DeviceSpeakerVolume, + label: "Speaker Volume", + readable: true, + writeable: true, + type: "number", + states: { + 90: "Low", + 92: "Medium", + 93: "High" + }, +}; +exports.DeviceSpeakerVolumeSoloProperty = { + ...exports.DeviceSpeakerVolumeProperty, + states: { + 70: "Low", + 80: "Medium", + 100: "High" + }, +}; +exports.DeviceSpeakerVolumeCamera3Property = { + ...exports.DeviceSpeakerVolumeProperty, + states: { + 90: "Low", + 95: "Medium", + 100: "High" + }, +}; +exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty = { + key: types_1.CommandType.CMD_SET_DEV_SPEAKER_VOLUME, + name: PropertyName.DeviceSpeakerVolume, + label: "Speaker Volume", + readable: true, + writeable: true, + type: "number", + min: 0, + max: 100, +}; +exports.DeviceSpeakerVolumeWiredDoorbellProperty = { + ...exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + key: ParamType.VOLUME, + max: 169, +}; +exports.DeviceSpeakerVolumeFloodlightT8420Property = { + ...exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + min: 1, + max: 63, +}; +exports.DeviceSpeakerVolumeWalllightProperty = { + ...exports.DeviceSpeakerVolumeProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_SPEAKER_VOLUME, + states: { + 1: "Low", + 2: "Medium", + 3: "High" + }, +}; +exports.DeviceSpeakerVolumeSmartDropProperty = { + ...exports.DeviceSpeakerVolumeProperty, + states: { + 75: "Low", + 85: "Medium", + 100: "High" + }, +}; +exports.DeviceRingtoneVolumeBatteryDoorbellProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME, + name: PropertyName.DeviceRingtoneVolume, + label: "Ringtone Volume", + readable: true, + writeable: true, + type: "number", + min: 0, + max: 100, +}; +exports.DeviceRingtoneVolumeWiredDoorbellProperty = { + ...exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + key: ParamType.RINGING_VOLUME, + commandId: ParamType.COMMAND_RINGTONE_VOLUME, +}; +exports.DeviceRingtoneVolumeT8200XProperty = { + ...exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + key: types_1.CommandType.CMD_T8200X_SET_RINGTONE_VOLUME, +}; +exports.DevicePowerSourceProperty = { + key: types_1.CommandType.CMD_SET_POWER_CHARGE, + name: PropertyName.DevicePowerSource, + label: "Power Source", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Battery", + 1: "Solar Panel", + }, +}; +exports.DevicePowerWorkingModeProperty = { + key: types_1.CommandType.CMD_SET_PIR_POWERMODE, + name: PropertyName.DevicePowerWorkingMode, + label: "Power Working Mode", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Optimal Battery Life", + 1: "Optimal Surveillance", + 2: "Custom Recording", + }, +}; +exports.DevicePowerWorkingModeSmartDropProperty = { + key: types_1.CommandType.CMD_SET_PIR_POWERMODE, + name: PropertyName.DevicePowerWorkingMode, + label: "Power Working Mode", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Optimal Battery Life", + 1: "Optimal Surveillance", + 2: "Custom Recording", + 4: "Delivery Mode", + }, +}; +exports.DevicePowerWorkingModeBatteryDoorbellProperty = { + ...exports.DevicePowerWorkingModeProperty, + states: { + 0: "Balance Surveillance", + 1: "Optimal Surveillance", + 2: "Custom Recording", + 3: "Optimal Battery Life", + }, +}; +exports.DeviceChargingStatusProperty = { + key: types_1.CommandType.SUB1G_REP_UNPLUG_POWER_LINE, + name: PropertyName.DeviceChargingStatus, + label: "Charging Status", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Not Charging", + 1: "Charging", + }, +}; +exports.DeviceRecordingClipLengthProperty = { + key: types_1.CommandType.CMD_DEV_RECORD_TIMEOUT, + name: PropertyName.DeviceRecordingClipLength, + label: "Recording Clip Length", + readable: true, + writeable: true, + type: "number", + min: 5, + max: 120, + default: 60, + unit: "sec" +}; +exports.DeviceRecordingClipLengthFloodlightProperty = { + ...exports.DeviceRecordingClipLengthProperty, + min: 30, + max: 120, + default: 100, +}; +exports.DeviceRecordingClipLengthWalllightProperty = { + ...exports.DeviceRecordingClipLengthProperty, + min: 30, + max: 120, + default: 60, +}; +exports.DeviceRecordingClipLengthWalllightS120Property = { + ...exports.DeviceRecordingClipLengthProperty, + min: 10, + max: 60, + default: 30, +}; +exports.DeviceRecordingClipLengthOutdoorPTProperty = { + ...exports.DeviceRecordingClipLengthProperty, + min: 10, + max: 120, + default: 60, +}; +exports.DeviceRecordingRetriggerIntervalProperty = { + key: types_1.CommandType.CMD_DEV_RECORD_INTERVAL, + name: PropertyName.DeviceRecordingRetriggerInterval, + label: "Recording Retrigger Interval", + readable: true, + writeable: true, + type: "number", + unit: "sec", + min: 5, + max: 60, + default: 5, +}; +exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty = { + ...exports.DeviceRecordingRetriggerIntervalProperty, + min: 2, + max: 60, + default: 2, +}; +exports.DeviceRecordingRetriggerIntervalFloodlightProperty = { + ...exports.DeviceRecordingRetriggerIntervalProperty, + min: 0, + max: 30, + default: 0, +}; +exports.DeviceRecordingEndClipMotionStopsProperty = { + key: types_1.CommandType.CMD_DEV_RECORD_AUTOSTOP, + name: PropertyName.DeviceRecordingEndClipMotionStops, + label: "Recording end clip early if motion stops", + readable: true, + writeable: true, + type: "boolean", + default: true, +}; +exports.DeviceVideoStreamingQualityProperty = { + key: ParamType.DOORBELL_VIDEO_QUALITY, + name: PropertyName.DeviceVideoStreamingQuality, + label: "Video Streaming Quality", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Auto", + 1: "Low", + 2: "Medium", + 3: "High", + }, + commandId: ParamType.COMMAND_VIDEO_QUALITY, +}; +exports.DeviceVideoStreamingQualityBatteryDoorbellProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY, + name: PropertyName.DeviceVideoStreamingQuality, + label: "Video Streaming Quality", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Auto / Low Encoding", + 1: "Low / Low Encoding", + 2: "Medium / Low Encoding", + 3: "High / Low Encoding", + 5: "Auto / High Encoding", + 6: "Low / High Encoding", + 7: "Medium / High Encoding", + 8: "High / High Encoding", + }, +}; +exports.DeviceVideoStreamingQualityCameraProperty = { + ...exports.DeviceVideoStreamingQualityProperty, + key: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY, +}; +exports.DeviceVideoStreamingQualitySoloProperty = { + ...exports.DeviceVideoStreamingQualityProperty, + key: types_1.CommandType.CMD_SET_RESOLUTION, + commandId: ParamType.COMMAND_VIDEO_QUALITY, +}; +exports.DeviceVideoStreamingQualityWalllightProperty = { + ...exports.DeviceVideoStreamingQualitySoloProperty, + commandId: types_1.CommandType.CMD_SET_RESOLUTION, +}; +exports.DeviceVideoStreamingQualityCamera3Property = { + ...exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, + states: { + 5: "Auto", + 6: "Low", + 7: "Medium", + 8: "High", + 10: "Ultra 4K" + }, +}; +exports.DeviceVideoStreamingQualityCameraProfessionalProperty = { + ...exports.DeviceVideoStreamingQualityCamera3Property, + states: { + 5: "Auto", + 6: "720P", + 7: "1080P", + 8: "2K", + 10: "Ultra 4K" + }, +}; +exports.DeviceVideoStreamingQualityDoorbellE340Property = { + ...exports.DeviceVideoStreamingQualityProperty, + key: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2, + commandId: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2, +}; +exports.DeviceVideoStreamingQualityS350Property = { + ...exports.DeviceVideoStreamingQualityDoorbellE340Property, + states: { + 0: "Auto", + 1: "HD (720P)", + 2: "Full HD (1080P)", + 3: "2K HD", + 4: "Ultra 4K" + }, +}; +exports.DeviceVideoStreamingQualityS340Property = { + ...exports.DeviceVideoStreamingQualityDoorbellE340Property, + states: { + 0: "Auto", + 1: "HD (720P)", + 2: "Full HD (1080P)", + 3: "3K HD", + }, +}; +exports.DeviceVideoStreamingQualitySmartDropProperty = { + ...exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, + states: { + 0: "Auto", + 1: "Low", + 2: "Medium", + 3: "High", + }, +}; +exports.DeviceVideoRecordingQualityIndoorProperty = { + key: ParamType.DOORBELL_RECORD_QUALITY, + name: PropertyName.DeviceVideoRecordingQuality, + label: "Video Recording Quality", + readable: true, + writeable: true, + type: "number", + states: { + 2: "Full HD (1080P)", + 3: "2K HD", + }, + commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, +}; +exports.DeviceVideoRecordingQualityWiredDoorbellProperty = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: ParamType.DOORBELL_RECORD_QUALITY, + states: { + 1: "Storage Saver (1600 * 1200)", + 2: "Full HD (1600 * 1200)", + 3: "2K HD (2560 * 1920)", + }, + commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, +}; +exports.DeviceVideoRecordingQualityProperty = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: types_1.CommandType.CMD_SET_RECORD_QUALITY, + states: { + 2: "Full HD (1080P)", + 3: "2K HD", + }, + commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, +}; +exports.DeviceVideoRecordingQualityDoorbellE340Property = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: types_1.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2, + states: { + 2: "Full HD (1080P)", + 3: "2K HD", + }, + commandId: types_1.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2, +}; +exports.DeviceVideoRecordingQualityS340Property = { + ...exports.DeviceVideoRecordingQualityDoorbellE340Property, + states: { + 1: "HD (720P)", + 2: "Full HD (1080P)", + 3: "3K HD", + }, +}; +exports.DeviceVideoRecordingQualityS350Property = { + ...exports.DeviceVideoRecordingQualityDoorbellE340Property, + states: { + 1: "HD (720P)", + 2: "Full HD (1080P)", + 3: "2K HD", + 4: "Ultra 4K", + }, +}; +exports.DeviceVideoRecordingQualityWalllightProperty = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: types_1.CommandType.CMD_SET_RECORD_QUALITY, + states: { + 2: "Full HD (1080P)", + 3: "2K HD", + }, + commandId: types_1.CommandType.CMD_SET_RECORD_QUALITY, +}; +exports.DeviceVideoRecordingQualityT8200XProperty = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: types_1.CommandType.CMD_SET_RECORD_QUALITY, + states: { + 2: "Full HD (1600 * 1200)", + 3: "2K HD (2048 * 1536)", + }, + commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, +}; +exports.DeviceVideoRecordingQualityCamera2CProProperty = { + ...exports.DeviceVideoRecordingQualityProperty, + states: { + 1: "2K HD", + 2: "Full HD (1080P)", + }, +}; +exports.DeviceVideoRecordingQualityCamera3Property = { + ...exports.DeviceVideoRecordingQualityProperty, + states: { + 1: "2K HD", + 2: "Full HD (1080P)", + 3: "Ultra 4K", + }, +}; +exports.DeviceVideoRecordingQualitySoloProperty = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: types_1.IndoorSoloSmartdropCommandType.CMD_VIDEO_RECORD_QUALITY, + states: { + 2: "Full HD (1080P)", + 3: "2K HD", + }, + commandId: types_1.CommandType.CMD_SET_RECORD_QUALITY, +}; +exports.DeviceVideoRecordingQualitySoloCamerasHB3Property = { + ...exports.DeviceVideoRecordingQualityWalllightProperty, + states: { + 1: "2K HD", + 2: "Full HD (1080P)", + }, +}; +exports.DeviceVideoRecordingQualityT8530Property = { + ...exports.DeviceVideoRecordingQualityIndoorProperty, + key: types_1.CommandType.CMD_SET_RECORD_QUALITY, + states: { + 1: "2K HD", + 2: "Full HD", + 3: "Storage Saver", + }, + commandId: types_1.CommandType.CMD_SET_RECORD_QUALITY, +}; +exports.DeviceWDRProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_WDR_SWITCH, + name: PropertyName.DeviceVideoWDR, + label: "WDR", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceChimeIndoorBatteryDoorbellProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH, + name: PropertyName.DeviceChimeIndoor, + label: "Indoor Chime Enabled", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceChimeIndoorWiredDoorbellProperty = { + ...exports.DeviceChimeIndoorBatteryDoorbellProperty, + key: ParamType.CHIME_STATE, + commandId: ParamType.COMMAND_INDOOR_CHIME, +}; +exports.DeviceChimeIndoorT8200XProperty = { + ...exports.DeviceChimeIndoorBatteryDoorbellProperty, + key: ParamType.COMMAND_INDOOR_CHIME, + commandId: ParamType.COMMAND_INDOOR_CHIME, +}; +exports.DeviceChimeHomebaseBatteryDoorbellProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_CHIME_SWITCH, + name: PropertyName.DeviceChimeHomebase, + label: "Homebase Chime Enabled", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_DINGDONG_V, + name: PropertyName.DeviceChimeHomebaseRingtoneVolume, + label: "Homebase Chime Ringtone Volume", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 26, +}; +exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_DINGDONG_R, + name: PropertyName.DeviceChimeHomebaseRingtoneType, + label: "Homebase Chime Ringtone Type", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Default", + 1: "Silent", + 2: "Beacon", + 3: "Chord", + 4: "Christmas", + 5: "Circuit", + 6: "Clock", + 7: "Ding", + 8: "Hillside", + 9: "Presto", + }, +}; +exports.DeviceNotificationTypeProperty = { + key: types_1.CommandType.CMD_SET_PUSH_EFFECT, + name: PropertyName.DeviceNotificationType, + label: "Notification Type", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Most Efficient", + 2: "Include Thumbnail", + 3: "Full Effect", + }, + commandId: types_1.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, +}; +exports.DeviceNotificationTypeIndoorFloodlightProperty = { + ...exports.DeviceNotificationTypeProperty, + key: types_1.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, +}; +exports.DeviceNotificationTypeBatteryDoorbellProperty = { + ...exports.DeviceNotificationTypeProperty, + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, +}; +exports.DeviceNotificationTypeWiredDoorbellProperty = { + ...exports.DeviceNotificationTypeProperty, + key: ParamType.DOORBELL_MOTION_NOTIFICATION, + commandId: ParamType.COMMAND_NOTIFICATION_TYPE, +}; +exports.DeviceNotificationTypeWalllightProperty = { + ...exports.DeviceNotificationTypeProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE, + commandId: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE, + states: { + 1: "Text Only", + 2: "With Thumbnail", + }, +}; +exports.DeviceRotationSpeedProperty = { + key: types_1.CommandType.CMD_INDOOR_PAN_SPEED, + name: PropertyName.DeviceRotationSpeed, + label: "Rotation Speed", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Min", + 2: "Low", + 3: "Medium", + 4: "High", + 5: "Max", + }, + default: 3 +}; +exports.DeviceImageMirroredProperty = { + key: types_1.CommandType.CMD_SET_MIRRORMODE, + name: PropertyName.DeviceImageMirrored, + label: "Image vertically mirrored", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceSoundDetectionTypeProperty = { + key: types_1.CommandType.CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE, + name: PropertyName.DeviceSoundDetectionType, + label: "Sound Detection Type", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Crying", + 2: "All Sounds", + }, +}; +exports.DeviceSoundDetectionTypeS350Property = { + ...exports.DeviceSoundDetectionTypeProperty, + states: { + 128: "All Sounds", + 256: "Crying", + }, +}; +exports.DeviceSoundDetectionSensitivityProperty = { + key: types_1.CommandType.CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX, + name: PropertyName.DeviceSoundDetectionSensitivity, + label: "Sound Detection Sensitivity", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Min", + 2: "Low", + 3: "Medium", + 4: "High", + 5: "Max", + }, +}; +exports.DeviceNotificationPersonProperty = { + key: types_1.CommandType.CMD_INDOOR_AI_PERSON_ENABLE, + name: PropertyName.DeviceNotificationPerson, + label: "Notification Person detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationPersonWalllightProperty = { + ...exports.DeviceNotificationPersonProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN, +}; +exports.DeviceNotificationPetProperty = { + key: types_1.CommandType.CMD_INDOOR_AI_PET_ENABLE, + name: PropertyName.DeviceNotificationPet, + label: "Notification Pet detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationAllOtherMotionProperty = { + key: types_1.CommandType.CMD_INDOOR_AI_MOTION_ENABLE, + name: PropertyName.DeviceNotificationAllOtherMotion, + label: "Notification All Other Motion", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationAllOtherMotionWalllightProperty = { + ...exports.DeviceNotificationAllOtherMotionProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL, +}; +exports.DeviceNotificationAllSoundProperty = { + key: types_1.CommandType.CMD_INDOOR_AI_SOUND_ENABLE, + name: PropertyName.DeviceNotificationAllSound, + label: "Notification Sound detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationCryingProperty = { + key: types_1.CommandType.CMD_INDOOR_AI_CRYING_ENABLE, + name: PropertyName.DeviceNotificationCrying, + label: "Notification Crying detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationRingProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, + name: PropertyName.DeviceNotificationRing, + label: "Notification Ring detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationRingWiredDoorbellProperty = { + ...exports.DeviceNotificationRingProperty, + key: ParamType.DOORBELL_NOTIFICATION_OPEN, + commandId: ParamType.COMMAND_NOTIFICATION_RING, +}; +exports.DeviceNotificationMotionProperty = { + key: types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, + name: PropertyName.DeviceNotificationMotion, + label: "Notification Motion detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationRadarDetectorProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT, + name: PropertyName.DeviceNotificationRadarDetector, + label: "Notification Radar Detector Motion detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationMotionWiredDoorbellProperty = { + ...exports.DeviceNotificationMotionProperty, + key: ParamType.DOORBELL_NOTIFICATION_OPEN, + commandId: ParamType.COMMAND_NOTIFICATION_RING, +}; +exports.DeviceChirpVolumeEntrySensorProperty = { + key: types_1.CommandType.CMD_SENSOR_SET_CHIRP_VOLUME, + name: PropertyName.DeviceChirpVolume, + label: "Chirp Volume", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 26, + steps: 1, +}; +exports.DeviceChirpToneEntrySensorProperty = { + key: types_1.CommandType.CMD_SENSOR_SET_CHIRP_TONE, + name: PropertyName.DeviceChirpTone, + label: "Chirp Tone", + readable: true, + writeable: true, + type: "number", + states: { + 0: "None", + 1: "Water", + 2: "Classic", + 3: "Light", + 4: "Ding", + } +}; +exports.DeviceVideoHDRWiredDoorbellProperty = { + key: ParamType.DOORBELL_HDR, + name: PropertyName.DeviceVideoHDR, + label: "HDR", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceVideoDistortionCorrectionWiredDoorbellProperty = { + key: ParamType.DOORBELL_DISTORTION, + name: PropertyName.DeviceVideoDistortionCorrection, + label: "Distortion Correction", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceVideoRingRecordWiredDoorbellProperty = { + key: ParamType.DOORBELL_RING_RECORD, + name: PropertyName.DeviceVideoRingRecord, + label: "Record while live viewing after opening notification", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Disabled", + 1: "Enabled - Recording Quality Preferred", + 2: "Enabled - Streaming Quality Preferred", + } +}; +exports.DeviceMotionDetectionRangeProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE, + name: PropertyName.DeviceMotionDetectionRange, + label: "Motion Detection Range", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Standard", + 1: "Advanced", + 2: "Automatic", + }, +}; +exports.DeviceMotionDetectionRangeT8425Property = { + ...exports.DeviceMotionDetectionRangeProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, +}; +exports.DeviceMotionDetectionRangeStandardSensitivityProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionRangeStandardSensitivity, + label: "Motion Detection Range Standard Sensitivity", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 1: "Min", + 2: "Low", + 3: "Medium", + 4: "High", + 5: "Max", + }, +}; +exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property = { + ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, +}; +exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty = { + ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity, + label: "Motion Detection Range Advanced Left Sensitivity", +}; +exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property = { + ...exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, +}; +exports.DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty = { + ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity, + label: "Motion Detection Range Advanced Middle Sensitivity", +}; +exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty = { + ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity, + label: "Motion Detection Range Advanced Right Sensitivity", +}; +exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property = { + ...exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, +}; +exports.DeviceMotionDetectionTestModeProperty = { + key: types_1.CommandType.CMD_SET_PIR_TEST_MODE, + name: PropertyName.DeviceMotionDetectionTestMode, + label: "Motion Detection Test Mode", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionDetectionTestModeT8425Property = { + ...exports.DeviceMotionDetectionTestModeProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, +}; +exports.DeviceMotionTrackingSensitivityProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY, + name: PropertyName.DeviceMotionTrackingSensitivity, + label: "Motion Tracking Sensitivity", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Level 1", + 2: "Level 2", + 3: "Level 3", + }, + default: 3, +}; +exports.DeviceMotionAutoCruiseProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE, + name: PropertyName.DeviceMotionAutoCruise, + label: "Motion Auto-Cruise", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceMotionOutOfViewDetectionProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION, + name: PropertyName.DeviceMotionOutOfViewDetection, + label: "Motion Out-of-View Detection", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceLightSettingsColorTemperatureManualProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL, + name: PropertyName.DeviceLightSettingsColorTemperatureManual, + label: "Light Setting Color Temperature Manual", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 100, + default: 50, +}; +exports.DeviceLightSettingsColorTemperatureMotionProperty = { + ...exports.DeviceLightSettingsColorTemperatureManualProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION, + name: PropertyName.DeviceLightSettingsColorTemperatureMotion, + label: "Light Setting Color Temperature Motion", +}; +exports.DeviceLightSettingsColorTemperatureScheduleProperty = { + ...exports.DeviceLightSettingsColorTemperatureManualProperty, + key: types_1.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE, + name: PropertyName.DeviceLightSettingsColorTemperatureSchedule, + label: "Light Setting Color Temperature Schedule", +}; +exports.DeviceLightSettingsMotionActivationModeProperty = { + key: types_1.CommandType.CMD_SET_FLOODLIGHT_STREET_LAMP, + name: PropertyName.DeviceLightSettingsMotionActivationMode, + label: "Light Settings Motion Activation Mode", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Smart", + 1: "Fast", + }, +}; +exports.DeviceLightSettingsMotionActivationModeT8425Property = { + ...exports.DeviceLightSettingsMotionActivationModeProperty, + key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, +}; +exports.DeviceVideoNightvisionImageAdjustmentProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT, + name: PropertyName.DeviceVideoNightvisionImageAdjustment, + label: "Video Nightvision Image Adjustment", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceVideoColorNightvisionProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION, + name: PropertyName.DeviceVideoColorNightvision, + label: "Video Color Nightvision", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAutoCalibrationProperty = { + key: types_1.CommandType.CMD_FLOODLIGHT_SET_AUTO_CALIBRATION, + name: PropertyName.DeviceAutoCalibration, + label: "Auto Calibration", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAutoLockProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK, + name: PropertyName.DeviceAutoLock, + label: "Auto Lock", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAutoLockTimerProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER, + name: PropertyName.DeviceAutoLockTimer, + label: "Auto Lock Timer", + readable: true, + writeable: true, + type: "number", + states: { + 1: "1 sec.", + 30: "30 sec.", + 60: "1 min.", + 90: "1,5 min.", + 120: "2 min.", + 150: "2,5 min.", + 180: "3 min.", + }, + default: 60, + unit: "sec", +}; +exports.DeviceAutoLockScheduleProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE, + name: PropertyName.DeviceAutoLockSchedule, + label: "Auto Lock Schedule", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceAutoLockScheduleStartTimeProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME, + name: PropertyName.DeviceAutoLockScheduleStartTime, + label: "Auto Lock Schedule Starttime (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "06:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceAutoLockScheduleEndTimeProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME, + name: PropertyName.DeviceAutoLockScheduleEndTime, + label: "Auto Lock Schedule Endtime (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "23:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceOneTouchLockingProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK, + name: PropertyName.DeviceOneTouchLocking, + label: "One-Touch Locking", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceWrongTryProtectionProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT, + name: PropertyName.DeviceWrongTryProtection, + label: "Wrong Try Protection", + readable: true, + writeable: true, + type: "boolean", + default: true, +}; +exports.DeviceWrongTryProtectionSmartSafeProperty = { + ...exports.DeviceWrongTryProtectionProperty, + key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT, +}; +exports.DeviceWrongTryLockdownTimeProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN, + name: PropertyName.DeviceWrongTryLockdownTime, + label: "Wrong Try Lockdown Time", + readable: true, + writeable: true, + type: "number", + states: { + 60: "1 min.", + 120: "2 min.", + 180: "3 min.", + 240: "4 min.", + 300: "5 min.", + }, + default: 180, + unit: "sec", +}; +exports.DeviceWrongTryLockdownTimeSmartSafeProperty = { + ...exports.DeviceWrongTryLockdownTimeProperty, + key: types_1.CommandType.CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS, + default: 60, +}; +exports.DeviceWrongTryAttemptsProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS, + name: PropertyName.DeviceWrongTryAttempts, + label: "Wrong Try Attempts", + readable: true, + writeable: true, + type: "number", + min: 3, + max: 10, + default: 5, +}; +exports.DeviceWrongTryAttemptsSmartSafeProperty = { + ...exports.DeviceWrongTryAttemptsProperty, + key: types_1.CommandType.CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES, + min: 5, + max: 10, + default: 5, +}; +exports.DeviceScramblePasscodeProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE, + name: PropertyName.DeviceScramblePasscode, + label: "Scramble Passcode", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceScramblePasscodeSmartSafeProperty = { + ...exports.DeviceScramblePasscodeProperty, + key: types_1.CommandType.CMD_SMARTSAFE_IS_SET_PREFIX_PWD, + label: "Scramble PIN", +}; +exports.DeviceSoundProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_LOCK_SOUND, + name: PropertyName.DeviceSound, + label: "Sound", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 1: "Low", + 2: "Medium", + 3: "High", + }, + default: 2, +}; +exports.DeviceSoundSimpleProperty = { + ...exports.DeviceSoundProperty, + states: { + 0: "Off", + 2: "On", + }, + default: 2, +}; +exports.DeviceNotificationProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_NOTIFICATION, + name: PropertyName.DeviceNotification, + label: "Notification", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationSmartLockProperty = { + ...exports.DeviceNotificationProperty, + key: types_1.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, +}; +exports.DeviceNotificationWalllightProperty = { + ...exports.DeviceNotificationProperty, + key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION, +}; +exports.DeviceNotificationUnlockedProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_NOTIFICATION_UNLOCKED, + name: PropertyName.DeviceNotificationUnlocked, + label: "Notification Unlocked", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationUnlockedSmartLockProperty = { + ...exports.DeviceNotificationUnlockedProperty, + key: types_1.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, +}; +exports.DeviceNotificationLockedProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_NOTIFICATION_LOCKED, + name: PropertyName.DeviceNotificationLocked, + label: "Notification Locked", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationLockedSmartLockProperty = { + ...exports.DeviceNotificationLockedProperty, + key: types_1.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, +}; +exports.DeviceLoiteringDetectionProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_SWITCH, + name: PropertyName.DeviceLoiteringDetection, + label: "Loitering Detection", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceLoiteringDetectionRangeProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE, + name: PropertyName.DeviceLoiteringDetectionRange, + label: "Loitering Detection Range", + readable: true, + writeable: true, + type: "number", + states: { + 1: "within 2ft", + 2: "within 4ft", + 3: "within 6ft", + 4: "within 8ft", + 5: "within 10ft", + }, + default: 3, +}; +exports.DeviceLoiteringDetectionLengthProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME, + name: PropertyName.DeviceLoiteringDetectionLength, + label: "Loitering Detection Length", + readable: true, + writeable: true, + type: "number", + states: { + 1: "15s", + 2: "20s", + 3: "25s", + 4: "30s", + 5: "45s", + 6: "60s", + }, + default: 1, +}; +exports.DeviceMotionDetectionSensitivityModeProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionSensitivityMode, + label: "Motion Detection Sensitivity Mode", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Standard", + 1: "Advanced", + }, +}; +exports.DeviceMotionDetectionSensitivityStandardProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionSensitivityStandard, + label: "Motion Detection Standard Sensitivity", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 5, + default: 3, +}; +exports.DeviceMotionDetectionSensitivityAdvancedAProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedA, + label: "Motion Detection Advanced Sensitivity A", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 5, + default: 3, +}; +exports.DeviceMotionDetectionSensitivityAdvancedBProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedB, + label: "Motion Detection Advanced Sensitivity B", +}; +exports.DeviceMotionDetectionSensitivityAdvancedCProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedC, + label: "Motion Detection Advanced Sensitivity C", +}; +exports.DeviceMotionDetectionSensitivityAdvancedDProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedD, + label: "Motion Detection Advanced Sensitivity D", +}; +exports.DeviceMotionDetectionSensitivityAdvancedEProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedE, + label: "Motion Detection Advanced Sensitivity E", +}; +exports.DeviceMotionDetectionSensitivityAdvancedFProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedF, + label: "Motion Detection Advanced Sensitivity F", +}; +exports.DeviceMotionDetectionSensitivityAdvancedGProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedG, + label: "Motion Detection Advanced Sensitivity G", +}; +exports.DeviceMotionDetectionSensitivityAdvancedHProperty = { + ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + name: PropertyName.DeviceMotionDetectionSensitivityAdvancedH, + label: "Motion Detection Advanced Sensitivity H", +}; +exports.DeviceLoiteringCustomResponsePhoneNotificationProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, + name: PropertyName.DeviceLoiteringCustomResponsePhoneNotification, + label: "Loitering Custom Response Phone Notification", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty = { + ...exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, + name: PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse, + label: "Loitering Custom Response Auto Voice Response", +}; +exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, + name: PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice, + label: "Loitering Custom Response Auto Voice Response Voice", + readable: true, + writeable: true, + type: "number", + default: 1, + // states loaded dynamically +}; +exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty = { + ...exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, + name: PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification, + label: "Loitering Custom Response HomeBase Notification", +}; +exports.DeviceLoiteringCustomResponseTimeFromProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, + name: PropertyName.DeviceLoiteringCustomResponseTimeFrom, + label: "Loitering Custom Response Time From (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "00:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceLoiteringCustomResponseTimeToProperty = { + ...exports.DeviceLoiteringCustomResponseTimeFromProperty, + name: PropertyName.DeviceLoiteringCustomResponseTimeTo, + label: "Loitering Custom Response Time To (24-hour clock)", + default: "23:59", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceDeliveryGuardProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH, + name: PropertyName.DeviceDeliveryGuard, + label: "Delivery Guard", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceDeliveryGuardPackageGuardingProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH, + name: PropertyName.DeviceDeliveryGuardPackageGuarding, + label: "Delivery Guard Package Guarding", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE, + name: PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice, + label: "Delivery Guard Package Guarding Voice Response Voice", + readable: true, + writeable: true, + type: "number", + default: 2, + // states loaded dynamically +}; +exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME, + name: PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom, + label: "Delivery Guard Package Guarding Activated Time From (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "00:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty = { + ...exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, + name: PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo, + label: "Delivery Guard Package Guarding Activated Time To (24-hour clock)", + default: "23:59", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceDeliveryGuardUncollectedPackageAlertProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH, + name: PropertyName.DeviceDeliveryGuardUncollectedPackageAlert, + label: "Delivery Guard Uncollected Package Alert", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME, + name: PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck, + label: "Delivery Guard Uncollected Package Alert Time To Check (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "20:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH, + name: PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance, + label: "Delivery Guard Package Live Check Assistance", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceDualCamWatchViewModeProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE, + name: PropertyName.DeviceDualCamWatchViewMode, + label: "Dual Cam Watch View Mode", + readable: true, + writeable: true, + type: "number", + states: { + 2: "Top-Left Picture-in-Picture", + 3: "Top-Right Picture-in-Picture", + 4: "Bottom-Left Picture-in-Picture", + 5: "Bottom-Right Picture-in-Picture", + 12: "Split-view", + }, + default: 12, +}; +exports.DeviceDualCamWatchViewModeE340Property = { + ...exports.DeviceDualCamWatchViewModeProperty, + key: types_1.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE2, +}; +exports.DeviceDualCamWatchViewModeS340Property = { + ...exports.DeviceDualCamWatchViewModeProperty, + key: types_1.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE2, + states: { + 0: "Single view", + 12: "Double view", + }, + default: 0, +}; +exports.DeviceRingAutoResponseProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, + name: PropertyName.DeviceRingAutoResponse, + label: "Ring Auto-Response", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceRingAutoResponseVoiceResponseProperty = { + ...exports.DeviceRingAutoResponseProperty, + name: PropertyName.DeviceRingAutoResponseVoiceResponse, + label: "Ring Auto-Response Voice Response", +}; +exports.DeviceRingAutoResponseVoiceResponseVoiceProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, + name: PropertyName.DeviceRingAutoResponseVoiceResponseVoice, + label: "Ring Auto-Response Voice Response Voice", + readable: true, + writeable: true, + type: "number", + default: 2, + // states loaded dynamically +}; +exports.DeviceRingAutoResponseTimeFromProperty = { + key: types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, + name: PropertyName.DeviceRingAutoResponseTimeFrom, + label: "Ring Auto-Response Time From (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "00:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceRingAutoResponseTimeToProperty = { + ...exports.DeviceRingAutoResponseTimeFromProperty, + name: PropertyName.DeviceRingAutoResponseTimeTo, + label: "Ring Auto-Response Time To (24-hour clock)", + default: "23:59", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceContinuousRecordingProperty = { + key: types_1.CommandType.CMD_INDOOR_SET_CONTINUE_ENABLE, + name: PropertyName.DeviceContinuousRecording, + label: "Continuos Recording", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceContinuousRecordingTypeProperty = { + key: types_1.CommandType.CMD_INDOOR_SET_CONTINUE_TYPE, + name: PropertyName.DeviceContinuousRecordingType, + label: "Continuos Recording Mode", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Always", + 1: "Schedule" + } +}; +exports.DeviceDefaultAngleProperty = { + key: types_1.CommandType.CMD_INDOOR_DEFAULT_ANGLE_ENABLE, + name: PropertyName.DeviceDefaultAngle, + label: "Default Angle", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.DeviceDefaultAngleIdleTimeProperty = { + key: types_1.CommandType.CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME, + name: PropertyName.DeviceDefaultAngleIdleTime, + label: "Default Angle Idle Time", + readable: true, + writeable: true, + type: "number", + states: { + 10: "10s", + 20: "20s", + 40: "40s", + 60: "1 min", + 120: "2 mins", + 300: "5 mins", + }, + default: 60, +}; +exports.DeviceNotificationIntervalTimeProperty = { + key: types_1.CommandType.CMD_DEV_RECORD_INTERVAL, + name: PropertyName.DeviceNotificationIntervalTime, + label: "Notification Interval Time", + readable: true, + writeable: true, + type: "number", + unit: "min", + default: 0, + states: { + 0: "0", + 60: "1", + 120: "2", + 180: "3", + 240: "4", + 300: "5", + } +}; +exports.DeviceSoundDetectionRoundLookProperty = { + key: types_1.CommandType.CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK, + name: PropertyName.DeviceSoundDetectionRoundLook, + label: "Sound Detection Round-Look", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceSoundDetectionRoundLookS350Property = { + key: types_1.CommandType.CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350, + name: PropertyName.DeviceSoundDetectionRoundLook, + label: "Sound Detection Round-Look", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationHomeSecuritySettings = { + key: types_1.CommandType.ARM_DELAY_HOME, + name: PropertyName.StationHomeSecuritySettings, + label: "Security Settings Home", + readable: true, + writeable: false, + type: "string", +}; +exports.StationAwaySecuritySettings = { + key: types_1.CommandType.ARM_DELAY_AWAY, + name: PropertyName.StationAwaySecuritySettings, + label: "Security Settings Away", + readable: true, + writeable: false, + type: "string", +}; +exports.StationCustom1SecuritySettings = { + key: types_1.CommandType.ARM_DELAY_CUS1, + name: PropertyName.StationCustom1SecuritySettings, + label: "Security Settings Custom1", + readable: true, + writeable: false, + type: "string", +}; +exports.StationCustom2SecuritySettings = { + key: types_1.CommandType.ARM_DELAY_CUS2, + name: PropertyName.StationCustom2SecuritySettings, + label: "Security Settings Custom2", + readable: true, + writeable: false, + type: "string", +}; +exports.StationCustom3SecuritySettings = { + key: types_1.CommandType.ARM_DELAY_CUS3, + name: PropertyName.StationCustom3SecuritySettings, + label: "Security Settings Custom3", + readable: true, + writeable: false, + type: "string", +}; +exports.StationOffSecuritySettings = { + key: types_1.CommandType.ARM_DELAY_OFF, + name: PropertyName.StationOffSecuritySettings, + label: "Security Settings Off", + readable: true, + writeable: false, + type: "string", +}; +exports.DevicePackageDeliveredProperty = { + key: "custom_packageDelivered", + name: PropertyName.DevicePackageDelivered, + label: "Package Delivered", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DevicePackageStrandedProperty = { + key: "custom_packageStranded", + name: PropertyName.DevicePackageStranded, + label: "Package Stranded", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DevicePackageTakenProperty = { + key: "custom_packageTaken", + name: PropertyName.DevicePackageTaken, + label: "Package Taken", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceSomeoneLoiteringProperty = { + key: "custom_someoneLoitering", + name: PropertyName.DeviceSomeoneLoitering, + label: "Someone Loitering", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceRadarMotionDetectedProperty = { + key: "custom_radarMotionDetected", + name: PropertyName.DeviceRadarMotionDetected, + label: "Radar Motion Detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceLeftOpenAlarmProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN, + name: PropertyName.DeviceLeftOpenAlarm, + label: "Left Open Alarm", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceLeftOpenAlarmDurationProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_LEFT_OPEN_SECONDS, + name: PropertyName.DeviceLeftOpenAlarmDuration, + label: "Left Open Alarm Duration", + readable: true, + writeable: true, + type: "number", + states: { + 30: "30 sec.", + 60: "60 sec.", + 90: "90 sec.", + 120: "120 sec.", + }, + default: 120, + unit: "sec", +}; +exports.DeviceDualUnlockProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK, + name: PropertyName.DeviceDualUnlock, + label: "Dual Unlock", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DevicePowerSaveProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_POWER_SAVE_ON, + name: PropertyName.DevicePowerSave, + label: "Power Save", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceInteriorBrightnessProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL, + name: PropertyName.DeviceInteriorBrightness, + label: "Interior Brightness Level", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 25: "Low", + 60: "Mid", + 100: "High", + }, + default: 60, +}; +exports.DeviceInteriorBrightnessDurationProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND, + name: PropertyName.DeviceInteriorBrightnessDuration, + label: "Interior Brightness Duration", + readable: true, + writeable: true, + type: "number", + default: 10, + min: 5, + max: 60, + steps: 1, + unit: "sec", +}; +exports.DeviceTamperAlarmProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM, + name: PropertyName.DeviceTamperAlarm, + label: "Tamper Alarm", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Off", + 2: "Tamper Alarm", + 3: "Move Alarm", + }, + default: 2, +}; +exports.DeviceRemoteUnlockProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_REMOTE_OPEN_TYPE, + name: PropertyName.DeviceRemoteUnlock, + label: "Remote Unlock", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceRemoteUnlockMasterPINProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_REMOTE_OPEN_TYPE, + name: PropertyName.DeviceRemoteUnlockMasterPIN, + label: "Remote Unlock Master PIN", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DevicePromptVolumeProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_VOLUME, + name: PropertyName.DevicePromptVolume, + label: "Prompt Volume", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Mute", + 1: "Soft", + 2: "Max", + }, + default: 1, +}; +exports.DeviceAlarmVolumeProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_ALERT_VOLUME, + name: PropertyName.DeviceAlarmVolume, + label: "Alarm Volume", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Low", + 1: "Medium", + 2: "High", + }, + default: 2, +}; +exports.DeviceNotificationUnlockByKeyProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationUnlockByKey, + label: "Notification Unlock By Key", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationUnlockByPINProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationUnlockByPIN, + label: "Notification Unlock By PIN", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationUnlockByFingerprintProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationUnlockByFingerprint, + label: "Notification Unlock By Fingerprint", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationUnlockByAppProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationUnlockByApp, + label: "Notification Unlock By App", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationDualUnlockProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationDualUnlock, + label: "Notification Dual Unlock", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationDualLockProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationDualLock, + label: "Notification Dual Lock", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationWrongTryProtectProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationWrongTryProtect, + label: "Notification Wrong-Try Protect", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationJammedProperty = { + key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, + name: PropertyName.DeviceNotificationJammed, + label: "Notification Jammed", + readable: true, + writeable: false, + type: "boolean", +}; +exports.DeviceJammedAlertProperty = { + key: "custom_jammedAlert", + name: PropertyName.DeviceJammedAlert, + label: "Jammed Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.Device911AlertProperty = { + key: "custom_911Alert", + name: PropertyName.Device911Alert, + label: "911 Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.Device911AlertEventProperty = { + key: "custom_911AlertEvent", + name: PropertyName.Device911AlertEvent, + label: "911 Alert Event", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Cancel Alarm", + 1: "Alarm", + 2: "Alarm Success", + 3: "Alarm Not Open", + 4: "Alarm Open Failed", + }, +}; +exports.DeviceShakeAlertProperty = { + key: "custom_shakeAlert", + name: PropertyName.DeviceShakeAlert, + label: "Shake Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceShakeAlertEventProperty = { + key: "custom_shakeAlertEvent", + name: PropertyName.DeviceShakeAlertEvent, + label: "Shake Alert Event", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Cancel Alarm", + 1: "Alarm", + }, +}; +exports.DeviceLowBatteryAlertProperty = { + key: "custom_lowBatteryAlert", + name: PropertyName.DeviceLowBatteryAlert, + label: "Low Battery Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceLongTimeNotCloseAlertProperty = { + key: "custom_longTimeNotCloseAlert", + name: PropertyName.DeviceLongTimeNotCloseAlert, + label: "Long Time Not Close Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceWrongTryProtectAlertProperty = { + key: "custom_wrongTryProtectAlert", + name: PropertyName.DeviceWrongTryProtectAlert, + label: "Wrong Try-Protect Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceVideoTypeStoreToNASProperty = { + key: types_1.CommandType.CMD_INDOOR_NAS_STORAGE_TYPE, + name: PropertyName.DeviceVideoTypeStoreToNAS, + label: "Video Type Store To NAS", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Events", + 1: "Continuous Recording", + }, +}; +exports.DeviceSnoozeProperty = { + key: types_1.CommandType.CMD_SET_SNOOZE_MODE, + name: PropertyName.DeviceSnooze, + label: "Snooze", + readable: true, + writeable: false, + type: "boolean", +}; +exports.DeviceSnoozeTimeProperty = { + key: types_1.CommandType.CMD_SET_SNOOZE_MODE, + name: PropertyName.DeviceSnoozeTime, + label: "Snooze Time", + readable: true, + writeable: false, + type: "number", + default: 0, + unit: "sec", +}; +exports.DeviceSnoozeStartTimeProperty = { + key: types_1.CommandType.CMD_SET_SNOOZE_MODE, + name: PropertyName.DeviceSnoozeStartTime, + label: "Snooze Start Time", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceSnoozeStartTimeWiredDoorbellProperty = { + ...exports.DeviceSnoozeStartTimeProperty, + key: ParamType.DOORBELL_SNOOZE_START_TIME, +}; +exports.DeviceSnoozeHomebaseProperty = { + key: types_1.CommandType.CMD_SET_SNOOZE_MODE, + name: PropertyName.DeviceSnoozeHomebase, + label: "Snooze Homebase", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceSnoozeMotionProperty = { + key: types_1.CommandType.CMD_SET_SNOOZE_MODE, + name: PropertyName.DeviceSnoozeMotion, + label: "Snooze Motion", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceSnoozeChimeProperty = { + key: types_1.CommandType.CMD_SET_SNOOZE_MODE, + name: PropertyName.DeviceSnoozeChime, + label: "Snooze Chime", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DevicePersonNameProperty = { + key: "custom_personName", + name: PropertyName.DevicePersonName, + label: "Person Name", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceIdentityPersonDetectedProperty = { + key: "custom_identityPersonDetected", + name: PropertyName.DeviceIdentityPersonDetected, + label: "Identity Person detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceStrangerPersonDetectedProperty = { + key: "custom_strangerPersonDetected", + name: PropertyName.DeviceStrangerPersonDetected, + label: "Stranger Person detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceVehicleDetectedProperty = { + key: "custom_vehicleDetected", + name: PropertyName.DeviceVehicleDetected, + label: "Vehicle detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDogDetectedProperty = { + key: "custom_dogDetected", + name: PropertyName.DeviceDogDetected, + label: "Dog detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDogLickDetectedProperty = { + key: "custom_dogLickDetected", + name: PropertyName.DeviceDogLickDetected, + label: "Dog Lick detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDogPoopDetectedProperty = { + key: "custom_dogPoopDetected", + name: PropertyName.DeviceDogPoopDetected, + label: "Dog Poop detected", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDetectionStatisticsWorkingDaysProperty = { + key: types_1.CommandType.CMD_GET_WORKING_DAYS_HB3, + name: PropertyName.DeviceDetectionStatisticsWorkingDays, + label: "Detection Statistics - Working Days", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceDetectionStatisticsDetectedEventsProperty = { + key: types_1.CommandType.CMD_GET_DETECTED_EVENTS_HB3, + name: PropertyName.DeviceDetectionStatisticsDetectedEvents, + label: "Detection Statistics - Detected Events", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DeviceDetectionStatisticsRecordedEventsProperty = { + key: types_1.CommandType.CMD_GET_RECORDED_EVENTS_HB3, + name: PropertyName.DeviceDetectionStatisticsRecordedEvents, + label: "Detection Statistics - Recorded Events", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.DevicePictureProperty = { + key: "custom_picture", + name: PropertyName.DevicePicture, + label: "Last Camera Picture", + readable: true, + writeable: false, + type: "object", + default: null, +}; +exports.DeviceLightSettingsManualDailyLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING, + name: PropertyName.DeviceLightSettingsManualDailyLighting, + label: "Light Setting Manual Daily Lighting Selection", + readable: true, + writeable: true, + type: "number", + states: { + "0": "Cold", + "1": "Warm", + "2": "Very warm", + }, +}; +exports.DeviceLightSettingsManualColoredLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING, + name: PropertyName.DeviceLightSettingsManualColoredLighting, + label: "Light Setting Manual Colored Lighting Selection", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + return typeof obj === "object" && "red" in obj && "green" in obj && "blue" in obj && typeof obj.red === "number" && typeof obj.green === "number" && typeof obj.blue === "number"; + }, +}; +exports.DeviceLightSettingsManualDynamicLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING, + name: PropertyName.DeviceLightSettingsManualDynamicLighting, + label: "Light Setting Manual Dynamic Lighting Selection", + readable: true, + writeable: true, + type: "number", +}; +exports.DeviceLightSettingsManualLightingActiveModeProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE, + name: PropertyName.DeviceLightSettingsManualLightingActiveMode, + label: "Light Setting Manual Lighting Active Mode", + readable: true, + writeable: true, + type: "number", + states: { + "0": "Daily", + "1": "Colored", + "2": "Dynamic", + }, +}; +exports.DeviceLightSettingsMotionDailyLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING, + name: PropertyName.DeviceLightSettingsMotionDailyLighting, + label: "Light Setting Motion Daily Lighting Selection", + readable: true, + writeable: true, + type: "number", + states: { + "0": "Cold", + "1": "Warm", + "2": "Very warm", + }, +}; +exports.DeviceLightSettingsMotionColoredLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING, + name: PropertyName.DeviceLightSettingsMotionColoredLighting, + label: "Light Setting Motion Colored Lighting Selection", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + return typeof obj === "object" && "red" in obj && "green" in obj && "blue" in obj && typeof obj.red === "number" && typeof obj.green === "number" && typeof obj.blue === "number"; + }, +}; +exports.DeviceLightSettingsMotionDynamicLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING, + name: PropertyName.DeviceLightSettingsMotionDynamicLighting, + label: "Light Setting Motion Dynamic Lighting Selection", + readable: true, + writeable: true, + type: "number", +}; +exports.DeviceLightSettingsMotionLightingActiveModeProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE, + name: PropertyName.DeviceLightSettingsMotionLightingActiveMode, + label: "Light Setting Motion Lighting Active Mode", + readable: true, + writeable: true, + type: "number", + states: { + "0": "Daily", + "1": "Colored", + "2": "Dynamic", + }, +}; +exports.DeviceLightSettingsScheduleDailyLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING, + name: PropertyName.DeviceLightSettingsScheduleDailyLighting, + label: "Light Setting Schedule Daily Lighting Selection", + readable: true, + writeable: true, + type: "number", + states: { + "0": "Cold", + "1": "Warm", + "2": "Very warm", + }, +}; +exports.DeviceLightSettingsScheduleColoredLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING, + name: PropertyName.DeviceLightSettingsScheduleColoredLighting, + label: "Light Setting Schedule Colored Lighting Selection", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + return typeof obj === "object" && "red" in obj && "green" in obj && "blue" in obj && typeof obj.red === "number" && typeof obj.green === "number" && typeof obj.blue === "number"; + }, +}; +exports.DeviceLightSettingsScheduleDynamicLightingProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING, + name: PropertyName.DeviceLightSettingsScheduleDynamicLighting, + label: "Light Setting Schedule Dynamic Lighting Selection", + readable: true, + writeable: true, + type: "number", +}; +exports.DeviceLightSettingsScheduleLightingActiveModeProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE, + name: PropertyName.DeviceLightSettingsScheduleLightingActiveMode, + label: "Light Setting Schedule Lighting Active Mode", + readable: true, + writeable: true, + type: "number", + states: { + "0": "Daily", + "1": "Colored", + "2": "Dynamic", + }, +}; +exports.DeviceLightSettingsColoredLightingColorsProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS, + name: PropertyName.DeviceLightSettingsColoredLightingColors, + label: "Light Setting Colored Lighting Colors", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + if (Array.isArray(obj)) { + return obj.length > 0 && + obj.every((value) => { + return typeof value === "object" && + "red" in value && + "green" in value && + "blue" in value && + typeof value.red === "number" && + value.red >= 0 && + value.red <= 255 && + typeof value.green === "number" && + value.green >= 0 && + value.green <= 255 && + typeof value.blue === "number" && + value.blue >= 0 && + value.blue <= 255; + }); + } + return false; + }, +}; +exports.DeviceLightSettingsDynamicLightingThemesProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES, + name: PropertyName.DeviceLightSettingsDynamicLightingThemes, + label: "Light Setting Dynamic Lighting Themes", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + if (Array.isArray(obj)) { + return obj.length > 0 && + obj.every((value) => { + return typeof value === "object" && + "name" in value && + "mode" in value && + "speed" in value && + "colors" in value && + typeof value.name === "string" && + value.name !== "" && + typeof value.mode === "number" && + value.mode in DynamicLightingEffect && + typeof value.speed === "number" && + [500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000].includes(value.speed) && // msec. + Array.isArray(value.colors) && + value.colors.length > 0 && + value.colors.length <= 5 && + value.colors.every((value) => { + return typeof value === "object" && + "red" in value && + "green" in value && + "blue" in value && + typeof value.red === "number" && + value.red >= 0 && + value.red <= 255 && + typeof value.green === "number" && + value.green >= 0 && + value.green <= 255 && + typeof value.blue === "number" && + value.blue >= 0 && + value.blue <= 255; + }); + }); + } + return false; + }, +}; +exports.DeviceDoorControlWarningProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorControlWarning, + label: "Door Control Warning", + readable: true, + writeable: true, + type: "boolean", + commandId: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING, +}; +exports.DeviceDoor1OpenProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, + name: PropertyName.DeviceDoor1Open, + label: "Door 1 Open", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceDoor2OpenProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, + name: PropertyName.DeviceDoor2Open, + label: "Door 2 Open", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceDoorSensor1StatusProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor1Status, + label: "Door Sensor 1 Status", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Offline", + 1: "Online" + } +}; +exports.DeviceDoorSensor2StatusProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor2Status, + label: "Door Sensor 2 Status", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Offline", + 1: "Online" + }, + default: 0 +}; +exports.DeviceDoorSensor1MacAddressProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor1MacAddress, + label: "Door Sensor 1 Mac Address", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor2MacAddressProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor2MacAddress, + label: "Door Sensor 2 Mac Address", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor1NameProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor1Name, + label: "Door Sensor 1 Name", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor2NameProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor2Name, + label: "Door Sensor 2 Name", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor1SerialNumberProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor1SerialNumber, + label: "Door Sensor 1 Serial Number", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor2SerialNumberProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor2SerialNumber, + label: "Door Sensor 2 Serial Number", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor1VersionProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor1Version, + label: "Door Sensor 1 Version", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor2VersionProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor2Version, + label: "Door Sensor 2 Version", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceDoorSensor1LowBatteryProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, + name: PropertyName.DeviceDoorSensor1LowBattery, + label: "Door Sensor 1 Low Battery", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDoorSensor2LowBatteryProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, + name: PropertyName.DeviceDoorSensor2LowBattery, + label: "Door Sensor 2 Low Battery", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDoorSensor1BatteryLevelProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor1BatteryLevel, + label: "Door Sensor 1 Battery Level", + readable: true, + writeable: false, + type: "number", + min: 0, + max: 5, + default: 0 +}; +exports.DeviceDoorSensor2BatteryLevelProperty = { + key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, + name: PropertyName.DeviceDoorSensor2BatteryLevel, + label: "Door Sensor 2 Battery Level", + readable: true, + writeable: false, + type: "number", + min: 0, + max: 5, + default: 0 +}; +exports.DeviceLocationCoordinatesProperty = { + key: types_1.TrackerCommandType.COMMAND_NEW_LOCATION, + name: PropertyName.DeviceLocationCoordinates, + label: "Location Coordinates", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceLocationAddressProperty = { + key: types_1.TrackerCommandType.LOCATION_NEW_ADDRESS, + name: PropertyName.DeviceLocationAddress, + label: "Location Address", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceLocationLastUpdateProperty = { + key: types_1.TrackerCommandType.COMMAND_NEW_LOCATION, + name: PropertyName.DeviceLocationLastUpdate, + label: "Location Last Update", + readable: true, + writeable: false, + type: "number", + default: 0 +}; +exports.DeviceTrackerTypeProperty = { + key: types_1.TrackerCommandType.TYPE_ICON_INDEX, + name: PropertyName.DeviceTrackerType, + label: "Tracker Type", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Tracker", + 1: "Key", + 2: "Wallet", + 3: "Bag", + 4: "Remote", + 5: "Camera", + 6: "Headphones", + 7: "Toy", + 8: "Suitcase", + 9: "Handbag", + } +}; +exports.DeviceLeftBehindAlarmProperty = { + key: types_1.TrackerCommandType.COMMAND_ANTILOST, + name: PropertyName.DeviceLeftBehindAlarm, + label: "Left Behind Alarm", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.DeviceFindPhoneProperty = { + key: types_1.TrackerCommandType.COMMAND_TYPE_FINDMYPHONE, + name: PropertyName.DeviceFindPhone, + label: "Find Phone", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.DeviceFlickerAdjustmentProperty = { + key: types_1.CommandType.CMD_SET_FLICKER_ADJUSTMENT, + name: PropertyName.DeviceFlickerAdjustment, + label: "Flicker Adjustment", + readable: true, + writeable: true, + type: "number", + states: { + 1: "50Hz", + 2: "60Hz", + } +}; +exports.DeviceNotificationPersonS350Property = { + key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, + name: PropertyName.DeviceNotificationPerson, + label: "Notification Person detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationPetS350Property = { + key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, + name: PropertyName.DeviceNotificationPet, + label: "Notification Pet detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationAllOtherMotionS350Property = { + key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, + name: PropertyName.DeviceNotificationAllOtherMotion, + label: "Notification All Other Motion", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationAllSoundS350Property = { + key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, + name: PropertyName.DeviceNotificationAllSound, + label: "Notification Sound detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationCryingS350Property = { + key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, + name: PropertyName.DeviceNotificationCrying, + label: "Notification Crying detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNotificationVehicleProperty = { + key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, + name: PropertyName.DeviceNotificationVehicle, + label: "Notification Vehicle detected", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceLeavingDetectionProperty = { + key: types_1.CommandType.CMD_MOTION_SET_LEAVING_DETECTION, + name: PropertyName.DeviceLeavingDetection, + label: "Leaving Detection", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.DeviceLeavingReactionNotificationProperty = { + key: types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, + name: PropertyName.DeviceLeavingReactionNotification, + label: "Leaving Reaction Notification", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.DeviceLeavingReactionStartTimeProperty = { + key: types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, + name: PropertyName.DeviceLeavingReactionStartTime, + label: "Leaving Reaction Starttime (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "0:00", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceLeavingReactionEndTimeProperty = { + key: types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, + name: PropertyName.DeviceLeavingReactionEndTime, + label: "Leaving Reaction Endtime (24-hour clock)", + readable: true, + writeable: true, + type: "string", + default: "23:59", + format: /^[0-9]{1,2}:[0-9]{1,2}$/, +}; +exports.DeviceSomeoneGoingProperty = { + key: "custom_someoneGoing", + name: PropertyName.DeviceSomeoneGoing, + label: "Someone Going", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceLockEventOriginProperty = { + key: "custom_lockEventOrigin", + name: PropertyName.DeviceLockEventOrigin, + label: "Lock Event Origin", + readable: true, + writeable: false, + type: "number", + states: { + 0: "None", + 1: "Automatic", + 2: "Manual", + 3: "App", + 4: "Password", + 5: "Fingerprint", + 6: "Temporary Password", + 7: "Keypad", + }, + default: 0, +}; +exports.DeviceBeepVolumeProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_VOLUME, + name: PropertyName.DeviceBeepVolume, + label: "Beep Volume", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Mute", + 1: "Soft", + 2: "Medium", + 3: "Loud", + }, +}; +exports.DeviceNightvisionOptimizationProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_NIGHT_VISION_ENHANCE, + name: PropertyName.DeviceNightvisionOptimization, + label: "Nighvision Optimization", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceNightvisionOptimizationSideProperty = { + key: types_1.CommandType.CMD_SMARTLOCK_NIGHT_VISION_SIDE, + name: PropertyName.DeviceNightvisionOptimizationSide, + label: "Nighvision Optimization Side", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Left", + 2: "Right", + }, +}; +exports.DeviceOpenMethodProperty = { + //TODO: Check cloud property ID + key: types_1.CommandType.CMD_SMART_DROP_DELIVERY_MODE, + name: PropertyName.DeviceOpenMethod, + label: "Open Method", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Auto Switch (Recommended)", + 1: "Open via PIN", + 2: "Press to Open", + }, +}; +exports.DeviceMotionActivatedPromptProperty = { + key: types_1.CommandType.CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT, + name: PropertyName.DeviceMotionActivatedPrompt, + label: "Motion-Activated Prompt", + readable: true, + writeable: true, + type: "boolean", +}; +exports.DeviceOpenProperty = { + key: types_1.CommandType.CMD_SMART_DROP_OPEN, + name: PropertyName.DeviceOpen, + label: "Open", + readable: true, + writeable: false, + type: "boolean", +}; +exports.DeviceOpenedByTypeProperty = { + key: "custom_openedByType", + name: PropertyName.DeviceOpenedByType, + label: "Opened By Type", + readable: true, + writeable: false, + type: "number", + states: { + 0: "None", + 1: "App", + 2: "Master PIN", + 3: "Delivery PIN", + 4: "Without Key", + 5: "Emergency Release Button", + 6: "Key", + }, + default: 0, +}; +exports.DeviceOpenedByNameProperty = { + key: "custom_openedByName", + name: PropertyName.DeviceOpenedByName, + label: "Opened By Name", + readable: true, + writeable: false, + type: "string", + default: "", +}; +exports.DeviceTamperingAlertProperty = { + key: "custom_tamperingAlert", + name: PropertyName.DeviceTamperingAlert, + label: "Tampering Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceLowTemperatureAlertProperty = { + key: "custom_lowTemperatureAlert", + name: PropertyName.DeviceLowTemperatureAlert, + label: "Low Temperature Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceHighTemperatureAlertProperty = { + key: "custom_highTemperatureAlert", + name: PropertyName.DeviceHighTemperatureAlert, + label: "High Temperature Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceLidStuckAlertProperty = { + key: "custom_lidStuckAlert", + name: PropertyName.DeviceLidStuckAlert, + label: "Lid Stuck Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DevicePinIncorrectAlertProperty = { + key: "custom_pinIncorrectAlert", + name: PropertyName.DevicePinIncorrectAlert, + label: "PIN Incorrect Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceBatteryFullyChargedAlertProperty = { + key: "custom_batteryFullyChargedAlert", + name: PropertyName.DeviceBatteryFullyChargedAlert, + label: "Battery Fully Charged Alert", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceIsDeliveryDeniedProperty = { + key: types_1.CommandType.CMD_SMART_DROP_IS_DENIED_DELIVERY, + name: PropertyName.DeviceIsDeliveryDenied, + label: "Is Delivery Denied", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceHasMasterPinProperty = { + key: types_1.CommandType.CMD_SMART_DROP_HAS_MASTER_PIN, + name: PropertyName.DeviceHasMasterPin, + label: "Has Master PIN", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.DeviceDeliveriesProperty = { + key: types_1.CommandType.CMD_SMART_DROP_IS_PIN_REQUIRED, + name: PropertyName.DeviceDeliveries, + label: "Deliveries", + readable: true, + writeable: false, + type: "number", + default: 0, +}; +exports.FloodlightT8420XDeviceProperties = { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredDistance]: exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, +}; +exports.WiredDoorbellT8200XDeviceProperties = { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedT8200XProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeT8200XProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeT8200XProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoHDR]: exports.DeviceVideoHDRWiredDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingWiredDoorbellProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionWiredDoorbellProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + //[PropertyName.DeviceSnoozeHomebase]: DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityT8200XProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorT8200XProperty, +}; +exports.LockT8510PDeviceProperties = { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, +}; +exports.LockT8520PDeviceProperties = { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, +}; +exports.DeviceProperties = { + [DeviceType.CAMERA2]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.CAMERA2C]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceCameraLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.CAMERA2C_PRO]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCameraProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera2CProProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceCameraLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.CAMERA2_PRO]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.CAMERA3]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCamera3Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera3Property, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + }, + [DeviceType.CAMERA3C]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCamera3Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera3Property, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + }, + [DeviceType.CAMERA3_PRO]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCamera3Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera3Property, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + }, + [DeviceType.PROFESSIONAL_247]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, //TODO: Check cloud property id + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, //Placeholder... + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCameraProfessionalProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceFlickerAdjustment]: exports.DeviceFlickerAdjustmentProperty, + }, + [DeviceType.CAMERA]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera1Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionCamera1Property, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.CAMERA_E]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera1Property, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionCamera1Property, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.DOORBELL]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionWiredDoorbellProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionDoorbellProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedDoorbellProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceHiddenMotionDetectionSensitivity]: exports.DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty, + [PropertyName.DeviceHiddenMotionDetectionMode]: exports.DeviceHiddenMotionDetectionModeWiredDoorbellProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityWiredDoorbellProperty, + [PropertyName.DeviceVideoHDR]: exports.DeviceVideoHDRWiredDoorbellProperty, + [PropertyName.DeviceVideoDistortionCorrection]: exports.DeviceVideoDistortionCorrectionWiredDoorbellProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityWiredDoorbellProperty, + [PropertyName.DeviceVideoRingRecord]: exports.DeviceVideoRingRecordWiredDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingWiredDoorbellProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorWiredDoorbellProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeWiredDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeWiredDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingWiredDoorbellProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionWiredDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeWiredDoorbellProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeWiredDoorbellProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.BATTERY_DOORBELL]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.BATTERY_DOORBELL_2]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.BATTERY_DOORBELL_PLUS]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellDualProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceNotificationRadarDetector]: exports.DeviceNotificationRadarDetectorProperty, + [PropertyName.DeviceMotionDetectionSensitivityMode]: exports.DeviceMotionDetectionSensitivityModeProperty, + [PropertyName.DeviceMotionDetectionSensitivityStandard]: exports.DeviceMotionDetectionSensitivityStandardProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedA]: exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedB]: exports.DeviceMotionDetectionSensitivityAdvancedBProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedC]: exports.DeviceMotionDetectionSensitivityAdvancedCProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedD]: exports.DeviceMotionDetectionSensitivityAdvancedDProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedE]: exports.DeviceMotionDetectionSensitivityAdvancedEProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedF]: exports.DeviceMotionDetectionSensitivityAdvancedFProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedG]: exports.DeviceMotionDetectionSensitivityAdvancedGProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedH]: exports.DeviceMotionDetectionSensitivityAdvancedHProperty, + [PropertyName.DeviceLoiteringDetection]: exports.DeviceLoiteringDetectionProperty, + [PropertyName.DeviceLoiteringDetectionLength]: exports.DeviceLoiteringDetectionLengthProperty, + [PropertyName.DeviceLoiteringDetectionRange]: exports.DeviceLoiteringDetectionRangeProperty, + [PropertyName.DeviceLoiteringCustomResponsePhoneNotification]: exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, + [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty, + [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty, + [PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification]: exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty, + [PropertyName.DeviceLoiteringCustomResponseTimeFrom]: exports.DeviceLoiteringCustomResponseTimeFromProperty, + [PropertyName.DeviceLoiteringCustomResponseTimeTo]: exports.DeviceLoiteringCustomResponseTimeToProperty, + [PropertyName.DeviceDeliveryGuard]: exports.DeviceDeliveryGuardProperty, + [PropertyName.DeviceDeliveryGuardPackageGuarding]: exports.DeviceDeliveryGuardPackageGuardingProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice]: exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty, + [PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance]: exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty, + [PropertyName.DeviceDeliveryGuardUncollectedPackageAlert]: exports.DeviceDeliveryGuardUncollectedPackageAlertProperty, + [PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck]: exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeProperty, + [PropertyName.DeviceRingAutoResponse]: exports.DeviceRingAutoResponseProperty, + [PropertyName.DeviceRingAutoResponseVoiceResponse]: exports.DeviceRingAutoResponseVoiceResponseProperty, + [PropertyName.DeviceRingAutoResponseVoiceResponseVoice]: exports.DeviceRingAutoResponseVoiceResponseVoiceProperty, + [PropertyName.DeviceRingAutoResponseTimeFrom]: exports.DeviceRingAutoResponseTimeFromProperty, + [PropertyName.DeviceRingAutoResponseTimeTo]: exports.DeviceRingAutoResponseTimeToProperty, + [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, + [PropertyName.DevicePackageStranded]: exports.DevicePackageStrandedProperty, + [PropertyName.DevicePackageTaken]: exports.DevicePackageTakenProperty, + [PropertyName.DeviceSomeoneLoitering]: exports.DeviceSomeoneLoiteringProperty, + [PropertyName.DeviceRadarMotionDetected]: exports.DeviceRadarMotionDetectedProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.BATTERY_DOORBELL_C30]: { + ...exports.BaseDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityDoorbellE340Property, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityDoorbellE340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityDoorbellE340Property, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.BATTERY_DOORBELL_C31]: { + ...exports.BaseDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityDoorbellE340Property, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityDoorbellE340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityDoorbellE340Property, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.BATTERY_DOORBELL_PLUS_E340]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, + //[PropertyName.DeviceLight]: DeviceFloodlightLightProperty, TODO: DISABLED => when the light is activated, this event is communicated via the p2p connection with the wrong channel of the device if the doorbell is connected to the station. e.g. the device is assigned to channel 2, but the event is communicated for the device on channel 0, which is wrong + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityDoorbellE340Property, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityDoorbellE340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityDoorbellE340Property, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceDeliveryGuard]: exports.DeviceDeliveryGuardProperty, + [PropertyName.DeviceDeliveryGuardPackageGuarding]: exports.DeviceDeliveryGuardPackageGuardingProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice]: exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty, + [PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance]: exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty, + [PropertyName.DeviceDeliveryGuardUncollectedPackageAlert]: exports.DeviceDeliveryGuardUncollectedPackageAlertProperty, + [PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck]: exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeE340Property, + [PropertyName.DeviceRingAutoResponse]: exports.DeviceRingAutoResponseProperty, + [PropertyName.DeviceRingAutoResponseVoiceResponse]: exports.DeviceRingAutoResponseVoiceResponseProperty, + [PropertyName.DeviceRingAutoResponseVoiceResponseVoice]: exports.DeviceRingAutoResponseVoiceResponseVoiceProperty, + [PropertyName.DeviceRingAutoResponseTimeFrom]: exports.DeviceRingAutoResponseTimeFromProperty, + [PropertyName.DeviceRingAutoResponseTimeTo]: exports.DeviceRingAutoResponseTimeToProperty, + [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, + [PropertyName.DevicePackageStranded]: exports.DevicePackageStrandedProperty, + [PropertyName.DevicePackageTaken]: exports.DevicePackageTakenProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.DOORBELL_SOLO]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, + [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, + [PropertyName.DeviceDeliveryGuard]: exports.DeviceDeliveryGuardProperty, + [PropertyName.DeviceDeliveryGuardPackageGuarding]: exports.DeviceDeliveryGuardPackageGuardingProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty, + [PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice]: exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty, + [PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance]: exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty, + [PropertyName.DeviceDeliveryGuardUncollectedPackageAlert]: exports.DeviceDeliveryGuardUncollectedPackageAlertProperty, + [PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck]: exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeProperty, + [PropertyName.DeviceRingAutoResponse]: exports.DeviceRingAutoResponseProperty, + [PropertyName.DeviceRingAutoResponseVoiceResponse]: exports.DeviceRingAutoResponseVoiceResponseProperty, + [PropertyName.DeviceRingAutoResponseVoiceResponseVoice]: exports.DeviceRingAutoResponseVoiceResponseVoiceProperty, + [PropertyName.DeviceRingAutoResponseTimeFrom]: exports.DeviceRingAutoResponseTimeFromProperty, + [PropertyName.DeviceRingAutoResponseTimeTo]: exports.DeviceRingAutoResponseTimeToProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, + [PropertyName.DevicePackageStranded]: exports.DevicePackageStrandedProperty, + [PropertyName.DevicePackageTaken]: exports.DevicePackageTakenProperty, + [PropertyName.DeviceSomeoneLoitering]: exports.DeviceSomeoneLoiteringProperty, + }, + [DeviceType.LOCK_8530]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, //OK + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, //OK + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, //OK + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, //OK + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, //OK + [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, //OK + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, // OK + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, //OK + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityT8530Property, //OK + [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, + [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, //OK + [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, //OK + [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, //OK + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, //OK + [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, //OK + [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, //OK + [PropertyName.DeviceMotionDetectionSensitivityMode]: exports.DeviceMotionDetectionSensitivityModeProperty, + [PropertyName.DeviceMotionDetectionSensitivityStandard]: exports.DeviceMotionDetectionSensitivityStandardProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedA]: exports.DeviceMotionDetectionSensitivityAdvancedAProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedB]: exports.DeviceMotionDetectionSensitivityAdvancedBProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedC]: exports.DeviceMotionDetectionSensitivityAdvancedCProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedD]: exports.DeviceMotionDetectionSensitivityAdvancedDProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedE]: exports.DeviceMotionDetectionSensitivityAdvancedEProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedF]: exports.DeviceMotionDetectionSensitivityAdvancedFProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedG]: exports.DeviceMotionDetectionSensitivityAdvancedGProperty, + [PropertyName.DeviceMotionDetectionSensitivityAdvancedH]: exports.DeviceMotionDetectionSensitivityAdvancedHProperty, + [PropertyName.DeviceLoiteringDetection]: exports.DeviceLoiteringDetectionProperty, //OK + [PropertyName.DeviceLoiteringDetectionLength]: exports.DeviceLoiteringDetectionLengthProperty, + [PropertyName.DeviceLoiteringDetectionRange]: exports.DeviceLoiteringDetectionRangeProperty, + [PropertyName.DeviceLoiteringCustomResponsePhoneNotification]: exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, + [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty, + [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty, + [PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification]: exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty, + [PropertyName.DeviceLoiteringCustomResponseTimeFrom]: exports.DeviceLoiteringCustomResponseTimeFromProperty, + [PropertyName.DeviceLoiteringCustomResponseTimeTo]: exports.DeviceLoiteringCustomResponseTimeToProperty, + [PropertyName.DeviceSomeoneLoitering]: exports.DeviceSomeoneLoiteringProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, + [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, + [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceBasicLockStatusProperty, + [PropertyName.DeviceLeavingDetection]: exports.DeviceLeavingDetectionProperty, + [PropertyName.DeviceLeavingReactionNotification]: exports.DeviceLeavingReactionNotificationProperty, + [PropertyName.DeviceLeavingReactionStartTime]: exports.DeviceLeavingReactionStartTimeProperty, + [PropertyName.DeviceLeavingReactionEndTime]: exports.DeviceLeavingReactionEndTimeProperty, + [PropertyName.DeviceSomeoneGoing]: exports.DeviceSomeoneGoingProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DeviceBeepVolume]: exports.DeviceBeepVolumeProperty, + [PropertyName.DeviceNightvisionOptimization]: exports.DeviceNightvisionOptimizationProperty, + [PropertyName.DeviceNightvisionOptimizationSide]: exports.DeviceNightvisionOptimizationSideProperty, + }, + [DeviceType.FLOODLIGHT]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredDistance]: exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityFloodlightT8420Property, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeFloodlightT8420Property, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingFloodlightT8420Property, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8422]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8423]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightT8423Property, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceMotionDetectionRange]: exports.DeviceMotionDetectionRangeProperty, + [PropertyName.DeviceMotionDetectionRangeStandardSensitivity]: exports.DeviceMotionDetectionRangeStandardSensitivityProperty, + [PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity]: exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty, + [PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity]: exports.DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty, + [PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity]: exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty, + [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeProperty, + [PropertyName.DeviceMotionTrackingSensitivity]: exports.DeviceMotionTrackingSensitivityProperty, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceMotionOutOfViewDetection]: exports.DeviceMotionOutOfViewDetectionProperty, + [PropertyName.DeviceLightSettingsColorTemperatureManual]: exports.DeviceLightSettingsColorTemperatureManualProperty, + [PropertyName.DeviceLightSettingsColorTemperatureMotion]: exports.DeviceLightSettingsColorTemperatureMotionProperty, + [PropertyName.DeviceLightSettingsColorTemperatureSchedule]: exports.DeviceLightSettingsColorTemperatureScheduleProperty, + [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeProperty, + [PropertyName.DeviceVideoNightvisionImageAdjustment]: exports.DeviceVideoNightvisionImageAdjustmentProperty, + [PropertyName.DeviceVideoColorNightvision]: exports.DeviceVideoColorNightvisionProperty, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8424]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + //[PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty, + //[PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8425]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorS350Property, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightT8423Property, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceMotionDetectionRange]: exports.DeviceMotionDetectionRangeT8425Property, + [PropertyName.DeviceMotionDetectionRangeStandardSensitivity]: exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property, + [PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity]: exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property, + [PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity]: exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property, + [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeT8425Property, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceMotionOutOfViewDetection]: exports.DeviceMotionOutOfViewDetectionProperty, + [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeT8425Property, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, + [PropertyName.DeviceNotificationVehicle]: exports.DeviceNotificationVehicleProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8426]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorS350Property, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightT8423Property, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceMotionDetectionRange]: exports.DeviceMotionDetectionRangeT8425Property, + [PropertyName.DeviceMotionDetectionRangeStandardSensitivity]: exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property, + [PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity]: exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property, + [PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity]: exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property, + [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeT8425Property, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceMotionOutOfViewDetection]: exports.DeviceMotionOutOfViewDetectionProperty, + [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeT8425Property, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, + [PropertyName.DeviceNotificationVehicle]: exports.DeviceNotificationVehicleProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + }, + [DeviceType.INDOOR_CAMERA]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_CAMERA_1080]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_COST_DOWN_CAMERA]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorMiniProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorMiniProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceDefaultAngle]: exports.DeviceDefaultAngleProperty, + [PropertyName.DeviceDefaultAngleIdleTime]: exports.DeviceDefaultAngleIdleTimeProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_PT_CAMERA]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceMotionZone]: exports.DeviceMotionZoneProperty, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_1080]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.OUTDOOR_PT_CAMERA]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypeVehicle]: exports.DeviceMotionHB3DetectionTypeVehicleProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionZone]: exports.DeviceMotionZoneProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthOutdoorPTProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + }, + [DeviceType.INDOOR_PT_CAMERA_S350]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionS350Property, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_E30]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_C210]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_C220]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, + [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, + [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, + [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, + [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, + [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, + [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, + [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, + [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, + [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, + [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.CAMERA_FG]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingStarlight4gLTEProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + //[PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty, + //[PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DeviceCellularRSSI]: exports.DeviceCellularRSSIProperty, + [PropertyName.DeviceCellularSignalLevel]: exports.DeviceCellularSignalLevelProperty, + [PropertyName.DeviceCellularSignal]: exports.DeviceCellularSignalProperty, + [PropertyName.DeviceCellularBand]: exports.DeviceCellularBandProperty, + [PropertyName.DeviceCellularIMEI]: exports.DeviceCellularIMEIProperty, + [PropertyName.DeviceCellularICCID]: exports.DeviceCellularICCIDProperty, + }, + [DeviceType.SOLO_CAMERA]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.SOLO_CAMERA_PRO]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.SOLO_CAMERA_SOLAR]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualitySoloProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceDetectionStatisticsWorkingDays]: exports.DeviceDetectionStatisticsWorkingDaysProperty, + [PropertyName.DeviceDetectionStatisticsDetectedEvents]: exports.DeviceDetectionStatisticsDetectedEventsProperty, + [PropertyName.DeviceDetectionStatisticsRecordedEvents]: exports.DeviceDetectionStatisticsRecordedEventsProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + }, + [DeviceType.SOLO_CAMERA_C210]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualitySoloProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceDetectionStatisticsWorkingDays]: exports.DeviceDetectionStatisticsWorkingDaysProperty, + [PropertyName.DeviceDetectionStatisticsDetectedEvents]: exports.DeviceDetectionStatisticsDetectedEventsProperty, + [PropertyName.DeviceDetectionStatisticsRecordedEvents]: exports.DeviceDetectionStatisticsRecordedEventsProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + }, + [DeviceType.SOLO_CAMERA_E30]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualitySoloProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceDetectionStatisticsWorkingDays]: exports.DeviceDetectionStatisticsWorkingDaysProperty, + [PropertyName.DeviceDetectionStatisticsDetectedEvents]: exports.DeviceDetectionStatisticsDetectedEventsProperty, + [PropertyName.DeviceDetectionStatisticsRecordedEvents]: exports.DeviceDetectionStatisticsRecordedEventsProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, + }, + [DeviceType.KEYPAD]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBatteryLow]: exports.DeviceBatteryLowKeypadProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIKeypadProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceBatteryIsCharging]: exports.DeviceBatteryIsChargingKeypadProperty, + }, + [DeviceType.LOCK_WIFI]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.LOCK_WIFI_NO_FINGER]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.LOCK_8503]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundSimpleProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.LOCK_8506]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.LOCK_8502]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.LOCK_85A3]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + }, + [DeviceType.LOCK_8504]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, + [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, + [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, + [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, + [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, + [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, + [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, + [PropertyName.DeviceSound]: exports.DeviceSoundSimpleProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, + [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, + [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + }, + [DeviceType.LOCK_BLE]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceState]: exports.DeviceStateLockProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSILockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceBasicLockStatusProperty, + }, + [DeviceType.LOCK_BLE_NO_FINGER]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceState]: exports.DeviceStateLockProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSILockProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, + [PropertyName.DeviceLockStatus]: exports.DeviceBasicLockStatusProperty, + }, + [DeviceType.MOTION_SENSOR]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceBatteryLow]: exports.DeviceBatteryLowMotionSensorProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DeviceMotionSensorPIREvent]: exports.DeviceMotionSensorPIREventProperty, + }, + [DeviceType.SENSOR]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceSensorOpen]: exports.DeviceSensorOpenProperty, + [PropertyName.DeviceBatteryLow]: exports.DeviceBatteryLowSensorProperty, + [PropertyName.DeviceSensorChangeTime]: exports.DeviceSensorChangeTimeProperty, + [PropertyName.DeviceChirpVolume]: exports.DeviceChirpVolumeEntrySensorProperty, + [PropertyName.DeviceChirpTone]: exports.DeviceChirpToneEntrySensorProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIEntrySensorProperty, + }, + [DeviceType.SMART_SAFE_7400]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, + [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, + [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, + [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, + [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, + [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, + [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, + [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, + [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, + [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, + [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, + [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, + [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, + [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, + [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, + [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, + [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, + [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, + [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, + [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, + [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, + [PropertyName.Device911Alert]: exports.Device911AlertProperty, + [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, + [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, + [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, + [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, + }, + [DeviceType.SMART_SAFE_7401]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, + [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, + [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, + [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, + [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, + [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, + [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, + [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, + [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, + [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, + [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, + [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, + [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, + [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, + [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, + [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, + [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, + [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, + [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, + [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, + [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, + [PropertyName.Device911Alert]: exports.Device911AlertProperty, + [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, + [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, + [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, + [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, + }, + [DeviceType.SMART_SAFE_7402]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, + [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, + [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, + [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, + [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, + [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, + [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, + [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, + [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, + [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, + [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, + [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, + [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, + [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, + [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, + [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, + [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, + [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, + [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, + [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, + [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, + [PropertyName.Device911Alert]: exports.Device911AlertProperty, + [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, + [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, + [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, + [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, + }, + [DeviceType.SMART_SAFE_7403]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, + [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, + [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, + [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, + [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, + [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, + [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, + [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, + [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, + [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, + [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, + [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, + [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, + [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, + [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, + [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, + [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, + [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, + [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, + [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, + [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, + [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, + [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, + [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, + [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, + [PropertyName.Device911Alert]: exports.Device911AlertProperty, + [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, + [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, + [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, + [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, + }, + [DeviceType.SMART_DROP]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeSmartDropProperty, + [PropertyName.DeviceOpenMethod]: exports.DeviceOpenMethodProperty, + [PropertyName.DeviceMotionActivatedPrompt]: exports.DeviceMotionActivatedPromptProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceOpen]: exports.DeviceOpenProperty, + [PropertyName.DeviceOpenedByName]: exports.DeviceOpenedByNameProperty, + [PropertyName.DeviceOpenedByType]: exports.DeviceOpenedByTypeProperty, + [PropertyName.DeviceTamperingAlert]: exports.DeviceTamperingAlertProperty, + [PropertyName.DeviceLowTemperatureAlert]: exports.DeviceLowTemperatureAlertProperty, + [PropertyName.DeviceHighTemperatureAlert]: exports.DeviceHighTemperatureAlertProperty, + [PropertyName.DeviceLidStuckAlert]: exports.DeviceLidStuckAlertProperty, + [PropertyName.DevicePinIncorrectAlert]: exports.DevicePinIncorrectAlertProperty, + [PropertyName.DeviceBatteryFullyChargedAlert]: exports.DeviceBatteryFullyChargedAlertProperty, + [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, + [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSmartDropProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthWalllightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySmartDropProperty, + [PropertyName.DeviceIsDeliveryDenied]: exports.DeviceIsDeliveryDeniedProperty, + [PropertyName.DeviceHasMasterPin]: exports.DeviceHasMasterPinProperty, + [PropertyName.DeviceDeliveries]: exports.DeviceDeliveriesProperty, + [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, + }, + [DeviceType.WALL_LIGHT_CAM]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, + [PropertyName.DeviceLightSettingsManualLightingActiveMode]: exports.DeviceLightSettingsManualLightingActiveModeProperty, + [PropertyName.DeviceLightSettingsManualDailyLighting]: exports.DeviceLightSettingsManualDailyLightingProperty, + [PropertyName.DeviceLightSettingsManualColoredLighting]: exports.DeviceLightSettingsManualColoredLightingProperty, + [PropertyName.DeviceLightSettingsManualDynamicLighting]: exports.DeviceLightSettingsManualDynamicLightingProperty, + [PropertyName.DeviceLightSettingsScheduleLightingActiveMode]: exports.DeviceLightSettingsScheduleLightingActiveModeProperty, + [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, + [PropertyName.DeviceLightSettingsMotionLightingActiveMode]: exports.DeviceLightSettingsMotionLightingActiveModeProperty, + [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, + [PropertyName.DeviceLightSettingsScheduleDailyLighting]: exports.DeviceLightSettingsScheduleDailyLightingProperty, + [PropertyName.DeviceLightSettingsScheduleColoredLighting]: exports.DeviceLightSettingsScheduleColoredLightingProperty, + [PropertyName.DeviceLightSettingsScheduleDynamicLighting]: exports.DeviceLightSettingsScheduleDynamicLightingProperty, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, + [PropertyName.DeviceLightSettingsMotionDailyLighting]: exports.DeviceLightSettingsMotionDailyLightingProperty, + [PropertyName.DeviceLightSettingsMotionColoredLighting]: exports.DeviceLightSettingsMotionColoredLightingProperty, + [PropertyName.DeviceLightSettingsMotionDynamicLighting]: exports.DeviceLightSettingsMotionDynamicLightingProperty, + [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeProperty, + [PropertyName.DeviceLightSettingsColoredLightingColors]: exports.DeviceLightSettingsColoredLightingColorsProperty, + [PropertyName.DeviceLightSettingsDynamicLightingThemes]: exports.DeviceLightSettingsDynamicLightingThemesProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeWalllightProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthWalllightProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityWalllightProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityWalllightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonWalllightProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionWalllightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionDetectionTypeHumanWallLightProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationWalllightProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeWalllightProperty, + }, + [DeviceType.WALL_LIGHT_CAM_81A0]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, + [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceCameraLightSettingsBrightnessManualWalllightS120Property, + [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeWalllightProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthWalllightS120Property, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityWalllightProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityWalllightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonWalllightProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionWalllightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionDetectionTypeHumanWallLightProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty, + [PropertyName.DeviceNotification]: exports.DeviceNotificationWalllightProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeWalllightProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + }, + [DeviceType.CAMERA_GARAGE_T8453]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + //[PropertyName.DeviceBattery]: DeviceBatteryProperty, + //[PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkGarageCameraProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityGarageCameraProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceDoorControlWarning]: exports.DeviceDoorControlWarningProperty, + [PropertyName.DeviceDoor1Open]: exports.DeviceDoor1OpenProperty, + [PropertyName.DeviceDoor2Open]: exports.DeviceDoor2OpenProperty, + [PropertyName.DeviceDoorSensor1Name]: exports.DeviceDoorSensor1NameProperty, + [PropertyName.DeviceDoorSensor1SerialNumber]: exports.DeviceDoorSensor1SerialNumberProperty, + [PropertyName.DeviceDoorSensor1MacAddress]: exports.DeviceDoorSensor1MacAddressProperty, + [PropertyName.DeviceDoorSensor1Version]: exports.DeviceDoorSensor1VersionProperty, + [PropertyName.DeviceDoorSensor1Status]: exports.DeviceDoorSensor1StatusProperty, + [PropertyName.DeviceDoorSensor1BatteryLevel]: exports.DeviceDoorSensor1BatteryLevelProperty, + [PropertyName.DeviceDoorSensor1LowBattery]: exports.DeviceDoorSensor1LowBatteryProperty, + [PropertyName.DeviceDoorSensor2Name]: exports.DeviceDoorSensor2NameProperty, + [PropertyName.DeviceDoorSensor2SerialNumber]: exports.DeviceDoorSensor2SerialNumberProperty, + [PropertyName.DeviceDoorSensor2MacAddress]: exports.DeviceDoorSensor2MacAddressProperty, + [PropertyName.DeviceDoorSensor2Version]: exports.DeviceDoorSensor2VersionProperty, + [PropertyName.DeviceDoorSensor2Status]: exports.DeviceDoorSensor2StatusProperty, + [PropertyName.DeviceDoorSensor2BatteryLevel]: exports.DeviceDoorSensor2BatteryLevelProperty, + [PropertyName.DeviceDoorSensor2LowBattery]: exports.DeviceDoorSensor2LowBatteryProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.CAMERA_GARAGE_T8453_COMMON]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + //[PropertyName.DeviceBattery]: DeviceBatteryProperty, + //[PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkGarageCameraProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityGarageCameraProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceDoorControlWarning]: exports.DeviceDoorControlWarningProperty, + [PropertyName.DeviceDoor1Open]: exports.DeviceDoor1OpenProperty, + [PropertyName.DeviceDoor2Open]: exports.DeviceDoor2OpenProperty, + [PropertyName.DeviceDoorSensor1Name]: exports.DeviceDoorSensor1NameProperty, + [PropertyName.DeviceDoorSensor1SerialNumber]: exports.DeviceDoorSensor1SerialNumberProperty, + [PropertyName.DeviceDoorSensor1MacAddress]: exports.DeviceDoorSensor1MacAddressProperty, + [PropertyName.DeviceDoorSensor1Version]: exports.DeviceDoorSensor1VersionProperty, + [PropertyName.DeviceDoorSensor1Status]: exports.DeviceDoorSensor1StatusProperty, + [PropertyName.DeviceDoorSensor1BatteryLevel]: exports.DeviceDoorSensor1BatteryLevelProperty, + [PropertyName.DeviceDoorSensor1LowBattery]: exports.DeviceDoorSensor1LowBatteryProperty, + [PropertyName.DeviceDoorSensor2Name]: exports.DeviceDoorSensor2NameProperty, + [PropertyName.DeviceDoorSensor2SerialNumber]: exports.DeviceDoorSensor2SerialNumberProperty, + [PropertyName.DeviceDoorSensor2MacAddress]: exports.DeviceDoorSensor2MacAddressProperty, + [PropertyName.DeviceDoorSensor2Version]: exports.DeviceDoorSensor2VersionProperty, + [PropertyName.DeviceDoorSensor2Status]: exports.DeviceDoorSensor2StatusProperty, + [PropertyName.DeviceDoorSensor2BatteryLevel]: exports.DeviceDoorSensor2BatteryLevelProperty, + [PropertyName.DeviceDoorSensor2LowBattery]: exports.DeviceDoorSensor2LowBatteryProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.CAMERA_GARAGE_T8452]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + //[PropertyName.DeviceBattery]: DeviceBatteryProperty, + //[PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, + [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkGarageCameraProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, + [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, + [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityGarageCameraProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, + [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, + [PropertyName.DeviceDoorControlWarning]: exports.DeviceDoorControlWarningProperty, + [PropertyName.DeviceDoor1Open]: exports.DeviceDoor1OpenProperty, + [PropertyName.DeviceDoor2Open]: exports.DeviceDoor2OpenProperty, + [PropertyName.DeviceDoorSensor1Name]: exports.DeviceDoorSensor1NameProperty, + [PropertyName.DeviceDoorSensor1SerialNumber]: exports.DeviceDoorSensor1SerialNumberProperty, + [PropertyName.DeviceDoorSensor1MacAddress]: exports.DeviceDoorSensor1MacAddressProperty, + [PropertyName.DeviceDoorSensor1Version]: exports.DeviceDoorSensor1VersionProperty, + [PropertyName.DeviceDoorSensor1Status]: exports.DeviceDoorSensor1StatusProperty, + [PropertyName.DeviceDoorSensor1BatteryLevel]: exports.DeviceDoorSensor1BatteryLevelProperty, + [PropertyName.DeviceDoorSensor1LowBattery]: exports.DeviceDoorSensor1LowBatteryProperty, + [PropertyName.DeviceDoorSensor2Name]: exports.DeviceDoorSensor2NameProperty, + [PropertyName.DeviceDoorSensor2SerialNumber]: exports.DeviceDoorSensor2SerialNumberProperty, + [PropertyName.DeviceDoorSensor2MacAddress]: exports.DeviceDoorSensor2MacAddressProperty, + [PropertyName.DeviceDoorSensor2Version]: exports.DeviceDoorSensor2VersionProperty, + [PropertyName.DeviceDoorSensor2Status]: exports.DeviceDoorSensor2StatusProperty, + [PropertyName.DeviceDoorSensor2BatteryLevel]: exports.DeviceDoorSensor2BatteryLevelProperty, + [PropertyName.DeviceDoorSensor2LowBattery]: exports.DeviceDoorSensor2LowBatteryProperty, + [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, + [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, + [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, + }, + [DeviceType.SMART_TRACK_CARD]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceLocationCoordinates]: exports.DeviceLocationCoordinatesProperty, + [PropertyName.DeviceLocationAddress]: exports.DeviceLocationAddressProperty, + [PropertyName.DeviceLocationLastUpdate]: exports.DeviceLocationLastUpdateProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryTrackerProperty, + [PropertyName.DeviceTrackerType]: exports.DeviceTrackerTypeProperty, + [PropertyName.DeviceLeftBehindAlarm]: exports.DeviceLeftBehindAlarmProperty, + [PropertyName.DeviceFindPhone]: exports.DeviceFindPhoneProperty, + }, + [DeviceType.SMART_TRACK_LINK]: { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceLocationCoordinates]: exports.DeviceLocationCoordinatesProperty, + [PropertyName.DeviceLocationAddress]: exports.DeviceLocationAddressProperty, + [PropertyName.DeviceLocationLastUpdate]: exports.DeviceLocationLastUpdateProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryTrackerProperty, + [PropertyName.DeviceTrackerType]: exports.DeviceTrackerTypeProperty, + [PropertyName.DeviceLeftBehindAlarm]: exports.DeviceLeftBehindAlarmProperty, + [PropertyName.DeviceFindPhone]: exports.DeviceFindPhoneProperty, + }, +}; +exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; +exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; +// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA but without floodlight properties +exports.DeviceProperties[DeviceType.EUFYCAM_S4] = { + ...exports.GenericDeviceProperties, + [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, + [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, + [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, + [PropertyName.DeviceState]: exports.DeviceStateProperty, + [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, + [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, + [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, + // NO DeviceLight properties - S4 has no floodlight + [PropertyName.DevicePicture]: exports.DevicePictureProperty, + [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, + [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, + [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, + [PropertyName.DeviceMotionDetectionTypeVehicle]: exports.DeviceMotionHB3DetectionTypeVehicleProperty, + [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, + [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, + [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, + [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, + [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, + [PropertyName.DeviceMotionZone]: exports.DeviceMotionZoneProperty, + [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, + [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, + [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, + [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, + [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthOutdoorPTProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, +}; +exports.StationNameProperty = { + key: "station_name", + name: PropertyName.Name, + label: "Name", + readable: true, + writeable: false, + type: "string", +}; +exports.StationModelProperty = { + key: "station_model", + name: PropertyName.Model, + label: "Model", + readable: true, + writeable: false, + type: "string", +}; +exports.StationSerialNumberProperty = { + key: "station_sn", + name: PropertyName.SerialNumber, + label: "Serial number", + readable: true, + writeable: false, + type: "string", +}; +exports.BaseStationProperties = { + [exports.StationNameProperty.name]: exports.StationNameProperty, + [exports.StationModelProperty.name]: exports.StationModelProperty, + [exports.StationSerialNumberProperty.name]: exports.StationSerialNumberProperty, + [exports.GenericTypeProperty.name]: exports.GenericTypeProperty, + [exports.GenericHWVersionProperty.name]: exports.GenericHWVersionProperty, + [exports.GenericSWVersionProperty.name]: exports.GenericSWVersionProperty, +}; +exports.StationGuardModeProperty = { + key: ParamType.GUARD_MODE, + name: PropertyName.StationGuardMode, + label: "Guard Mode", + readable: true, + writeable: true, + type: "number", + states: { + 0: "Away", + 1: "Home", + 2: "Schedule", + 3: "Custom 1", + 4: "Custom 2", + 5: "Custom 3", + 47: "Geofencing", + 63: "Disarmed", + }, +}; +exports.StationGuardModeKeyPadProperty = { + ...exports.StationGuardModeProperty, + states: { + 0: "Away", + 1: "Home", + 2: "Schedule", + 3: "Custom 1", + 4: "Custom 2", + 5: "Custom 3", + 6: "Off", + 47: "Geofencing", + 63: "Disarmed", + }, +}; +exports.StationCurrentModeProperty = { + key: types_1.CommandType.CMD_GET_ALARM_MODE, + name: PropertyName.StationCurrentMode, + label: "Current Mode", + readable: true, + writeable: false, + type: "number", + states: { + 0: "Away", + 1: "Home", + 3: "Custom 1", + 4: "Custom 2", + 5: "Custom 3", + 63: "Disarmed", + }, +}; +exports.StationCurrentModeKeyPadProperty = { + ...exports.StationCurrentModeProperty, + states: { + 0: "Away", + 1: "Home", + 3: "Custom 1", + 4: "Custom 2", + 5: "Custom 3", + 6: "Off", + 63: "Disarmed", + }, +}; +exports.StationLanIpAddressProperty = { + key: types_1.CommandType.CMD_GET_HUB_LAN_IP, + name: PropertyName.StationLANIpAddress, + label: "LAN IP Address", + readable: true, + writeable: false, + type: "string", +}; +exports.StationLanIpAddressStandaloneProperty = { + ...exports.StationLanIpAddressProperty, + key: "ip_addr", +}; +exports.StationMacAddressProperty = { + key: "wifi_mac", + //key: "sub1g_mac", // are always the same + name: PropertyName.StationMacAddress, + label: "MAC Address", + readable: true, + writeable: false, + type: "string", +}; +exports.StationAlarmVolumeProperty = { + key: types_1.CommandType.CMD_SET_HUB_SPK_VOLUME, + name: PropertyName.StationAlarmVolume, + label: "Alarm Volume", + readable: true, + writeable: true, + type: "number", + min: 1, + max: 26, + default: 26, +}; +exports.StationAlarmVolumeWalllightProperty = { + key: types_1.CommandType.CMD_WALL_LIGHT_ALERT_VOLUME, + name: PropertyName.StationAlarmVolume, + label: "Alarm Volume", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Low", + 2: "Medium", + 3: "High" + }, +}; +exports.StationPromptVolumeProperty = { + key: types_1.CommandType.CMD_SET_PROMPT_VOLUME, + name: PropertyName.StationPromptVolume, + label: "Prompt Volume", + readable: true, + writeable: true, + type: "number", + min: 0, + max: 26, +}; +exports.StationAlarmToneProperty = { + key: types_1.CommandType.CMD_HUB_ALARM_TONE, + name: PropertyName.StationAlarmTone, + label: "Alarm Tone", + readable: true, + writeable: true, + type: "number", + states: { + 1: "Alarm sound 1", + 2: "Alarm sound 2", + } +}; +exports.StationNotificationSwitchModeScheduleProperty = { + key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, + name: PropertyName.StationNotificationSwitchModeSchedule, + label: "Notification Switch Mode Schedule", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationNotificationSwitchModeGeofenceProperty = { + key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, + name: PropertyName.StationNotificationSwitchModeGeofence, + label: "Notification Switch Mode Geofence", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationNotificationSwitchModeAppProperty = { + key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, + name: PropertyName.StationNotificationSwitchModeApp, + label: "Notification Switch Mode App", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationNotificationSwitchModeKeypadProperty = { + key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, + name: PropertyName.StationNotificationSwitchModeKeypad, + label: "Notification Switch Mode Keypad", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationNotificationStartAlarmDelayProperty = { + key: types_1.CommandType.CMD_HUB_NOTIFY_ALARM, + name: PropertyName.StationNotificationStartAlarmDelay, + label: "Notification Start Alarm Delay", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationTimeFormatProperty = { + key: types_1.CommandType.CMD_SET_HUB_OSD, + name: PropertyName.StationTimeFormat, + label: "Time Format", + readable: true, + writeable: true, + type: "number", + states: { + 0: "12h", + 1: "24h", + }, + default: 0, +}; +exports.StationTimeZoneProperty = { + key: "time_zone", + name: PropertyName.StationTimeZone, + label: "Time Zone", + readable: true, + writeable: false, + type: "string", +}; +exports.StationSwitchModeWithAccessCodeProperty = { + key: types_1.CommandType.CMD_KEYPAD_PSW_OPEN, + name: PropertyName.StationSwitchModeWithAccessCode, + label: "Switch mode with access code", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationAutoEndAlarmProperty = { + key: types_1.CommandType.CMD_SET_HUB_ALARM_AUTO_END, + name: PropertyName.StationAutoEndAlarm, + label: "Auto End Alarm", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationTurnOffAlarmWithButtonProperty = { + key: types_1.CommandType.CMD_SET_HUB_ALARM_CLOSE, + name: PropertyName.StationTurnOffAlarmWithButton, + label: "Turn off alarm with button", + readable: true, + writeable: true, + type: "boolean", +}; +exports.StationAlarmProperty = { + key: "custom_alarm", + name: PropertyName.StationAlarm, + label: "Alarm", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.StationAlarmTypeProperty = { + key: "custom_alarmType", + name: PropertyName.StationAlarmType, + label: "Alarm Type", + readable: true, + writeable: true, + type: "number", + states: { + 0: "None", + 2: "Theft", + 3: "Motion", + 4: "Manual", + 5: "Overheating", + 6: "Door", + 7: "Camera Motion", + 8: "Motion Sensor", + 9: "Camera Theft", + 10: "Camera Manual", + 11: "Camera Linkage", + 13: "Keypad", + /*22: "App Light", + 23: "App Light Sound", + 24: "Motion App Light", + 25: "Motion App Light Alarm",*/ + }, + default: 0, +}; +exports.StationAlarmArmedProperty = { + key: "custom_alarmArmed", + name: PropertyName.StationAlarmArmed, + label: "Alarm Armed", + readable: true, + writeable: false, + type: "boolean", + default: false, +}; +exports.StationAlarmArmDelayProperty = { + key: "custom_alarmArmDelay", + name: PropertyName.StationAlarmArmDelay, + label: "Alarm Arm Delay", + readable: true, + writeable: true, + type: "number", + default: 0, +}; +exports.StationAlarmDelayProperty = { + key: "custom_alarmDelay", + name: PropertyName.StationAlarmDelay, + label: "Alarm Delay", + readable: true, + writeable: true, + type: "number", + default: 0, +}; +exports.StationAlarmDelayTypeProperty = { + key: "custom_alarmDelayType", + name: PropertyName.StationAlarmDelayType, + label: "Alarm Delay Type", + readable: true, + writeable: true, + type: "number", + states: { + 0: "None", + 2: "Theft", + 3: "Motion", + 4: "Manual", + 5: "Overheating", + 6: "Door", + 7: "Camera Motion", + 8: "Motion Sensor", + 9: "Camera Theft", + 10: "Camera Manual", + 11: "Camera Linkage", + 13: "Keypad", + /*22: "App Light", + 23: "App Light Sound", + 24: "Motion App Light", + 25: "Motion App Light Alarm",*/ + }, + default: 0, +}; +exports.StationSdStatusProperty = { + key: types_1.CommandType.CMD_GET_TFCARD_STATUS, + name: PropertyName.StationSdStatus, + label: "SD Status", + readable: true, + writeable: false, + type: "number", + default: undefined, +}; +exports.StationSdCapacityProperty = { + key: "sd_capacity", + name: PropertyName.StationSdCapacity, + label: "SD Capacity", + readable: true, + writeable: false, + type: "number", + default: undefined, +}; +exports.StationSdAvailableCapacityProperty = { + key: "sd_capacity_available", + name: PropertyName.StationSdCapacityAvailable, + label: "SD Capacity Available", + readable: true, + writeable: false, + type: "number", + default: undefined, +}; +exports.StationStorageInfoEmmcProperty = { + key: "storage_info_emmc", + name: PropertyName.StationStorageInfoEmmc, + label: "Storage Info Emmc", + readable: true, + writeable: false, + type: "object", +}; +exports.StationStorageInfoHddProperty = { + key: "storage_info_hdd", + name: PropertyName.StationStorageInfoHdd, + label: "Storage Info Hdd", + readable: true, + writeable: false, + type: "object", +}; +exports.StationContinuousTrackingTimeProperty = { + key: types_1.CommandType.CMD_SET_CONTINUOUS_TRACKING_TIME, + name: PropertyName.StationContinuousTrackingTime, + label: "Continuous Tracking Time", + readable: true, + writeable: true, + type: "number", + states: { + 120: "2 min.", + 180: "3 min.", + 240: "4 min.", + 300: "5 min.", + 600: "10 min.", + 900: "15 min.", + 1800: "30 min.", + }, + unit: "sec", +}; +exports.StationCrossCameraTrackingProperty = { + key: types_1.CommandType.CMD_SET_CROSS_CAMERA_TRACKING, + name: PropertyName.StationCrossCameraTracking, + label: "Cross Camera Tracking", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.StationTrackingAssistanceProperty = { + key: types_1.CommandType.CMD_SET_TRACKING_ASSISTANCE, + name: PropertyName.StationTrackingAssistance, + label: "Tracking Assistance", + readable: true, + writeable: true, + type: "boolean", + default: false, +}; +exports.StationCrossTrackingCameraListProperty = { + key: types_1.CommandType.CMD_SET_CROSS_TRACKING_CAMERA_LIST, + name: PropertyName.StationCrossTrackingCameraList, + label: "Cross Tracking Camera List", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + if (Array.isArray(obj)) { + return obj.length > 0 && + obj.every((value) => { + return typeof value === "string"; + }); + } + return false; + }, +}; +exports.StationCrossTrackingGroupListProperty = { + key: types_1.CommandType.CMD_SET_CROSS_TRACKING_GROUP_LIST, + name: PropertyName.StationCrossTrackingGroupList, + label: "Cross Tracking Group List", + readable: true, + writeable: true, + type: "object", + isValidObject: (obj) => { + if (Array.isArray(obj)) { + return obj.length > 0 && + obj.every((element) => { + return typeof element === "object" && + "value" in element && + Array.isArray(element.value) && + element.value.length > 0 && + element.value.every((value) => { + return typeof value === "string"; + }); + }); + } + return false; + }, +}; +exports.StationProperties = { + [DeviceType.STATION]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationPromptVolume]: exports.StationPromptVolumeProperty, + [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeProperty, + [PropertyName.StationAlarmTone]: exports.StationAlarmToneProperty, + [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, + [PropertyName.StationNotificationSwitchModeGeofence]: exports.StationNotificationSwitchModeGeofenceProperty, + [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, + [PropertyName.StationNotificationSwitchModeKeypad]: exports.StationNotificationSwitchModeKeypadProperty, + [PropertyName.StationNotificationStartAlarmDelay]: exports.StationNotificationStartAlarmDelayProperty, + [PropertyName.StationHomeSecuritySettings]: exports.StationHomeSecuritySettings, + [PropertyName.StationAwaySecuritySettings]: exports.StationAwaySecuritySettings, + [PropertyName.StationCustom1SecuritySettings]: exports.StationCustom1SecuritySettings, + [PropertyName.StationCustom2SecuritySettings]: exports.StationCustom2SecuritySettings, + [PropertyName.StationCustom3SecuritySettings]: exports.StationCustom3SecuritySettings, + [PropertyName.StationOffSecuritySettings]: exports.StationOffSecuritySettings, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationAlarmArmed]: exports.StationAlarmArmedProperty, + [PropertyName.StationAlarmArmDelay]: exports.StationAlarmArmDelayProperty, + [PropertyName.StationAlarmDelay]: exports.StationAlarmDelayProperty, + [PropertyName.StationAlarmDelayType]: exports.StationAlarmDelayTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.HB3]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationPromptVolume]: exports.StationPromptVolumeProperty, + [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeProperty, + [PropertyName.StationAlarmTone]: exports.StationAlarmToneProperty, + [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, + [PropertyName.StationNotificationSwitchModeGeofence]: exports.StationNotificationSwitchModeGeofenceProperty, + [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, + [PropertyName.StationNotificationSwitchModeKeypad]: exports.StationNotificationSwitchModeKeypadProperty, + [PropertyName.StationNotificationStartAlarmDelay]: exports.StationNotificationStartAlarmDelayProperty, + [PropertyName.StationHomeSecuritySettings]: exports.StationHomeSecuritySettings, + [PropertyName.StationAwaySecuritySettings]: exports.StationAwaySecuritySettings, + [PropertyName.StationCustom1SecuritySettings]: exports.StationCustom1SecuritySettings, + [PropertyName.StationCustom2SecuritySettings]: exports.StationCustom2SecuritySettings, + [PropertyName.StationCustom3SecuritySettings]: exports.StationCustom3SecuritySettings, + [PropertyName.StationOffSecuritySettings]: exports.StationOffSecuritySettings, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationAlarmArmed]: exports.StationAlarmArmedProperty, + [PropertyName.StationAlarmArmDelay]: exports.StationAlarmArmDelayProperty, + [PropertyName.StationAlarmDelay]: exports.StationAlarmDelayProperty, + [PropertyName.StationAlarmDelayType]: exports.StationAlarmDelayTypeProperty, + /*[PropertyName.StationSdStatus]: StationSdStatusProperty, + [PropertyName.StationSdCapacity]: StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: StationSdAvailableCapacityProperty,*/ + [PropertyName.StationStorageInfoEmmc]: exports.StationStorageInfoEmmcProperty, + [PropertyName.StationStorageInfoHdd]: exports.StationStorageInfoHddProperty, + [PropertyName.StationCrossCameraTracking]: exports.StationCrossCameraTrackingProperty, + [PropertyName.StationContinuousTrackingTime]: exports.StationContinuousTrackingTimeProperty, + [PropertyName.StationTrackingAssistance]: exports.StationTrackingAssistanceProperty, + [PropertyName.StationCrossTrackingCameraList]: exports.StationCrossTrackingCameraListProperty, + [PropertyName.StationCrossTrackingGroupList]: exports.StationCrossTrackingGroupListProperty, + }, + [DeviceType.MINIBASE_CHIME]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationPromptVolume]: exports.StationPromptVolumeProperty, + [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeProperty, + [PropertyName.StationAlarmTone]: exports.StationAlarmToneProperty, + [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, + [PropertyName.StationNotificationSwitchModeGeofence]: exports.StationNotificationSwitchModeGeofenceProperty, + [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, + [PropertyName.StationNotificationSwitchModeKeypad]: exports.StationNotificationSwitchModeKeypadProperty, + [PropertyName.StationNotificationStartAlarmDelay]: exports.StationNotificationStartAlarmDelayProperty, + [PropertyName.StationHomeSecuritySettings]: exports.StationHomeSecuritySettings, + [PropertyName.StationAwaySecuritySettings]: exports.StationAwaySecuritySettings, + [PropertyName.StationCustom1SecuritySettings]: exports.StationCustom1SecuritySettings, + [PropertyName.StationCustom2SecuritySettings]: exports.StationCustom2SecuritySettings, + [PropertyName.StationCustom3SecuritySettings]: exports.StationCustom3SecuritySettings, + [PropertyName.StationOffSecuritySettings]: exports.StationOffSecuritySettings, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationAlarmArmed]: exports.StationAlarmArmedProperty, + [PropertyName.StationAlarmArmDelay]: exports.StationAlarmArmDelayProperty, + [PropertyName.StationAlarmDelay]: exports.StationAlarmDelayProperty, + [PropertyName.StationAlarmDelayType]: exports.StationAlarmDelayTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.INDOOR_CAMERA]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_CAMERA_1080]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_PT_CAMERA]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.INDOOR_COST_DOWN_CAMERA]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_1080]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_S350]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_E30]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_C210]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_PT_CAMERA_C220]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.OUTDOOR_PT_CAMERA]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, + [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, + }, + [DeviceType.DOORBELL]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + }, + [DeviceType.DOORBELL_SOLO]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + }, + [DeviceType.BATTERY_DOORBELL_C30]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + }, + [DeviceType.BATTERY_DOORBELL_C31]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + }, + [DeviceType.BATTERY_DOORBELL_PLUS_E340]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + }, + [DeviceType.CAMERA_FG]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + //[PropertyName.StationNotificationSwitchModeSchedule]: StationNotificationSwitchModeScheduleProperty, //TODO: Implement correctly + //[PropertyName.StationNotificationSwitchModeApp]: StationNotificationSwitchModeAppProperty, //TODO: Implement correctly + }, + [DeviceType.SOLO_CAMERA]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.SOLO_CAMERA_PRO]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.SOLO_CAMERA_SOLAR]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.SOLO_CAMERA_C210]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, + [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.SOLO_CAMERA_E30]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, + [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.FLOODLIGHT]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8422]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8423]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8424]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8425]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.FLOODLIGHT_CAMERA_8426]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, + [DeviceType.WALL_LIGHT_CAM]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeWalllightProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.WALL_LIGHT_CAM_81A0]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeWalllightProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, + }, + [DeviceType.CAMERA_GARAGE_T8452]: { + ...exports.BaseStationProperties, + }, + [DeviceType.CAMERA_GARAGE_T8453]: { + ...exports.BaseStationProperties, + }, + [DeviceType.CAMERA_GARAGE_T8453_COMMON]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_WIFI]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_WIFI_NO_FINGER]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_8503]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_8504]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_8506]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_8502]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_8592]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_BLE]: { + ...exports.BaseStationProperties, + }, + [DeviceType.LOCK_BLE_NO_FINGER]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_SAFE_7400]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_SAFE_7401]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_SAFE_7402]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_SAFE_7403]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_TRACK_CARD]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_TRACK_LINK]: { + ...exports.BaseStationProperties, + }, + [DeviceType.SMART_DROP]: { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + }, +}; +exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220]; +exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220]; +var CommandName; +(function (CommandName) { + CommandName["DeviceStartLivestream"] = "deviceStartLivestream"; + CommandName["DeviceStopLivestream"] = "deviceStopLivestream"; + CommandName["DeviceQuickResponse"] = "deviceQuickResponse"; + CommandName["DevicePanAndTilt"] = "devicePanAndTilt"; + CommandName["DeviceTriggerAlarmSound"] = "deviceTriggerAlarmSound"; + CommandName["DeviceStartDownload"] = "deviceStartDownload"; + CommandName["DeviceCancelDownload"] = "deviceCancelDownload"; + CommandName["DeviceLockCalibration"] = "deviceLockCalibration"; + CommandName["DeviceCalibrate"] = "deviceCalibrate"; + CommandName["DeviceAddUser"] = "deviceAddUser"; + CommandName["DeviceDeleteUser"] = "deviceDeleteUser"; + CommandName["DeviceUpdateUserPasscode"] = "deviceUpdateUserPasscode"; + CommandName["DeviceUpdateUserSchedule"] = "deviceUpdateUserSchedule"; + CommandName["DeviceUpdateUsername"] = "deviceUpdateUsername"; + CommandName["DeviceSetDefaultAngle"] = "deviceSetDefaultAngle"; + CommandName["DeviceSetPrivacyAngle"] = "deviceSetPrivacyAngle"; + CommandName["DeviceStartTalkback"] = "deviceStartTalkback"; + CommandName["DeviceStopTalkback"] = "deviceStopTalkback"; + CommandName["DeviceUnlock"] = "deviceUnlock"; + CommandName["DeviceSnooze"] = "deviceSnooze"; + CommandName["DeviceVerifyPIN"] = "deviceVerifyPIN"; + CommandName["DeviceQueryAllUserId"] = "deviceQueryAllUserId"; + CommandName["DeviceCalibrateGarageDoor"] = "deviceCalibrateGarageDoor"; + CommandName["DevicePresetPosition"] = "devicePresetPosition"; + CommandName["DeviceSavePresetPosition"] = "deviceSavePresetPosition"; + CommandName["DeviceDeletePresetPosition"] = "deviceDeletePresetPosition"; + CommandName["DeviceOpen"] = "deviceOpen"; + CommandName["StationReboot"] = "stationReboot"; + CommandName["StationTriggerAlarmSound"] = "stationTriggerAlarmSound"; + CommandName["StationChime"] = "stationChime"; + CommandName["StationDownloadImage"] = "stationDownloadImage"; + CommandName["StationDatabaseQueryLatestInfo"] = "stationDatabaseQueryLatestInfo"; + CommandName["StationDatabaseQueryLocal"] = "stationDatabaseQueryLocal"; + CommandName["StationDatabaseDelete"] = "stationDatabaseDelete"; + CommandName["StationDatabaseCountByDate"] = "stationDatabaseCoundByDate"; +})(CommandName || (exports.CommandName = CommandName = {})); +exports.DeviceCommands = { + [DeviceType.CAMERA]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA2]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA2C]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA3]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA3C]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA3_PRO]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.PROFESSIONAL_247]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA2C_PRO]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA2_PRO]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA_E]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceSnooze, + ], + [DeviceType.DOORBELL]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.BATTERY_DOORBELL]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.BATTERY_DOORBELL_2]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.BATTERY_DOORBELL_PLUS]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.BATTERY_DOORBELL_C30]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.BATTERY_DOORBELL_C31]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.BATTERY_DOORBELL_PLUS_E340]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.DOORBELL_SOLO]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_CAMERA]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_CAMERA_1080]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_PT_CAMERA]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_PT_CAMERA_1080]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_COST_DOWN_CAMERA]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceSetDefaultAngle, + CommandName.DeviceSetPrivacyAngle, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_PT_CAMERA_S350]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DevicePresetPosition, + CommandName.DeviceSavePresetPosition, + CommandName.DeviceDeletePresetPosition, + ], + [DeviceType.INDOOR_PT_CAMERA_C210]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.INDOOR_PT_CAMERA_C220]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.OUTDOOR_PT_CAMERA]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DevicePresetPosition, + CommandName.DeviceSavePresetPosition, + CommandName.DeviceDeletePresetPosition, + ], + [DeviceType.CAMERA_FG]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_PRO]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_SOLAR]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_C210]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.SOLO_CAMERA_E30]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.FLOODLIGHT]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.FLOODLIGHT_CAMERA_8422]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.FLOODLIGHT_CAMERA_8423]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DevicePresetPosition, + CommandName.DeviceSavePresetPosition, + CommandName.DeviceDeletePresetPosition, + ], + [DeviceType.FLOODLIGHT_CAMERA_8424]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.FLOODLIGHT_CAMERA_8425]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DevicePresetPosition, + CommandName.DeviceSavePresetPosition, + CommandName.DeviceDeletePresetPosition, + ], + [DeviceType.FLOODLIGHT_CAMERA_8426]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DevicePanAndTilt, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceCalibrate, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DevicePresetPosition, + CommandName.DeviceSavePresetPosition, + CommandName.DeviceDeletePresetPosition, + ], + [DeviceType.WALL_LIGHT_CAM]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.WALL_LIGHT_CAM_81A0]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], + [DeviceType.CAMERA_GARAGE_T8452]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DeviceCalibrateGarageDoor, + ], + [DeviceType.CAMERA_GARAGE_T8453]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DeviceCalibrateGarageDoor, + ], + [DeviceType.CAMERA_GARAGE_T8453_COMMON]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DeviceCalibrateGarageDoor, + ], + [DeviceType.KEYPAD]: [], + [DeviceType.LOCK_BLE]: [], + [DeviceType.LOCK_BLE_NO_FINGER]: [], + [DeviceType.LOCK_WIFI]: [ + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.LOCK_8503]: [ + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.LOCK_8504]: [ + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.LOCK_8506]: [ + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.LOCK_8502]: [ + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.LOCK_WIFI_NO_FINGER]: [ + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.LOCK_8530]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceQuickResponse, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + CommandName.DeviceLockCalibration, + CommandName.DeviceAddUser, + CommandName.DeviceDeleteUser, + CommandName.DeviceUpdateUserPasscode, + CommandName.DeviceUpdateUserSchedule, + CommandName.DeviceUpdateUsername, + ], + [DeviceType.MOTION_SENSOR]: [], + [DeviceType.SENSOR]: [], + [DeviceType.SMART_SAFE_7400]: [ + CommandName.DeviceUnlock, + CommandName.DeviceVerifyPIN, + ], + [DeviceType.SMART_SAFE_7401]: [ + CommandName.DeviceUnlock, + CommandName.DeviceVerifyPIN, + ], + [DeviceType.SMART_SAFE_7402]: [ + CommandName.DeviceUnlock, + CommandName.DeviceVerifyPIN, + ], + [DeviceType.SMART_SAFE_7403]: [ + CommandName.DeviceUnlock, + CommandName.DeviceVerifyPIN, + ], + [DeviceType.SMART_TRACK_CARD]: [], + [DeviceType.SMART_TRACK_LINK]: [], + [DeviceType.SMART_DROP]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceOpen, + ], +}; +exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +exports.DeviceCommands[DeviceType.EUFYCAM_S4] = exports.DeviceCommands[DeviceType.OUTDOOR_PT_CAMERA]; +exports.StationCommands = { + [DeviceType.STATION]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationChime, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.HB3]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.MINIBASE_CHIME]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationChime, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_CAMERA]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_CAMERA_1080]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_COST_DOWN_CAMERA]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_PT_CAMERA]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_PT_CAMERA_1080]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_PT_CAMERA_S350]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_PT_CAMERA_C210]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.INDOOR_PT_CAMERA_C220]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.OUTDOOR_PT_CAMERA]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.DOORBELL]: [ + CommandName.StationReboot, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.DOORBELL_SOLO]: [ + CommandName.StationReboot, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.BATTERY_DOORBELL_C30]: [ + CommandName.StationReboot, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.BATTERY_DOORBELL_C31]: [ + CommandName.StationReboot, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.BATTERY_DOORBELL_PLUS_E340]: [ + CommandName.StationReboot, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA_PRO]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + ], + [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA_SOLAR]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA_C210]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.SOLO_CAMERA_E30]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.FLOODLIGHT]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.FLOODLIGHT_CAMERA_8422]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.FLOODLIGHT_CAMERA_8423]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.FLOODLIGHT_CAMERA_8424]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.FLOODLIGHT_CAMERA_8425]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.FLOODLIGHT_CAMERA_8426]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.CAMERA_FG]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + ], + [DeviceType.WALL_LIGHT_CAM]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.WALL_LIGHT_CAM_81A0]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete, + ], + [DeviceType.CAMERA_GARAGE_T8452]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + /*CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete,*/ + ], + [DeviceType.CAMERA_GARAGE_T8453]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + /*CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete,*/ + ], + [DeviceType.CAMERA_GARAGE_T8453_COMMON]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + CommandName.StationDownloadImage, + /*CommandName.StationDatabaseQueryLatestInfo, + CommandName.StationDatabaseQueryLocal, + CommandName.StationDatabaseCountByDate, + CommandName.StationDatabaseDelete,*/ + ], + [DeviceType.KEYPAD]: [], + [DeviceType.LOCK_BLE]: [], + [DeviceType.LOCK_BLE_NO_FINGER]: [], + [DeviceType.LOCK_WIFI]: [], + [DeviceType.LOCK_WIFI_NO_FINGER]: [], + [DeviceType.SMART_TRACK_CARD]: [], + [DeviceType.SMART_TRACK_LINK]: [], + [DeviceType.SMART_DROP]: [], +}; +exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/http/types.js.map b/build/http/types.js.map new file mode 100644 index 00000000..8d1e5ee9 --- /dev/null +++ b/build/http/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/utils.d.ts b/build/http/utils.d.ts new file mode 100644 index 00000000..40357eec --- /dev/null +++ b/build/http/utils.d.ts @@ -0,0 +1,79 @@ +import { Device } from "./device"; +import { Picture, Schedule } from "./interfaces"; +import { NotificationSwitchMode, SignalLevel, HB3DetectionTypes, SourceType, T8170DetectionTypes, IndoorS350NotificationTypes, FloodlightT8425NotificationTypes, SmartLockNotification, IndoorS350DetectionTypes } from "./types"; +import { HTTPApi } from "./api"; +import { LockPushEvent } from "./../push/types"; +import { Station } from "./station"; +import { PushMessage } from "../push/models"; +export declare const isGreaterEqualMinVersion: (minimal_version: string, current_version: string) => boolean; +export declare const pad: (num: number) => string; +export declare const getTimezoneGMTString: () => string; +export declare const getAbsoluteFilePath: (device_type: number, channel: number, filename: string) => string; +export declare const getImageFilePath: (device_type: number, channel: number, filename: string) => string; +export declare const isNotificationSwitchMode: (value: number, mode: NotificationSwitchMode) => boolean; +export declare const switchNotificationMode: (currentValue: number, mode: NotificationSwitchMode, enable: boolean) => number; +export declare const calculateWifiSignalLevel: (device: Device, rssi: number) => SignalLevel; +export declare const calculateCellularSignalLevel: (rssi: number) => SignalLevel; +export declare const encryptAPIData: (data: string, key: Buffer) => string; +export declare const decryptAPIData: (data: string, key: Buffer) => Buffer; +export declare const getBlocklist: (directions: Array) => Array; +export declare const getDistances: (blocklist: Array) => Array; +export declare const isHB3DetectionModeEnabled: (value: number, type: HB3DetectionTypes) => boolean; +export declare const getHB3DetectionMode: (value: number, type: HB3DetectionTypes, enable: boolean) => number; +export interface EufyTimezone { + timeZoneName: string; + timeId: string; + timeSn: string; + timeZoneGMT: string; +} +export declare const getEufyTimezone: () => EufyTimezone | undefined; +export declare const getAdvancedLockTimezone: (stationSN: string) => string; +export declare class WritePayload { + private split_byte; + private data; + write(bytes: Buffer): void; + getData(): Buffer; +} +export declare class ParsePayload { + private data; + constructor(data: Buffer); + readUint32BE(indexValue: number): number; + readUint32LE(indexValue: number): number; + readUint16BE(indexValue: number): number; + readUint16LE(indexValue: number): number; + readString(indexValue: number): string; + readStringHex(indexValue: number): string; + readInt8(indexValue: number): number; + readData(indexValue: number): Buffer; + private getDataPosition; + private getNextStep; +} +export declare const encodePasscode: (pass: string) => string; +export declare const hexDate: (date: Date) => string; +export declare const hexTime: (date: Date) => string; +export declare const hexWeek: (schedule: Schedule) => string; +export declare const hexStringScheduleToSchedule: (startDay: string, startTime: string, endDay: string, endTime: string, week: string) => Schedule; +export declare const randomNumber: (min: number, max: number) => number; +export declare const getIdSuffix: (p2pDid: string) => number; +export declare const getImageBaseCode: (serialnumber: string, p2pDid: string) => string; +export declare const getImageSeed: (p2pDid: string, code: string) => string; +export declare const getImageKey: (serialnumber: string, p2pDid: string, code: string) => string; +export declare const decodeImage: (p2pDid: string, data: Buffer) => Buffer; +export declare const getImagePath: (path: string) => string; +export declare const getImage: (api: HTTPApi, serial: string, url: string) => Promise; +export declare const isPrioritySourceType: (current: SourceType | undefined, update: SourceType) => boolean; +export declare const decryptTrackerData: (data: Buffer, key: Buffer) => Buffer; +export declare const isT8170DetectionModeEnabled: (value: number, type: T8170DetectionTypes) => boolean; +export declare const getT8170DetectionMode: (value: number, type: T8170DetectionTypes, enable: boolean) => number; +export declare const isIndoorS350DetectionModeEnabled: (value: number, type: IndoorS350DetectionTypes) => boolean; +export declare const getIndoorS350DetectionMode: (value: number, type: IndoorS350DetectionTypes, enable: boolean) => number; +export declare const isIndoorNotitficationEnabled: (value: number, type: IndoorS350NotificationTypes) => boolean; +export declare const getIndoorNotification: (value: number, type: IndoorS350NotificationTypes, enable: boolean) => number; +export declare const isFloodlightT8425NotitficationEnabled: (value: number, type: FloodlightT8425NotificationTypes) => boolean; +export declare const getFloodLightT8425Notification: (value: number, type: FloodlightT8425NotificationTypes, enable: boolean) => number; +export declare const getLockEventType: (event: LockPushEvent) => number; +export declare const switchSmartLockNotification: (currentValue: number, mode: SmartLockNotification, enable: boolean) => number; +export declare const isSmartLockNotification: (value: number, mode: SmartLockNotification) => boolean; +export declare const getWaitSeconds: (device: Device) => number; +export declare const loadImageOverP2P: (station: Station, device: Device, id: string, p2pTimeouts: Map) => void; +export declare const loadEventImage: (station: Station, api: HTTPApi, device: Device, message: PushMessage, p2pTimeouts: Map) => void; diff --git a/build/http/utils.js b/build/http/utils.js new file mode 100644 index 00000000..609a1b93 --- /dev/null +++ b/build/http/utils.js @@ -0,0 +1,789 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.loadEventImage = exports.loadImageOverP2P = exports.getWaitSeconds = exports.isSmartLockNotification = exports.switchSmartLockNotification = exports.getLockEventType = exports.getFloodLightT8425Notification = exports.isFloodlightT8425NotitficationEnabled = exports.getIndoorNotification = exports.isIndoorNotitficationEnabled = exports.getIndoorS350DetectionMode = exports.isIndoorS350DetectionModeEnabled = exports.getT8170DetectionMode = exports.isT8170DetectionModeEnabled = exports.decryptTrackerData = exports.isPrioritySourceType = exports.getImage = exports.getImagePath = exports.decodeImage = exports.getImageKey = exports.getImageSeed = exports.getImageBaseCode = exports.getIdSuffix = exports.randomNumber = exports.hexStringScheduleToSchedule = exports.hexWeek = exports.hexTime = exports.hexDate = exports.encodePasscode = exports.ParsePayload = exports.WritePayload = exports.getAdvancedLockTimezone = exports.getEufyTimezone = exports.getHB3DetectionMode = exports.isHB3DetectionModeEnabled = exports.getDistances = exports.getBlocklist = exports.decryptAPIData = exports.encryptAPIData = exports.calculateCellularSignalLevel = exports.calculateWifiSignalLevel = exports.switchNotificationMode = exports.isNotificationSwitchMode = exports.getImageFilePath = exports.getAbsoluteFilePath = exports.getTimezoneGMTString = exports.pad = exports.isGreaterEqualMinVersion = void 0; +const crypto_1 = require("crypto"); +const const_1 = require("./const"); +const md5_1 = __importDefault(require("crypto-js/md5")); +const enc_hex_1 = __importDefault(require("crypto-js/enc-hex")); +const sha256_1 = __importDefault(require("crypto-js/sha256")); +const types_1 = require("./types"); +const error_1 = require("../error"); +const error_2 = require("./error"); +const types_2 = require("./../push/types"); +const logging_1 = require("../logging"); +const utils_1 = require("../utils"); +const normalizeVersionString = function (version) { + const trimmed = version ? version.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1") : ""; + const pieces = trimmed.split(RegExp("\\.")); + const parts = []; + let value, piece, num, i; + for (i = 0; i < pieces.length; i += 1) { + piece = pieces[i].replace(RegExp("\\D"), ""); + num = parseInt(piece, 10); + if (isNaN(num)) { + num = 0; + } + parts.push(num); + } + const partsLength = parts.length; + for (i = partsLength - 1; i >= 0; i -= 1) { + value = parts[i]; + if (value === 0) { + parts.length -= 1; + } + else { + break; + } + } + return parts; +}; +const isGreaterEqualMinVersion = function (minimal_version, current_version) { + const x = normalizeVersionString(minimal_version); + const y = normalizeVersionString(current_version); + const size = Math.min(x.length, y.length); + let i; + for (i = 0; i < size; i += 1) { + if (x[i] !== y[i]) { + return x[i] < y[i] ? true : false; + } + } + if (x.length === y.length) { + return true; + } + return (x.length < y.length) ? true : false; +}; +exports.isGreaterEqualMinVersion = isGreaterEqualMinVersion; +const pad = function (num) { + const norm = Math.floor(Math.abs(num)); + return (norm < 10 ? "0" : "") + norm; +}; +exports.pad = pad; +const getTimezoneGMTString = function () { + const tzo = -new Date().getTimezoneOffset(); + const dif = tzo >= 0 ? "+" : "-"; + return `GMT${dif}${(0, exports.pad)(tzo / 60)}:${(0, exports.pad)(tzo % 60)}`; +}; +exports.getTimezoneGMTString = getTimezoneGMTString; +const getAbsoluteFilePath = function (device_type, channel, filename) { + if (device_type === types_1.DeviceType.FLOODLIGHT) { + return `/mnt/data/Camera${String(channel).padStart(2, "0")}/${filename}.dat`; + } + return `/media/mmcblk0p1/Camera${String(channel).padStart(2, "0")}/${filename}.dat`; +}; +exports.getAbsoluteFilePath = getAbsoluteFilePath; +const getImageFilePath = function (device_type, channel, filename) { + if (device_type === types_1.DeviceType.FLOODLIGHT) { + return `/mnt/data/video/${filename}_c${String(channel).padStart(2, "0")}.jpg`; + } + return `/media/mmcblk0p1/video/${filename}_c${String(channel).padStart(2, "0")}.jpg`; +}; +exports.getImageFilePath = getImageFilePath; +const isNotificationSwitchMode = function (value, mode) { + if (value === 1) + value = 240; + return (value & mode) !== 0; +}; +exports.isNotificationSwitchMode = isNotificationSwitchMode; +const switchNotificationMode = function (currentValue, mode, enable) { + let result = 0; + if (!enable && currentValue === 1 /* ALL */) { + currentValue = 240; + } + if (enable) { + result = mode | currentValue; + } + else { + result = ~mode & currentValue; + } + if ((0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.SCHEDULE) && (0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.APP) && (0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.GEOFENCE) && (0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.KEYPAD)) { + result = 1; /* ALL */ + } + return result; +}; +exports.switchNotificationMode = switchNotificationMode; +const calculateWifiSignalLevel = function (device, rssi) { + if (device.isWiredDoorbell()) { + if (rssi >= -65) { + return types_1.SignalLevel.FULL; + } + if (rssi >= -75) { + return types_1.SignalLevel.STRONG; + } + return rssi >= -80 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; + } + else if (device.isCamera2Product()) { + if (rssi >= 0) { + return types_1.SignalLevel.NO_SIGNAL; + } + if (rssi >= -65) { + return types_1.SignalLevel.FULL; + } + if (rssi >= -75) { + return types_1.SignalLevel.STRONG; + } + return rssi >= -85 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; + } + else if (device.isFloodLight()) { + if (rssi >= 0) { + return types_1.SignalLevel.NO_SIGNAL; + } + if (rssi >= -60) { + return types_1.SignalLevel.FULL; + } + if (rssi >= -70) { + return types_1.SignalLevel.STRONG; + } + return rssi >= -80 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; + } + else if (device.isBatteryDoorbell()) { + if (rssi >= -65) { + return types_1.SignalLevel.FULL; + } + if (rssi >= -75) { + return types_1.SignalLevel.STRONG; + } + return rssi >= -85 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; + } + else { + if (rssi >= 0) { + return types_1.SignalLevel.NO_SIGNAL; + } + if (rssi >= -65) { + return types_1.SignalLevel.FULL; + } + if (rssi >= -75) { + return types_1.SignalLevel.STRONG; + } + return rssi >= -85 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; + } +}; +exports.calculateWifiSignalLevel = calculateWifiSignalLevel; +const calculateCellularSignalLevel = function (rssi) { + if (rssi >= 0) { + return types_1.SignalLevel.NO_SIGNAL; + } + if (rssi >= -90) { + return types_1.SignalLevel.FULL; + } + if (rssi >= -95) { + return types_1.SignalLevel.STRONG; + } + return rssi >= -105 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; +}; +exports.calculateCellularSignalLevel = calculateCellularSignalLevel; +const encryptAPIData = (data, key) => { + const cipher = (0, crypto_1.createCipheriv)("aes-256-cbc", key, key.subarray(0, 16)); + return (cipher.update(data, "utf8", "base64") + + cipher.final("base64")); +}; +exports.encryptAPIData = encryptAPIData; +const decryptAPIData = (data, key) => { + const cipher = (0, crypto_1.createDecipheriv)("aes-256-cbc", key, key.subarray(0, 16)); + return Buffer.concat([ + cipher.update(data, "base64"), + cipher.final() + ]); +}; +exports.decryptAPIData = decryptAPIData; +const getBlocklist = function (directions) { + const result = []; + for (let distance = 1; distance <= 5; distance++) { + let i = 0; + let j = 0; + let k = 1; + for (const directionDistance of directions) { + if (directionDistance >= distance) { + j += k; + } + k <<= 1; + } + if (j == 0) { + i = 65535; + } + else if (!(j == 255 || j == 65535)) { + i = (j ^ 255) + 65280; + } + result.push(65535 & i); + } + return result; +}; +exports.getBlocklist = getBlocklist; +const getDistances = function (blocklist) { + const result = [3, 3, 3, 3, 3, 3, 3, 3]; + let calcDistance = 0; + for (const blockElement of blocklist) { + let valueOf = blockElement ^ 65535; + calcDistance++; + if (valueOf !== 0) { + for (let i = 0; i < result.length; i++) { + const intValue = valueOf & 1; + if (intValue > 0) { + result[i] = calcDistance; + } + valueOf = valueOf >> 1; + } + } + } + return result; +}; +exports.getDistances = getDistances; +const isHB3DetectionModeEnabled = function (value, type) { + if (type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION) { + return (type & value) == type && (value & 65536) == 65536; + } + else if (type === types_1.HB3DetectionTypes.HUMAN_DETECTION) { + return (type & value) == type && (value & 1) == 1; + } + return (type & value) == type; +}; +exports.isHB3DetectionModeEnabled = isHB3DetectionModeEnabled; +const getHB3DetectionMode = function (value, type, enable) { + let result = 0; + if (!enable) { + if (type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION) { + const tmp = (type & value) == type ? type ^ value : value; + result = (value & 65536) == 65536 ? tmp ^ 65536 : tmp; + } + else if (type === types_1.HB3DetectionTypes.HUMAN_DETECTION) { + const tmp = (type & value) == type ? type ^ value : value; + result = (value & 1) == 1 ? tmp ^ 1 : tmp; + } + else { + result = type ^ value; + } + } + else { + if (type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION) { + result = type | value | 65536; + } + else if (type === types_1.HB3DetectionTypes.HUMAN_DETECTION) { + result = type | value | 1; + } + else { + result = type | value; + } + } + return result; +}; +exports.getHB3DetectionMode = getHB3DetectionMode; +const getEufyTimezone = function () { + for (const timezone of const_1.timeZoneData) { + if (timezone.timeId === Intl.DateTimeFormat().resolvedOptions().timeZone) { + return timezone; + } + } + return undefined; +}; +exports.getEufyTimezone = getEufyTimezone; +const getAdvancedLockTimezone = function (stationSN) { + const timezone = (0, exports.getEufyTimezone)(); + if (timezone !== undefined) { + if (stationSN.startsWith("T8520") && (0, exports.isGreaterEqualMinVersion)("1.2.8.6", stationSN)) + return `${timezone.timeZoneGMT}|1.${timezone.timeSn}`; + else + return timezone.timeZoneGMT; + } + return ""; +}; +exports.getAdvancedLockTimezone = getAdvancedLockTimezone; +class WritePayload { + split_byte = -95; + data = Buffer.from([]); + write(bytes) { + const tmp_data = Buffer.from(bytes); + this.data = Buffer.concat([this.data, Buffer.from([this.split_byte]), Buffer.from([tmp_data.length & 255]), tmp_data]); + this.split_byte += 1; + } + getData() { + return this.data; + } +} +exports.WritePayload = WritePayload; +class ParsePayload { + data; + constructor(data) { + this.data = data; + } + readUint32BE(indexValue) { + return this.readData(indexValue).readUint32BE(); + } + readUint32LE(indexValue) { + return this.readData(indexValue).readUint32LE(); + } + readUint16BE(indexValue) { + return this.readData(indexValue).readUint16BE(); + } + readUint16LE(indexValue) { + return this.readData(indexValue).readUint16LE(); + } + readString(indexValue) { + return this.readData(indexValue).toString(); + } + readStringHex(indexValue) { + return this.readData(indexValue).toString("hex"); + } + readInt8(indexValue) { + let dataPosition = this.getDataPosition(indexValue); + if (dataPosition == -1) { + return 0; + } + dataPosition = dataPosition + 2; + if (dataPosition >= this.data.length) { + return 0; + } + return this.data.readInt8(dataPosition); + } + readData(indexValue) { + let dataPosition = this.getDataPosition(indexValue); + if (dataPosition == -1) { + return Buffer.from(""); + } + dataPosition++; + if (dataPosition >= this.data.length) { + return Buffer.from(""); + } + const nextStep = this.getNextStep(indexValue, dataPosition, this.data); + let tmp; + if (nextStep == 1) { + tmp = this.data.readInt8(dataPosition); + } + else { + tmp = this.data.readUint16LE(dataPosition); + } + if (dataPosition + nextStep + tmp > this.data.length) { + return Buffer.from(""); + } + return this.data.subarray(dataPosition + nextStep, dataPosition + nextStep + tmp); + } + getDataPosition(indexValue) { + if (this.data && this.data.length >= 1) { + for (let currentPosition = 0; currentPosition < this.data.length;) { + if (this.data.readInt8(currentPosition) == indexValue) { + return currentPosition; + } + else { + const value = this.data.readInt8(currentPosition); + currentPosition++; + if (currentPosition >= this.data.length) { + break; + } + const nextStep = this.getNextStep(value, currentPosition, this.data); + if ((currentPosition + nextStep) >= this.data.length) { + break; + } + if (nextStep == 1) { + currentPosition = this.data.readInt8(currentPosition) + currentPosition + nextStep; + } + else { + currentPosition = this.data.readUint16LE(currentPosition) + currentPosition + nextStep; + } + } + } + } + return -1; + } + getNextStep(indexValue, position, data) { + const newPosition = position + 1 + data.readUInt8(position); + return (newPosition == data.length || newPosition > data.length || data.readInt8(newPosition) == indexValue + 1) ? 1 : 2; + } +} +exports.ParsePayload = ParsePayload; +/*export const generateHash = function(data: Buffer): number { + let result = 0; + for (const value of data) { + result = result ^ value; + } + return result; +} + +export const encodeSmartSafeData = function(command: number, payload: Buffer): Buffer { + const header = Buffer.from(SmartSafe.DATA_HEADER); + const size = Buffer.allocUnsafe(2); + size.writeInt16LE(payload.length + 9); + const versionCode = Buffer.from([SmartSafe.VERSION_CODE]); + const dataType = Buffer.from([-1]); + const commandCode = Buffer.from([command]); + const packageFlag = Buffer.from([-64]); + const data = Buffer.concat([header, size, versionCode, dataType, commandCode, packageFlag, payload]); + const hash = generateHash(data); + return Buffer.concat([data, Buffer.from([hash])]); +}*/ +const encodePasscode = function (pass) { + let result = ""; + for (let i = 0; i < pass.length; i++) + result += pass.charCodeAt(i).toString(16); + return result; +}; +exports.encodePasscode = encodePasscode; +const hexDate = function (date) { + const buf = Buffer.allocUnsafe(4); + buf.writeUint8(date.getDate()); + buf.writeUint8(date.getMonth() + 1, 1); + buf.writeUint16BE(date.getFullYear(), 2); + return buf.readUInt32LE().toString(16).padStart(8, "0"); +}; +exports.hexDate = hexDate; +const hexTime = function (date) { + const buf = Buffer.allocUnsafe(2); + buf.writeUint8(date.getHours()); + buf.writeUint8(date.getMinutes(), 1); + return buf.readUInt16BE().toString(16).padStart(4, "0"); +}; +exports.hexTime = hexTime; +const hexWeek = function (schedule) { + const SUNDAY = 1; + const MONDAY = 2; + const TUESDAY = 4; + const WEDNESDAY = 8; + const THUERSDAY = 16; + const FRIDAY = 32; + const SATURDAY = 64; + let result = 0; + if (schedule.week !== undefined) { + if (schedule.week.sunday) { + result |= SUNDAY; + } + if (schedule.week.monday) { + result |= MONDAY; + } + if (schedule.week.tuesday) { + result |= TUESDAY; + } + if (schedule.week.wednesday) { + result |= WEDNESDAY; + } + if (schedule.week.thursday) { + result |= THUERSDAY; + } + if (schedule.week.friday) { + result |= FRIDAY; + } + if (schedule.week.saturday) { + result |= SATURDAY; + } + return result.toString(16); + } + return "ff"; +}; +exports.hexWeek = hexWeek; +const hexStringScheduleToSchedule = function (startDay, startTime, endDay, endTime, week) { + const SUNDAY = 1; + const MONDAY = 2; + const TUESDAY = 4; + const WEDNESDAY = 8; + const THUERSDAY = 16; + const FRIDAY = 32; + const SATURDAY = 64; + const weekNumber = Number.parseInt(week, 16); + return { + startDateTime: startDay === "00000000" ? undefined : new Date(Number.parseInt(`${startDay.substring(2, 4)}${startDay.substring(0, 2)}`, 16), Number.parseInt(startDay.substring(4, 6), 16) - 1, Number.parseInt(startDay.substring(6, 8), 16), Number.parseInt(startTime.substring(0, 2), 16), Number.parseInt(startTime.substring(2, 4), 16)), + endDateTime: endDay === "ffffffff" ? undefined : new Date(Number.parseInt(`${endDay.substring(2, 4)}${endDay.substring(0, 2)}`, 16), Number.parseInt(endDay.substring(4, 6), 16) - 1, Number.parseInt(endDay.substring(6, 8), 16), Number.parseInt(endTime.substring(0, 2), 16), Number.parseInt(endTime.substring(2, 4), 16)), + week: { + monday: (weekNumber & MONDAY) == MONDAY, + tuesday: (weekNumber & TUESDAY) == TUESDAY, + wednesday: (weekNumber & WEDNESDAY) == WEDNESDAY, + thursday: (weekNumber & THUERSDAY) == THUERSDAY, + friday: (weekNumber & FRIDAY) == FRIDAY, + saturday: (weekNumber & SATURDAY) == SATURDAY, + sunday: (weekNumber & SUNDAY) == SUNDAY, + }, + }; +}; +exports.hexStringScheduleToSchedule = hexStringScheduleToSchedule; +const randomNumber = function (min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +}; +exports.randomNumber = randomNumber; +const getIdSuffix = function (p2pDid) { + let result = 0; + const match = p2pDid.match(/^[A-Z]+-(\d+)-[A-Z]+$/); + if (match?.length == 2) { + const num1 = Number.parseInt(match[1][0]); + const num2 = Number.parseInt(match[1][1]); + const num3 = Number.parseInt(match[1][3]); + const num4 = Number.parseInt(match[1][5]); + result = num1 + num2 + num3; + if (num3 < 5) { + result = result + num3; + } + result = result + num4; + } + return result; +}; +exports.getIdSuffix = getIdSuffix; +const getImageBaseCode = function (serialnumber, p2pDid) { + let nr = 0; + try { + nr = Number.parseInt(`0x${serialnumber[serialnumber.length - 1]}`); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + throw new error_2.ImageBaseCodeError("Error generating image base code", { cause: error, context: { serialnumber: serialnumber, p2pDid: p2pDid } }); + } + nr = (nr + 10) % 10; + const base = serialnumber.substring(nr); + return `${base}${(0, exports.getIdSuffix)(p2pDid)}`; +}; +exports.getImageBaseCode = getImageBaseCode; +const getImageSeed = function (p2pDid, code) { + try { + const ncode = Number.parseInt(code.substring(2)); + const prefix = 1000 - (0, exports.getIdSuffix)(p2pDid); + return (0, md5_1.default)(`${prefix}${ncode}`).toString(enc_hex_1.default).toUpperCase(); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + throw new error_2.ImageBaseCodeError("Error generating image seed", { cause: error, context: { p2pDid: p2pDid, code: code } }); + } +}; +exports.getImageSeed = getImageSeed; +const getImageKey = function (serialnumber, p2pDid, code) { + const basecode = (0, exports.getImageBaseCode)(serialnumber, p2pDid); + const seed = (0, exports.getImageSeed)(p2pDid, code); + const data = `01${basecode}${seed}`; + const hash = (0, sha256_1.default)(data); + const hashBytes = [...Buffer.from(hash.toString(enc_hex_1.default), "hex")]; + const startByte = hashBytes[10]; + for (let i = 0; i < 32; i++) { + const byte = hashBytes[i]; + let fixed_byte = startByte; + if (i < 31) { + fixed_byte = hashBytes[i + 1]; + } + if ((i == 31) || ((i & 1) != 0)) { + hashBytes[10] = fixed_byte; + if ((126 < byte) || (126 < hashBytes[10])) { + if (byte < hashBytes[10] || (byte - hashBytes[10]) == 0) { + hashBytes[i] = hashBytes[10] - byte; + } + else { + hashBytes[i] = byte - hashBytes[10]; + } + } + } + else if ((byte < 125) || (fixed_byte < 125)) { + hashBytes[i] = fixed_byte + byte; + } + } + return `${Buffer.from(hashBytes.slice(16)).toString("hex").toUpperCase()}`; +}; +exports.getImageKey = getImageKey; +const decodeImage = function (p2pDid, data) { + if (data.length >= 12) { + const header = data.subarray(0, 12).toString(); + if (header === "eufysecurity") { + const serialnumber = data.subarray(13, 29).toString(); + const code = data.subarray(30, 40).toString(); + const imageKey = (0, exports.getImageKey)(serialnumber, p2pDid, code); + const otherData = data.subarray(41); + const encryptedData = otherData.subarray(0, 256); + const cipher = (0, crypto_1.createDecipheriv)("aes-128-ecb", Buffer.from(imageKey, "utf-8").subarray(0, 16), null); + cipher.setAutoPadding(false); + const decryptedData = Buffer.concat([ + cipher.update(encryptedData), + cipher.final() + ]); + decryptedData.copy(otherData); + return otherData; + } + } + return data; +}; +exports.decodeImage = decodeImage; +const getImagePath = function (path) { + const splittedPath = path.split("~"); + if (splittedPath.length === 2) { + return splittedPath[1]; + } + return path; +}; +exports.getImagePath = getImagePath; +const getImage = async function (api, serial, url) { + const { default: imageType } = await import("image-type"); + const image = await api.getImage(serial, url); + const type = await imageType(image); + return { + data: image, + type: type !== null && type !== undefined ? type : { ext: "unknown", mime: "application/octet-stream" } + }; +}; +exports.getImage = getImage; +const isPrioritySourceType = function (current, update) { + if (((current === "http" || current === "p2p" || current === "push" || current === "mqtt" || current === undefined) && (update === "p2p" || update === "push" || update === "mqtt")) || + ((current === "http" || current === undefined) && update === "http")) { + return true; + } + return false; +}; +exports.isPrioritySourceType = isPrioritySourceType; +const decryptTrackerData = (data, key) => { + const decipher = (0, crypto_1.createDecipheriv)("aes-128-ecb", key, null); + decipher.setAutoPadding(false); + return Buffer.concat([ + decipher.update(data), + decipher.final() + ]); +}; +exports.decryptTrackerData = decryptTrackerData; +const isT8170DetectionModeEnabled = function (value, type) { + return (type & value) == type; +}; +exports.isT8170DetectionModeEnabled = isT8170DetectionModeEnabled; +const getT8170DetectionMode = function (value, type, enable) { + let result = 0; + if ((Object.values(types_1.T8170DetectionTypes).includes(type) && Object.values(types_1.T8170DetectionTypes).includes(value)) && !enable) + return value; + if (!enable) { + result = type ^ value; + } + else { + result = type | value; + } + return result; +}; +exports.getT8170DetectionMode = getT8170DetectionMode; +const isIndoorS350DetectionModeEnabled = function (value, type) { + return (type & value) == type; +}; +exports.isIndoorS350DetectionModeEnabled = isIndoorS350DetectionModeEnabled; +const getIndoorS350DetectionMode = function (value, type, enable) { + let result = 0; + if ((Object.values(types_1.IndoorS350DetectionTypes).includes(type) && Object.values(types_1.IndoorS350DetectionTypes).includes(value)) && !enable) + return value; + if (!enable) { + result = type ^ value; + } + else { + result = type | value; + } + return result; +}; +exports.getIndoorS350DetectionMode = getIndoorS350DetectionMode; +const isIndoorNotitficationEnabled = function (value, type) { + return (type & value) == type; +}; +exports.isIndoorNotitficationEnabled = isIndoorNotitficationEnabled; +const getIndoorNotification = function (value, type, enable) { + let result = 0; + if (!enable) { + result = (type ^ value) + 800; + } + else { + result = type | value; + } + return result; +}; +exports.getIndoorNotification = getIndoorNotification; +const isFloodlightT8425NotitficationEnabled = function (value, type) { + return (type & value) == type; +}; +exports.isFloodlightT8425NotitficationEnabled = isFloodlightT8425NotitficationEnabled; +const getFloodLightT8425Notification = function (value, type, enable) { + let result = 0; + if (!enable) { + result = (type ^ value); + } + else { + result = type | value; + } + return result; +}; +exports.getFloodLightT8425Notification = getFloodLightT8425Notification; +const getLockEventType = function (event) { + switch (event) { + case types_2.LockPushEvent.AUTO_LOCK: + case types_2.LockPushEvent.AUTO_UNLOCK: + return 1; + case types_2.LockPushEvent.MANUAL_LOCK: + case types_2.LockPushEvent.MANUAL_UNLOCK: + return 2; + case types_2.LockPushEvent.APP_LOCK: + case types_2.LockPushEvent.APP_UNLOCK: + return 3; + case types_2.LockPushEvent.PW_LOCK: + case types_2.LockPushEvent.PW_UNLOCK: + return 4; + case types_2.LockPushEvent.FINGER_LOCK: + case types_2.LockPushEvent.FINGERPRINT_UNLOCK: + return 5; + case types_2.LockPushEvent.TEMPORARY_PW_LOCK: + case types_2.LockPushEvent.TEMPORARY_PW_UNLOCK: + return 6; + case types_2.LockPushEvent.KEYPAD_LOCK: + return 7; + } + return 0; +}; +exports.getLockEventType = getLockEventType; +const switchSmartLockNotification = function (currentValue, mode, enable) { + let result = 0; + if (enable) { + result = mode | currentValue; + } + else { + result = ~mode & currentValue; + } + return result; +}; +exports.switchSmartLockNotification = switchSmartLockNotification; +const isSmartLockNotification = function (value, mode) { + return (value & mode) !== 0; +}; +exports.isSmartLockNotification = isSmartLockNotification; +const getWaitSeconds = (device) => { + let seconds = 60; + const workingMode = device.getPropertyValue(types_1.PropertyName.DevicePowerWorkingMode); + if (workingMode !== undefined && workingMode === 2) { + const customValue = device.getPropertyValue(types_1.PropertyName.DeviceRecordingClipLength); + if (customValue !== undefined) { + seconds = customValue; + } + } + return seconds; +}; +exports.getWaitSeconds = getWaitSeconds; +const loadImageOverP2P = function (station, device, id, p2pTimeouts) { + if (station.hasCommand(types_1.CommandName.StationDatabaseQueryLatestInfo) && p2pTimeouts.get(id) === undefined) { + const seconds = (0, exports.getWaitSeconds)(device); + p2pTimeouts.set(id, setTimeout(async () => { + station.databaseQueryLatestInfo(); + p2pTimeouts.delete(id); + }, seconds * 1000)); + } +}; +exports.loadImageOverP2P = loadImageOverP2P; +const loadEventImage = function (station, api, device, message, p2pTimeouts) { + if (message.notification_style === types_1.NotificationType.MOST_EFFICIENT) { + (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); + } + else { + if (!(0, utils_1.isEmpty)(message.pic_url)) { + (0, exports.getImage)(api, device.getSerial(), message.pic_url).then((image) => { + if (image.data.length > 0) { + if (p2pTimeouts.get(device.getSerial()) !== undefined) { + clearTimeout(p2pTimeouts.get(device.getSerial())); + p2pTimeouts.delete(device.getSerial()); + } + device.updateProperty(types_1.PropertyName.DevicePicture, image, true); + } + else { + //fallback + (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); + } + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootHTTPLogger.debug(`Device load event image - Fallback Error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), deviceSN: device.getSerial(), message: JSON.stringify(message) }); + (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); + }); + } + else { + //fallback + (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); + } + } +}; +exports.loadEventImage = loadEventImage; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/http/utils.js.map b/build/http/utils.js.map new file mode 100644 index 00000000..14fdd615 --- /dev/null +++ b/build/http/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/index.d.ts b/build/index.d.ts new file mode 100644 index 00000000..f8a0778e --- /dev/null +++ b/build/index.d.ts @@ -0,0 +1,8 @@ +export * from "./http"; +export * from "./p2p"; +export * from "./push"; +export * from "./interfaces"; +export * from "./eufysecurity"; +export * from "./error"; +export { LoggingCategories, LogLevel, Logger, dummyLogger } from "./logging"; +export declare const libVersion: string; diff --git a/build/index.js b/build/index.js new file mode 100644 index 00000000..7239290f --- /dev/null +++ b/build/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.libVersion = exports.dummyLogger = exports.LogLevel = void 0; +__exportStar(require("./http"), exports); +__exportStar(require("./p2p"), exports); +__exportStar(require("./push"), exports); +__exportStar(require("./interfaces"), exports); +__exportStar(require("./eufysecurity"), exports); +__exportStar(require("./error"), exports); +var logging_1 = require("./logging"); +Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logging_1.LogLevel; } }); +Object.defineProperty(exports, "dummyLogger", { enumerable: true, get: function () { return logging_1.dummyLogger; } }); +// eslint-disable-next-line @typescript-eslint/no-var-requires +exports.libVersion = require("../package.json").version; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/index.js.map b/build/index.js.map new file mode 100644 index 00000000..eccc5f89 --- /dev/null +++ b/build/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,wCAAsB;AACtB,yCAAuB;AACvB,+CAA6B;AAC7B,iDAA+B;AAC/B,0CAAwB;AACxB,qCAA6E;AAAjD,mGAAA,QAAQ,OAAA;AAAU,sGAAA,WAAW,OAAA;AAEzD,8DAA8D;AACjD,QAAA,UAAU,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file diff --git a/build/interfaces.d.ts b/build/interfaces.d.ts new file mode 100644 index 00000000..18525be2 --- /dev/null +++ b/build/interfaces.d.ts @@ -0,0 +1,142 @@ +import { Readable } from "stream"; +import { Device } from "./http/device"; +import { HTTPApiPersistentData, Picture, PropertyValue, Schedule } from "./http/interfaces"; +import { Station } from "./http/station"; +import { DeviceSmartLockMessage } from "./mqtt/model"; +import { DatabaseCountByDate, DatabaseQueryLatestInfo, DatabaseQueryLocal, StreamMetadata } from "./p2p/interfaces"; +import { CommandResult } from "./p2p/models"; +import { TalkbackStream } from "./p2p/talkback"; +import { AlarmEvent, DatabaseReturnCode, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent } from "./p2p/types"; +import { Credentials, PushMessage } from "./push/models"; +import { Jsonable, LoggingCategories } from "."; +import { LogLevel } from "typescript-logging"; +export interface StationIPAddresses { + [index: string]: string; +} +export interface EufySecurityConfig { + username: string; + password: string; + country?: string; + language?: string; + trustedDeviceName?: string; + persistentDir?: string; + persistentData?: string; + p2pConnectionSetup: number; + pollingIntervalMinutes: number; + eventDurationSeconds: number; + acceptInvitations?: boolean; + stationIPAddresses?: StationIPAddresses; + enableEmbeddedPKCS1Support?: boolean; + deviceConfig?: { + simultaneousDetections?: boolean; + }; + logging?: { + level?: LogLevel; + categories?: Array<{ + category: LoggingCategories; + level: LogLevel; + }>; + }; +} +export interface EufySecurityPersistentData { + country: string; + login_hash: string; + openudid: string; + serial_number: string; + cloud_token?: string; + cloud_token_expiration?: number; + push_credentials: Credentials | undefined; + push_persistentIds: string[]; + version: string; + httpApi?: HTTPApiPersistentData; + fallbackTrustedDeviceName?: string; +} +export interface EufySecurityEvents { + "device added": (device: Device) => void; + "device removed": (device: Device) => void; + "device property changed": (device: Device, name: string, value: PropertyValue) => void; + "device raw property changed": (device: Device, type: number, value: string) => void; + "device crying detected": (device: Device, state: boolean) => void; + "device sound detected": (device: Device, state: boolean) => void; + "device pet detected": (device: Device, state: boolean) => void; + "device vehicle detected": (device: Device, state: boolean) => void; + "device motion detected": (device: Device, state: boolean) => void; + "device person detected": (device: Device, state: boolean, person: string) => void; + "device stranger person detected": (device: Device, state: boolean) => void; + "device dog detected": (device: Device, state: boolean) => void; + "device dog lick detected": (device: Device, state: boolean) => void; + "device dog poop detected": (device: Device, state: boolean) => void; + "device rings": (device: Device, state: boolean) => void; + "device locked": (device: Device, state: boolean) => void; + "device open": (device: Device, state: boolean) => void; + "device package delivered": (device: Device, state: boolean) => void; + "device package stranded": (device: Device, state: boolean) => void; + "device package taken": (device: Device, state: boolean) => void; + "device someone loitering": (device: Device, state: boolean) => void; + "device radar motion detected": (device: Device, state: boolean) => void; + "device 911 alarm": (device: Device, state: boolean, detail: SmartSafeAlarm911Event) => void; + "device shake alarm": (device: Device, state: boolean, detail: SmartSafeShakeAlarmEvent) => void; + "device wrong try-protect alarm": (device: Device, state: boolean) => void; + "device long time not close": (device: Device, state: boolean) => void; + "device low battery": (device: Device, state: boolean) => void; + "device jammed": (device: Device, state: boolean) => void; + "device pin verified": (device: Device, successfull: boolean) => void; + "device tampering": (device: Device, state: boolean) => void; + "device low temperature": (device: Device, state: boolean) => void; + "device high temperature": (device: Device, state: boolean) => void; + "device pin incorrect": (device: Device, state: boolean) => void; + "device lid stuck": (device: Device, state: boolean) => void; + "device battery fully charged": (device: Device, state: boolean) => void; + "station added": (station: Station) => void; + "station removed": (station: Station) => void; + "station livestream start": (station: Station, device: Device, metadata: StreamMetadata, videostream: Readable, audiostream: Readable) => void; + "station livestream stop": (station: Station, device: Device) => void; + "station download start": (station: Station, device: Device, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void; + "station download finish": (station: Station, device: Device) => void; + "station command result": (station: Station, result: CommandResult) => void; + "station rtsp livestream start": (station: Station, device: Device) => void; + "station rtsp livestream stop": (station: Station, device: Device) => void; + "station rtsp url": (station: Station, device: Device, value: string) => void; + "station guard mode": (station: Station, guardMode: number) => void; + "station current mode": (station: Station, currentMode: number) => void; + "station property changed": (station: Station, name: string, value: PropertyValue) => void; + "station raw property changed": (station: Station, type: number, value: string) => void; + "station alarm event": (station: Station, alarmEvent: AlarmEvent) => void; + "station alarm delay event": (station: Station, alarmDelayEvent: AlarmEvent, alarmDelay: number) => void; + "station alarm armed": (station: Station) => void; + "station alarm arm delay event": (station: Station, armDelay: number) => void; + "station connect": (station: Station) => void; + "station connection error": (station: Station, error: Error) => void; + "station close": (station: Station) => void; + "station talkback start": (station: Station, device: Device, talkbackStream: TalkbackStream) => void; + "station talkback stop": (station: Station, device: Device) => void; + "station image download": (station: Station, file: string, image: Picture) => void; + "station database query latest": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; + "station database query local": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; + "station database count by date": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; + "station database delete": (station: Station, returnCode: DatabaseReturnCode, failedIds: Array) => void; + "push connect": () => void; + "push close": () => void; + "push message": (message: PushMessage) => void; + "connect": () => void; + "close": () => void; + "connection error": (error: Error) => void; + "tfa request": () => void; + "captcha request": (id: string, captcha: string) => void; + "persistent data": (data: string) => void; + "mqtt connect": () => void; + "mqtt close": () => void; + "mqtt lock message": (message: DeviceSmartLockMessage) => void; + "user added": (device: Device, username: string, schedule?: Schedule) => void; + "user deleted": (device: Device, username: string) => void; + "user error": (device: Device, username: string, error: Error) => void; + "user username updated": (device: Device, username: string) => void; + "user schedule updated": (device: Device, username: string, schedule: Schedule) => void; + "user passcode updated": (device: Device, username: string) => void; +} +export interface ErrorObject { + cause: unknown; + message: string; + context: Jsonable; + stacktrace?: string; +} diff --git a/build/interfaces.js b/build/interfaces.js new file mode 100644 index 00000000..db919115 --- /dev/null +++ b/build/interfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/interfaces.js.map b/build/interfaces.js.map new file mode 100644 index 00000000..8fb5f7d1 --- /dev/null +++ b/build/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/logging.d.ts b/build/logging.d.ts new file mode 100644 index 00000000..be3b0f60 --- /dev/null +++ b/build/logging.d.ts @@ -0,0 +1,22 @@ +import { LogLevel } from "typescript-logging"; +export type LoggingCategories = "all" | "main" | "http" | "p2p" | "push" | "mqtt"; +export { LogLevel }; +export interface Logger { + trace(message: unknown, ...args: unknown[]): void; + debug(message: unknown, ...args: unknown[]): void; + info(message: unknown, ...args: unknown[]): void; + warn(message: unknown, ...args: unknown[]): void; + error(message: unknown, ...args: unknown[]): void; + fatal?(message: unknown, ...args: unknown[]): void; +} +export declare const dummyLogger: Logger; +export declare class InternalLogger { + static logger: Logger | undefined; +} +export declare const rootMainLogger: import("typescript-logging-category-style").Category; +export declare const rootHTTPLogger: import("typescript-logging-category-style").Category; +export declare const rootMQTTLogger: import("typescript-logging-category-style").Category; +export declare const rootPushLogger: import("typescript-logging-category-style").Category; +export declare const rootP2PLogger: import("typescript-logging-category-style").Category; +export declare const setLoggingLevel: (category?: LoggingCategories, level?: LogLevel) => void; +export declare const getLoggingLevel: (category?: LoggingCategories) => number; diff --git a/build/logging.js b/build/logging.js new file mode 100644 index 00000000..aae1cc4e --- /dev/null +++ b/build/logging.js @@ -0,0 +1,116 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getLoggingLevel = exports.setLoggingLevel = exports.rootP2PLogger = exports.rootPushLogger = exports.rootMQTTLogger = exports.rootHTTPLogger = exports.rootMainLogger = exports.InternalLogger = exports.LogLevel = void 0; +const typescript_logging_1 = require("typescript-logging"); +Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return typescript_logging_1.LogLevel; } }); +const typescript_logging_category_style_1 = require("typescript-logging-category-style"); +class InternalLogger { + static logger; +} +exports.InternalLogger = InternalLogger; +const getMethodName = function () { + const matches = new Error("").stack?.split("\n")[6].match(/ at( new){0,1} ([a-zA-Z0-9_\.]+) /); + if (matches !== null && matches !== undefined && matches[2] !== undefined && matches[2] !== "eval") { + return matches[2]; + } + return undefined; +}; +const provider = typescript_logging_category_style_1.CategoryProvider.createProvider("EufySecurityClientProvider", { + level: typescript_logging_1.LogLevel.Off, + channel: { + type: "RawLogChannel", + write: (msg, _formatArg) => { + const methodName = getMethodName(); + const method = methodName ? `[${methodName}] ` : ""; + switch (msg.level) { + case typescript_logging_1.LogLevel.Trace: + if (msg.args) + InternalLogger.logger?.trace(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); + else + InternalLogger.logger?.trace(`[${msg.logNames}] ${method}${msg.message}`); + break; + case typescript_logging_1.LogLevel.Debug: + if (msg.args) + InternalLogger.logger?.debug(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); + else + InternalLogger.logger?.debug(`[${msg.logNames}] ${method}${msg.message}`); + break; + case typescript_logging_1.LogLevel.Info: + if (msg.args) + InternalLogger.logger?.info(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); + else + InternalLogger.logger?.info(`[${msg.logNames}] ${method}${msg.message}`); + break; + case typescript_logging_1.LogLevel.Warn: + if (msg.args) + InternalLogger.logger?.warn(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); + else + InternalLogger.logger?.warn(`[${msg.logNames}] ${method}${msg.message}`); + break; + case typescript_logging_1.LogLevel.Error: + if (msg.args) + InternalLogger.logger?.error(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); + else + InternalLogger.logger?.error(`[${msg.logNames}] ${method}${msg.message}`); + break; + case typescript_logging_1.LogLevel.Fatal: + if (InternalLogger.logger && InternalLogger.logger.fatal) + if (msg.args) + InternalLogger.logger.fatal(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); + else + InternalLogger.logger.fatal(`[${msg.logNames}] ${method}${msg.message}`); + break; + } + }, + }, +}); +exports.rootMainLogger = provider.getCategory("main"); +exports.rootHTTPLogger = provider.getCategory("http"); +exports.rootMQTTLogger = provider.getCategory("mqtt"); +exports.rootPushLogger = provider.getCategory("push"); +exports.rootP2PLogger = provider.getCategory("p2p"); +const setLoggingLevel = function (category = "all", level = typescript_logging_1.LogLevel.Off) { + switch (category) { + case "all": + provider.updateRuntimeSettings({ + level: level + }); + break; + case "main": + provider.updateRuntimeSettingsCategory(exports.rootMainLogger, { + level: level + }); + break; + case "http": + provider.updateRuntimeSettingsCategory(exports.rootHTTPLogger, { + level: level + }); + break; + case "mqtt": + provider.updateRuntimeSettingsCategory(exports.rootMQTTLogger, { + level: level + }); + break; + case "p2p": + provider.updateRuntimeSettingsCategory(exports.rootP2PLogger, { + level: level + }); + break; + case "push": + provider.updateRuntimeSettingsCategory(exports.rootPushLogger, { + level: level + }); + break; + } +}; +exports.setLoggingLevel = setLoggingLevel; +const getLoggingLevel = function (category = "all") { + switch (category) { + case "all": + return provider.runtimeConfig.level; + default: + return provider.getCategory(category).logLevel; + } +}; +exports.getLoggingLevel = getLoggingLevel; +//# sourceMappingURL=logging.js.map \ No newline at end of file diff --git a/build/logging.js.map b/build/logging.js.map new file mode 100644 index 00000000..5c89f4b6 --- /dev/null +++ b/build/logging.js.map @@ -0,0 +1 @@ +{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/mqtt/interface.d.ts b/build/mqtt/interface.d.ts new file mode 100644 index 00000000..409f5175 --- /dev/null +++ b/build/mqtt/interface.d.ts @@ -0,0 +1,6 @@ +import { DeviceSmartLockMessage } from "./model"; +export interface MQTTServiceEvents { + "connect": () => void; + "close": () => void; + "lock message": (message: DeviceSmartLockMessage) => void; +} diff --git a/build/mqtt/interface.js b/build/mqtt/interface.js new file mode 100644 index 00000000..d549d1f1 --- /dev/null +++ b/build/mqtt/interface.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interface.js.map \ No newline at end of file diff --git a/build/mqtt/interface.js.map b/build/mqtt/interface.js.map new file mode 100644 index 00000000..8bcb70f9 --- /dev/null +++ b/build/mqtt/interface.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/mqtt/interface.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/mqtt/model.d.ts b/build/mqtt/model.d.ts new file mode 100644 index 00000000..80c13ed4 --- /dev/null +++ b/build/mqtt/model.d.ts @@ -0,0 +1,24 @@ +export interface DeviceSmartLockNotifyData { + stationSn: string; + deviceSn: string; + eventType: number; + eventTime: number; + shortUserId: string; + unknown1: string; + nickName: string; + userId: string; + unknown2: string; + deviceName: string; + unknown3: string; + lockState: string; +} +export interface DeviceSmartLockNotify { + timestamp: number; + uuid: string; + data: DeviceSmartLockNotifyData; +} +export interface DeviceSmartLockMessage { + eventType: number; + userId: string; + data: DeviceSmartLockNotify; +} diff --git a/build/mqtt/model.js b/build/mqtt/model.js new file mode 100644 index 00000000..eab07a85 --- /dev/null +++ b/build/mqtt/model.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=model.js.map \ No newline at end of file diff --git a/build/mqtt/model.js.map b/build/mqtt/model.js.map new file mode 100644 index 00000000..6929c2f6 --- /dev/null +++ b/build/mqtt/model.js.map @@ -0,0 +1 @@ +{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/mqtt/model.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/mqtt/mqtt-eufy.crt b/build/mqtt/mqtt-eufy.crt new file mode 100644 index 00000000..a7c381b1 --- /dev/null +++ b/build/mqtt/mqtt-eufy.crt @@ -0,0 +1,79 @@ +-----BEGIN CERTIFICATE----- +MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3 +MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE +CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD +EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD +BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv +K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e +cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY +pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n +eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB +AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv +9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v +b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n +b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG +CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv +MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz +91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2 +RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi +DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11 +GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x +LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT +MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv +IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx +MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku +Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1 +dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi +CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H +Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/ +3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+ +6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI +gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E +GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud +IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr +BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al +oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9 +MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv +bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d +H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg +OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq +9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO +KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3 +qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm +rw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- diff --git a/build/mqtt/proto/lock.proto b/build/mqtt/proto/lock.proto new file mode 100644 index 00000000..2e9309b2 --- /dev/null +++ b/build/mqtt/proto/lock.proto @@ -0,0 +1,33 @@ +// Copyright: (c) 2022-2024, Patrick Broetto +// MIT License + +syntax = "proto3"; + +package eufy_security_client.lock; + +message DeviceSmartLockMessage { + optional uint32 event_type = 1; + optional string user_id = 2; + optional DeviceSmartLockNotify data = 3; +} + +message DeviceSmartLockNotify { + optional uint64 timestamp = 1; + optional string uuid = 2; + optional DeviceSmartLockNotifyData data = 3; +} + +message DeviceSmartLockNotifyData { + optional string station_sn = 1; + optional string device_sn = 2; + optional uint32 event_type = 3; + optional uint64 event_time = 4; + optional string short_user_id = 5; + optional string unknown1 = 6; + optional string nick_name = 7; + optional string user_id = 8; + optional string unknown2 = 9; + optional string device_name = 10; + optional string unknown3 = 11; + optional string lock_state = 12; +} \ No newline at end of file diff --git a/build/mqtt/service.d.ts b/build/mqtt/service.d.ts new file mode 100644 index 00000000..ee406234 --- /dev/null +++ b/build/mqtt/service.d.ts @@ -0,0 +1,28 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { MQTTServiceEvents } from "./interface"; +export declare class MQTTService extends TypedEmitter { + private readonly CLIENT_ID_FORMAT; + private readonly USERNAME_FORMAT; + private readonly SUBSCRIBE_NOTICE_FORMAT; + private readonly SUBSCRIBE_LOCK_FORMAT; + private readonly SUBSCRIBE_DOORBELL_FORMAT; + private static proto; + private connected; + private client; + private connecting; + private clientID?; + private androidID?; + private apiBase?; + private email?; + private subscribeLocks; + private deviceSmartLockMessageModel; + private constructor(); + static init(): Promise; + private parseSmartLockMessage; + private getMQTTBrokerUrl; + connect(clientID: string, androidID: string, apiBase: string, email: string): void; + private _subscribeLock; + subscribeLock(deviceSN: string): void; + isConnected(): boolean; + close(): void; +} diff --git a/build/mqtt/service.js b/build/mqtt/service.js new file mode 100644 index 00000000..049b63c6 --- /dev/null +++ b/build/mqtt/service.js @@ -0,0 +1,177 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MQTTService = void 0; +const mqtt = __importStar(require("mqtt")); +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const fse = __importStar(require("fs-extra")); +const path = __importStar(require("path")); +const protobufjs_1 = require("protobufjs"); +const utils_1 = require("../utils"); +const logging_1 = require("../logging"); +const error_1 = require("../error"); +class MQTTService extends tiny_typed_emitter_1.TypedEmitter { + CLIENT_ID_FORMAT = "android_EufySecurity__"; + USERNAME_FORMAT = "eufy_"; + SUBSCRIBE_NOTICE_FORMAT = "/phone//notice"; + SUBSCRIBE_LOCK_FORMAT = "/phone/smart_lock//push_message"; + SUBSCRIBE_DOORBELL_FORMAT = "/phone/doorbell//push_message"; + static proto = null; + connected = false; + client = null; + connecting = false; + clientID; + androidID; + apiBase; + email; + subscribeLocks = []; + deviceSmartLockMessageModel; + constructor() { + super(); + this.deviceSmartLockMessageModel = MQTTService.proto.lookupType("DeviceSmartLockMessage"); + } + static async init() { + try { + this.proto = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/lock.proto")); + } + catch (error) { + logging_1.rootMainLogger.error("Error loading MQTT proto lock file", { error: (0, error_1.ensureError)(error) }); + } + return new MQTTService(); + } + parseSmartLockMessage(data) { + const message = this.deviceSmartLockMessageModel.decode(data); + const object = this.deviceSmartLockMessageModel.toObject(message, { + longs: String, + enums: String, + bytes: String, + }); + return object; + } + getMQTTBrokerUrl(apiBase) { + switch (apiBase) { + case "https://security-app.eufylife.com": + return "mqtts://security-mqtt.eufylife.com"; + case "https://security-app-ci.eufylife.com": + return "mqtts://security-mqtt-ci.eufylife.com"; + case "https://security-app-qa.eufylife.com": + case "https://security-app-cn-qa.anker-in.com": + return "mqtts://security-mqtt-qa.eufylife.com"; + case "https://security-app-eu.eufylife.com": + return "mqtts://security-mqtt-eu.eufylife.com"; + case "https://security-app-short-qa.eufylife.com": + return "mqtts://security-mqtt-short-qa.eufylife.com"; + default: + return "mqtts://security-mqtt.eufylife.com"; + } + } + connect(clientID, androidID, apiBase, email) { + this.clientID = clientID; + this.androidID = androidID; + this.apiBase = apiBase; + this.email = email; + if (!this.connected && !this.connecting && this.clientID && this.androidID && this.apiBase && this.email && this.subscribeLocks.length > 0) { + this.connecting = true; + this.client = mqtt.connect(this.getMQTTBrokerUrl(apiBase), { + keepalive: 60, + clean: true, + reschedulePings: true, + resubscribe: true, + port: 8789, + username: this.USERNAME_FORMAT.replace("", clientID), + password: email, + ca: fse.readFileSync(path.join(__dirname, "./mqtt-eufy.crt")), + clientId: this.CLIENT_ID_FORMAT.replace("", clientID).replace("", androidID), + rejectUnauthorized: false // Some eufy mqtt servers have an expired certificate :( + }); + this.client.on("connect", (_connack) => { + this.connected = true; + this.connecting = false; + this.emit("connect"); + this.client.subscribe(this.SUBSCRIBE_NOTICE_FORMAT.replace("", clientID), { qos: 1 }); + if (this.subscribeLocks.length > 0) { + let lock; + while ((lock = this.subscribeLocks.shift()) !== undefined) { + this._subscribeLock(lock); + } + } + }); + this.client.on("close", () => { + this.connected = false; + this.emit("close"); + }); + this.client.on("error", (error) => { + this.connecting = false; + logging_1.rootMQTTLogger.error("MQTT Error", { error: (0, utils_1.getError)(error) }); + if (error.code === 1 || error.code === 2 || error.code === 4 || error.code === 5) + this.client?.end(); + }); + this.client.on("message", (topic, message, _packet) => { + if (topic.includes("smart_lock")) { + const parsedMessage = this.parseSmartLockMessage(message); + logging_1.rootMQTTLogger.debug("Received a smart lock message over MQTT", { message: parsedMessage }); + this.emit("lock message", parsedMessage); + } + else { + logging_1.rootMQTTLogger.debug("MQTT message received", { topic: topic, message: message.toString("hex") }); + } + }); + } + } + _subscribeLock(deviceSN) { + this.client?.subscribe(this.SUBSCRIBE_LOCK_FORMAT.replace("", deviceSN), { qos: 1 }, (error, granted) => { + if (error) { + logging_1.rootMQTTLogger.error(`Subscribe error for lock ${deviceSN}`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); + } + if (granted) { + logging_1.rootMQTTLogger.info(`Successfully registered to MQTT notifications for lock ${deviceSN}`); + } + }); + } + subscribeLock(deviceSN) { + if (this.connected) { + this._subscribeLock(deviceSN); + } + else { + if (!this.subscribeLocks.includes(deviceSN)) { + this.subscribeLocks.push(deviceSN); + } + if (this.clientID && this.androidID && this.apiBase && this.email) + this.connect(this.clientID, this.androidID, this.apiBase, this.email); + } + } + isConnected() { + return this.connected; + } + close() { + if (this.connected) { + this.client?.end(true); + this.connected = false; + this.connecting = false; + } + } +} +exports.MQTTService = MQTTService; +//# sourceMappingURL=service.js.map \ No newline at end of file diff --git a/build/mqtt/service.js.map b/build/mqtt/service.js.map new file mode 100644 index 00000000..5d9fb361 --- /dev/null +++ b/build/mqtt/service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/mqtt/service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/ble.d.ts b/build/p2p/ble.d.ts new file mode 100644 index 00000000..5e03738a --- /dev/null +++ b/build/p2p/ble.d.ts @@ -0,0 +1,59 @@ +export declare enum BleParameterIndex { + ZERO = -96, + ONE = -95, + TWO = -94, + THREE = -93, + FOUR = -92, + FIVE = -91, + SIX = -90, + SEVEN = -89, + EIGHT = -88, + NINE = -87, + TEN = -86, + ELEVEN = -85, + TWELVE = -84, + THIRTEEN = -83 +} +export declare class BleCommandFactory { + private static readonly HEADER; + private data?; + private commandCode?; + private versionCode?; + private dataType?; + private packageFlag?; + private unknown?; + private additionalDataSeparatorByte?; + private additionalData?; + private responseCode?; + private encrypted?; + private partial?; + static parseLockV12(data: string | Buffer): BleCommandFactory; + static parseSmartSafe(data: string | Buffer): BleCommandFactory; + static parseSmartLock(data: string | Buffer): BleCommandFactory; + toString: () => string; + private setResponseCode; + getResponseCode(): number | undefined; + setVersionCode(version: number): BleCommandFactory; + getVersionCode(): number | undefined; + setCommandCode(command: number): BleCommandFactory; + getCommandCode(): number | undefined; + setDataType(type: number): BleCommandFactory; + getDataType(): number | undefined; + setPackageFlag(flag: number): BleCommandFactory; + getPackageFlag(): number | undefined; + setAdditionalDataSeparator(separator: number): BleCommandFactory; + getAdditionalDataSeparator(): Buffer | undefined; + setAdditionalData(data: Buffer): BleCommandFactory; + getAdditionalData(): Buffer | undefined; + setData(data: Buffer): BleCommandFactory; + getData(): Buffer | undefined; + setUnknown(data: Buffer): BleCommandFactory; + static generateHash(data: Buffer): number; + isEncrypted(): boolean | undefined; + setEncrypted(encrypted: boolean): BleCommandFactory; + isPartial(): boolean | undefined; + setPartial(partial: boolean): BleCommandFactory; + getLockV12Command(): Buffer; + getSmartSafeCommand(): Buffer; + getSmartLockCommand(): Buffer; +} diff --git a/build/p2p/ble.js b/build/p2p/ble.js new file mode 100644 index 00000000..b209db42 --- /dev/null +++ b/build/p2p/ble.js @@ -0,0 +1,280 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BleCommandFactory = exports.BleParameterIndex = void 0; +const error_1 = require("./error"); +var BleParameterIndex; +(function (BleParameterIndex) { + BleParameterIndex[BleParameterIndex["ZERO"] = -96] = "ZERO"; + BleParameterIndex[BleParameterIndex["ONE"] = -95] = "ONE"; + BleParameterIndex[BleParameterIndex["TWO"] = -94] = "TWO"; + BleParameterIndex[BleParameterIndex["THREE"] = -93] = "THREE"; + BleParameterIndex[BleParameterIndex["FOUR"] = -92] = "FOUR"; + BleParameterIndex[BleParameterIndex["FIVE"] = -91] = "FIVE"; + BleParameterIndex[BleParameterIndex["SIX"] = -90] = "SIX"; + BleParameterIndex[BleParameterIndex["SEVEN"] = -89] = "SEVEN"; + BleParameterIndex[BleParameterIndex["EIGHT"] = -88] = "EIGHT"; + BleParameterIndex[BleParameterIndex["NINE"] = -87] = "NINE"; + BleParameterIndex[BleParameterIndex["TEN"] = -86] = "TEN"; + BleParameterIndex[BleParameterIndex["ELEVEN"] = -85] = "ELEVEN"; + BleParameterIndex[BleParameterIndex["TWELVE"] = -84] = "TWELVE"; + BleParameterIndex[BleParameterIndex["THIRTEEN"] = -83] = "THIRTEEN"; +})(BleParameterIndex || (exports.BleParameterIndex = BleParameterIndex = {})); +class BleCommandFactory { + static HEADER = Buffer.from([-1, 9]); + data; + commandCode; + versionCode; + dataType; + packageFlag; + unknown; + additionalDataSeparatorByte; + additionalData; + responseCode; + encrypted; + partial; + static parseLockV12(data) { + if (typeof data === "string") { + data = Buffer.from(data, "hex"); + } + if (data.readInt8(0) !== BleCommandFactory.HEADER[0] && data.readInt8(1) !== BleCommandFactory.HEADER[1]) { + throw new error_1.BleInvalidDataHeaderError("Invalid BLE data header"); + } + const fac = new BleCommandFactory(); + fac.setVersionCode(data.readUint8(4)); + fac.setCommandCode(data.readUint8(6)); + fac.setDataType(data.readUint8()); + fac.setPackageFlag(data.readInt8(7)); + fac.setResponseCode(fac.getPackageFlag() === -64 ? data.readUint8(8) : data.readUint8(12)); + fac.setData(data.subarray(fac.getPackageFlag() === -64 ? 8 : 12, data.length - 1)); //TODO: Verify if position 8 is correct for data (i think it should be 9 or 13)... + if (BleCommandFactory.generateHash(data.subarray(0, data.length - 1)) !== data.readUint8(data.length - 1)) { + throw new error_1.BleInvalidChecksumError("Invalid BLE data, checksum mismatch"); + } + return fac; + } + static parseSmartSafe(data) { + return BleCommandFactory.parseLockV12(data); + } + static parseSmartLock(data) { + if (typeof data === "string") { + data = Buffer.from(data, "hex"); + } + if (data.length < 9 || (data.readInt8(0) !== BleCommandFactory.HEADER[0] && data.readInt8(1) !== BleCommandFactory.HEADER[1])) { + throw new error_1.BleInvalidDataHeaderError("Invalid BLE data header"); + } + if (BleCommandFactory.generateHash(data.subarray(0, data.length - 1)) !== data.readUint8(data.length - 1)) { + throw new error_1.BleInvalidChecksumError("Invalid BLE data, checksum mismatch"); + } + const fac = new BleCommandFactory(); + const flags = data.readUint16BE(7); + fac.setVersionCode(data.readUint8(4)); + fac.setDataType(data.readUint8(6)); + fac.setPartial((flags >> 15) === 1); + fac.setEncrypted(((flags << 1) >> 15) === 1); + fac.setCommandCode(((flags << 4) & 32767) >> 4); + fac.setData(data.subarray(9, data.length - 1)); + return fac; + } + toString = () => { + return `BleCommandFactory (versionCode: ${this.versionCode} commandCode: ${this.commandCode} dataType: ${this.dataType} partial: ${this.partial} encrypted: ${this.encrypted} data: ${this.data?.toString("hex")} packageFlag: ${this.packageFlag} responseCode: ${this.responseCode})`; + }; + setResponseCode(code) { + this.responseCode = code; + } + getResponseCode() { + return this.responseCode; + } + setVersionCode(version) { + this.versionCode = version; + return this; + } + getVersionCode() { + return this.versionCode; + } + setCommandCode(command) { + this.commandCode = command; + return this; + } + getCommandCode() { + return this.commandCode; + } + setDataType(type) { + this.dataType = type; + return this; + } + getDataType() { + return this.dataType; + } + setPackageFlag(flag) { + this.packageFlag = flag; + return this; + } + getPackageFlag() { + return this.packageFlag; + } + setAdditionalDataSeparator(separator) { + this.additionalDataSeparatorByte = Buffer.from([separator]); + return this; + } + getAdditionalDataSeparator() { + return this.additionalDataSeparatorByte; + } + setAdditionalData(data) { + this.additionalData = data; + return this; + } + getAdditionalData() { + return this.additionalData; + } + setData(data) { + this.data = data; + return this; + } + getData() { + return this.data; + } + setUnknown(data) { + this.unknown = data; + return this; + } + static generateHash(data) { + let result = 0; + for (const value of data) { + result = result ^ value; + } + return result; + } + isEncrypted() { + return this.encrypted; + } + setEncrypted(encrypted) { + this.encrypted = encrypted; + return this; + } + isPartial() { + return this.partial; + } + setPartial(partial) { + this.partial = partial; + return this; + } + getLockV12Command() { + if (this.versionCode === undefined) + throw new error_1.BleVersionCodeError("BleCommandFactory version code value missing"); + if (this.dataType === undefined) + throw new error_1.BleDataTypeError("BleCommandFactory data type value missing"); + if (this.commandCode === undefined) + throw new error_1.BleCommandCodeError("BleCommandFactory command code value missing"); + if (this.data === undefined) + throw new error_1.BleDataError("BleCommandFactory data value missing"); + if (this.additionalData === undefined) + throw new error_1.BleAdditionalDataError("BleCommandFactory additional data value missing"); + this.setAdditionalDataSeparator(BleParameterIndex.ZERO); + const bVersionCode = Buffer.from([this.versionCode]); + const bDataType = Buffer.from([this.dataType]); + const bCommandCode = Buffer.from([this.commandCode]); + const bPackageFlag = this.packageFlag === undefined ? Buffer.from([-64]) : Buffer.from([this.packageFlag]); + const bAdditionalDataLength = Buffer.from([this.additionalData.length]); + const size = Buffer.allocUnsafe(2); + size.writeInt16LE(BleCommandFactory.HEADER.length + + size.length + + bVersionCode.length + + bDataType.length + + bCommandCode.length + + bPackageFlag.length + + this.additionalDataSeparatorByte.length + + bAdditionalDataLength.length + + this.additionalData.length + + this.data.length + + 1 // Hash + ); + const data = Buffer.concat([ + BleCommandFactory.HEADER, + size, + bVersionCode, + bDataType, + bCommandCode, + bPackageFlag, + this.additionalDataSeparatorByte, + bAdditionalDataLength, + this.additionalData, + this.data + ]); + const hash = BleCommandFactory.generateHash(data); + return Buffer.concat([data, Buffer.from([hash])]); + } + getSmartSafeCommand() { + if (this.versionCode === undefined) + throw new error_1.BleVersionCodeError("BleCommandFactory version code value missing"); + if (this.dataType === undefined) + throw new error_1.BleDataTypeError("BleCommandFactory data type value missing"); + if (this.commandCode === undefined) + throw new error_1.BleCommandCodeError("BleCommandFactory command code value missing"); + if (this.data === undefined) + throw new error_1.BleDataError("BleCommandFactory data value missing"); + const bVersionCode = Buffer.from([this.versionCode]); + const bDataType = Buffer.from([this.dataType]); + const bCommandCode = Buffer.from([this.commandCode]); + const bPackageFlag = this.packageFlag === undefined ? Buffer.from([-64]) : Buffer.from([this.packageFlag]); + const size = Buffer.allocUnsafe(2); + size.writeInt16LE(BleCommandFactory.HEADER.length + + size.length + + bVersionCode.length + + bDataType.length + + bCommandCode.length + + bPackageFlag.length + + this.data.length + + 1 // Hash + ); + const data = Buffer.concat([ + BleCommandFactory.HEADER, + size, + bVersionCode, + bDataType, + bCommandCode, + bPackageFlag, + this.data + ]); + const hash = BleCommandFactory.generateHash(data); + return Buffer.concat([data, Buffer.from([hash])]); + } + getSmartLockCommand() { + if (this.versionCode === undefined) + throw new error_1.BleVersionCodeError("BleCommandFactory version code value missing"); + if (this.dataType === undefined) + throw new error_1.BleDataTypeError("BleCommandFactory data type value missing"); + if (this.commandCode === undefined) + throw new error_1.BleCommandCodeError("BleCommandFactory command code value missing"); + if (this.data === undefined) + throw new error_1.BleDataError("BleCommandFactory data value missing"); + const bVersionCode = Buffer.from([this.versionCode]); + const bDataType = Buffer.from([this.dataType]); + const unknown = Buffer.alloc(1); + const partial = false; + const encrypted = true; + const commandCodeEncoded = Buffer.allocUnsafe(2); + commandCodeEncoded.writeInt16BE(((partial ? 1 : 0) << 15) + ((encrypted ? 1 : 0) << 14) + this.commandCode); + const size = Buffer.allocUnsafe(2); + size.writeInt16LE(BleCommandFactory.HEADER.length + + size.length + + bVersionCode.length + + unknown.length + + bDataType.length + + commandCodeEncoded.length + + this.data.length + + 1 // Hash + ); + const data = Buffer.concat([ + BleCommandFactory.HEADER, + size, + bVersionCode, + unknown, + bDataType, + commandCodeEncoded, + this.data + ]); + const hash = BleCommandFactory.generateHash(data); + return Buffer.concat([data, Buffer.from([hash])]); + } +} +exports.BleCommandFactory = BleCommandFactory; +//# sourceMappingURL=ble.js.map \ No newline at end of file diff --git a/build/p2p/ble.js.map b/build/p2p/ble.js.map new file mode 100644 index 00000000..bd1d166a --- /dev/null +++ b/build/p2p/ble.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ble.js","sourceRoot":"","sources":["../../src/p2p/ble.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/error.d.ts b/build/p2p/error.d.ts new file mode 100644 index 00000000..1d02832f --- /dev/null +++ b/build/p2p/error.d.ts @@ -0,0 +1,49 @@ +import { BaseError, Jsonable } from "../error"; +export declare class BleVersionCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleCommandCodeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleDataTypeError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleDataError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleAdditionalDataError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleAdditionalDataSeparatorError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleInvalidDataHeaderError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BleInvalidChecksumError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} diff --git a/build/p2p/error.js b/build/p2p/error.js new file mode 100644 index 00000000..2b9496f0 --- /dev/null +++ b/build/p2p/error.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BleInvalidChecksumError = exports.BleInvalidDataHeaderError = exports.BleAdditionalDataSeparatorError = exports.BleAdditionalDataError = exports.BleDataError = exports.BleDataTypeError = exports.BleCommandCodeError = exports.BleVersionCodeError = void 0; +const error_1 = require("../error"); +class BleVersionCodeError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleVersionCodeError.name; + } +} +exports.BleVersionCodeError = BleVersionCodeError; +class BleCommandCodeError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleCommandCodeError.name; + } +} +exports.BleCommandCodeError = BleCommandCodeError; +class BleDataTypeError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleDataTypeError.name; + } +} +exports.BleDataTypeError = BleDataTypeError; +class BleDataError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleDataError.name; + } +} +exports.BleDataError = BleDataError; +class BleAdditionalDataError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleAdditionalDataError.name; + } +} +exports.BleAdditionalDataError = BleAdditionalDataError; +class BleAdditionalDataSeparatorError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleAdditionalDataSeparatorError.name; + } +} +exports.BleAdditionalDataSeparatorError = BleAdditionalDataSeparatorError; +class BleInvalidDataHeaderError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleInvalidDataHeaderError.name; + } +} +exports.BleInvalidDataHeaderError = BleInvalidDataHeaderError; +class BleInvalidChecksumError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BleInvalidChecksumError.name; + } +} +exports.BleInvalidChecksumError = BleInvalidChecksumError; +//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/p2p/error.js.map b/build/p2p/error.js.map new file mode 100644 index 00000000..0b776040 --- /dev/null +++ b/build/p2p/error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/p2p/error.ts"],"names":[],"mappings":";;;AAAA,oCAA+C;AAC/C,MAAa,mBAAoB,SAAQ,iBAAS;IAC9C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACzC,CAAC;CACJ;AAND,kDAMC;AAED,MAAa,mBAAoB,SAAQ,iBAAS;IAC9C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACzC,CAAC;CACJ;AAND,kDAMC;AAED,MAAa,gBAAiB,SAAQ,iBAAS;IAC3C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AAND,4CAMC;AAED,MAAa,YAAa,SAAQ,iBAAS;IACvC,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAClC,CAAC;CACJ;AAND,oCAMC;AAED,MAAa,sBAAuB,SAAQ,iBAAS;IACjD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC5C,CAAC;CACJ;AAND,wDAMC;AAED,MAAa,+BAAgC,SAAQ,iBAAS;IAC1D,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC,IAAI,CAAC;IACrD,CAAC;CACJ;AAND,0EAMC;AAED,MAAa,yBAA0B,SAAQ,iBAAS;IACpD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAC/C,CAAC;CACJ;AAND,8DAMC;AAED,MAAa,uBAAwB,SAAQ,iBAAS;IAClD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC;IAC7C,CAAC;CACJ;AAND,0DAMC"} \ No newline at end of file diff --git a/build/p2p/index.d.ts b/build/p2p/index.d.ts new file mode 100644 index 00000000..c6725fbb --- /dev/null +++ b/build/p2p/index.d.ts @@ -0,0 +1,8 @@ +export * from "./interfaces"; +export * from "./models"; +export * from "./session"; +export * from "./types"; +export * from "./talkback"; +export * from "./ble"; +export * from "./error"; +export { isPrivateIp, getLocalIpAddress } from "./utils"; diff --git a/build/p2p/index.js b/build/p2p/index.js new file mode 100644 index 00000000..f3bae61b --- /dev/null +++ b/build/p2p/index.js @@ -0,0 +1,28 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getLocalIpAddress = exports.isPrivateIp = void 0; +__exportStar(require("./interfaces"), exports); +__exportStar(require("./models"), exports); +__exportStar(require("./session"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./talkback"), exports); +__exportStar(require("./ble"), exports); +__exportStar(require("./error"), exports); +var utils_1 = require("./utils"); +Object.defineProperty(exports, "isPrivateIp", { enumerable: true, get: function () { return utils_1.isPrivateIp; } }); +Object.defineProperty(exports, "getLocalIpAddress", { enumerable: true, get: function () { return utils_1.getLocalIpAddress; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/p2p/index.js.map b/build/p2p/index.js.map new file mode 100644 index 00000000..65aee5f0 --- /dev/null +++ b/build/p2p/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,wCAAsB;AACtB,0CAAwB;AACxB,iCAAyD;AAAhD,oGAAA,WAAW,OAAA;AAAE,0GAAA,iBAAiB,OAAA"} \ No newline at end of file diff --git a/build/p2p/interfaces.d.ts b/build/p2p/interfaces.d.ts new file mode 100644 index 00000000..79741155 --- /dev/null +++ b/build/p2p/interfaces.d.ts @@ -0,0 +1,388 @@ +import * as NodeRSA from "node-rsa"; +import { Readable } from "stream"; +import { SortedMap } from "sweet-collections"; +import { AlarmMode, DeviceType, MicStatus, ParamType, TriggerType, VideoType } from "../http/types"; +import { Address, CmdCameraInfoResponse, CommandResult, CustomData, StorageInfoBodyHB3 } from "./models"; +import { TalkbackStream } from "./talkback"; +import { AlarmEvent, AudioCodec, CommandType, DatabaseReturnCode, IndoorSoloSmartdropCommandType, P2PDataType, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent, P2PStorageType, TFCardStatus, VideoCodec, InternalP2PCommandType } from "./types"; +export interface P2PClientProtocolEvents { + "alarm mode": (mode: AlarmMode) => void; + "camera info": (cameraInfo: CmdCameraInfoResponse) => void; + "connect": (address: Address) => void; + "close": () => void; + "command": (result: CommandResult) => void; + "download started": (channel: number, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void; + "download finished": (channel: number) => void; + "livestream started": (channel: number, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void; + "livestream stopped": (channel: number) => void; + "livestream error": (channel: number, error: Error) => void; + "wifi rssi": (channel: number, rssi: number) => void; + "rtsp url": (channel: number, rtspUrl: string) => void; + "parameter": (channel: number, param: number, value: string) => void; + "timeout": () => void; + "runtime state": (channel: number, batteryLevel: number, temperature: number) => void; + "charging state": (channel: number, chargeType: number, batteryLevel: number) => void; + "rtsp livestream started": (channel: number) => void; + "rtsp livestream stopped": (channel: number) => void; + "floodlight manual switch": (channel: number, enabled: boolean) => void; + "alarm delay": (alarmDelayEvent: AlarmEvent, alarmDelay: number) => void; + "alarm armed": () => void; + "alarm event": (alarmEvent: AlarmEvent) => void; + "talkback started": (channel: number, talkbackStream: TalkbackStream) => void; + "talkback stopped": (channel: number) => void; + "talkback error": (channel: number, error: Error) => void; + "secondary command": (result: CommandResult) => void; + "jammed": (channel: number) => void; + "low battery": (channel: number) => void; + "shake alarm": (channel: number, detail: SmartSafeShakeAlarmEvent) => void; + "911 alarm": (channel: number, detail: SmartSafeAlarm911Event) => void; + "wrong try-protect alarm": (channel: number) => void; + "sd info ex": (sdStatus: TFCardStatus, sdCapacity: number, sdCapacityAvailable: number) => void; + "image download": (file: string, image: Buffer) => void; + "tfcard status": (channel: number, status: TFCardStatus) => void; + "database query latest": (returnCode: DatabaseReturnCode, data: Array) => void; + "database query local": (returnCode: DatabaseReturnCode, data: Array) => void; + "database count by date": (returnCode: DatabaseReturnCode, data: Array) => void; + "database delete": (returnCode: DatabaseReturnCode, failedIds: Array) => void; + "sensor status": (channel: number, status: number) => void; + "garage door status": (channel: number, doorId: number, status: number) => void; + "storage info hb3": (channel: number, storageInfo: StorageInfoBodyHB3) => void; + "sequence error": (channel: number, command: number, sequence: number, serialnumber: string) => void; +} +export interface P2PQueueMessage { + p2pCommandType: InternalP2PCommandType; + p2pCommand: P2PCommand; + nestedCommandType?: CommandType; + nestedCommandType2?: number; + timestamp: number; + customData?: CustomData; +} +export interface P2PMessageState { + sequence: number; + commandType: CommandType; + nestedCommandType?: CommandType | IndoorSoloSmartdropCommandType | ParamType; + nestedCommandType2?: number; + channel: number; + data: Buffer; + retries: number; + acknowledged: boolean; + returnCode?: number; + retryTimeout?: NodeJS.Timeout; + timeout?: NodeJS.Timeout; + customData?: CustomData; +} +export interface P2PMessageParts { + [index: number]: Buffer; +} +export interface P2PMessage { + bytesToRead: number; + type: P2PDataType; + seqNo: number; + data: Buffer; +} +export interface P2PDataHeader { + commandId: number; + bytesToRead: number; + channel: number; + signCode: number; + type: number; +} +export interface P2PDataMessage extends P2PDataHeader { + seqNo: number; + dataType: P2PDataType; + data: Buffer; +} +export interface P2PDataMessageBuilder { + header: P2PDataHeader; + bytesRead: number; + messages: P2PMessageParts; +} +export interface P2PDataMessageState { + leftoverData: Buffer; + queuedData: SortedMap; + rsaKey: NodeRSA | null; + videoStream: Readable | null; + audioStream: Readable | null; + invalidStream: boolean; + p2pStreaming: boolean; + p2pStreamNotStarted: boolean; + p2pStreamChannel: number; + p2pStreamFirstAudioDataReceived: boolean; + p2pStreamFirstVideoDataReceived: boolean; + p2pStreamMetadata: StreamMetadata; + p2pStreamingTimeout?: NodeJS.Timeout; + rtspStream: { + [index: number]: boolean; + }; + rtspStreaming: { + [index: number]: boolean; + }; + waitForSeqNoTimeout?: NodeJS.Timeout; + waitForAudioData?: NodeJS.Timeout; + receivedFirstIFrame: boolean; + preFrameVideoData: Buffer; + p2pTalkback: boolean; + p2pTalkbackChannel: number; +} +export interface P2PDataMessageVideo { + streamType: number; + videoSeqNo: number; + videoFPS: number; + videoWidth: number; + videoHeight: number; + videoTimestamp: number; + videoDataLength: number; + aesKey: string; +} +export interface P2PDataMessageAudio { + audioType: number; + audioSeqNo: number; + audioTimestamp: number; + audioDataLength: number; +} +export interface StreamMetadata { + videoCodec: VideoCodec; + videoFPS: number; + videoWidth: number; + videoHeight: number; + audioCodec: AudioCodec; +} +export interface DeviceSerial { + [index: number]: { + sn: string; + adminUserId: string; + }; +} +export interface P2PCommand { + commandType: CommandType; + value?: number | string; + valueSub?: number; + strValue?: string; + strValueSub?: string; + channel?: number; +} +export interface P2PVideoMessageState { + sequence: number; + channel: number; + data: Buffer; + retries: number; + timeout?: NodeJS.Timeout; +} +export interface P2PDatabaseQueryLatestInfoResponse { + device_sn: string; + payload: { + event_count: number; + crop_hb3_path: string; + crop_cloud_path: string; + }; +} +export interface P2PDatabaseCountByDateResponse { + days: string; + count: number; +} +export interface P2PDatabaseQueryLocalHistoryRecordInfo { + record_id: number; + account: string; + station_sn: string; + device_sn: string; + device_type: DeviceType; + start_time: string; + end_time: string; + frame_num: number; + storage_type: P2PStorageType; + storage_cloud: boolean; + cipher_id: number; + vision: number; + video_type: VideoType; + has_lock: boolean; + automation_id: number; + trigger_type: TriggerType; + push_mode: number; + mic_status: MicStatus; + res_change: number; + res_best_width: number; + res_best_height: number; + self_learning: number; + int_reserve: number; + int_extra: number; + storage_path: string; + thumb_path: string; + write_status: number; + str_extra: string; + cloud_path: string; + folder_size: number; + storage_status: number; + storage_label: string; + time_zone: string; + mp4_cloud: string; + snapshot_cloud: string; + table_version: string; + update_time: string; +} +export interface P2PDatabaseQueryLocalRecordCropPictureInfo { + picture_id: number; + record_id: number; + station_sn: string; + device_sn: string; + detection_type: number; + person_id: number; + crop_path: string; + event_time: string; + str_reserve: string; + person_recog_flag: boolean; + crop_pic_quality: number; + pic_marking_flag: boolean; + group_id: number; + int_reserve: number; + crop_id: number; + start_time: string; + reserve2_int: number; + reserve2_date: string; + reserve2_string: string; + storage_type: P2PStorageType; + storage_status: number; + storage_label: string; + table_version: string; + update_time: string; +} +export interface P2PDatabaseQueryLocalResponse { + payload: Array | Array; + table_name: string; +} +export interface P2PDatabaseDeleteResponse { + failed_delete: Array; +} +export interface P2PDatabaseResponse { + data: Array | Array | Array | P2PDatabaseDeleteResponse; + start_id?: number; + end_id?: number; + count?: number; + transaction: string; + table: string; + cmd: number; + mIntRet: DatabaseReturnCode; + version: string; + msg: string; +} +export interface DatabaseQueryLatestInfoBase { + device_sn: string; + event_count: number; +} +export interface DatabaseQueryLatestInfoCloud extends DatabaseQueryLatestInfoBase { + crop_cloud_path: string; +} +export interface DatabaseQueryLatestInfoLocal extends DatabaseQueryLatestInfoBase { + crop_local_path: string; +} +export type DatabaseQueryLatestInfo = DatabaseQueryLatestInfoCloud | DatabaseQueryLatestInfoLocal; +export interface DatabaseCountByDate { + day: Date; + count: number; +} +export interface HistoryRecordInfo { + device_type: DeviceType; + account: string; + start_time: Date; + end_time: Date; + frame_num: number; + storage_type: P2PStorageType; + storage_cloud: boolean; + cipher_id: number; + vision: number; + video_type: VideoType; + has_lock: boolean; + automation_id: number; + trigger_type: TriggerType; + push_mode: number; + mic_status: MicStatus; + res_change: number; + res_best_width: number; + res_best_height: number; + self_learning: number; + storage_path: string; + thumb_path: string; + write_status: number; + cloud_path: string; + folder_size: number; + storage_status: number; + storage_label: string; + time_zone: string; + mp4_cloud: string; + snapshot_cloud: string; + table_version: string; +} +export interface CropPictureInfo { + picture_id: number; + detection_type: number; + person_id: number; + crop_path: string; + event_time: Date | null; + person_recog_flag: boolean; + crop_pic_quality: number; + pic_marking_flag: boolean; + group_id: number; + crop_id: number; + start_time: Date; + storage_type: P2PStorageType; + storage_status: number; + storage_label: string; + table_version: string; + update_time: string; +} +export interface DatabaseQueryLocal { + record_id: number; + station_sn: string; + device_sn?: string; + history: HistoryRecordInfo; + picture: Array; +} +export interface RGBColor { + red: number; + green: number; + blue: number; +} +export interface InternalColoredLighting { + color: number; +} +export interface DynamicLighting { + name: string; + mode: number; + speed: number; + colors: Array; +} +export interface InternalDynamicLighting { + name: string; + mode: number; + id: number; + speed: number; + colors: Array; +} +export interface MotionZonePoint { + x: number; + y: number; +} +export interface MotionZonePoints { + points: Array; +} +export interface MotionZone { + polygens: Array; +} +export interface VideoStreamingRecordingQuality { + mode_0: { + quality: number; + }; + mode_1: { + quality: number; + }; + cur_mode: number; +} +export interface CrossTrackingGroupEntry { + value: Array; +} +export interface CustomDataType { + [index: number]: { + channel: number; + customData: CustomData; + timestamp: number; + }; +} diff --git a/build/p2p/interfaces.js b/build/p2p/interfaces.js new file mode 100644 index 00000000..db919115 --- /dev/null +++ b/build/p2p/interfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/p2p/interfaces.js.map b/build/p2p/interfaces.js.map new file mode 100644 index 00000000..e7da2cba --- /dev/null +++ b/build/p2p/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/p2p/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/p2p/models.d.ts b/build/p2p/models.d.ts new file mode 100644 index 00000000..a0d3a1f9 --- /dev/null +++ b/build/p2p/models.d.ts @@ -0,0 +1,284 @@ +import { PropertyValue } from "../http"; +import { CommandName, PropertyName } from "../http/types"; +import { SmartSafeEventValueDetail } from "../push/models"; +import { CommandType } from "./types"; +export interface Address { + host: string; + port: number; +} +export interface CmdCameraInfoResponse { + params: Array<{ + dev_type: number; + param_type: number; + param_value: string; + }>; + main_sw_version: string; + sec_sw_version: string; + db_bypass_str?: Array<{ + channel: number; + param_type: number; + param_value: string; + }>; +} +export interface PropertyData { + name: PropertyName; + value: PropertyValue; +} +export interface CommandData { + name: CommandName; + value?: any; +} +export interface CustomData { + property?: PropertyData; + command?: CommandData; + onSuccess?: () => void; + onFailure?: () => void; +} +export interface CommandResult { + customData?: CustomData; + command_type: CommandType; + channel: number; + return_code: number; +} +export interface CmdNotifyPayload { + cmd: number; + payload: ESLStationP2PThroughData | ESLAdvancedLockStatusNotification | SmartSafeSettingsNotification | SmartSafeStatusNotification | ESLBleV12P2PThroughData | EntrySensorStatus | GarageDoorStatus | StorageInfoHB3 | SmartLockP2PSequenceData | string; + payloadLen?: number; +} +export interface ESLStationP2PThroughData { + channel?: number; + lock_cmd: number; + lock_payload: string; + seq_num?: number; + stationSn?: string; +} +export interface ESLAdvancedLockStatusNotification { + code: number; + slBattery: string; + slState: string; + trigger: number; +} +export interface ESLAdvancedLockStatusNotificationT8530 extends ESLAdvancedLockStatusNotification { + slOpenDirection: string; +} +export interface SmartSafeSettingsNotification { + data: string; + prj_id: number; +} +export interface SmartSafeStatusNotification { + event_type: number; + event_time: number; + event_value: number | SmartSafeEventValueDetail; +} +export interface SmartSafeNotificationResponse { + versionCode: number; + commandCode: number; + packageFlag: number; + dataType: number; + responseCode: number; + data: Buffer; +} +export interface LockAdvancedOnOffRequestBasePayload { + shortUserId: string; + slOperation: number; + userId: string; + userName: string; +} +export interface LockAdvancedOnOffRequestPayload extends LockAdvancedOnOffRequestBasePayload { + seq_num: number; +} +export interface AdvancedLockSetParamsType { + [index: string]: unknown; + autoLockTime: number; + isAutoLock: number; + isLockNotification: number; + isNotification: number; + isOneTouchLock: number; + isSchedule: number; + isScramblePasscode: number; + isUnLockNotification: number; + isWrongTryProtect: number; + lockDownTime: number; + lockSound: number; + paramType: number; + scheduleEnd: string; + scheduleStart: string; + wrongTryTime: number; + seq_num: number; +} +export interface AdvancedLockSetParamsTypeT8520 { + [index: string]: unknown; + autoLockTime: number; + isAutoLock: number; + isLockNotification: number; + isNotification: number; + isOneTouchLock: number; + isSchedule: number; + isScramblePasscode: number; + isUnLockNotification: number; + isWrongTryProtect: number; + lockDownTime: number; + lockOpenDirection: number; + lockVolume: number; + nightVisionEnhance: number; + openLeftAlarmEnable: number; + openLeftAlarmScheduleEnd: string; + openLeftAlarmScheduleStart: string; + openLeftAlarmScheduled: number; + openLeftAlarmTimer: number; + openLeftAlarmWays: number; + paramType: number; + scheduleEnd: string; + scheduleStart: string; + tamperAlarmEnable: number; + tamperAlarmScheduleEnd: string; + tamperAlarmScheduleStart: string; + tamperAlarmScheduled: number; + tamperAlarmWays: number; + wrongTryTime: number; +} +export interface LockP2PCommandType { + commandType: CommandType; + value: string; + channel: number; + aesKey: string; +} +export interface LockP2PCommandPayloadType { + key: string; + account_id: string; + cmd: CommandType; + mChannel: number; + mValue3: number; + payload: string; +} +export interface ESLBleV12P2PThroughData { + dev_sn: string; + lock_payload: string; +} +export interface LockV12P2PCommandPayloadType { + account_id: string; + cmd: CommandType; + mChannel: number; + mValue3: number; + payload: { + apiCommand: number; + lock_payload: string; + seq_num: number; + }; +} +export interface LockV12P2PCommandType { + commandType: CommandType; + value: string; +} +export interface SmartSafeP2PCommandPayloadType { + account_id: string; + cmd: CommandType; + mChannel: number; + mValue3: number; + payload: { + data: string; + prj_id: CommandType; + seq_num: number; + }; +} +export interface SmartSafeP2PCommandType { + commandType: CommandType; + value: string; + channel: number; +} +export interface CmdDatabaseImageResponse { + file: string; + content: string; +} +export interface EntrySensorStatus { + status: number; +} +export interface GarageDoorStatus { + type: number; + notify_tag: string; + door_id: number; +} +export interface StorageInfoHB3 { + cmd: number; + version: number; + mIntRet: number; + msg: string; + old_storage_label: string; + cur_storage_label: string; + body: StorageInfoBodyHB3; +} +export interface StorageInfoBodyHB3 { + body_version: number; + storage_days: number; + storage_events: number; + con_video_hours: number; + format_transaction: string; + format_errcode: number; + hdd_info: StorageInfoHddHB3; + move_disk_info: StorageInfoMoveDiskInfoHB3; + emmc_info: StorageInfoEmmcHB3; +} +export interface StorageInfoHddHB3 { + serial_number: string; + disk_path: string; + disk_size: number; + system_size: number; + disk_used: number; + video_used: number; + video_size: number; + cur_temperate: number; + parted_status: number; + work_status: number; + hdd_label: string; + health: number; + device_module: string; + hdd_type: number; +} +export interface StorageInfoMoveDiskInfoHB3 { + disk_path: string; + disk_size: number; + disk_used: number; + part_layout_arr: string[]; + data: string[]; +} +export interface StorageInfoEmmcHB3 { + disk_nominal: number; + disk_size: number; + system_size: number; + disk_used: number; + data_used_percent: number; + swap_size: number; + video_size: number; + video_used: number; + data_partition_size: number; + eol_percent: number; + work_status: number; + health: number; +} +export interface SmartLockP2PCommandPayloadType { + account_id: string; + cmd: CommandType; + mChannel: number; + mValue3: number; + payload: { + apiCommand: number; + lock_payload: string; + seq_num: number; + time: number; + }; +} +export interface SmartLockP2PCommandType { + commandType: CommandType; + value: string; +} +export interface SmartLockP2PThroughData { + dev_sn: string; + lock_payload: string; + time: string; +} +export interface SmartLockP2PSequenceData { + lock_cmd: number; + seq_num: number; + dev_sn: string; + bus_type?: number; +} diff --git a/build/p2p/models.js b/build/p2p/models.js new file mode 100644 index 00000000..b2dccd68 --- /dev/null +++ b/build/p2p/models.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/build/p2p/models.js.map b/build/p2p/models.js.map new file mode 100644 index 00000000..61d026d0 --- /dev/null +++ b/build/p2p/models.js.map @@ -0,0 +1 @@ +{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/p2p/models.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/p2p/session.d.ts b/build/p2p/session.d.ts new file mode 100644 index 00000000..8598c117 --- /dev/null +++ b/build/p2p/session.d.ts @@ -0,0 +1,186 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import * as NodeRSA from "node-rsa"; +import { Address, CustomData } from "./models"; +import { CommandType, P2PDataType, P2PConnectionType } from "./types"; +import { P2PClientProtocolEvents, P2PCommand } from "./interfaces"; +import { StationListResponse } from "../http/models"; +import { HTTPApi } from "../http/api"; +export declare class P2PClientProtocol extends TypedEmitter { + private readonly MAX_RETRIES; + private readonly MAX_COMMAND_RESULT_WAIT; + private readonly MAX_GATEWAY_COMMAND_RESULT_WAIT; + private readonly MAX_CONNECTION_TIMEOUT; + private readonly MAX_AKNOWLEDGE_TIMEOUT; + private readonly MAX_LOOKUP_TIMEOUT; + private readonly LOCAL_LOOKUP_RETRY_TIMEOUT; + private readonly LOOKUP_RETRY_TIMEOUT; + private readonly LOOKUP2_TIMEOUT; + private readonly LOOKUP2_RETRY_TIMEOUT; + private readonly MAX_EXPECTED_SEQNO_WAIT; + private readonly HEARTBEAT_INTERVAL; + private readonly MAX_COMMAND_QUEUE_TIMEOUT; + private readonly AUDIO_CODEC_ANALYZE_TIMEOUT; + private readonly KEEPALIVE_INTERVAL; + private readonly ESD_DISCONNECT_TIMEOUT; + private readonly MAX_STREAM_DATA_WAIT; + private readonly RESEND_NOT_ACKNOWLEDGED_COMMAND; + private readonly UDP_RECVBUFFERSIZE_BYTES; + private readonly MAX_PAYLOAD_BYTES; + private readonly MAX_PACKET_BYTES; + private readonly MAX_VIDEO_PACKET_BYTES; + private readonly P2P_DATA_HEADER_BYTES; + private readonly MAX_SEQUENCE_NUMBER; + private readonly LOOP_RUNAWAY_LIMIT; + private readonly SEQUENCE_PROCESSING_BOUNDARY; + private socket; + private binded; + private connected; + private connecting; + private terminating; + private p2pTurnHandshaking; + private p2pTurnConfirmed; + private seqNumber; + private offsetDataSeqNumber; + private videoSeqNumber; + private lockSeqNumber; + private expectedSeqNo; + private currentMessageBuilder; + private currentMessageState; + private talkbackStream?; + private downloadTotalBytes; + private downloadReceivedBytes; + private cloudAddresses; + private messageStates; + private messageVideoStates; + private sendQueue; + private connectTimeout?; + private lookupTimeout?; + private localLookupRetryTimeout?; + private lookupRetryTimeout?; + private lookup2Timeout?; + private lookup2RetryTimeout?; + private heartbeatTimeout?; + private keepaliveTimeout?; + private esdDisconnectTimeout?; + private secondaryCommandTimeout?; + private connectTime; + private lastPong; + private lastPongData; + private connectionType; + private energySavingDevice; + private p2pSeqMapping; + private p2pDataSeqNumber; + private connectAddress; + private localIPAddress; + private preferredIPAddress; + private listeningPort; + private dskKey; + private dskExpiration; + private deviceSNs; + private api; + private rawStation; + private customDataStaging; + private lockPublicKey; + private lockAESKeys; + private channel; + private encryption; + private p2pKey?; + private enableEmbeddedPKCS1Support; + constructor(rawStation: StationListResponse, api: HTTPApi, ipAddress?: string, listeningPort?: number, publicKey?: string, enableEmbeddedPKCS1Support?: boolean); + private _incrementSequence; + private _isBetween; + private _wasSequenceNumberAlreadyProcessed; + private _initialize; + private initializeMessageBuilder; + private initializeMessageState; + private _clearTimeout; + private _clearMessageStateTimeouts; + private _clearMessageVideoStateTimeouts; + private _clearHeartbeatTimeout; + private _clearKeepaliveTimeout; + private _clearConnectTimeout; + private _clearLookupTimeout; + private _clearLocalLookupRetryTimeout; + private _clearLookupRetryTimeout; + private _clearLookup2RetryTimeout; + private _clearLookup2Timeout; + private _clearESDDisconnectTimeout; + private _clearSecondaryCommandTimeout; + private sendMessage; + private _disconnected; + private closeEnergySavingDevice; + private renewDSKKey; + private localLookup; + private cloudLookup; + private cloudLookup2; + private cloudLookupWithTurnServer; + private localLookupByAddress; + private cloudLookupByAddress; + private cloudLookupByAddress2; + private cloudLookupByAddressWithTurnServer; + isConnected(): boolean; + private _startConnectTimeout; + private _connect; + private lookup; + connect(host?: string): Promise; + private sendCamCheck; + private sendCamCheck2; + sendPing(address: Address): Promise; + sendCommandWithIntString(p2pcommand: P2PCommand, customData?: CustomData): void; + sendCommandWithInt(p2pcommand: P2PCommand, customData?: CustomData): void; + sendCommandWithStringPayload(p2pcommand: P2PCommand, customData?: CustomData): void; + sendCommandWithString(p2pcommand: P2PCommand, customData?: CustomData): void; + sendCommandPing(channel?: number): void; + sendCommandDevicePing(channel?: number): void; + sendCommandWithoutData(commandType: CommandType, channel?: number): void; + private sendQueuedMessage; + private sendCommand; + private resendNotAcknowledgedCommand; + private _sendCommand; + private handleMsg; + private parseDataMessage; + private handleData; + private isIFrame; + private waitForStreamData; + private handleDataBinaryAndVideo; + private handleDataControl; + private sendAck; + private getDataType; + close(): Promise; + private getHeartbeatInterval; + private onClose; + private onError; + private scheduleHeartbeat; + private scheduleP2PKeepalive; + getDownloadRSAPrivateKey(): NodeRSA; + setDownloadRSAPrivateKeyPem(pem: string): void; + getRSAPrivateKey(): NodeRSA | null; + private initializeStream; + private endStream; + private endRTSPStream; + private emitStreamStartEvent; + private emitStreamStopEvent; + isStreaming(channel: number, datatype: P2PDataType): boolean; + isLiveStreaming(channel: number): boolean; + private isCurrentlyStreaming; + isRTSPLiveStreaming(channel: number): boolean; + isDownloading(channel: number): boolean; + getLockSequenceNumber(): number; + incLockSequenceNumber(): number; + setConnectionType(type: P2PConnectionType): void; + getConnectionType(): P2PConnectionType; + isEnergySavingDevice(): boolean; + private getDSKKeys; + updateRawStation(value: StationListResponse): void; + private initializeTalkbackStream; + private sendTalkbackAudioFrame; + private onTalkbackStreamClose; + private onTalkbackStreamError; + private _sendVideoData; + isTalkbackOngoing(channel: number): boolean; + startTalkback(channel?: number): void; + stopTalkback(channel?: number): void; + setLockAESKey(commandCode: number, aesKey: string): void; + getLockAESKey(commandCode: number): string | undefined; + isConnecting(): boolean; +} diff --git a/build/p2p/session.js b/build/p2p/session.js new file mode 100644 index 00000000..811ef820 --- /dev/null +++ b/build/p2p/session.js @@ -0,0 +1,2678 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.P2PClientProtocol = void 0; +const dgram_1 = require("dgram"); +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const stream_1 = require("stream"); +const sweet_collections_1 = require("sweet-collections"); +const date_and_time_1 = __importDefault(require("date-and-time")); +const utils_1 = require("./utils"); +const types_1 = require("./types"); +const types_2 = require("../http/types"); +const device_1 = require("../http/device"); +const utils_2 = require("../http/utils"); +const talkback_1 = require("./talkback"); +const error_1 = require("../error"); +const types_3 = require("../push/types"); +const ble_1 = require("./ble"); +const http_1 = require("../http"); +const utils_3 = require("../utils"); +const logging_1 = require("../logging"); +class P2PClientProtocol extends tiny_typed_emitter_1.TypedEmitter { + MAX_RETRIES = 10; + MAX_COMMAND_RESULT_WAIT = 30 * 1000; + MAX_GATEWAY_COMMAND_RESULT_WAIT = 5 * 1000; + MAX_CONNECTION_TIMEOUT = 25 * 1000; + MAX_AKNOWLEDGE_TIMEOUT = 5 * 1000; + MAX_LOOKUP_TIMEOUT = 20 * 1000; + LOCAL_LOOKUP_RETRY_TIMEOUT = 1 * 1000; + LOOKUP_RETRY_TIMEOUT = 1 * 1000; + LOOKUP2_TIMEOUT = 3 * 1000; + LOOKUP2_RETRY_TIMEOUT = 1 * 1000; + MAX_EXPECTED_SEQNO_WAIT = 20 * 1000; + HEARTBEAT_INTERVAL = 5 * 1000; + MAX_COMMAND_QUEUE_TIMEOUT = 120 * 1000; + AUDIO_CODEC_ANALYZE_TIMEOUT = 650; + KEEPALIVE_INTERVAL = 2 * 1000; + ESD_DISCONNECT_TIMEOUT = 30 * 1000; + MAX_STREAM_DATA_WAIT = 5 * 1000; + RESEND_NOT_ACKNOWLEDGED_COMMAND = 100; + UDP_RECVBUFFERSIZE_BYTES = 1048576; + MAX_PAYLOAD_BYTES = 1028; + MAX_PACKET_BYTES = 1024; + MAX_VIDEO_PACKET_BYTES = 655360; + P2P_DATA_HEADER_BYTES = 16; + MAX_SEQUENCE_NUMBER = 65535; + LOOP_RUNAWAY_LIMIT = 1000; + /* + * SEQUENCE_PROCESSING_BOUNDARY is used to determine if an incoming sequence number + * that is lower than the expected one was already processed. + * If it is within the boundary, it is determined as 'already processed', + * If it is even lower, it is assumed that the sequence count has reached + * MAX_SEQUENCE_NUMBER and restarted at 0. + * */ + SEQUENCE_PROCESSING_BOUNDARY = 20000; // worth of approx. 90 seconds of continous streaming + socket; + binded = false; + connected = false; + connecting = false; + terminating = false; + p2pTurnHandshaking = {}; + p2pTurnConfirmed = false; + seqNumber = 0; + offsetDataSeqNumber = 0; + videoSeqNumber = 0; + lockSeqNumber = -1; + expectedSeqNo = {}; + currentMessageBuilder = {}; + currentMessageState = {}; + talkbackStream; + downloadTotalBytes = 0; + downloadReceivedBytes = 0; + cloudAddresses; + messageStates = new sweet_collections_1.SortedMap((a, b) => a - b); + messageVideoStates = new sweet_collections_1.SortedMap((a, b) => a - b); + sendQueue = new Array(); + connectTimeout; + lookupTimeout; + localLookupRetryTimeout; + lookupRetryTimeout; + lookup2Timeout; + lookup2RetryTimeout; + heartbeatTimeout; + keepaliveTimeout; + esdDisconnectTimeout; + secondaryCommandTimeout; + connectTime = null; + lastPong = null; + lastPongData = undefined; + connectionType = types_1.P2PConnectionType.QUICKEST; + energySavingDevice = false; + p2pSeqMapping = new Map(); + p2pDataSeqNumber = 0; + connectAddress = undefined; + localIPAddress = undefined; + preferredIPAddress = undefined; + listeningPort = 0; + dskKey = ""; + dskExpiration = null; + deviceSNs = {}; + api; + rawStation; + customDataStaging = {}; + lockPublicKey; + lockAESKeys = new Map(); + channel = http_1.Station.CHANNEL; + encryption = types_1.EncryptionType.NONE; + p2pKey; + enableEmbeddedPKCS1Support = false; + constructor(rawStation, api, ipAddress, listeningPort = 0, publicKey = "", enableEmbeddedPKCS1Support = false) { + super(); + this.api = api; + this.lockPublicKey = publicKey; + this.preferredIPAddress = ipAddress; + if (listeningPort >= 0) + this.listeningPort = listeningPort; + this.enableEmbeddedPKCS1Support = enableEmbeddedPKCS1Support; + this.cloudAddresses = (0, utils_1.decodeP2PCloudIPs)(rawStation.app_conn); + logging_1.rootP2PLogger.debug("Loaded P2P cloud ip addresses", { stationSN: rawStation.station_sn, ipAddress: ipAddress, cloudAddresses: this.cloudAddresses }); + this.updateRawStation(rawStation); + this.socket = (0, dgram_1.createSocket)("udp4"); + this.socket.on("message", (msg, rinfo) => this.handleMsg(msg, rinfo)); + this.socket.on("error", (error) => this.onError(error)); + this.socket.on("close", () => this.onClose()); + this._initialize(); + } + _incrementSequence(sequence) { + if (sequence < this.MAX_SEQUENCE_NUMBER) + return sequence + 1; + return 0; + } + _isBetween(n, lowBoundary, highBoundary) { + if (n < lowBoundary) + return false; + if (n >= highBoundary) + return false; + return true; + } + _wasSequenceNumberAlreadyProcessed(expectedSequence, receivedSequence) { + if ((expectedSequence - this.SEQUENCE_PROCESSING_BOUNDARY) > 0) { // complete boundary without squence number reset + return this._isBetween(receivedSequence, expectedSequence - this.SEQUENCE_PROCESSING_BOUNDARY, expectedSequence); + } + else { // there was a sequence number reset recently + const isInRangeAfterReset = this._isBetween(receivedSequence, 0, expectedSequence); + const isInRangeBeforeReset = this._isBetween(receivedSequence, this.MAX_SEQUENCE_NUMBER + (expectedSequence - this.SEQUENCE_PROCESSING_BOUNDARY), this.MAX_SEQUENCE_NUMBER); + return (isInRangeBeforeReset || isInRangeAfterReset); + } + } + _initialize() { + let rsaKey; + this.connected = false; + this.p2pTurnHandshaking = {}; + this.p2pTurnConfirmed = false; + this.connecting = false; + this.lastPong = null; + this.lastPongData = undefined; + this.connectTime = null; + this.seqNumber = 0; + this.offsetDataSeqNumber = 0; + this.videoSeqNumber = 0; + this.p2pDataSeqNumber = 0; + this.connectAddress = undefined; + this.customDataStaging = {}; + this.encryption = types_1.EncryptionType.NONE; + this.p2pKey = undefined; + this.lockAESKeys.clear(); + this._clearMessageStateTimeouts(); + this._clearMessageVideoStateTimeouts(); + this.messageStates.clear(); + this.messageVideoStates.clear(); + this.p2pSeqMapping.clear(); + for (let datatype = 0; datatype < 4; datatype++) { + this.expectedSeqNo[datatype] = 0; + if (datatype === types_1.P2PDataType.VIDEO) + rsaKey = (0, utils_1.getNewRSAPrivateKey)(this.enableEmbeddedPKCS1Support); + else + rsaKey = null; + this.initializeMessageBuilder(datatype); + this.initializeMessageState(datatype, rsaKey); + this.initializeStream(datatype); + } + } + initializeMessageBuilder(datatype) { + this.currentMessageBuilder[datatype] = { + header: { + commandId: 0, + bytesToRead: 0, + channel: 0, + signCode: 0, + type: 0 + }, + bytesRead: 0, + messages: {} + }; + } + initializeMessageState(datatype, rsaKey = null) { + this.currentMessageState[datatype] = { + leftoverData: Buffer.from([]), + queuedData: new sweet_collections_1.SortedMap((a, b) => a - b), + rsaKey: rsaKey, + videoStream: null, + audioStream: null, + invalidStream: false, + p2pStreaming: false, + p2pStreamNotStarted: true, + p2pStreamChannel: -1, + p2pStreamFirstAudioDataReceived: false, + p2pStreamFirstVideoDataReceived: false, + p2pStreamMetadata: { + videoCodec: types_1.VideoCodec.H264, + videoFPS: 15, + videoHeight: 1080, + videoWidth: 1920, + audioCodec: types_1.AudioCodec.NONE + }, + rtspStream: {}, + rtspStreaming: {}, + receivedFirstIFrame: false, + preFrameVideoData: Buffer.from([]), + p2pTalkback: false, + p2pTalkbackChannel: -1 + }; + } + _clearTimeout(timeout) { + if (!!timeout) { + clearTimeout(timeout); + } + } + _clearMessageStateTimeouts() { + for (const message of this.messageStates.values()) { + this._clearTimeout(message.timeout); + } + } + _clearMessageVideoStateTimeouts() { + for (const message of this.messageVideoStates.values()) { + this._clearTimeout(message.timeout); + } + } + _clearHeartbeatTimeout() { + this._clearTimeout(this.heartbeatTimeout); + this.heartbeatTimeout = undefined; + } + _clearKeepaliveTimeout() { + this._clearTimeout(this.keepaliveTimeout); + this.keepaliveTimeout = undefined; + } + _clearConnectTimeout() { + this._clearTimeout(this.connectTimeout); + this.connectTimeout = undefined; + } + _clearLookupTimeout() { + this._clearTimeout(this.lookupTimeout); + this.lookupTimeout = undefined; + } + _clearLocalLookupRetryTimeout() { + this._clearTimeout(this.localLookupRetryTimeout); + this.localLookupRetryTimeout = undefined; + } + _clearLookupRetryTimeout() { + this._clearTimeout(this.lookupRetryTimeout); + this.lookupRetryTimeout = undefined; + } + _clearLookup2RetryTimeout() { + this._clearTimeout(this.lookup2RetryTimeout); + this.lookup2RetryTimeout = undefined; + } + _clearLookup2Timeout() { + this._clearTimeout(this.lookup2Timeout); + this.lookup2Timeout = undefined; + } + _clearESDDisconnectTimeout() { + this._clearTimeout(this.esdDisconnectTimeout); + this.esdDisconnectTimeout = undefined; + } + _clearSecondaryCommandTimeout() { + this._clearTimeout(this.secondaryCommandTimeout); + this.secondaryCommandTimeout = undefined; + } + async sendMessage(errorSubject, address, msgID, payload) { + await (0, utils_1.sendMessage)(this.socket, address, msgID, payload).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`${errorSubject} - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, address: address, msgID: msgID.toString("hex"), payload: payload?.toString("hex") }); + }); + } + _disconnected() { + this._clearHeartbeatTimeout(); + this._clearKeepaliveTimeout(); + this._clearLocalLookupRetryTimeout(); + this._clearLookupRetryTimeout(); + this._clearLookup2Timeout(); + this._clearLookupTimeout(); + this._clearConnectTimeout(); + this._clearESDDisconnectTimeout(); + this._clearSecondaryCommandTimeout(); + this._clearMessageStateTimeouts(); + this._clearMessageVideoStateTimeouts(); + if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming) { + this.endStream(types_1.P2PDataType.VIDEO); + } + if (this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming) { + this.endStream(types_1.P2PDataType.BINARY); + } + for (const channel in this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming) { + this.endRTSPStream(Number.parseInt(channel)); + } + this.sendQueue = this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING); + if (this.connected) { + this.emit("close"); + } + else if (!this.terminating) { + this.emit("timeout"); + } + this._initialize(); + } + closeEnergySavingDevice() { + if (this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING).length === 0 && + this.energySavingDevice && + !this.isCurrentlyStreaming() && + Array.from(this.messageStates.values()).filter((msgState) => msgState.acknowledged === false).length === 0) { + if (this.esdDisconnectTimeout === undefined) { + logging_1.rootP2PLogger.debug(`Energy saving device - No more p2p commands to execute or running streams, initiate disconnect timeout in ${this.ESD_DISCONNECT_TIMEOUT} milliseconds...`, { stationSN: this.rawStation.station_sn }); + this.esdDisconnectTimeout = setTimeout(() => { + this.esdDisconnectTimeout = undefined; + this.sendMessage(`Closing of connection for battery saving`, this.connectAddress, types_1.RequestMessageType.END); + logging_1.rootP2PLogger.info(`Initiated closing of connection to station ${this.rawStation.station_sn} for saving battery.`); + this.terminating = true; + this._disconnected(); + }, this.ESD_DISCONNECT_TIMEOUT); + } + } + } + async renewDSKKey() { + if (this.dskKey === "" || (this.dskExpiration && (new Date()).getTime() >= this.dskExpiration.getTime())) { + logging_1.rootP2PLogger.debug(`DSK keys not present or expired, get/renew it`, { stationSN: this.rawStation.station_sn, dskKey: this.dskKey, dskExpiration: this.dskExpiration }); + await this.getDSKKeys(); + } + } + localLookup(host) { + logging_1.rootP2PLogger.debug(`Trying to local lookup address for station ${this.rawStation.station_sn} with host ${host}`); + this.localLookupByAddress({ host: host, port: 32108 }); + this._clearLocalLookupRetryTimeout(); + this.lookupRetryTimeout = setTimeout(() => { + this.localLookup(host); + }, this.LOCAL_LOOKUP_RETRY_TIMEOUT); + } + cloudLookup() { + this.cloudAddresses.map((address) => this.cloudLookupByAddress(address)); + this._clearLookupRetryTimeout(); + this.lookupRetryTimeout = setTimeout(() => { + this.cloudLookup(); + }, this.LOOKUP_RETRY_TIMEOUT); + } + cloudLookup2() { + this.cloudAddresses.map((address) => this.cloudLookupByAddress2(address)); + this._clearLookup2RetryTimeout(); + this.lookup2RetryTimeout = setTimeout(() => { + this.cloudLookup2(); + }, this.LOOKUP2_RETRY_TIMEOUT); + } + cloudLookupWithTurnServer(origAddress, data) { + this.cloudAddresses.map((address) => this.cloudLookupByAddressWithTurnServer(address, origAddress, data)); + } + async localLookupByAddress(address) { + // Send lookup message + const msgId = types_1.RequestMessageType.LOCAL_LOOKUP; + const payload = Buffer.from([0, 0]); + await this.sendMessage(`Local lookup address`, address, msgId, payload); + } + async cloudLookupByAddress(address) { + // Send lookup message + const msgId = types_1.RequestMessageType.LOOKUP_WITH_KEY; + const payload = (0, utils_1.buildLookupWithKeyPayload)(this.socket, this.rawStation.p2p_did, this.dskKey); + await this.sendMessage(`Cloud lookup addresses`, address, msgId, payload); + } + async cloudLookupByAddress2(address) { + // Send lookup message2 + const msgId = types_1.RequestMessageType.LOOKUP_WITH_KEY2; + const payload = (0, utils_1.buildLookupWithKeyPayload2)(this.rawStation.p2p_did, this.dskKey); + await this.sendMessage(`Cloud lookup addresses (2)`, address, msgId, payload); + } + async cloudLookupByAddressWithTurnServer(address, origAddress, data) { + // Send lookup message3 + const msgId = types_1.RequestMessageType.TURN_LOOKUP_WITH_KEY; + const payload = (0, utils_1.buildLookupWithKeyPayload3)(this.rawStation.p2p_did, origAddress, data); + await this.sendMessage(`Cloud lookup addresses with turn server`, address, msgId, payload); + } + isConnected() { + return this.connected; + } + _startConnectTimeout() { + if (this.connectTimeout === undefined) + this.connectTimeout = setTimeout(() => { + logging_1.rootP2PLogger.warn(`Tried all hosts, no connection could be established to station ${this.rawStation.station_sn}.`); + this._disconnected(); + }, this.MAX_CONNECTION_TIMEOUT); + } + _connect(address, p2p_did) { + logging_1.rootP2PLogger.debug(`Connecting to host ${address.host} on port ${address.port} (CHECK_CAM)`, { stationSN: this.rawStation.station_sn, address: address, p2pDid: p2p_did }); + this.sendCamCheck(address, p2p_did); + for (let i = address.port - 3; i < address.port; i++) + this.sendCamCheck({ host: address.host, port: i }, p2p_did); + for (let i = address.port + 1; i <= address.port + 3; i++) + this.sendCamCheck({ host: address.host, port: i }, p2p_did); + this._startConnectTimeout(); + } + lookup(host) { + if (host === undefined) { + if (this.preferredIPAddress !== undefined) { + host = this.preferredIPAddress; + } + else if (this.localIPAddress !== undefined) { + host = this.localIPAddress; + } + else { + const localIP = (0, utils_1.getLocalIpAddress)(); + host = localIP.substring(0, localIP.lastIndexOf(".") + 1).concat("255"); + } + } + this.localLookup(host); + this.cloudLookup(); + this._clearLookup2Timeout(); + this.lookup2Timeout = setTimeout(() => { + this.cloudLookup2(); + }, this.LOOKUP2_TIMEOUT); + this._clearLookupTimeout(); + this.lookupTimeout = setTimeout(() => { + this.lookupTimeout = undefined; + logging_1.rootP2PLogger.error(`All address lookup tentatives failed.`, { stationSN: this.rawStation.station_sn }); + if (this.localIPAddress !== undefined) + this.localIPAddress = undefined; + this._disconnected(); + }, this.MAX_LOOKUP_TIMEOUT); + } + async connect(host) { + if (!this.connected && !this.connecting && this.rawStation.p2p_did !== undefined) { + this.connecting = true; + this.terminating = false; + await this.renewDSKKey(); + if (!this.binded) + this.socket.bind(this.listeningPort, () => { + this.binded = true; + try { + this.socket.setRecvBufferSize(this.UDP_RECVBUFFERSIZE_BYTES); + this.socket.setBroadcast(true); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`connect - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, host: host, currentRecBufferSize: this.socket.getRecvBufferSize(), recBufferRequestedSize: this.UDP_RECVBUFFERSIZE_BYTES }); + } + this.lookup(host); + }); + else { + this.lookup(host); + } + } + } + async sendCamCheck(address, p2p_did) { + const payload = (0, utils_1.buildCheckCamPayload)(p2p_did); + await this.sendMessage(`Send cam check`, address, types_1.RequestMessageType.CHECK_CAM, payload); + } + async sendCamCheck2(address, data) { + const payload = (0, utils_1.buildCheckCamPayload2)(this.rawStation.p2p_did, data); + await this.sendMessage(`Send cam check (2)`, address, types_1.RequestMessageType.CHECK_CAM2, payload); + } + async sendPing(address) { + if ((this.lastPong && ((new Date().getTime() - this.lastPong) / this.getHeartbeatInterval() >= this.MAX_RETRIES)) || + (this.connectTime && !this.lastPong && ((new Date().getTime() - this.connectTime) / this.getHeartbeatInterval() >= this.MAX_RETRIES))) { + if (!this.energySavingDevice) + logging_1.rootP2PLogger.warn(`Heartbeat check failed for station ${this.rawStation.station_sn}. Connection seems lost. Try to reconnect...`); + this._disconnected(); + } + await this.sendMessage(`Send ping`, address, types_1.RequestMessageType.PING, this.lastPongData); + } + sendCommandWithIntString(p2pcommand, customData) { + if (p2pcommand.channel === undefined) + p2pcommand.channel = 0; + if (p2pcommand.value === undefined || typeof p2pcommand.value !== "number") + throw new TypeError("value must be a number"); + this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithIntString, undefined, customData); + } + sendCommandWithInt(p2pcommand, customData) { + if (p2pcommand.channel === undefined) + p2pcommand.channel = this.channel; + if (p2pcommand.value === undefined || typeof p2pcommand.value !== "number") + throw new TypeError("value must be a number"); + this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithInt, undefined, customData); + } + sendCommandWithStringPayload(p2pcommand, customData) { + if (p2pcommand.channel === undefined) + p2pcommand.channel = 0; + if (p2pcommand.value === undefined || typeof p2pcommand.value !== "string") + throw new TypeError("value must be a string"); + let nested_commandType = undefined; + let nested_commandType2 = undefined; + logging_1.rootP2PLogger.debug(`sendCommandWithStringPayload:`, { p2pcommand: p2pcommand, customData: customData }); + if (p2pcommand.commandType == types_1.CommandType.CMD_SET_PAYLOAD) { + try { + const json = JSON.parse(p2pcommand.value); + nested_commandType = json.cmd; + if (json.payload && json.payload.apiCommand !== undefined) { + nested_commandType2 = json.payload.apiCommand; + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`sendCommandWithStringPayload CMD_SET_PAYLOAD - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, p2pcommand: p2pcommand, customData: customData }); + } + } + else if (p2pcommand.commandType == types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD) { + try { + const json = JSON.parse(p2pcommand.value); + nested_commandType = json.commandType; + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`sendCommandWithStringPayload CMD_DOORBELL_SET_PAYLOAD - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, p2pcommand: p2pcommand, customData: customData }); + } + } + this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithStringPayload, nested_commandType, customData, nested_commandType2); + } + sendCommandWithString(p2pcommand, customData) { + if (p2pcommand.channel === undefined) + p2pcommand.channel = this.channel; + if (p2pcommand.strValue === undefined) + throw new TypeError("strValue must be defined"); + if (p2pcommand.strValueSub === undefined) + throw new TypeError("strValueSub must be defined"); + this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithString, p2pcommand.commandType, customData); + } + sendCommandPing(channel = this.channel) { + this.sendCommand({ + commandType: types_1.CommandType.CMD_PING, + channel: channel + }, types_1.InternalP2PCommandType.WithoutData); + } + sendCommandDevicePing(channel = this.channel) { + this.sendCommand({ + commandType: types_1.CommandType.CMD_GET_DEVICE_PING, + channel: channel + }, types_1.InternalP2PCommandType.WithoutData); + } + sendCommandWithoutData(commandType, channel = this.channel) { + this.sendCommand({ + commandType: commandType, + channel: channel + }, types_1.InternalP2PCommandType.WithoutData); + } + sendQueuedMessage() { + if (this.sendQueue.length > 0) { + if (this.connected) { + let queuedMessage; + while ((queuedMessage = this.sendQueue.shift()) !== undefined) { + let exists = false; + let waitingAcknowledge = false; + this.messageStates.forEach(stateMessage => { + if (stateMessage.commandType === queuedMessage.p2pCommand.commandType && stateMessage.nestedCommandType === queuedMessage.nestedCommandType && !stateMessage.acknowledged) { + exists = true; + } + if (!stateMessage.acknowledged || stateMessage.commandType === types_1.CommandType.CMD_GATEWAYINFO) { + waitingAcknowledge = true; + } + }); + if (!exists && !waitingAcknowledge) { + this._sendCommand(queuedMessage); + break; + } + else { + this.sendQueue.unshift(queuedMessage); + break; + } + } + } + else if (!this.connected && this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING).length > 0) { + logging_1.rootP2PLogger.debug(`Initiate station p2p connection to send queued data`, { stationSN: this.rawStation.station_sn, queuedDataCount: this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING).length }); + this.connect(); + } + } + this.closeEnergySavingDevice(); + } + sendCommand(p2pcommand, p2pcommandType, nestedCommandType, customData, nested_commandType2) { + const message = { + p2pCommand: p2pcommand, + nestedCommandType: nestedCommandType, + nestedCommandType2: nested_commandType2, + timestamp: +new Date, + customData: customData, + p2pCommandType: p2pcommandType + }; + this.sendQueue.push(message); + if (p2pcommand.commandType !== types_1.CommandType.CMD_PING && p2pcommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING) + this._clearESDDisconnectTimeout(); + this.sendQueuedMessage(); + } + resendNotAcknowledgedCommand(sequence) { + const messageState = this.messageStates.get(sequence); + if (messageState) { + this._clearTimeout(messageState.retryTimeout); + messageState.retryTimeout = setTimeout(() => { + if (this.connectAddress) { + (0, utils_1.sendMessage)(this.socket, this.connectAddress, types_1.RequestMessageType.DATA, messageState.data).catch((err) => { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`resendNotAcknowledgedCommand - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, sequence: sequence }); + }); + this.resendNotAcknowledgedCommand(sequence); + } + }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); + } + } + async _sendCommand(message) { + if ((0, utils_1.isP2PQueueMessage)(message)) { + const ageing = +new Date - message.timestamp; + if (ageing <= this.MAX_COMMAND_QUEUE_TIMEOUT) { + const commandHeader = (0, utils_1.buildCommandHeader)(this.seqNumber, message.p2pCommand.commandType); + let payload; + const channel = message.p2pCommand.channel !== undefined ? message.p2pCommand.channel : 0; + switch (message.p2pCommandType) { + case types_1.InternalP2PCommandType.WithInt: + payload = (0, utils_1.buildIntCommandPayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.value, message.p2pCommand.strValue === undefined ? "" : message.p2pCommand.strValue, channel); + break; + case types_1.InternalP2PCommandType.WithIntString: + payload = (0, utils_1.buildIntStringCommandPayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.value, message.p2pCommand.valueSub === undefined ? 0 : message.p2pCommand.valueSub, message.p2pCommand.strValue === undefined ? "" : message.p2pCommand.strValue, message.p2pCommand.strValueSub === undefined ? "" : message.p2pCommand.strValueSub, channel); + //TODO: Check if this "if" can be moved elsewhere + if (message.p2pCommand.commandType === types_1.CommandType.CMD_NAS_TEST) { + this.currentMessageState[types_1.P2PDataType.DATA].rtspStream[channel] = message.p2pCommand.value === 1 ? true : false; + } + break; + case types_1.InternalP2PCommandType.WithString: + payload = (0, utils_1.buildStringTypeCommandPayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.strValue, message.p2pCommand.strValueSub, channel); + break; + case types_1.InternalP2PCommandType.WithStringPayload: + payload = (0, utils_1.buildCommandWithStringTypePayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.value, channel); + break; + default: + payload = (0, utils_1.buildVoidCommandPayload)(channel); + break; + } + const data = Buffer.concat([commandHeader, payload]); + const messageState = { + sequence: this.seqNumber, + commandType: message.p2pCommand.commandType, + nestedCommandType: message.nestedCommandType, + nestedCommandType2: message.nestedCommandType2, + channel: channel, + data: data, + retries: 0, + acknowledged: false, + customData: message.customData + }; + message = messageState; + this.seqNumber = this._incrementSequence(this.seqNumber); + } + else if (message.p2pCommand.commandType === types_1.CommandType.CMD_PING || message.p2pCommand.commandType === types_1.CommandType.CMD_GET_DEVICE_PING) { + return; + } + else { + logging_1.rootP2PLogger.warn(`Command aged out from send queue for station ${this.rawStation.station_sn}`, { commandType: message.p2pCommand.commandType, nestedCommandType: message.nestedCommandType, channel: message.p2pCommand.channel, ageing: ageing, maxAgeing: this.MAX_COMMAND_QUEUE_TIMEOUT }); + this.emit("command", { + command_type: message.nestedCommandType !== undefined ? message.nestedCommandType : message.p2pCommand.commandType, + channel: message.p2pCommand.channel, + return_code: types_1.ErrorCode.ERROR_CONNECT_TIMEOUT, + customData: message.customData + }); + return; + } + } + else { + if (message.retries < this.MAX_RETRIES && message.returnCode !== types_1.ErrorCode.ERROR_CONNECT_TIMEOUT) { + if (message.returnCode === types_1.ErrorCode.ERROR_FAILED_TO_REQUEST) { + this.messageStates.delete(message.sequence); + message.sequence = this.seqNumber; + message.data.writeUInt16BE(message.sequence, 2); + this.seqNumber = this._incrementSequence(this.seqNumber); + this.messageStates.set(message.sequence, message); + } + message.retries++; + } + else { + logging_1.rootP2PLogger.error(`Max p2p command send retries reached.`, { stationSN: this.rawStation.station_sn, sequence: message.sequence, commandType: message.commandType, channel: message.channel, retries: message.retries, returnCode: message.returnCode }); + this.emit("command", { + command_type: message.nestedCommandType !== undefined ? message.nestedCommandType : message.commandType, + channel: message.channel, + return_code: types_1.ErrorCode.ERROR_COMMAND_TIMEOUT, + customData: message.customData + }); + if (message.commandType === types_1.CommandType.CMD_START_REALTIME_MEDIA || + (message.nestedCommandType === types_1.CommandType.CMD_START_REALTIME_MEDIA && message.commandType === types_1.CommandType.CMD_SET_PAYLOAD) || + message.commandType === types_1.CommandType.CMD_RECORD_VIEW || + (message.nestedCommandType === http_1.ParamType.COMMAND_START_LIVESTREAM && message.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD)) { + if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming && message.channel === this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreamChannel) { + this.endStream(types_1.P2PDataType.VIDEO); + } + } + else if (message.commandType === types_1.CommandType.CMD_DOWNLOAD_VIDEO) { + if (this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming && message.channel === this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel) { + this.endStream(types_1.P2PDataType.BINARY); + } + } + this.messageStates.delete(message.sequence); + this.sendQueuedMessage(); + return; + } + } + const messageState = message; + messageState.timeout = setTimeout(() => { + this._clearTimeout(messageState.retryTimeout); + this._sendCommand(messageState); + this._clearESDDisconnectTimeout(); + this.closeEnergySavingDevice(); + }, this.MAX_AKNOWLEDGE_TIMEOUT); + this.messageStates.set(messageState.sequence, messageState); + messageState.retryTimeout = setTimeout(() => { + this.resendNotAcknowledgedCommand(messageState.sequence); + }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); + if (messageState.commandType !== types_1.CommandType.CMD_PING) { + this.p2pSeqMapping.set(this.p2pDataSeqNumber, message.sequence); + logging_1.rootP2PLogger.trace(`Added sequence number mapping`, { stationSN: this.rawStation.station_sn, commandType: message.commandType, seqNumber: message.sequence, p2pDataSeqNumber: this.p2pDataSeqNumber, p2pSeqMappingCount: this.p2pSeqMapping.size }); + this.p2pDataSeqNumber = this._incrementSequence(this.p2pDataSeqNumber); + } + logging_1.rootP2PLogger.debug("Sending p2p command...", { station: this.rawStation.station_sn, sequence: messageState.sequence, commandType: messageState.commandType, channel: messageState.channel, retries: messageState.retries, messageStatesSize: this.messageStates.size }); + await this.sendMessage(`Send p2p command`, this.connectAddress, types_1.RequestMessageType.DATA, messageState.data); + if (messageState.retries === 0) { + if (messageState.commandType === types_1.CommandType.CMD_START_REALTIME_MEDIA || + (messageState.nestedCommandType === types_1.CommandType.CMD_START_REALTIME_MEDIA && messageState.commandType === types_1.CommandType.CMD_SET_PAYLOAD) || + messageState.commandType === types_1.CommandType.CMD_RECORD_VIEW || + (messageState.nestedCommandType === http_1.ParamType.COMMAND_START_LIVESTREAM && messageState.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD)) { + if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming && messageState.channel !== this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreamChannel) { + this.endStream(types_1.P2PDataType.VIDEO); + } + this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming = true; + this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreamChannel = messageState.channel; + this.waitForStreamData(types_1.P2PDataType.VIDEO); + } + else if (messageState.commandType === types_1.CommandType.CMD_DOWNLOAD_VIDEO) { + if (this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming && messageState.channel !== this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel) { + this.endStream(types_1.P2PDataType.BINARY); + } + this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming = true; + this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel = message.channel; + this.waitForStreamData(types_1.P2PDataType.BINARY); + } + else if (messageState.commandType === types_1.CommandType.CMD_STOP_REALTIME_MEDIA) { //TODO: CommandType.CMD_RECORD_PLAY_CTRL only if stop + this.endStream(types_1.P2PDataType.VIDEO); + } + else if (messageState.commandType === types_1.CommandType.CMD_DOWNLOAD_CANCEL) { + this.endStream(types_1.P2PDataType.BINARY); + } + else if (messageState.commandType === types_1.CommandType.CMD_NAS_TEST) { + if (this.currentMessageState[types_1.P2PDataType.DATA].rtspStream[messageState.channel]) { + this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[messageState.channel] = true; + this.emit("rtsp livestream started", messageState.channel); + } + else { + this.endRTSPStream(messageState.channel); + } + } + } + } + handleMsg(msg, rinfo) { + if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOCAL_LOOKUP_RESP)) { + if (!this.connected) { + this._clearLookupTimeout(); + this._clearLocalLookupRetryTimeout(); + const p2pDid = `${msg.subarray(4, 12).toString("utf8").replace(/[\0]+$/g, "")}-${msg.subarray(12, 16).readUInt32BE().toString().padStart(6, "0")}-${msg.subarray(16, 24).toString("utf8").replace(/[\0]+$/g, "")}`; + logging_1.rootP2PLogger.trace(`Received message - LOCAL_LOOKUP_RESP - Got response`, { stationSN: this.rawStation.station_sn, ip: rinfo.address, port: rinfo.port, p2pDid: p2pDid }); + if (p2pDid === this.rawStation.p2p_did) { + logging_1.rootP2PLogger.debug(`Received message - LOCAL_LOOKUP_RESP - Wanted device was found, connect to it`, { stationSN: this.rawStation.station_sn, ip: rinfo.address, port: rinfo.port, p2pDid: p2pDid }); + this._connect({ host: rinfo.address, port: rinfo.port }, p2pDid); + } + else { + logging_1.rootP2PLogger.debug(`Received message - LOCAL_LOOKUP_RESP - Unwanted device was found, don't connect to it`, { stationSN: this.rawStation.station_sn, ip: rinfo.address, port: rinfo.port, p2pDid: p2pDid }); + } + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOOKUP_ADDR)) { + if (!this.connected) { + const port = msg.subarray(6, 8).readUInt16LE(); + const ip = `${msg[11]}.${msg[10]}.${msg[9]}.${msg[8]}`; + logging_1.rootP2PLogger.trace(`Received message - LOOKUP_ADDR - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { ip: ip, port: port } }); + if (ip === "0.0.0.0") { + logging_1.rootP2PLogger.trace(`Received message - LOOKUP_ADDR - Got invalid ip address 0.0.0.0, ignoring response...`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { ip: ip, port: port } }); + return; + } + if ((0, utils_1.isPrivateIp)(ip)) + this.localIPAddress = ip; + if (this.connectionType === types_1.P2PConnectionType.ONLY_LOCAL) { + if ((0, utils_1.isPrivateIp)(ip)) { + this._clearLookupTimeout(); + this._clearLookupRetryTimeout(); + logging_1.rootP2PLogger.debug(`Trying to connect in ONLY_LOCAL mode...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port }); + this._connect({ host: ip, port: port }, this.rawStation.p2p_did); + } + } + else if (this.connectionType === types_1.P2PConnectionType.QUICKEST) { + this._clearLookupTimeout(); + this._clearLookupRetryTimeout(); + logging_1.rootP2PLogger.debug(`Trying to connect in QUICKEST mode...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port }); + this._connect({ host: ip, port: port }, this.rawStation.p2p_did); + } + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.CAM_ID) || (0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_CAM_ID)) { + // Answer from the device to a CAM_CHECK message + if (!this.connected) { + logging_1.rootP2PLogger.debug(`Received message - CAM_ID - Connected to station ${this.rawStation.station_sn} on host ${rinfo.address} port ${rinfo.port}`); + this._clearLocalLookupRetryTimeout(); + this._clearLookupRetryTimeout(); + this._clearLookup2RetryTimeout(); + this._clearLookupTimeout(); + this._clearConnectTimeout(); + this._clearLookup2Timeout(); + this.connected = true; + this.connectTime = new Date().getTime(); + this.lastPong = null; + this.lastPongData = undefined; + this.connectAddress = { host: rinfo.address, port: rinfo.port }; + if ((0, utils_1.isPrivateIp)(rinfo.address)) + this.localIPAddress = rinfo.address; + this.scheduleHeartbeat(); + if (device_1.Device.isSmartSafe(this.rawStation.device_type)) { + const payload = (0, utils_1.buildVoidCommandPayload)(http_1.Station.CHANNEL); + const data = Buffer.concat([(0, utils_1.buildCommandHeader)(this.seqNumber, types_1.CommandType.CMD_GATEWAYINFO), payload]); + const message = { + sequence: this.seqNumber, + commandType: types_1.CommandType.CMD_GATEWAYINFO, + channel: http_1.Station.CHANNEL, + data: data, + retries: 0, + acknowledged: false, + }; + this.messageStates.set(message.sequence, message); + message.retryTimeout = setTimeout(() => { + this.resendNotAcknowledgedCommand(message.sequence); + }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); + this.seqNumber = this._incrementSequence(this.seqNumber); + this.sendMessage(`Send smartsafe gateway command to station`, this.connectAddress, types_1.RequestMessageType.DATA, data); + const tmpSendQueue = [...this.sendQueue]; + this.sendQueue = []; + this.sendCommandPing(http_1.Station.CHANNEL); + tmpSendQueue.forEach(element => { + this.sendQueue.push(element); + }); + } + else if (device_1.Device.isLockWifiR10(this.rawStation.device_type) || device_1.Device.isLockWifiR20(this.rawStation.device_type)) { + const tmpSendQueue = [...this.sendQueue]; + this.sendQueue = []; + const payload = (0, utils_1.buildVoidCommandPayload)(http_1.Station.CHANNEL); + const data = Buffer.concat([(0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_GATEWAYINFO), payload.subarray(0, payload.length - 2), (0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_PING).subarray(2), payload]); + const message = { + sequence: this.seqNumber, + commandType: types_1.CommandType.CMD_PING, + channel: http_1.Station.CHANNEL, + data: data, + retries: 0, + acknowledged: false, + }; + this.messageStates.set(message.sequence, message); + message.retryTimeout = setTimeout(() => { + this.resendNotAcknowledgedCommand(message.sequence); + }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); + this.seqNumber = this._incrementSequence(this.seqNumber); + this.sendMessage(`Send lock wifi gateway v12 command to station`, this.connectAddress, types_1.RequestMessageType.DATA, data); + tmpSendQueue.forEach(element => { + this.sendQueue.push(element); + }); + } + else if (this.rawStation.devices !== undefined && this.rawStation.devices !== null && this.rawStation.devices.length !== undefined && this.rawStation.devices.length > 0 && device_1.Device.isLockWifiVideo(this.rawStation.devices[0]?.device_type)) { + const tmpSendQueue = [...this.sendQueue]; + this.sendQueue = []; + const payload = (0, utils_1.buildVoidCommandPayload)(http_1.Station.CHANNEL); + const data = Buffer.concat([(0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_GATEWAYINFO), payload.subarray(0, payload.length - 2), (0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_PING).subarray(2), payload]); + const message = { + sequence: this.seqNumber, + commandType: types_1.CommandType.CMD_PING, + channel: http_1.Station.CHANNEL, + data: data, + retries: 0, + acknowledged: false, + }; + this.messageStates.set(message.sequence, message); + message.retryTimeout = setTimeout(() => { + this.resendNotAcknowledgedCommand(message.sequence); + }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); + this.seqNumber = this._incrementSequence(this.seqNumber); + this.sendMessage(`Send lock wifi gateway command to station`, this.connectAddress, types_1.RequestMessageType.DATA, data); + tmpSendQueue.forEach(element => { + this.sendQueue.push(element); + }); + } + else { + const tmpSendQueue = [...this.sendQueue]; + this.sendQueue = []; + this.sendCommandWithoutData(types_1.CommandType.CMD_GATEWAYINFO, http_1.Station.CHANNEL); + tmpSendQueue.forEach(element => { + this.sendQueue.push(element); + }); + } + this.sendQueuedMessage(); + if (this.energySavingDevice) { + this.scheduleP2PKeepalive(); + } + this.emit("connect", this.connectAddress); + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.PONG)) { + // Response to a ping from our side + this.lastPong = new Date().getTime(); + if (msg.length > 4) + this.lastPongData = msg.subarray(4); + else + this.lastPongData = undefined; + return; + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.PING)) { + // Response with PONG to keep alive + this.sendMessage(`Send pong`, { host: rinfo.address, port: rinfo.port }, types_1.RequestMessageType.PONG); + return; + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.END)) { + // Connection is closed by device + logging_1.rootP2PLogger.debug(`Received message - END`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port }); + this.onClose(); + return; + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.ACK)) { + // Device ACK a message from our side + // Number of Acks sended in the message + const dataTypeBuffer = msg.subarray(4, 6); + const dataType = this.getDataType(dataTypeBuffer); + const numAcksBuffer = msg.subarray(6, 8); + const numAcks = numAcksBuffer.readUIntBE(0, numAcksBuffer.length); + for (let i = 1; i <= numAcks; i++) { + const idx = 6 + i * 2; + const seqBuffer = msg.subarray(idx, idx + 2); + const ackedSeqNo = seqBuffer.readUIntBE(0, seqBuffer.length); + // -> Message with seqNo was received at the station + logging_1.rootP2PLogger.trace(`Received message - ACK ${types_1.P2PDataType[dataType]} - sequence ${ackedSeqNo}`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, ackedSeqNo: ackedSeqNo, dataType: types_1.P2PDataType[dataType] }); + if (dataType === types_1.P2PDataType.DATA) { + const msg_state = this.messageStates.get(ackedSeqNo); + if (msg_state && !msg_state.acknowledged) { + this._clearTimeout(msg_state.retryTimeout); + this._clearTimeout(msg_state.timeout); + if (msg_state.commandType === types_1.CommandType.CMD_PING || msg_state.commandType === types_1.CommandType.CMD_GET_DEVICE_PING) { + this.messageStates.delete(ackedSeqNo); + this.sendQueuedMessage(); + } + else { + msg_state.acknowledged = true; + msg_state.timeout = setTimeout(() => { + //TODO: Retry command in these case? + if (msg_state.commandType !== types_1.CommandType.CMD_GATEWAYINFO) { + logging_1.rootP2PLogger.warn(`Result data for command not received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: msg_state.returnCode, data: msg_state.data } }); + this.emit("command", { + command_type: msg_state.nestedCommandType !== undefined ? msg_state.nestedCommandType : msg_state.commandType, + channel: msg_state.channel, + return_code: types_1.ErrorCode.ERROR_COMMAND_TIMEOUT, + customData: msg_state.customData + }); + } + else { + this.p2pSeqMapping.forEach((value, key, map) => { + if (value === ackedSeqNo) { + map.delete(key); + } + }); + this.p2pDataSeqNumber--; + logging_1.rootP2PLogger.debug(`Result data for command CMD_GATEWAYINFO not received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: msg_state.returnCode, data: msg_state.data } }); + } + this.messageStates.delete(ackedSeqNo); + this.sendQueuedMessage(); + }, msg_state.commandType !== types_1.CommandType.CMD_GATEWAYINFO ? this.MAX_COMMAND_RESULT_WAIT : this.MAX_GATEWAY_COMMAND_RESULT_WAIT); + this.messageStates.set(ackedSeqNo, msg_state); + this.sendQueuedMessage(); + } + } + } + else if (dataType === types_1.P2PDataType.VIDEO) { + const msg_state = this.messageVideoStates.get(ackedSeqNo); + if (msg_state) { + this._clearTimeout(msg_state.timeout); + this.messageVideoStates.delete(ackedSeqNo); + } + } + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.DATA)) { + if (this.connected) { + const seqNo = msg.subarray(6, 8).readUInt16BE(); + const dataTypeBuffer = msg.subarray(4, 6); + const dataType = this.getDataType(dataTypeBuffer); + const message = { + bytesToRead: msg.subarray(2, 4).readUInt16BE(), + type: dataType, + seqNo: seqNo, + data: msg.subarray(8) + }; + this.sendAck({ host: rinfo.address, port: rinfo.port }, dataTypeBuffer, seqNo); + logging_1.rootP2PLogger.debug(`Received message - DATA ${types_1.P2PDataType[message.type]} - Processing sequence ${message.seqNo}...`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo }); + if (message.seqNo === this.expectedSeqNo[dataType]) { + // expected seq packet arrived + const timeout = this.currentMessageState[dataType].waitForSeqNoTimeout; + if (!!timeout) { + clearTimeout(timeout); + this.currentMessageState[dataType].waitForSeqNoTimeout = undefined; + } + this.expectedSeqNo[dataType] = this._incrementSequence(this.expectedSeqNo[dataType]); + this.parseDataMessage(message); + logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received expected sequence`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); + let queuedMessage = this.currentMessageState[dataType].queuedData.get(this.expectedSeqNo[dataType]); + while (queuedMessage) { + logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[queuedMessage.type]} - Work off queued data`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: queuedMessage.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); + this.expectedSeqNo[dataType] = this._incrementSequence(this.expectedSeqNo[dataType]); + this.parseDataMessage(queuedMessage); + this.currentMessageState[dataType].queuedData.delete(queuedMessage.seqNo); + queuedMessage = this.currentMessageState[dataType].queuedData.get(this.expectedSeqNo[dataType]); + } + } + else if (this._wasSequenceNumberAlreadyProcessed(this.expectedSeqNo[dataType], message.seqNo)) { + // We have already seen this message, skip! + // This can happen because the device is sending the message till it gets a ACK + // which can take some time. + logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received already processed sequence`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); + return; + } + else { + if (!this.currentMessageState[dataType].waitForSeqNoTimeout) + this.currentMessageState[dataType].waitForSeqNoTimeout = setTimeout(() => { + this.endStream(dataType, true); + this.currentMessageState[dataType].waitForSeqNoTimeout = undefined; + }, this.MAX_EXPECTED_SEQNO_WAIT); + if (!this.currentMessageState[dataType].queuedData.get(message.seqNo)) { + this.currentMessageState[dataType].queuedData.set(message.seqNo, message); + logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received not expected sequence, added to the queue for future processing`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); + } + else { + logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received not expected sequence, discarded since already present in queue for future processing`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); + } + } + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOOKUP_ADDR2)) { + if (!this.connected) { + const port = msg.subarray(6, 8).readUInt16LE(); + const ip = `${msg[11]}.${msg[10]}.${msg[9]}.${msg[8]}`; + const data = msg.subarray(20, 24); + this._clearLookupTimeout(); + this._clearLookupRetryTimeout(); + this._clearLookup2RetryTimeout(); + logging_1.rootP2PLogger.trace(`Received message - LOOKUP_ADDR2 - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { ip: ip, port: port, data: data.toString("hex") } }); + logging_1.rootP2PLogger.debug(`Connecting to host ${ip} on port ${port} (CHECK_CAM2)...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port, data: data.toString("hex") }); + for (let i = 0; i < 4; i++) + this.sendCamCheck2({ host: ip, port: port }, data); + this._startConnectTimeout(); + if (this.p2pTurnHandshaking[ip] === undefined) { + this.p2pTurnHandshaking[ip] = true; + this.sendMessage(`Send TURN_SERVER_INIT`, { host: ip, port: port }, types_1.RequestMessageType.TURN_SERVER_INIT); + } + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_OK)) { + if (!this.connected && !this.p2pTurnConfirmed) { + logging_1.rootP2PLogger.trace(`Received message - TURN_SERVER_OK - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { message: msg.toString("hex"), length: msg.length } }); + this.sendMessage(`Send TURN_CLIENT_OK`, { host: rinfo.address, port: rinfo.port }, types_1.RequestMessageType.TURN_CLIENT_OK); + this.p2pTurnConfirmed = true; + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_TOKEN)) { + if (!this.connected) { + const ip = `${msg[7]}.${msg[6]}.${msg[5]}.${msg[4]}`; + const port = msg.subarray(8, 10).readUInt16BE(); + const binaryIP = msg.subarray(4, 8); + logging_1.rootP2PLogger.debug(`Connecting to host ${ip} on port ${port} (CHECK_CAM2)...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port, binaryIP: binaryIP.toString("hex") }); + for (let i = 0; i < 4; i++) + this.sendCamCheck2({ host: rinfo.address, port: port }, binaryIP); + logging_1.rootP2PLogger.trace(`Received message - TURN_SERVER_TOKEN - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { port: port, binaryIP: binaryIP.toString("hex") } }); + this.cloudLookupWithTurnServer({ host: rinfo.address, port: port }, binaryIP); + } + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_LOOKUP_OK) || (0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.UNKNOWN_83) || (0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_LIST)) { + // Do nothing / ignore + } + else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOOKUP_RESP)) { + if (!this.connected) { + const responseCode = msg.subarray(4, 6).readUInt16LE(); + logging_1.rootP2PLogger.trace(`Received message - LOOKUP_RESP - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { responseCode: responseCode } }); + } + } + else { + logging_1.rootP2PLogger.debug(`Received unknown message`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { message: msg.toString("hex"), length: msg.length } }); + } + } + parseDataMessage(message) { + if ((message.type === types_1.P2PDataType.BINARY || message.type === types_1.P2PDataType.VIDEO) && !this.currentMessageState[message.type].p2pStreaming) { + logging_1.rootP2PLogger.trace(`Parsing message - DATA ${types_1.P2PDataType[message.type]} - Stream not started ignore this data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, header: this.currentMessageBuilder[message.type].header, bytesRead: this.currentMessageBuilder[message.type].bytesRead, bytesToRead: message.bytesToRead, messageSize: message.data.length }); + } + else { + if (this.currentMessageState[message.type].leftoverData.length > 0) { + message.data = Buffer.concat([this.currentMessageState[message.type].leftoverData, message.data]); + this.currentMessageState[message.type].leftoverData = Buffer.from([]); + } + let data = message.data; + let runaway_limit = 0; + do { + // is this the first message? + const firstPartMessage = data.subarray(0, 4).toString() === utils_1.MAGIC_WORD; + if (firstPartMessage) { + const header = { + commandId: 0, + bytesToRead: 0, + channel: 0, + signCode: 0, + type: 0 + }; + header.commandId = data.subarray(4, 6).readUIntLE(0, 2); + header.bytesToRead = data.subarray(6, 10).readUIntLE(0, 4); + header.channel = data.subarray(12, 13).readUInt8(); + header.signCode = data.subarray(13, 14).readUInt8(); + header.type = data.subarray(14, 15).readUInt8(); + this.currentMessageBuilder[message.type].header = header; + data = data.subarray(this.P2P_DATA_HEADER_BYTES); + if (data.length >= header.bytesToRead) { + const payload = data.subarray(0, header.bytesToRead); + this.currentMessageBuilder[message.type].messages[message.seqNo] = payload; + this.currentMessageBuilder[message.type].bytesRead = payload.byteLength; + data = data.subarray(header.bytesToRead); + if (data.length <= this.P2P_DATA_HEADER_BYTES) { + this.currentMessageState[message.type].leftoverData = data; + data = Buffer.from([]); + } + } + else { + if (data.length <= this.P2P_DATA_HEADER_BYTES) { + this.currentMessageState[message.type].leftoverData = data; + } + else { + this.currentMessageBuilder[message.type].messages[message.seqNo] = data; + this.currentMessageBuilder[message.type].bytesRead = data.byteLength; + } + data = Buffer.from([]); + } + } + else { + // finish message and print + if (this.currentMessageBuilder[message.type].header.bytesToRead - this.currentMessageBuilder[message.type].bytesRead <= data.length) { + const payload = data.subarray(0, this.currentMessageBuilder[message.type].header.bytesToRead - this.currentMessageBuilder[message.type].bytesRead); + this.currentMessageBuilder[message.type].messages[message.seqNo] = payload; + this.currentMessageBuilder[message.type].bytesRead += payload.byteLength; + data = data.subarray(payload.byteLength); + if (data.length <= this.P2P_DATA_HEADER_BYTES) { + this.currentMessageState[message.type].leftoverData = data; + data = Buffer.from([]); + } + } + else { + if (data.length <= this.P2P_DATA_HEADER_BYTES) { + this.currentMessageState[message.type].leftoverData = data; + } + else { + this.currentMessageBuilder[message.type].messages[message.seqNo] = data; + this.currentMessageBuilder[message.type].bytesRead += data.byteLength; + } + data = Buffer.from([]); + } + } + logging_1.rootP2PLogger.trace(`Parsing message - DATA ${types_1.P2PDataType[message.type]} - Received data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, header: this.currentMessageBuilder[message.type].header, bytesRead: this.currentMessageBuilder[message.type].bytesRead, bytesToRead: this.currentMessageBuilder[message.type].header.bytesToRead, firstPartMessage: firstPartMessage, messageSize: message.data.length, runaway_limit: runaway_limit }); + if (this.currentMessageBuilder[message.type].bytesRead === this.currentMessageBuilder[message.type].header.bytesToRead) { + const completeMessage = (0, utils_1.sortP2PMessageParts)(this.currentMessageBuilder[message.type].messages); + const data_message = { + ...this.currentMessageBuilder[message.type].header, + seqNo: (message.seqNo + this.offsetDataSeqNumber), + dataType: message.type, + data: completeMessage + }; + this.handleData(data_message); + this.initializeMessageBuilder(message.type); + if (data.length > 0 && message.type === types_1.P2PDataType.DATA) { + logging_1.rootP2PLogger.debug(`Parsing message - DATA ${types_1.P2PDataType[message.type]} - Parsed data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, data_message: data_message, datalen: data.length, data: data.toString("hex"), offsetDataSeqNumber: this.offsetDataSeqNumber, seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber }); + this.offsetDataSeqNumber++; + } + } + runaway_limit++; + } while ((data.length > 0) && (runaway_limit < this.LOOP_RUNAWAY_LIMIT)); + if (runaway_limit >= this.LOOP_RUNAWAY_LIMIT) { + logging_1.rootP2PLogger.warn(`Infinite loop detected (limit >= ${this.LOOP_RUNAWAY_LIMIT}) during parsing of p2p message`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, dataType: types_1.P2PDataType[message.type], header: this.currentMessageBuilder[message.type].header, bytesRead: this.currentMessageBuilder[message.type].bytesRead, bytesToRead: this.currentMessageBuilder[message.type].header.bytesToRead, message: message.data.toString("hex"), messageSize: message.data.length }); + this.initializeMessageBuilder(message.type); + } + } + } + handleData(message) { + if (message.dataType === types_1.P2PDataType.CONTROL) { + this.handleDataControl(message); + } + else if (message.dataType === types_1.P2PDataType.DATA) { + const commandStr = types_1.CommandType[message.commandId]; + const result_msg = message.type === 1 ? true : false; + if (result_msg) { + let return_code = 0; + let resultData; + if (message.bytesToRead > 0) { + if (message.signCode > 0) { + try { + message.data = (0, utils_1.decryptP2PData)(message.data, this.p2pKey); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Decrypt Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + } + return_code = message.data.subarray(0, 4).readUInt32LE() | 0; + resultData = message.data.subarray(4); + } + const error_codeStr = types_1.ErrorCode[return_code]; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Received data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, commandIdName: commandStr, commandId: message.commandId, resultCodeName: error_codeStr, resultCode: return_code, resultData: resultData?.toString("hex"), data: message.data.toString("hex"), seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber }); + let msg_state = this.messageStates.get(message.seqNo); + const goodSeqNumber = this.p2pSeqMapping.get(message.seqNo); + if (goodSeqNumber) { + this.p2pSeqMapping.delete(message.seqNo); + msg_state = this.messageStates.get(goodSeqNumber); + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Result data received - Detecting correct sequence number`, { stationSN: this.rawStation.station_sn, commandIdName: commandStr, commandId: message.commandId, seqNumber: message.seqNo, newSeqNumber: goodSeqNumber, p2pSeqMappingCount: this.p2pSeqMapping.size }); + message.seqNo = goodSeqNumber; + } + if (msg_state) { + if (msg_state.commandType === message.commandId) { + this._clearTimeout(msg_state.timeout); + const command_type = msg_state.nestedCommandType !== undefined ? msg_state.nestedCommandType : msg_state.commandType; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Result data for command received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: return_code, data: msg_state.data, customData: msg_state.customData }, resultCodeName: error_codeStr, resultCode: return_code }); + if (return_code === types_1.ErrorCode.ERROR_FAILED_TO_REQUEST) { + msg_state.returnCode = return_code; + this._sendCommand(msg_state); + } + else { + if (command_type !== types_1.CommandType.CMD_GATEWAYINFO) { + this.emit("command", { + command_type: command_type, + channel: msg_state.channel, + return_code: return_code, + customData: msg_state.customData + }); + } + this.messageStates.delete(message.seqNo); + if (command_type === types_1.CommandType.CMD_SMARTSAFE_SETTINGS || command_type === types_1.CommandType.CMD_SET_PAYLOAD_LOCKV12 || command_type === types_1.CommandType.CMD_TRANSFER_PAYLOAD) { + if (msg_state.customData) { + for (const index of Object.keys(this.customDataStaging)) { + const id = Number.parseInt(index); + if (new Date().getTime() - this.customDataStaging[id].timestamp > 2 * 60 * 1000) { + delete this.customDataStaging[id]; + } + } + this.customDataStaging[msg_state.nestedCommandType2 ? msg_state.nestedCommandType2 : msg_state.nestedCommandType ? msg_state.nestedCommandType : msg_state.commandType] = { + channel: msg_state.channel, + customData: msg_state.customData, + timestamp: new Date().getTime(), + }; + } + this.secondaryCommandTimeout = setTimeout(() => { + logging_1.rootP2PLogger.warn(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Result data for secondary command not received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: msg_state.returnCode, data: msg_state.data, customData: msg_state.customData } }); + this.secondaryCommandTimeout = undefined; + this.emit("secondary command", { + command_type: msg_state.nestedCommandType !== undefined ? msg_state.nestedCommandType : msg_state.commandType, + channel: msg_state.channel, + return_code: types_1.ErrorCode.ERROR_COMMAND_TIMEOUT, + customData: msg_state.customData + }); + this._clearESDDisconnectTimeout(); + this.sendQueuedMessage(); + }, this.MAX_COMMAND_RESULT_WAIT); + } + else { + this._clearESDDisconnectTimeout(); + this.sendQueuedMessage(); + } + if (msg_state.commandType === types_1.CommandType.CMD_START_REALTIME_MEDIA || + (msg_state.nestedCommandType === types_1.CommandType.CMD_START_REALTIME_MEDIA && msg_state.commandType === types_1.CommandType.CMD_SET_PAYLOAD) || + msg_state.commandType === types_1.CommandType.CMD_RECORD_VIEW || + (msg_state.nestedCommandType === http_1.ParamType.COMMAND_START_LIVESTREAM && msg_state.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD)) { + this.waitForStreamData(types_1.P2PDataType.VIDEO, true); + } + else if (msg_state.commandType === types_1.CommandType.CMD_DOWNLOAD_VIDEO) { + this.waitForStreamData(types_1.P2PDataType.BINARY, true); + } + else if (msg_state.commandType === types_1.CommandType.CMD_START_TALKBACK || (msg_state.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD && msg_state.nestedCommandType === types_1.IndoorSoloSmartdropCommandType.CMD_START_SPEAK)) { + if (return_code === types_1.ErrorCode.ERROR_PPCS_SUCCESSFUL) { + this.startTalkback(msg_state.channel); + } + else if (return_code === types_1.ErrorCode.ERROR_NOT_FIND_DEV) { + this.emit("talkback error", msg_state.channel, new error_1.TalkbackError("Someone is responding now.", { context: { station: this.rawStation.station_sn, channel: msg_state.channel } })); + } + else if (return_code === types_1.ErrorCode.ERROR_DEV_BUSY) { + this.emit("talkback error", msg_state.channel, new error_1.TalkbackError("Wait a second, device is busy.", { context: { station: this.rawStation.station_sn, channel: msg_state.channel } })); + } + else { + this.emit("talkback error", msg_state.channel, new error_1.TalkbackError("Connect failed please try again later.", { context: { station: this.rawStation.station_sn, channel: msg_state.channel } })); + } + } + else if (msg_state.commandType === types_1.CommandType.CMD_STOP_TALKBACK || (msg_state.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD && msg_state.nestedCommandType === types_1.IndoorSoloSmartdropCommandType.CMD_END_SPEAK)) { + this.stopTalkback(msg_state.channel); + } + else if (msg_state.commandType === types_1.CommandType.CMD_SDINFO_EX && resultData && resultData.length >= 8) { + const totalCapacity = resultData.subarray(0, 4).readUInt32LE(); + const availableCapacity = resultData.subarray(4, 8).readUInt32LE(); + if (return_code >= -1) { + this.emit("sd info ex", return_code, totalCapacity, availableCapacity); + } + } + } + } + else { + this.messageStates.delete(message.seqNo); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Expected different command type for received sequencenumber!`, { stationSN: this.rawStation.station_sn, msg_sequence: msg_state.sequence, msg_channel: msg_state.channel, msg_commandType: msg_state.commandType, seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber, message: { seqNo: message.seqNo, commandType: types_1.CommandType[message.commandId], channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); + logging_1.rootP2PLogger.warn(`P2P protocol instability detected for station ${this.rawStation.station_sn}. Please reinitialise the connection to solve the problem!`); + } + } + else if (message.commandId !== types_1.CommandType.CMD_PING && message.commandId !== types_1.CommandType.CMD_GET_DEVICE_PING && message.commandId !== types_1.CommandType.CMD_GATEWAYINFO) { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Received unexpected data!`, { stationSN: this.rawStation.station_sn, seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber, message: { seqNo: message.seqNo, commandType: types_1.CommandType[message.commandId], channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Unsupported response`, { stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, commandType: message.commandId, channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); + } + } + else if (message.dataType === types_1.P2PDataType.VIDEO || message.dataType === types_1.P2PDataType.BINARY) { + this.handleDataBinaryAndVideo(message); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented data type`, { stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, commandType: message.commandId, channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); + } + } + isIFrame(data, isKeyFrame) { + if (this.rawStation.station_sn.startsWith("T8410") || this.rawStation.station_sn.startsWith("T8400") || this.rawStation.station_sn.startsWith("T8401") || this.rawStation.station_sn.startsWith("T8411") || + this.rawStation.station_sn.startsWith("T8202") || this.rawStation.station_sn.startsWith("T8422") || this.rawStation.station_sn.startsWith("T8424") || this.rawStation.station_sn.startsWith("T8423") || + this.rawStation.station_sn.startsWith("T8130") || this.rawStation.station_sn.startsWith("T8131") || this.rawStation.station_sn.startsWith("T8420") || this.rawStation.station_sn.startsWith("T8440") || + this.rawStation.station_sn.startsWith("T8171") || this.rawStation.station_sn.startsWith("T8426") || + this.rawStation.station_sn.startsWith("T8441") || this.rawStation.station_sn.startsWith("T8442") || (0, utils_1.checkT8420)(this.rawStation.station_sn)) { + //TODO: Need to add battery doorbells as seen in source => T8210,T8220,T8221,T8222 + return isKeyFrame; + } + const iframe = (0, utils_1.isIFrame)(data); + if (iframe === false) { + // Fallback + return isKeyFrame; + } + return iframe; + } + waitForStreamData(dataType, sendStopCommand = false) { + if (this.currentMessageState[dataType].p2pStreamingTimeout) { + clearTimeout(this.currentMessageState[dataType].p2pStreamingTimeout); + } + this.currentMessageState[dataType].p2pStreamingTimeout = setTimeout(() => { + logging_1.rootP2PLogger.info(`Stopping the station stream for the device ${this.deviceSNs[this.currentMessageState[dataType].p2pStreamChannel]?.sn}, because we haven't received any data for ${this.MAX_STREAM_DATA_WAIT / 1000} seconds`); + this.endStream(dataType, sendStopCommand); + }, this.MAX_STREAM_DATA_WAIT); + } + handleDataBinaryAndVideo(message) { + if (!this.currentMessageState[message.dataType].invalidStream) { + switch (message.commandId) { + case types_1.CommandType.CMD_VIDEO_FRAME: + this.waitForStreamData(message.dataType, true); + const videoMetaData = { + streamType: 0, + videoSeqNo: 0, + videoFPS: 15, + videoWidth: 1920, + videoHeight: 1080, + videoTimestamp: 0, + videoDataLength: 0, + aesKey: "" + }; + const data_length = message.data.readUInt32LE(); + const isKeyFrame = message.data.subarray(4, 5).readUInt8() === 1 ? true : false; + videoMetaData.videoDataLength = message.data.subarray(0, 4).readUInt32LE(); + videoMetaData.streamType = message.data.subarray(5, 6).readUInt8(); + videoMetaData.videoSeqNo = message.data.subarray(6, 8).readUInt16LE(); + videoMetaData.videoFPS = message.data.subarray(8, 10).readUInt16LE(); + videoMetaData.videoWidth = message.data.subarray(10, 12).readUInt16LE(); + videoMetaData.videoHeight = message.data.subarray(12, 14).readUInt16LE(); + videoMetaData.videoTimestamp = message.data.subarray(14, 20).readUIntLE(0, 6); + let payloadStart = 22; + if (message.signCode > 0 && data_length >= 128) { + const key = message.data.subarray(22, 150); + const rsaKey = this.currentMessageState[message.dataType].rsaKey; + if (rsaKey) { + try { + videoMetaData.aesKey = rsaKey.decrypt(key).toString("hex"); + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Decrypted AES key`, { stationSN: this.rawStation.station_sn, key: videoMetaData.aesKey }); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.warn(`Error: AES key could not be decrypted! The entire stream is discarded.`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, key: key.toString("hex") }); + this.currentMessageState[message.dataType].invalidStream = true; + this.emit("livestream error", message.channel, new error_1.LivestreamError("Station AES key could not be decrypted! The entire stream is discarded.", { context: { station: this.rawStation.station_sn } })); + return; + } + } + else { + logging_1.rootP2PLogger.warn(`Private RSA key is missing! Stream could not be decrypted. The entire stream for station ${this.rawStation.station_sn} is discarded.`); + this.currentMessageState[message.dataType].invalidStream = true; + this.emit("livestream error", message.channel, new error_1.LivestreamError("Station Private RSA key is missing! Stream could not be decrypted. The entire stream is discarded.", { context: { station: this.rawStation.station_sn } })); + return; + } + payloadStart = 151; + } + let video_data; + if (videoMetaData.aesKey !== "") { + const encrypted_data = message.data.subarray(payloadStart, payloadStart + 128); + const unencrypted_data = message.data.subarray(payloadStart + 128, payloadStart + videoMetaData.videoDataLength); + video_data = Buffer.concat([(0, utils_1.decryptAESData)(videoMetaData.aesKey, encrypted_data), unencrypted_data]); + } + else { + video_data = message.data.subarray(payloadStart, payloadStart + videoMetaData.videoDataLength); + } + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME`, { stationSN: this.rawStation.station_sn, dataSize: message.data.length, metadata: videoMetaData, videoDataSize: video_data.length }); + this.currentMessageState[message.dataType].p2pStreamMetadata.videoFPS = videoMetaData.videoFPS; + this.currentMessageState[message.dataType].p2pStreamMetadata.videoHeight = videoMetaData.videoHeight; + this.currentMessageState[message.dataType].p2pStreamMetadata.videoWidth = videoMetaData.videoWidth; + if (!this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived) { + if (this.rawStation.station_sn.startsWith("T8410") || this.rawStation.station_sn.startsWith("T8400") || this.rawStation.station_sn.startsWith("T8401") || this.rawStation.station_sn.startsWith("T8411") || + this.rawStation.station_sn.startsWith("T8202") || this.rawStation.station_sn.startsWith("T8422") || this.rawStation.station_sn.startsWith("T8424") || this.rawStation.station_sn.startsWith("T8423") || + this.rawStation.station_sn.startsWith("T8130") || this.rawStation.station_sn.startsWith("T8131") || this.rawStation.station_sn.startsWith("T8420") || this.rawStation.station_sn.startsWith("T8440") || + this.rawStation.station_sn.startsWith("T8171") || this.rawStation.station_sn.startsWith("T8426") || + this.rawStation.station_sn.startsWith("T8441") || this.rawStation.station_sn.startsWith("T8442") || (0, utils_1.checkT8420)(this.rawStation.station_sn)) { + this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = videoMetaData.streamType === 1 ? types_1.VideoCodec.H264 : videoMetaData.streamType === 2 ? types_1.VideoCodec.H265 : (0, utils_1.getVideoCodec)(video_data); + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Video codec information received from packet`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); + } + else if (this.isIFrame(video_data, isKeyFrame)) { + this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = (0, utils_1.getVideoCodec)(video_data); + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Video codec extracted from video data`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); + } + else { + this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = (0, utils_1.getVideoCodec)(video_data); + if (this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec === types_1.VideoCodec.UNKNOWN) { + this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = videoMetaData.streamType === 1 ? types_1.VideoCodec.H264 : videoMetaData.streamType === 2 ? types_1.VideoCodec.H265 : types_1.VideoCodec.UNKNOWN; + if (this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec === types_1.VideoCodec.UNKNOWN) { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Unknown video codec`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Fallback, using video codec information received from packet`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Fallback, video codec extracted from video data`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); + } + } + this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived = true; + if (!this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived) { + this.currentMessageState[message.dataType].waitForAudioData = setTimeout(() => { + this.currentMessageState[message.dataType].waitForAudioData = undefined; + this.currentMessageState[message.dataType].p2pStreamMetadata.audioCodec = types_1.AudioCodec.NONE; + this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived = true; + if (this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived && this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived && this.currentMessageState[message.dataType].p2pStreamNotStarted) { + this.emitStreamStartEvent(message.dataType); + } + }, this.AUDIO_CODEC_ANALYZE_TIMEOUT); + } + } + if (this.currentMessageState[message.dataType].p2pStreamNotStarted) { + if (this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived && this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived) { + this.emitStreamStartEvent(message.dataType); + } + } + if (message.dataType === types_1.P2PDataType.VIDEO) { + if ((0, utils_1.findStartCode)(video_data)) { + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME: startcode found`, { stationSN: this.rawStation.station_sn, isKeyFrame: isKeyFrame, preFrameVideoDataLength: this.currentMessageState[message.dataType].preFrameVideoData.length }); + if (!this.currentMessageState[message.dataType].receivedFirstIFrame) + this.currentMessageState[message.dataType].receivedFirstIFrame = this.isIFrame(video_data, isKeyFrame); + if (this.currentMessageState[message.dataType].receivedFirstIFrame) { + if (this.currentMessageState[message.dataType].preFrameVideoData.length > this.MAX_VIDEO_PACKET_BYTES) + this.currentMessageState[message.dataType].preFrameVideoData = Buffer.from([]); + if (this.currentMessageState[message.dataType].preFrameVideoData.length > 0) { + this.currentMessageState[message.dataType].videoStream?.push(this.currentMessageState[message.dataType].preFrameVideoData); + } + this.currentMessageState[message.dataType].preFrameVideoData = Buffer.from(video_data); + } + else { + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME: Skipping because first frame is not an I frame.`, { stationSN: this.rawStation.station_sn }); + } + } + else { + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME: No startcode found`, { stationSN: this.rawStation.station_sn, isKeyFrame: isKeyFrame, preFrameVideoDataLength: this.currentMessageState[message.dataType].preFrameVideoData.length }); + if (this.currentMessageState[message.dataType].preFrameVideoData.length > 0) { + this.currentMessageState[message.dataType].preFrameVideoData = Buffer.concat([this.currentMessageState[message.dataType].preFrameVideoData, video_data]); + } + } + } + else if (message.dataType === types_1.P2PDataType.BINARY) { + this.currentMessageState[message.dataType].videoStream?.push(video_data); + } + break; + case types_1.CommandType.CMD_AUDIO_FRAME: + this.waitForStreamData(message.dataType, true); + const audioMetaData = { + audioType: types_1.AudioCodec.NONE, + audioSeqNo: 0, + audioTimestamp: 0, + audioDataLength: 0 + }; + audioMetaData.audioDataLength = message.data.subarray(0, 4).readUInt32LE(); + audioMetaData.audioType = message.data.subarray(5, 6).readUInt8(); + audioMetaData.audioSeqNo = message.data.subarray(6, 8).readUInt16LE(); + audioMetaData.audioTimestamp = message.data.subarray(8, 14).readUIntLE(0, 6); + const audio_data = Buffer.from(message.data.subarray(16)); + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_AUDIO_FRAME`, { stationSN: this.rawStation.station_sn, dataSize: message.data.length, metadata: audioMetaData, audioDataSize: audio_data.length }); + if (this.currentMessageState[message.dataType].waitForAudioData !== undefined) { + clearTimeout(this.currentMessageState[message.dataType].waitForAudioData); + } + if (!this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived) { + this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived = true; + this.currentMessageState[message.dataType].p2pStreamMetadata.audioCodec = audioMetaData.audioType === 0 ? types_1.AudioCodec.AAC : audioMetaData.audioType === 1 ? types_1.AudioCodec.AAC_LC : audioMetaData.audioType === 7 ? types_1.AudioCodec.AAC_ELD : types_1.AudioCodec.UNKNOWN; + } + if (this.currentMessageState[message.dataType].p2pStreamNotStarted) { + if (this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived && this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived) { + this.emitStreamStartEvent(message.dataType); + } + } + this.currentMessageState[message.dataType].audioStream?.push(audio_data); + break; + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented message`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, data: message.data.toString("hex") }); + break; + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Invalid stream data, dropping complete stream`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, data: message.data.toString("hex") }); + } + } + handleDataControl(message) { + try { + let data = message.data; + if (message.signCode > 0) { + //data = decryptP2PData(message.data, this.p2pKey!); + try { + data = (0, utils_1.decryptP2PData)(message.data, Buffer.from((0, utils_1.getP2PCommandEncryptionKey)(this.rawStation.station_sn, this.rawStation.p2p_did))); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Decrypt Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + } + logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Received data`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, data: message.data.toString("hex"), seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber }); + switch (message.commandId) { + case types_1.CommandType.CMD_GET_ALARM_MODE: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Alarm mode changed to: ${types_2.AlarmMode[data.readUIntBE(0, 1)]}`, { stationSN: this.rawStation.station_sn, }); + this.emit("alarm mode", data.readUIntBE(0, 1)); + break; + case types_1.CommandType.CMD_CAMERA_INFO: + try { + const cameraData = (0, utils_1.getNullTerminatedString)(data, "utf8"); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Camera info`, { stationSN: this.rawStation.station_sn, cameraInfo: cameraData }); + this.emit("camera info", (0, utils_3.parseJSON)(cameraData, logging_1.rootP2PLogger)); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Camera info - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_CONVERT_MP4_OK: + const totalBytes = data.subarray(1).readUInt32LE(); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_CONVERT_MP4_OK`, { stationSN: this.rawStation.station_sn, channel: message.channel, totalBytes: totalBytes }); + this.downloadTotalBytes = totalBytes; + this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming = true; + this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel = message.channel; + break; + case types_1.CommandType.CMD_WIFI_CONFIG: + const rssi = data.readInt32LE(); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_WIFI_CONFIG`, { stationSN: this.rawStation.station_sn, channel: message.channel, rssi: rssi }); + this.emit("wifi rssi", message.channel, rssi); + break; + case types_1.CommandType.CMD_DOWNLOAD_FINISH: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOWNLOAD_FINISH`, { stationSN: this.rawStation.station_sn, channel: message.channel }); + this.endStream(types_1.P2PDataType.BINARY); + break; + case types_1.CommandType.CMD_DOORBELL_NOTIFY_PAYLOAD: + try { + const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORBELL_NOTIFY_PAYLOAD`, { stationSN: this.rawStation.station_sn, payload: str }); + //TODO: Finish implementation, emit an event... + //VDBStreamInfo (1005) and VoltageEvent (1015) + //this.emit("", parseJSON(str, this.log) as xy); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORBELL_NOTIFY_PAYLOAD - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_NAS_SWITCH: + try { + const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NAS_SWITCH`, { stationSN: this.rawStation.station_sn, payload: str }); + this.emit("rtsp url", message.channel, str); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NAS_SWITCH - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.SUB1G_REP_UNPLUG_POWER_LINE: + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_UNPLUG_POWER_LINE`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); + const chargeType = data.subarray(0, 4).readUInt32LE(); + const batteryLevel = data.subarray(4, 8).readUInt32LE(); + this.emit("charging state", message.channel, chargeType, batteryLevel); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_UNPLUG_POWER_LINE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.SUB1G_REP_RUNTIME_STATE: + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_RUNTIME_STATE`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); + const batteryLevel = data.subarray(0, 4).readUInt32LE(); + const temperature = data.subarray(4, 8).readUInt32LE(); + this.emit("runtime state", message.channel, batteryLevel, temperature); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_RUNTIME_STATE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH: + try { + const enabled = data.readUIntBE(0, 1) === 1 ? true : false; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_FLOODLIGHT_MANUAL_SWITCH`, { stationSN: this.rawStation.station_sn, enabled: enabled, payload: data.toString() }); + this.emit("floodlight manual switch", message.channel, enabled); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_FLOODLIGHT_MANUAL_SWITCH - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_GET_DEVICE_PING: + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DEVICE_PING`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); + this.sendCommandDevicePing(message.channel); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DEVICE_PING - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_NOTIFY_PAYLOAD: + try { + logging_1.rootP2PLogger.debug(`Station Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); + const json = (0, utils_3.parseJSON)((0, utils_1.getNullTerminatedString)(data, "utf8"), logging_1.rootP2PLogger); + if (json !== undefined) { + if (device_1.Device.isLockWifi(this.rawStation.device_type, this.rawStation.station_sn)) { + //TODO: Implement notification payload or T8520 + if (json.cmd === types_1.CommandType.P2P_ADD_PW || json.cmd === types_1.CommandType.P2P_QUERY_PW || json.cmd === types_1.CommandType.P2P_GET_LOCK_PARAM || json.cmd === types_1.CommandType.P2P_GET_USER_AND_PW_ID) { + // encrypted data + //TODO: Handle decryption of encrypted Data (AES) - For decryption use the cached aeskey used for sending the command! + const aesKey = this.getLockAESKey(json.cmd); + if (aesKey !== undefined) { + const decryptedPayload = (0, utils_1.decryptPayloadData)(Buffer.from(json.payload, "base64"), Buffer.from(aesKey, "hex"), Buffer.from((0, utils_1.getLockVectorBytes)(this.rawStation.station_sn), "hex")).toString(); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock - Received`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decryptedPayload: decryptedPayload, aesKey: aesKey }); + switch (json.cmd) { + case types_1.CommandType.P2P_ADD_PW: + // decryptedPayload: {"code":0,"passwordId":"002C"} + break; + } + } + } + else if (json.cmd === types_1.CommandType.P2P_QUERY_STATUS_IN_LOCK) { + // Example: {"code":0,"slBattery":"82","slState":"4","trigger":2} + const payload = json.payload; + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, payload.slBattery); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, payload.slState); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Not implemented`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); + } + } + else if (json.cmd === types_1.CommandType.P2P_QUERY_STATUS_IN_LOCK) { + // Example: {"code":0,"slBattery":"99","slState":"4","slOpenDirection":"1","trigger":2} + const payload = json.payload; + this.emit("parameter", message.channel, types_1.CommandType.CMD_GET_BATTERY, payload.slBattery); + this.emit("parameter", message.channel, types_1.CommandType.CMD_DOORLOCK_GET_STATE, payload.slState); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_NIGHT_VISION_SIDE, payload.slOpenDirection); + } + else if (json.cmd === types_1.CommandType.CMD_DOORLOCK_P2P_SEQ) { + if (device_1.Device.isLockWifi(this.rawStation.devices[0]?.device_type, this.rawStation.devices[0]?.device_sn) || device_1.Device.isLockWifiNoFinger(this.rawStation.devices[0]?.device_type)) { + const payload = json.payload; + if (payload.seq_num !== undefined) { + this.lockSeqNumber = payload.seq_num; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Lock sequence number`, { stationSN: this.rawStation.station_sn, lockSeqNumber: this.lockSeqNumber, payload: payload }); + } + if (payload.lock_cmd > 0) { + this.emit("sequence error", message.channel, payload.lock_cmd, payload.seq_num, payload.stationSn); + } + } + else { + const payload = json.payload; + if (payload.seq_num !== undefined) { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Lock sequence number`, { stationSN: this.rawStation.station_sn, oldSequenceNumber: this.lockSeqNumber, newSequenceNumber: this.lockSeqNumber + 1, payload: payload }); + this.lockSeqNumber = payload.seq_num + 1; + } + if (payload.lock_cmd > 0) { + if (device_1.Device.isLockWifiR10(this.rawStation.devices[0]?.device_type) || device_1.Device.isLockWifiR20(this.rawStation.devices[0]?.device_type)) { + this.emit("sequence error", message.channel, types_1.ESLCommand[types_1.ESLBleCommand[payload.lock_cmd]], payload.seq_num, payload.dev_sn); + } + else if (device_1.Device.isLockWifiT8506(this.rawStation.devices[0]?.device_type) || device_1.Device.isLockWifiT8502(this.rawStation.devices[0]?.device_type) || device_1.Device.isLockWifiT8510P(this.rawStation.devices[0]?.device_type, this.rawStation.devices[0]?.device_sn) || device_1.Device.isLockWifiT8520P(this.rawStation.devices[0]?.device_type, this.rawStation.devices[0]?.device_sn)) { + this.emit("sequence error", message.channel, types_1.SmartLockCommand[payload.bus_type == types_1.SmartLockFunctionType.TYPE_2 ? types_1.SmartLockBleCommandFunctionType2[payload.lock_cmd] : types_1.SmartLockBleCommandFunctionType1[payload.lock_cmd]], payload.seq_num, payload.dev_sn); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Lock sequence number - Unknwon device`, { stationSN: this.rawStation.station_sn, oldSequenceNumber: this.lockSeqNumber, newSequenceNumber: this.lockSeqNumber + 1, payload: payload }); + } + } + } + } + else if (json.cmd === types_1.CommandType.CMD_DOORLOCK_DATA_PASS_THROUGH) { + const payload = json.payload; + if (this.deviceSNs[message.channel] !== undefined) { + if (payload.lock_payload !== undefined) { + const decoded = (0, utils_1.decodeBase64)((0, utils_1.decodeLockPayload)(Buffer.from(payload.lock_payload))); + const key = (0, utils_1.generateBasicLockAESKey)(this.deviceSNs[message.channel].adminUserId, this.rawStation.station_sn); + const iv = (0, utils_1.getLockVectorBytes)(this.rawStation.station_sn); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORLOCK_DATA_PASS_THROUGH`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, key: key, iv: iv, decoded: decoded.toString("hex") }); + payload.lock_payload = (0, utils_1.decryptLockAESData)(key, iv, decoded).toString("hex"); + switch (payload.lock_cmd) { + case types_1.ESLBleCommand.NOTIFY: + const notifyBuffer = Buffer.from(payload.lock_payload, "hex"); + this.emit("parameter", message.channel, types_1.CommandType.CMD_GET_BATTERY, notifyBuffer.subarray(3, 4).readInt8().toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_DOORLOCK_GET_STATE, notifyBuffer.subarray(6, 7).readInt8().toString()); + break; + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORLOCK_DATA_PASS_THROUGH - Not implemented`, { stationSN: this.rawStation.station_sn, message: data.toString() }); + break; + } + } + } + } + else if (json.cmd === types_1.CommandType.CMD_SET_PAYLOAD_LOCKV12) { + const payload = json.payload; + if (payload.lock_payload !== undefined) { + const fac = ble_1.BleCommandFactory.parseLockV12(payload.lock_payload); + if (fac.getCommandCode() !== types_1.ESLBleCommand.NOTIFY) { + const aesKey = this.getLockAESKey(fac.getCommandCode()); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 - Received`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), aesKey: aesKey }); + let data = fac.getData(); + try { + if (aesKey !== undefined) { + data = (0, utils_1.decryptPayloadData)(data, Buffer.from(aesKey, "hex"), Buffer.from((0, utils_1.getLockVectorBytes)(this.rawStation.station_sn), "hex")); + } + const returnCode = data.readInt8(0); + const commandType = Number.parseInt(types_1.ESLCommand[types_1.ESLBleCommand[fac.getCommandCode()]]); + const customData = { + ...this.customDataStaging[commandType] + }; + if (this.customDataStaging[commandType]) { + const result = { + channel: customData.channel, + command_type: commandType, + return_code: returnCode, + customData: customData.customData + }; + this.emit("secondary command", result); + delete this.customDataStaging[commandType]; + } + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 return code: ${returnCode}`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decoded: data.toString("hex"), bleCommandCode: types_1.ESLBleCommand[fac.getCommandCode()], returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); + const parsePayload = new utils_2.ParsePayload(data.subarray(1)); + switch (fac.getCommandCode()) { + case types_1.ESLBleCommand.QUERY_STATUS_IN_LOCK: + case types_1.ESLBleCommand.NOTIFY: + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, parsePayload.readInt8(ble_1.BleParameterIndex.TWO).toString()); + break; + case types_1.ESLBleCommand.GET_LOCK_PARAM: + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_LOCK_SOUND, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.TWO).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER, parsePayload.readUint16LE(ble_1.BleParameterIndex.THREE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE, parsePayload.readInt8(ble_1.BleParameterIndex.FOUR).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.FIVE)); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.SIX)); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.SEVEN).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT, parsePayload.readInt8(ble_1.BleParameterIndex.EIGHT).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN, parsePayload.readUint16LE(ble_1.BleParameterIndex.NINE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS, parsePayload.readInt8(ble_1.BleParameterIndex.TEN).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE, parsePayload.readInt8(ble_1.BleParameterIndex.ELEVEN).toString()); + //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_LOG, parsePayload.readInt8(BleParameterIndex.TWELVE).toString()); + //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_WIFI_STATUS, parsePayload.readInt8(BleParameterIndex.THIRTEEN).toString()); + break; + case types_1.ESLBleCommand.ADD_PW: + if (customData && customData.customData && customData.customData.command && customData.customData.command.name === http_1.CommandName.DeviceAddUser) { + this.api.updateUserPassword(customData.customData.command.value?.deviceSN, customData.customData.command.value?.shortUserId, parsePayload.readStringHex(ble_1.BleParameterIndex.ONE), customData.customData.command.value?.schedule); + } + break; + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Not implemented`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); + break; + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 unable to decrypt (maybe event from other lock connection)`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, payload: payload }); + } + this._clearSecondaryCommandTimeout(); + this.sendQueuedMessage(); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 - Received notify`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 - Unexpected response`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); + } + } + else if (json.cmd === types_1.CommandType.CMD_TRANSFER_PAYLOAD) { + const payload = json.payload; + if (payload.lock_payload !== undefined) { + try { + const fac = ble_1.BleCommandFactory.parseSmartLock(payload.lock_payload); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Received`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); + if (!fac.isPartial()) { + let data = fac.getData(); + if (data) { + if (fac.isEncrypted()) { + const aesKey = (0, utils_1.generateSmartLockAESKey)(this.rawStation.member.admin_user_id, Number.parseInt(payload.time, 16)); + const iv = (0, utils_1.getLockVectorBytes)(payload.dev_sn); + if (aesKey !== undefined) { + data = (0, utils_1.decryptPayloadData)(data, aesKey, Buffer.from(iv, "hex")); + } + } + if (data.length > 0 && fac.getDataType() !== undefined) { + const returnCode = data.readInt8(0); + const functionTypeCommand = fac.getDataType() === types_1.SmartLockFunctionType.TYPE_2 ? types_1.SmartLockBleCommandFunctionType2 : types_1.SmartLockBleCommandFunctionType1; + const commandType = Number.parseInt(types_1.SmartLockCommand[functionTypeCommand[fac.getCommandCode()]]); + const customData = { + ...this.customDataStaging[commandType] + }; + if (this.customDataStaging[commandType]) { + const result = { + channel: customData.channel, + command_type: commandType, + return_code: returnCode, + customData: customData.customData + }; + this.emit("secondary command", result); + delete this.customDataStaging[commandType]; + } + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock return code: ${returnCode}`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decoded: data.toString("hex"), bleCommandCode: functionTypeCommand[fac.getCommandCode()], returnCode: returnCode }); + const parsePayload = new utils_2.ParsePayload(data.subarray(1)); + if (fac.getDataType() === types_1.SmartLockFunctionType.TYPE_2) { + switch (fac.getCommandCode()) { + case types_1.SmartLockBleCommandFunctionType2.QUERY_STATUS_IN_LOCK: + case types_1.SmartLockBleCommandFunctionType2.NOTIFY: + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, parsePayload.readInt8(ble_1.BleParameterIndex.TWO).toString()); + break; + case types_1.SmartLockBleCommandFunctionType2.GET_LOCK_PARAM: + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER, parsePayload.readUint16LE(ble_1.BleParameterIndex.TWO).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE, parsePayload.readInt8(ble_1.BleParameterIndex.THREE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.FOUR)); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.FIVE)); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.SIX).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE, parsePayload.readInt8(ble_1.BleParameterIndex.SEVEN).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT, parsePayload.readInt8(ble_1.BleParameterIndex.EIGHT).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS, parsePayload.readInt8(ble_1.BleParameterIndex.NINE).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN, parsePayload.readUint16LE(ble_1.BleParameterIndex.TEN).toString()); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_LOCK_SOUND, parsePayload.readInt8(ble_1.BleParameterIndex.ELEVEN).toString()); + //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_WIFI_STATUS, parsePayload.readInt8(BleParameterIndex.TWELVE).toString()); + //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_LOG, parsePayload.readInt8(BleParameterIndex.THIRTEEN).toString()); + break; + case types_1.SmartLockBleCommandFunctionType2.ADD_PW: + if (customData && customData.customData && customData.customData.command && customData.customData.command.name === http_1.CommandName.DeviceAddUser) { + this.api.updateUserPassword(customData.customData.command.value?.deviceSN, customData.customData.command.value?.shortUserId, parsePayload.readStringHex(ble_1.BleParameterIndex.ONE), customData.customData.command.value?.schedule); + } + break; + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Not implemented`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); + break; + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Not implemented`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Unsupported data length or missint function type`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - No data`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Partial data`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, payload: payload }); + } + this._clearSecondaryCommandTimeout(); + this.sendQueuedMessage(); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Unexpected response`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); + } + } + else if (device_1.Device.isSmartSafe(this.rawStation.device_type)) { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd }); + switch (json.cmd) { + case types_1.CommandType.CMD_SMARTSAFE_SETTINGS: + { + const payload = json.payload; + try { + const data = (0, utils_1.decodeSmartSafeData)(this.rawStation.station_sn, Buffer.from(payload.data, "hex")); + const returnCode = data.data.readInt8(0); + const customData = { + ...this.customDataStaging[payload.prj_id] + }; + if (this.customDataStaging[payload.prj_id]) { + const result = { + channel: customData.channel, + command_type: payload.prj_id, + return_code: returnCode, + customData: customData.customData + }; + this.emit("secondary command", result); + delete this.customDataStaging[payload.prj_id]; + } + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe return code: ${data.data.readInt8(0)}`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decoded: data, commandCode: types_1.SmartSafeCommandCode[data.commandCode], returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, payload: payload }); + } + this._clearSecondaryCommandTimeout(); + this.sendQueuedMessage(); + break; + } + case types_1.CommandType.CMD_SMARTSAFE_STATUS_UPDATE: + { + const payload = json.payload; + switch (payload.event_type) { + case types_3.SmartSafeEvent.LOCK_STATUS: + { + const eventValues = payload.event_value; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe Status update - LOCK_STATUS`, { stationSN: this.rawStation.station_sn, eventValues: eventValues }); + /* + type values: + 1: Unlocked by PIN + 2: Unlocked by User + 3: Unlocked by key + 4: Unlocked by App + 5: Unlocked by Dual Unlock + */ + if (eventValues.action === 0) { + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "0"); + } + else if (eventValues.action === 1) { + this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "1"); + } + else if (eventValues.action === 2) { + this.emit("jammed", message.channel); + } + else if (eventValues.action === 3) { + this.emit("low battery", message.channel); + } + break; + } + case types_3.SmartSafeEvent.SHAKE_ALARM: + this.emit("shake alarm", message.channel, payload.event_value); + break; + case types_3.SmartSafeEvent.ALARM_911: + this.emit("911 alarm", message.channel, payload.event_value); + break; + //case SmartSafeEvent.BATTERY_STATUS: + // break; + case types_3.SmartSafeEvent.INPUT_ERR_MAX: + this.emit("wrong try-protect alarm", message.channel); + break; + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe Status update - Not implemented`, { stationSN: this.rawStation.station_sn, message: data.toString() }); + break; + } + break; + } + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe - Not implemented`, { stationSN: this.rawStation.station_sn, message: data.toString() }); + break; + } + } + else if (json.cmd === types_1.CommandType.CMD_ENTRY_SENSOR_STATUS) { + // {"cmd":1550,"payload":{"status":1}} + const payload = json.payload; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD EntrySensor Status update`, { stationSN: this.rawStation.station_sn, status: payload?.status }); + if (payload) { + this.emit("sensor status", message.channel, payload.status); + } + } + else if (json.cmd === types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS) { + // {"cmd":7500,"payload":{"type":24,"notify_tag":"","door_id":2}} + const payload = json.payload; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD GarageDoor Status update`, { stationSN: this.rawStation.station_sn, doorId: payload?.door_id, status: payload?.type, notify_tag: payload?.notify_tag }); + if (payload) { + this.emit("garage door status", message.channel, payload.door_id, payload.type); + } + } + else if (json.cmd === types_1.CommandType.CMD_STORAGE_INFO_HB3) { + const payload = json.payload; + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD StorageInfo HB3 update`, { stationSN: this.rawStation.station_sn, body: payload?.body }); + if (payload) { + this.emit("storage info hb3", message.channel, payload.body); + } + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Not implemented`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); + } + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString() } }); + } + break; + case types_1.CommandType.CMD_GET_DELAY_ALARM: + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DELAY_ALARM :`, { stationSN: this.rawStation.station_sn, payload: data.toString("hex") }); + //When the alarm is armed, CMD_GET_DELAY_ALARM is called with event data 0, so ignore it + const alarmEventNumber = data.subarray(0, 4).readUInt32LE(); + const alarmDelay = data.subarray(4, 8).readUInt32LE(); + if (alarmEventNumber === 0) { + this.emit("alarm armed"); + } + else { + this.emit("alarm delay", alarmEventNumber, alarmDelay); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DELAY_ALARM - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_SET_TONE_FILE: + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_TONE_FILE :`, { stationSN: this.rawStation.station_sn, payload: data.toString("hex") }); + const alarmEventNumber = data.subarray(0, 4).readUInt32LE(); + this.emit("alarm event", alarmEventNumber); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_TONE_FILE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_SET_SNOOZE_MODE: + // Received for station managed devices when snooze time ends + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_SNOOZE_MODE`, { stationSN: this.rawStation.station_sn, payload: Buffer.from(data.toString(), "base64").toString() }); + this.emit("parameter", message.channel, types_1.CommandType.CMD_SET_SNOOZE_MODE, data.toString()); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_SNOOZE_MODE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_PING: + // Ignore + break; + case types_1.CommandType.CMD_DATABASE_IMAGE: + // Received data for preview image download + try { + const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE_IMAGE`, { stationSN: this.rawStation.station_sn, message: str }); + const image = (0, utils_3.parseJSON)(str, logging_1.rootP2PLogger); + this.emit("image download", image.file, (0, utils_2.decodeImage)(this.rawStation.p2p_did, Buffer.from(image.content, "base64"))); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE_IMAGE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString() } }); + } + break; + case types_1.CommandType.CMD_GET_TFCARD_STATUS: + try { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_TFCARD_STATUS :`, { stationSN: this.rawStation.station_sn, payload: data.toString("hex") }); + const tfCardStatus = data.subarray(0, 4).readUInt32LE(); + this.emit("tfcard status", message.channel, tfCardStatus); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_TFCARD_STATUS - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + break; + case types_1.CommandType.CMD_DATABASE: + try { + const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE :`, { stationSN: this.rawStation.station_sn, payload: str }); + const databaseResponse = (0, utils_3.parseJSON)(str, logging_1.rootP2PLogger); + switch (databaseResponse.cmd) { + case types_1.CommandType.CMD_DATABASE_QUERY_LATEST_INFO: + { + let data = []; + if (databaseResponse.data !== undefined && databaseResponse.data !== "[]") + data = databaseResponse.data; + const result = []; + for (const record of data) { + if (record.payload.crop_hb3_path !== "") { + result.push({ + device_sn: record.device_sn, + event_count: record.payload.event_count, + crop_local_path: record.payload.crop_hb3_path + }); + } + else { + result.push({ + device_sn: record.device_sn, + event_count: record.payload.event_count, + crop_cloud_path: record.payload.crop_cloud_path + }); + } + } + this.emit("database query latest", databaseResponse.mIntRet, result); + break; + } + case types_1.CommandType.CMD_DATABASE_COUNT_BY_DATE: { + let data = []; + if (databaseResponse.data !== undefined && databaseResponse.data !== "[]") + data = databaseResponse.data; + const result = []; + for (const record of data) { + result.push({ + day: date_and_time_1.default.parse(record.days, "YYYYMMDD"), + count: record.count + }); + } + this.emit("database count by date", databaseResponse.mIntRet, result); + break; + } + case types_1.CommandType.CMD_DATABASE_QUERY_LOCAL: { + let data = []; + if (databaseResponse.data !== undefined && databaseResponse.data !== "[]") + data = databaseResponse.data; + const result = new sweet_collections_1.SortedMap((a, b) => a - b); + for (const record of data) { + for (const tableRecord of record.payload) { + let tmpRecord = result.get(tableRecord.record_id); + if (tmpRecord === undefined) { + tmpRecord = { + record_id: tableRecord.record_id, + device_sn: tableRecord.device_sn, + station_sn: tableRecord.station_sn, + }; + } + if (record.table_name === "history_record_info") { + tmpRecord.history = { + device_type: tableRecord.device_type, + account: tableRecord.account, + start_time: date_and_time_1.default.parse(tableRecord.start_time, "YYYY-MM-DD HH:mm:ss"), + end_time: date_and_time_1.default.parse(tableRecord.end_time, "YYYY-MM-DD HH:mm:ss"), + frame_num: tableRecord.frame_num, + storage_type: tableRecord.storage_type, + storage_cloud: tableRecord.storage_cloud, + cipher_id: tableRecord.cipher_id, + vision: tableRecord.vision, + video_type: tableRecord.video_type, + has_lock: tableRecord.has_lock, + automation_id: tableRecord.automation_id, + trigger_type: tableRecord.trigger_type, + push_mode: tableRecord.push_mode, + mic_status: tableRecord.mic_status, + res_change: tableRecord.res_change, + res_best_width: tableRecord.res_best_width, + res_best_height: tableRecord.res_best_height, + self_learning: tableRecord.self_learning, + storage_path: tableRecord.storage_path, + thumb_path: tableRecord.thumb_path, + write_status: tableRecord.write_status, + cloud_path: tableRecord.cloud_path, + folder_size: tableRecord.folder_size, + storage_status: tableRecord.storage_status, + storage_label: tableRecord.storage_label, + time_zone: tableRecord.time_zone, + mp4_cloud: tableRecord.mp4_cloud, + snapshot_cloud: tableRecord.snapshot_cloud, + table_version: tableRecord.table_version, + }; + } + else if (record.table_name === "record_crop_picture_info") { + if (tmpRecord.picture === undefined) { + tmpRecord.picture = []; + } + tmpRecord.picture.push({ + picture_id: tableRecord.picture_id, + detection_type: tableRecord.detection_type, + person_id: tableRecord.person_id, + crop_path: tableRecord.crop_path, + event_time: date_and_time_1.default.parse(tableRecord.event_time, "YYYY-MM-DD HH:mm:ss"), + person_recog_flag: tableRecord.person_recog_flag, + crop_pic_quality: tableRecord.crop_pic_quality, + pic_marking_flag: tableRecord.pic_marking_flag, + group_id: tableRecord.group_id, + crop_id: tableRecord.crop_id, + start_time: date_and_time_1.default.parse(tableRecord.start_time, "YYYY-MM-DD HH:mm:ss"), + storage_type: tableRecord.storage_type, + storage_status: tableRecord.storage_status, + storage_label: tableRecord.storage_label, + table_version: tableRecord.table_version, + update_time: tableRecord.update_time, + }); + } + else { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented - CMD_DATABASE_QUERY_LOCAL - table_name: ${record.table_name}`, { stationSN: this.rawStation.station_sn }); + } + result.set(tableRecord.record_id, tmpRecord); + } + } + this.emit("database query local", databaseResponse.mIntRet, Array.from(result.values())); + break; + } + case types_1.CommandType.CMD_DATABASE_DELETE: { + const data = databaseResponse.data; + let failed_delete = []; + if (databaseResponse.data !== undefined && data.failed_delete !== "[]") + failed_delete = data.failed_delete; + this.emit("database delete", databaseResponse.mIntRet, failed_delete); + break; + } + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented - CMD_DATABASE message`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, databaseResponse: databaseResponse }); + break; + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString() } }); + } + break; + case types_1.CommandType.CMD_GATEWAYINFO: + const cipherID = data.subarray(0, 2).readUInt16LE(); + //const unknownNumber = data.subarray(2, 2).readUInt16LE(); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - cipherID`, { stationSN: this.rawStation.station_sn, channel: message.channel, data: data.toString("hex"), cipherID: cipherID }); + const encryptedKey = (0, utils_1.readNullTerminatedBuffer)(data.subarray(4)); + this.api.getCipher(/*this.rawStation.station_sn, */ cipherID, this.rawStation.member.admin_user_id).then((cipher) => { + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - get cipher with cipherID`, { stationSN: this.rawStation.station_sn, channel: message.channel, data: data.toString("hex"), cipherID: cipherID, cipher: JSON.stringify(cipher) }); + if (cipher !== undefined) { + this.encryption = types_1.EncryptionType.LEVEL_2; + const rsa = (0, utils_1.getRSAPrivateKey)(cipher.private_key, this.enableEmbeddedPKCS1Support); + this.p2pKey = rsa.decrypt(encryptedKey); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - set encryption level 2`, { stationSN: this.rawStation.station_sn, key: this.p2pKey.toString("hex") }); + } + else { + this.encryption = types_1.EncryptionType.LEVEL_1; + this.p2pKey = Buffer.from((0, utils_1.getP2PCommandEncryptionKey)(this.rawStation.station_sn, this.rawStation.p2p_did)); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - set encryption level 1`, { stationSN: this.rawStation.station_sn, key: this.p2pKey.toString("hex") }); + } + this._clearTimeout(this.messageStates.get(message.seqNo)?.timeout); + this.p2pSeqMapping.forEach((value, key, map) => { + if (value === message.seqNo) { + map.delete(key); + } + }); + this.p2pDataSeqNumber--; + this.messageStates.delete(message.seqNo); + this.sendQueuedMessage(); + }).catch((err) => { + const error = (0, error_1.ensureError)(err); + this.encryption = types_1.EncryptionType.LEVEL_1; + this.p2pKey = Buffer.from((0, utils_1.getP2PCommandEncryptionKey)(this.rawStation.station_sn, this.rawStation.p2p_did)); + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - set encryption level 1 (fallback)`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") }, key: this.p2pKey.toString("hex") }); + this._clearTimeout(this.messageStates.get(message.seqNo)?.timeout); + this.p2pSeqMapping.forEach((value, key, map) => { + if (value === message.seqNo) { + map.delete(key); + } + }); + this.p2pDataSeqNumber--; + this.messageStates.delete(message.seqNo); + this.sendQueuedMessage(); + }); + break; + default: + logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, data: data.toString("hex") }); + break; + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); + } + } + async sendAck(address, dataType, seqNo) { + const num_pending_acks = 1; // Max possible: 17 in one ack packet + const pendingAcksBuffer = Buffer.allocUnsafe(2); + pendingAcksBuffer.writeUInt16BE(num_pending_acks, 0); + const seqBuffer = Buffer.allocUnsafe(2); + seqBuffer.writeUInt16BE(seqNo, 0); + const payload = Buffer.concat([dataType, pendingAcksBuffer, seqBuffer]); + await this.sendMessage(`Send ack`, address, types_1.RequestMessageType.ACK, payload); + } + getDataType(input) { + if (input.compare(types_1.P2PDataTypeHeader.DATA) === 0) { + return types_1.P2PDataType.DATA; + } + else if (input.compare(types_1.P2PDataTypeHeader.VIDEO) === 0) { + return types_1.P2PDataType.VIDEO; + } + else if (input.compare(types_1.P2PDataTypeHeader.CONTROL) === 0) { + return types_1.P2PDataType.CONTROL; + } + else if (input.compare(types_1.P2PDataTypeHeader.BINARY) === 0) { + return types_1.P2PDataType.BINARY; + } + return types_1.P2PDataType.UNKNOWN; + } + async close() { + this.terminating = true; + this._clearLookupTimeout(); + this._clearLocalLookupRetryTimeout(); + this._clearLookupRetryTimeout(); + this._clearConnectTimeout(); + this._clearHeartbeatTimeout(); + this._clearMessageStateTimeouts(); + this._clearMessageVideoStateTimeouts(); + this._clearSecondaryCommandTimeout(); + this.sendQueue = []; + if (this.socket) { + if (this.connected) { + await this.sendMessage(`Send end connection`, this.connectAddress, types_1.RequestMessageType.END); + this._disconnected(); + } + else { + this._initialize(); + } + } + } + getHeartbeatInterval() { + return this.HEARTBEAT_INTERVAL; + } + onClose() { + this.socket.removeAllListeners(); + this.socket = (0, dgram_1.createSocket)("udp4"); + this.socket.on("message", (msg, rinfo) => this.handleMsg(msg, rinfo)); + this.socket.on("error", (error) => this.onError(error)); + this.socket.on("close", () => this.onClose()); + this.binded = false; + this._disconnected(); + } + onError(err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.debug(`Socket Error:`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn }); + } + scheduleHeartbeat() { + if (this.isConnected()) { + this.sendPing(this.connectAddress); + this.heartbeatTimeout = setTimeout(() => { + this.scheduleHeartbeat(); + }, this.getHeartbeatInterval()); + } + else { + logging_1.rootP2PLogger.debug(`Heartbeat not activated because no connection is present!`, { stationSN: this.rawStation.station_sn }); + } + } + scheduleP2PKeepalive() { + if (this.isConnected()) { + this.sendCommandPing(http_1.Station.CHANNEL); + this.keepaliveTimeout = setTimeout(() => { + this.scheduleP2PKeepalive(); + }, this.KEEPALIVE_INTERVAL); + this.closeEnergySavingDevice(); + } + else { + logging_1.rootP2PLogger.debug(`P2P keepalive not activated because no connection is present`, { stationSN: this.rawStation.station_sn }); + } + } + getDownloadRSAPrivateKey() { + if (this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey === null) { + this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey = (0, utils_1.getNewRSAPrivateKey)(this.enableEmbeddedPKCS1Support); + } + return this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey; + } + setDownloadRSAPrivateKeyPem(pem) { + this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey = (0, utils_1.getRSAPrivateKey)(pem, this.enableEmbeddedPKCS1Support); + } + getRSAPrivateKey() { + return this.currentMessageState[types_1.P2PDataType.VIDEO].rsaKey; + } + initializeStream(datatype) { + this.currentMessageState[datatype].videoStream?.destroy(); + this.currentMessageState[datatype].audioStream?.destroy(); + this.currentMessageState[datatype].videoStream = null; + this.currentMessageState[datatype].audioStream = null; + this.currentMessageState[datatype].videoStream = new stream_1.Readable({ autoDestroy: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + read() { } /*, + + destroy(this, error, _callback) { + if (error) { + this.emit("error", error); + } + this.emit("end"); + this.emit("close"); + }*/ + }); + this.currentMessageState[datatype].audioStream = new stream_1.Readable({ autoDestroy: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + read() { } /*, + + destroy(this, error, _callback) { + if (error) { + this.emit("error", error); + } + this.emit("end"); + this.emit("close"); + }*/ + }); + this.currentMessageState[datatype].p2pStreaming = false; + if (this.currentMessageState[datatype].waitForSeqNoTimeout !== undefined) { + clearTimeout(this.currentMessageState[datatype].waitForSeqNoTimeout); + this.currentMessageState[datatype].waitForSeqNoTimeout = undefined; + } + if (this.currentMessageState[datatype].waitForAudioData !== undefined) { + clearTimeout(this.currentMessageState[datatype].waitForAudioData); + this.currentMessageState[datatype].waitForAudioData = undefined; + } + } + endStream(datatype, sendStopCommand = false) { + if (this.currentMessageState[datatype].p2pStreaming) { + if (sendStopCommand) { + switch (datatype) { + case types_1.P2PDataType.VIDEO: + this.sendCommandWithInt({ + commandType: types_1.CommandType.CMD_STOP_REALTIME_MEDIA, + value: this.currentMessageState[datatype].p2pStreamChannel, + channel: this.currentMessageState[datatype].p2pStreamChannel + }, { + command: { + name: http_1.CommandName.DeviceStopLivestream + } + }); + break; + case types_1.P2PDataType.BINARY: + this.sendCommandWithInt({ + commandType: types_1.CommandType.CMD_DOWNLOAD_CANCEL, + value: this.currentMessageState[datatype].p2pStreamChannel, + strValueSub: this.rawStation.member.admin_user_id, + channel: this.currentMessageState[datatype].p2pStreamChannel + }, { + command: { + name: http_1.CommandName.DeviceCancelDownload + } + }); + break; + } + } + this.currentMessageState[datatype].p2pStreaming = false; + this.currentMessageState[datatype].videoStream?.push(null); + this.currentMessageState[datatype].audioStream?.push(null); + if (this.currentMessageState[datatype].p2pStreamingTimeout) { + clearTimeout(this.currentMessageState[datatype].p2pStreamingTimeout); + this.currentMessageState[datatype].p2pStreamingTimeout = undefined; + } + if (!this.currentMessageState[datatype].invalidStream && !this.currentMessageState[datatype].p2pStreamNotStarted) + this.emitStreamStopEvent(datatype); + if (this.currentMessageState[datatype].queuedData.size > 0) { + this.expectedSeqNo[datatype] = this._incrementSequence([...this.currentMessageState[datatype].queuedData.keys()][this.currentMessageState[datatype].queuedData.size - 1]); + } + this.initializeMessageBuilder(datatype); + this.initializeMessageState(datatype, this.currentMessageState[datatype].rsaKey); + this.initializeStream(datatype); + this.closeEnergySavingDevice(); + } + } + endRTSPStream(channel) { + if (this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel]) { + this.currentMessageState[types_1.P2PDataType.DATA].rtspStream[channel] = false; + this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel] = false; + this.emit("rtsp livestream stopped", channel); + } + } + emitStreamStartEvent(datatype) { + this.currentMessageState[datatype].p2pStreamNotStarted = false; + if (datatype === types_1.P2PDataType.VIDEO) { + this.emit("livestream started", this.currentMessageState[datatype].p2pStreamChannel, this.currentMessageState[datatype].p2pStreamMetadata, this.currentMessageState[datatype].videoStream, this.currentMessageState[datatype].audioStream); + } + else if (datatype === types_1.P2PDataType.BINARY) { + this.emit("download started", this.currentMessageState[datatype].p2pStreamChannel, this.currentMessageState[datatype].p2pStreamMetadata, this.currentMessageState[datatype].videoStream, this.currentMessageState[datatype].audioStream); + } + } + emitStreamStopEvent(datatype) { + if (datatype === types_1.P2PDataType.VIDEO) { + this.emit("livestream stopped", this.currentMessageState[datatype].p2pStreamChannel); + } + else if (datatype === types_1.P2PDataType.BINARY) { + this.emit("download finished", this.currentMessageState[datatype].p2pStreamChannel); + } + } + isStreaming(channel, datatype) { + if (this.currentMessageState[datatype].p2pStreamChannel === channel) + return this.currentMessageState[datatype].p2pStreaming; + return false; + } + isLiveStreaming(channel) { + return this.isStreaming(channel, types_1.P2PDataType.VIDEO); + } + isCurrentlyStreaming() { + for (const element of Object.values(this.currentMessageState)) { + if (element.p2pStreaming || element.p2pTalkback) + return true; + } + return false; + } + isRTSPLiveStreaming(channel) { + return this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel] ? this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel] : false; + } + isDownloading(channel) { + return this.isStreaming(channel, types_1.P2PDataType.BINARY); + } + getLockSequenceNumber() { + if (this.lockSeqNumber === -1) { + let deviceType = undefined; + let deviceSN = undefined; + if (this.rawStation?.devices?.length > 0) { + deviceType = this.rawStation?.devices[0]?.device_type; + deviceSN = this.rawStation?.devices[0]?.device_sn; + } + this.lockSeqNumber = (0, utils_1.generateLockSequence)(deviceType, deviceSN); + } + return this.lockSeqNumber; + } + incLockSequenceNumber() { + if (this.lockSeqNumber === -1) { + this.getLockSequenceNumber(); + } + else + this.lockSeqNumber++; + return this.lockSeqNumber; + } + setConnectionType(type) { + this.connectionType = type; + } + getConnectionType() { + return this.connectionType; + } + isEnergySavingDevice() { + return this.energySavingDevice; + } + async getDSKKeys() { + if (this.api.isConnected()) { + try { + const data = { + invalid_dsks: {}, + station_sns: [this.rawStation.station_sn], + transaction: `${new Date().getTime()}` + }; + data.invalid_dsks[this.rawStation.station_sn] = ""; + const response = await this.api.request({ + method: "post", + endpoint: "v1/app/equipment/get_dsk_keys", + data: data + }); + logging_1.rootP2PLogger.debug(`Get DSK keys - Response:`, { stationSN: this.rawStation.station_sn, data: response.data }); + if (response.status == 200) { + const result = response.data; + if (result.code == 0) { + const dataresult = result.data; + dataresult.dsk_keys.forEach(key => { + if (key.station_sn == this.rawStation.station_sn) { + this.dskKey = key.dsk_key; + this.dskExpiration = new Date(key.expiration * 1000); + logging_1.rootP2PLogger.debug(`Get DSK keys - received key and expiration`, { stationSN: this.rawStation.station_sn, dskKey: this.dskKey, dskExpiration: this.dskExpiration }); + } + }); + } + else { + logging_1.rootP2PLogger.error(`Get DSK keys - Response code not ok`, { stationSN: this.rawStation.station_sn, code: result.code, msg: result.msg }); + } + } + else { + logging_1.rootP2PLogger.error(`Get DSK keys - Status return code not 200`, { stationSN: this.rawStation.station_sn, status: response.status, statusText: response.statusText }); + } + } + catch (err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.error(`Get DSK keys - Generic Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn }); + } + } + } + updateRawStation(value) { + this.rawStation = value; + this.channel = http_1.Station.getChannel(value.device_type); + if (this.rawStation.devices?.length > 0) { + if (!this.energySavingDevice) { + for (const device of this.rawStation.devices) { + if (device.device_sn === this.rawStation.station_sn && device_1.Device.hasBattery(device.device_type)) { + this.energySavingDevice = true; + break; + } + } + if (this.energySavingDevice) + logging_1.rootP2PLogger.debug(`Identified standalone battery device ${this.rawStation.station_sn} => activate p2p keepalive command`); + } + } + else { + this.energySavingDevice = false; + } + if (this.rawStation.devices) + for (const device of this.rawStation.devices) { + this.deviceSNs[device.device_channel] = { + sn: device.device_sn, + adminUserId: this.rawStation.member.admin_user_id + }; + } + } + initializeTalkbackStream(channel = 0) { + this.talkbackStream = new talkback_1.TalkbackStream(); + this.talkbackStream.on("data", (audioData) => { this.sendTalkbackAudioFrame(audioData, channel); }); + this.talkbackStream.on("error", (error) => { this.onTalkbackStreamError(error); }); + this.talkbackStream.on("close", () => { this.onTalkbackStreamClose(); }); + } + sendTalkbackAudioFrame(audioData, channel) { + const messageHeader = (0, utils_1.buildCommandHeader)(this.videoSeqNumber, types_1.CommandType.CMD_AUDIO_FRAME, types_1.P2PDataTypeHeader.VIDEO); + const messageAudioHeader = (0, utils_1.buildTalkbackAudioFrameHeader)(audioData, channel); + const messageData = Buffer.concat([messageHeader, messageAudioHeader, audioData]); + const message = { + sequence: this.videoSeqNumber, + channel: channel, + data: messageData, + retries: 0 + }; + this.videoSeqNumber = this._incrementSequence(this.videoSeqNumber); + this._sendVideoData(message); + } + onTalkbackStreamClose() { + this.talkbackStream?.removeAllListeners(); + } + onTalkbackStreamError(err) { + const error = (0, error_1.ensureError)(err); + logging_1.rootP2PLogger.debug(`Talkback Stream Error:`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn }); + } + async _sendVideoData(message) { + if (message.retries < this.MAX_RETRIES) { + message.retries++; + } + else { + logging_1.rootP2PLogger.error(`Sending video data - Max send video data retries ${this.messageVideoStates.get(message.sequence)?.retries} reached. Discard data.`, { stationSN: this.rawStation.station_sn, sequence: message.sequence, channel: message.channel, retries: message.retries }); + this.messageVideoStates.delete(message.sequence); + this.emit("talkback error", message.channel, new error_1.TalkbackError("Max send video data retries reached. Discard data packet.", { context: { station: this.rawStation.station_sn, channel: message.channel, retries: message.retries } })); + return; + } + message = message; + message.timeout = setTimeout(() => { + this._sendVideoData(message); + }, this.MAX_AKNOWLEDGE_TIMEOUT); + this.messageVideoStates.set(message.sequence, message); + logging_1.rootP2PLogger.trace("Sending p2p video data...", { station: this.rawStation.station_sn, sequence: message.sequence, channel: message.channel, retries: message.retries, messageVideoStatesSize: this.messageVideoStates.size }); + await this.sendMessage(`Send video data`, this.connectAddress, types_1.RequestMessageType.DATA, message.data); + } + isTalkbackOngoing(channel) { + if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkbackChannel === channel) + return this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkback; + return false; + } + startTalkback(channel = 0) { + this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkback = true; + this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkbackChannel = channel; + this.initializeTalkbackStream(channel); + this.talkbackStream?.startTalkback(); + this.emit("talkback started", channel, this.talkbackStream); + } + stopTalkback(channel = 0) { + this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkback = false; + this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkbackChannel = -1; + this.talkbackStream?.stopTalkback(); + this.emit("talkback stopped", channel); + this.closeEnergySavingDevice(); + } + setLockAESKey(commandCode, aesKey) { + this.lockAESKeys.set(commandCode, aesKey); + } + getLockAESKey(commandCode) { + return this.lockAESKeys.get(commandCode); + } + isConnecting() { + return this.connecting; + } +} +exports.P2PClientProtocol = P2PClientProtocol; +//# sourceMappingURL=session.js.map \ No newline at end of file diff --git a/build/p2p/session.js.map b/build/p2p/session.js.map new file mode 100644 index 00000000..71b3fa06 --- /dev/null +++ b/build/p2p/session.js.map @@ -0,0 +1 @@ +{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/p2p/session.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/talkback.d.ts b/build/p2p/talkback.d.ts new file mode 100644 index 00000000..65befb23 --- /dev/null +++ b/build/p2p/talkback.d.ts @@ -0,0 +1,8 @@ +import { Transform } from "stream"; +export declare class TalkbackStream extends Transform { + private isStreaming; + constructor(); + _transform(data: Buffer, _encoding: string, callback: (err?: Error | null) => void): void; + startTalkback(): void; + stopTalkback(): void; +} diff --git a/build/p2p/talkback.js b/build/p2p/talkback.js new file mode 100644 index 00000000..84b98769 --- /dev/null +++ b/build/p2p/talkback.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TalkbackStream = void 0; +const stream_1 = require("stream"); +class TalkbackStream extends stream_1.Transform { + isStreaming = false; + constructor() { + super(); + } + _transform(data, _encoding, callback) { + if (this.isStreaming) + this.push(data); + callback(); + } + startTalkback() { + this.isStreaming = true; + } + stopTalkback() { + this.isStreaming = false; + } +} +exports.TalkbackStream = TalkbackStream; +//# sourceMappingURL=talkback.js.map \ No newline at end of file diff --git a/build/p2p/talkback.js.map b/build/p2p/talkback.js.map new file mode 100644 index 00000000..f1411a56 --- /dev/null +++ b/build/p2p/talkback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"talkback.js","sourceRoot":"","sources":["../../src/p2p/talkback.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,MAAa,cAAe,SAAQ,kBAAS;IAEjC,WAAW,GAAG,KAAK,CAAC;IAE5B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,SAAiB,EAAE,QAAsC;QAC9E,IAAG,IAAI,CAAC,WAAW;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,EAAE,CAAC;IACf,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;CACJ;AArBD,wCAqBC"} \ No newline at end of file diff --git a/build/p2p/types.d.ts b/build/p2p/types.d.ts new file mode 100644 index 00000000..db95cf25 --- /dev/null +++ b/build/p2p/types.d.ts @@ -0,0 +1,1164 @@ +import { LockV12P2PCommandType, SmartLockP2PCommandType } from "./models"; +export declare const RequestMessageType: { + STUN: Buffer; + LOOKUP: Buffer; + LOOKUP_WITH_KEY: Buffer; + LOOKUP_WITH_KEY2: Buffer; + TURN_LOOKUP_WITH_KEY: Buffer; + TURN_SERVER_INIT: Buffer; + TURN_CLIENT_OK: Buffer; + CHECK_CAM2: Buffer; + LOCAL_LOOKUP: Buffer; + PING: Buffer; + PONG: Buffer; + CHECK_CAM: Buffer; + DATA: Buffer; + ACK: Buffer; + END: Buffer; +}; +export declare const ResponseMessageType: { + STUN: Buffer; + LOOKUP_RESP: Buffer; + LOOKUP_ADDR: Buffer; + LOCAL_LOOKUP_RESP: Buffer; + TURN_SERVER_LIST: Buffer; + TURN_SERVER_OK: Buffer; + TURN_SERVER_TOKEN: Buffer; + TURN_SERVER_LOOKUP_OK: Buffer; + LOOKUP_ADDR2: Buffer; + UNKNOWN_83: Buffer; + TURN_SERVER_CAM_ID: Buffer; + END: Buffer; + PONG: Buffer; + PING: Buffer; + CAM_ID: Buffer; + ACK: Buffer; + DATA: Buffer; +}; +export declare enum P2PDataType { + UNKNOWN = -1, + DATA = 0, + VIDEO = 1, + CONTROL = 2, + BINARY = 3 +} +export declare const P2PDataTypeHeader: { + DATA: Buffer; + VIDEO: Buffer; + CONTROL: Buffer; + BINARY: Buffer; +}; +export declare enum CommandType { + ARM_DELAY_AWAY = 1158, + ARM_DELAY_CUS1 = 1159, + ARM_DELAY_CUS2 = 1160, + ARM_DELAY_CUS3 = 1161, + ARM_DELAY_HOME = 1157, + ARM_DELAY_OFF = 1180, + AUTOMATION_DATA = 1278, + AUTOMATION_ID_LIST = 1165, + CMD_ALARM_DELAY_AWAY = 1167, + CMD_ALARM_DELAY_CUSTOM1 = 1168, + CMD_ALARM_DELAY_CUSTOM2 = 1169, + CMD_ALARM_DELAY_CUSTOM3 = 1170, + CMD_ALARM_DELAY_HOME = 1166, + CMD_AUDDEC_SWITCH = 1017, + CMD_AUDIO_FRAME = 1301, + CMD_BATCH_RECORD = 1049, + CMD_BAT_DOORBELL_CHIME_SWITCH = 1702, + CMD_BAT_DOORBELL_DINGDONG_R = 1718, + CMD_BAT_DOORBELL_DINGDONG_V = 1717, + CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH = 1703, + CMD_BAT_DOORBELL_ONLY_AI = 1719, + CMD_BAT_DOORBELL_QUICK_RESPONSE = 1706, + CMD_BAT_DOORBELL_SET_AC_VALUE = 1714, + CMD_BAT_DOORBELL_SET_ELECTRONIC_RINGTONE_TIME = 1709, + CMD_BAT_DOORBELL_SET_LED_ENABLE = 1716, + CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE = 1710, + CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME = 1708, + CMD_BAT_DOORBELL_UPDATE_QUICK_RESPONSE = 1707, + CMD_BAT_DOORBELL_VIDEO_QUALITY = 1705, + CMD_BAT_DOORBELL_VIDEO_QUALITY2 = 2730, + CMD_BAT_DOORBELL_RECORD_QUALITY2 = 2731, + CMD_BAT_DOORBELL_WDR_SWITCH = 1704, + CMD_BIND_BROADCAST = 1000, + CMD_BIND_SYNC_ACCOUNT_INFO = 1001, + CMD_BIND_SYNC_ACCOUNT_INFO_EX = 1054, + CMD_CAMERA_INFO = 1103, + CMD_CHANGE_PWD = 1030, + CMD_CHANGE_WIFI_PWD = 1031, + CMD_CLOSE_AUDDEC = 1018, + CMD_CLOSE_DEV_LED = 1046, + CMD_CLOSE_EAS = 1016, + CMD_CLOSE_IRCUT = 1014, + CMD_CLOSE_PIR = 1012, + CMD_COLLECT_RECORD = 1047, + CMD_CONVERT_MP4_OK = 1303, + CMD_DECOLLECT_RECORD = 1048, + CMD_DELLETE_RECORD = 1027, + CMD_DEL_FACE_PHOTO = 1234, + CMD_DEL_USER_PHOTO = 1232, + CMD_DEVS_BIND_BROADCASE = 1038, + CMD_DEVS_BIND_NOTIFY = 1039, + CMD_DEVS_LOCK = 1019, + CMD_DEVS_SWITCH = 1035, + CMD_DEVS_TO_FACTORY = 1037, + CMD_DEVS_UNBIND = 1040, + CMD_DEVS_UNLOCK = 1020, + CMD_DEV_LED_SWITCH = 1045, + CMD_DEV_PUSHMSG_MODE = 1252, + CMD_DEV_RECORD_AUTOSTOP = 1251, + CMD_DEV_RECORD_INTERVAL = 1250, + CMD_DEV_RECORD_TIMEOUT = 1249, + CMD_DOWNLOAD_FINISH = 1304, + CMD_DOORBELL_NOTIFY_PAYLOAD = 1701, + CMD_DOORBELL_SET_PAYLOAD = 1700, + CMD_DOORLOCK_ACCOUNT_UNBIND = 1915, + CMD_DOORLOCK_BIND = 1910, + CMD_DOORLOCK_DATA_PASS_THROUGH = 1911, + CMD_DOORLOCK_DATA_PASS_THROUGH_ERR = 1918, + CMD_DOORLOCK_GET_STATE = 1912, + CMD_DOORLOCK_ONLINE_REPORT = 1917, + CMD_DOORLOCK_OTA = 1914, + CMD_DOORLOCK_P2P_SEQ = 1916, + CMD_DOORLOCK_SET_PUSH_MODE = 1919, + CMD_DOOR_SENSOR_ALARM_ENABLE = 1506, + CMD_DOOR_SENSOR_DOOR_EVT = 1503, + CMD_DOOR_SENSOR_ENABLE_LED = 1505, + CMD_DOOR_SENSOR_GET_DOOR_STATE = 1502, + CMD_DOOR_SENSOR_GET_INFO = 1501, + CMD_DOOR_SENSOR_INFO_REPORT = 1500, + CMD_DOOR_SENSOR_LOW_POWER_REPORT = 1504, + CMD_DOWNLOAD_CANCEL = 1051, + CMD_DOWNLOAD_VIDEO = 1024, + CMD_EAS_SWITCH = 1015, + CMD_ENTRY_SENSOR_BAT_STATE = 1552, + CMD_ENTRY_SENSOR_CHANGE_TIME = 1551, + CMD_ENTRY_SENSOR_STATUS = 1550, + CMD_FLOODLIGHT_BROADCAST = 902, + CMD_FORMAT_SD = 1029, + CMD_FORMAT_SD_PROGRESS = 1053, + CMD_GATEWAYINFO = 1100, + CMD_GEO_ADD_USER_INFO = 1259, + CMD_GEO_DEL_USER_INFO = 1261, + CMD_GEO_SET_USER_STATUS = 1258, + CMD_GEO_UPDATE_LOC_SETTING = 1262, + CMD_GEO_UPDATE_USER_INFO = 1260, + CMD_GET_ADMIN_PWD = 1122, + CMD_GET_ALARM_MODE = 1151, + CMD_GET_ARMING_INFO = 1107, + CMD_GET_ARMING_STATUS = 1108, + CMD_GET_AUDDEC_INFO = 1109, + CMD_GET_AUDDEC_SENSITIVITY = 1110, + CMD_GET_AUDDE_CSTATUS = 1111, + CMD_GET_AWAY_ACTION = 1239, + CMD_GET_BATTERY = 1101, + CMD_GET_BATTERY_TEMP = 1138, + CMD_GET_CAMERA_LOCK = 1119, + CMD_GET_CHARGE_STATUS = 1136, + CMD_GET_CUSTOM1_ACTION = 1148, + CMD_GET_CUSTOM2_ACTION = 1149, + CMD_GET_CUSTOM3_ACTION = 1150, + CMD_GET_DELAY_ALARM = 1164, + CMD_GET_DEVICE_PING = 1152, + CMD_GET_DEVS_NAME = 1129, + CMD_GET_DEVS_RSSI_LIST = 1274, + CMD_GET_DEV_CLOUD_STATUS = 1182, + CMD_GET_DEV_HK_RECORD_STATUS = 1181, + CMD_GET_DEV_STATUS = 1131, + CMD_GET_DEV_TONE_INFO = 1127, + CMD_GET_DEV_UPGRADE = 1134, + CMD_GET_EAS_STATUS = 1118, + CMD_GET_EXCEPTION_LOG = 1124, + CMD_GET_FLOODLIGHT_WIFI_LIST = 1405, + CMD_GET_GATEWAY_LOCK = 1120, + CMD_GET_HOME_ACTION = 1225, + CMD_GET_HUB_LAN_IP = 1176, + CMD_GET_HUB_LOG = 1132, + CMD_GET_HUB_LOGIG = 1140, + CMD_GET_HUB_NAME = 1128, + CMD_GET_HUB_POWER_SUPPLY = 1137, + CMD_GET_HUB_TONE_INFO = 1126, + CMD_GET_HUB_UPGRADE = 1133, + CMD_GET_IRCUTSENSITIVITY = 1114, + CMD_GET_IRMODE = 1113, + CMD_GET_MDETECT_PARAM = 1105, + CMD_GET_MIRRORMODE = 1112, + CMD_GET_NEWVESION = 1125, + CMD_GET_OFF_ACTION = 1177, + CMD_GET_P2P_CONN_STATUS = 1130, + CMD_GET_PIRCTRL = 1116, + CMD_GET_PIRINFO = 1115, + CMD_GET_PIRSENSITIVITY = 1117, + CMD_GET_RECORD_TIME = 1104, + CMD_GET_REPEATER_CONN_TEST_RESULT = 1270, + CMD_GET_REPEATER_RSSI = 1266, + CMD_GET_REPEATER_SITE_LIST = 1263, + CMD_GET_SOLAR_SHOW = 1294, + CMD_GET_START_HOMEKIT = 1163, + CMD_GET_SUB1G_RSSI = 1141, + CMD_GET_TFCARD_FORMAT_STATUS = 1143, + CMD_GET_TFCARD_REPAIR_STATUS = 1153, + CMD_GET_TFCARD_STATUS = 1135, + CMD_GET_UPDATE_STATUS = 1121, + CMD_GET_UPGRADE_RESULT = 1043, + CMD_GET_WAN_LINK_STATUS = 1268, + CMD_GET_WAN_MODE = 1265, + CMD_GET_WIFI_PWD = 1123, + CMD_GET_WIFI_RSSI = 1142, + CMD_HUB_ALARM_TONE = 1281, + CMD_HUB_CLEAR_EMMC_VOLUME = 1800, + CMD_HUB_NOTIFY_ALARM = 1282, + CMD_HUB_NOTIFY_MODE = 1283, + CMD_HUB_REBOOT = 1034, + CMD_HUB_TO_FACTORY = 1036, + CMD_IRCUT_SWITCH = 1013, + CMD_KEYPAD_BATTERY_CAP_STATE = 1653, + CMD_KEYPAD_BATTERY_CHARGER_STATE = 1655, + CMD_KEYPAD_BATTERY_TEMP_STATE = 1654, + CMD_KEYPAD_GET_PASSWORD = 1657, + CMD_KEYPAD_GET_PASSWORD_LIST = 1662, + CMD_KEYPAD_IS_PSW_SET = 1670, + CMD_KEYPAD_PSW_OPEN = 1664, + CMD_KEYPAD_SET_CUSTOM_MAP = 1660, + CMD_KEYPAD_SET_PASSWORD = 1650, + CMD_LEAVING_DELAY_AWAY = 1172, + CMD_LEAVING_DELAY_CUSTOM1 = 1173, + CMD_LEAVING_DELAY_CUSTOM2 = 1174, + CMD_LEAVING_DELAY_CUSTOM3 = 1175, + CMD_LEAVING_DELAY_HOME = 1171, + CMD_LIVEVIEW_LED_SWITCH = 1056, + CMD_MDETECTINFO = 1106, + CMD_MOTION_SENSOR_BAT_STATE = 1601, + CMD_MOTION_SENSOR_ENABLE_LED = 1607, + CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE = 1613, + CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE = 1610, + CMD_MOTION_SENSOR_PIR_EVT = 1605, + CMD_MOTION_SENSOR_SET_CHIRP_TONE = 1611, + CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY = 1609, + CMD_MOTION_SENSOR_WORK_MODE = 1612, + CMD_NAS_SWITCH = 1145, + CMD_NAS_TEST = 1146, + CMD_NOTIFY_PAYLOAD = 1351, + CMD_P2P_DISCONNECT = 1044, + CMD_PING = 1139, + CMD_PIR_SWITCH = 1011, + CMD_RECORDDATE_SEARCH = 1041, + CMD_RECORDLIST_SEARCH = 1042, + CMD_RECORD_AUDIO_SWITCH = 1366, + CMD_RECORD_IMG = 1021, + CMD_RECORD_IMG_STOP = 1022, + CMD_RECORD_PLAY_CTRL = 1026, + CMD_RECORD_VIEW = 1025, + CMD_REPAIR_PROGRESS = 1058, + CMD_REPAIR_SD = 1057, + CMD_REPEATER_RSSI_TEST = 1269, + CMD_RF433_DONGLE_STATUS_CHANGE = 1900, + CMD_RF433_GET_DONGLE_STATE = 1901, + CMD_RF433_TRIGER_RING = 1902, + CMD_SDINFO = 1102, + CMD_SDINFO_EX = 1144, + CMD_SENSOR_SET_CHIRP_TONE = 1507, + CMD_SENSOR_SET_CHIRP_VOLUME = 1508, + CMD_SET_AI_NICKNAME = 1242, + CMD_SET_AI_PHOTO = 1231, + CMD_SET_AI_SWITCH = 1236, + CMD_SET_ALL_ACTION = 1255, + CMD_SET_ARMING = 1224, + CMD_SET_ARMING_SCHEDULE = 1211, + CMD_SET_AS_SERVER = 1237, + CMD_SET_AUDDEC_INFO = 1212, + CMD_SET_AUDDEC_SENSITIVITY = 1213, + CMD_SET_AUDIOSENSITIVITY = 1227, + CMD_SET_AUDIO_MUTE_RECORD = 1288, + CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT = 2123, + CMD_SET_AUTO_DELETE_RECORD = 1367, + CMD_SET_BITRATE = 1206, + CMD_SET_CUSTOM_MODE = 1256, + CMD_SET_DEVS_NAME = 1217, + CMD_SET_DEVS_OSD = 1214, + CMD_SET_DEVS_TONE_FILE = 1202, + CMD_SET_DEV_MD_RECORD = 1273, + CMD_SET_DEV_MIC_MUTE = 1240, + CMD_SET_DEV_MIC_VOLUME = 1229, + CMD_SET_DEV_SPEAKER_MUTE = 1241, + CMD_SET_DEV_SPEAKER_VOLUME = 1230, + CMD_SET_DEV_STORAGE_TYPE = 1228, + CMD_SET_DOORSENSOR_ALWAYS_OPEN = 1290, + CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY = 1291, + CMD_SET_FLOODLIGHT_BRIGHT_VALUE = 1401, + CMD_SET_FLOODLIGHT_DETECTION_AREA = 1407, + CMD_SET_FLOODLIGHT_LIGHT_SCHEDULE = 1404, + CMD_SET_FLOODLIGHT_MANUAL_SWITCH = 1400, + CMD_SET_FLOODLIGHT_STREET_LAMP = 1402, + CMD_SET_FLOODLIGHT_TOTAL_SWITCH = 1403, + CMD_SET_FLOODLIGHT_WIFI_CONNECT = 1406, + CMD_SET_GSSENSITIVITY = 1226, + CMD_SET_HUB_ALARM_AUTO_END = 1280, + CMD_SET_HUB_ALARM_CLOSE = 1279, + CMD_SET_HUB_AUDEC_STATUS = 1222, + CMD_SET_HUB_GS_STATUS = 1220, + CMD_SET_HUB_IRCUT_STATUS = 1219, + CMD_SET_HUB_MVDEC_STATUS = 1221, + CMD_SET_HUB_NAME = 1216, + CMD_SET_HUB_OSD = 1253, + CMD_SET_HUB_PIR_STATUS = 1218, + CMD_SET_HUB_SPK_VOLUME = 1235, + CMD_SET_IRMODE = 1208, + CMD_SET_JSON_SCHEDULE = 1254, + CMD_SET_LANGUAGE = 1200, + CMD_SET_LIGHT_CTRL_BRIGHT_PIR = 1412, + CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425 = 1422, + CMD_SET_LIGHT_CTRL_BRIGHT_SCH = 1413, + CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425 = 1421, + CMD_SET_LIGHT_CTRL_LAMP_VALUE = 1410, + CMD_SET_LIGHT_CTRL_PIR_SWITCH = 1408, + CMD_SET_LIGHT_CTRL_PIR_TIME = 1409, + CMD_SET_LIGHT_CTRL_SUNRISE_INFO = 1415, + CMD_SET_LIGHT_CTRL_SUNRISE_SWITCH = 1414, + CMD_SET_LIGHT_CTRL_TRIGGER = 1411, + CMD_SET_MDETECTPARAM = 1204, + CMD_SET_MDSENSITIVITY = 1272, + CMD_SET_MIRRORMODE = 1207, + CMD_SET_MOTION_SENSITIVITY = 1276, + CMD_SET_NAS_PASSWD = 1287, + CMD_SET_NIGHT_VISION_TYPE = 1277, + CMD_SET_NOTFACE_PUSHMSG = 1248, + CMD_SET_PAYLOAD = 1350, + CMD_SET_PIRSENSITIVITY = 1210, + CMD_SET_PIR_INFO = 1209, + CMD_SET_PIR_POWERMODE = 1246, + CMD_SET_PIR_TEST_MODE = 1243, + CMD_SET_POWER_CHARGE = 1293, + CMD_SET_PRIVACYPARAM = 1295, + CMD_SET_PRI_ACTION = 1233, + CMD_SET_PROMPT_VOLUME = 1292, + CMD_SET_PUSH_EFFECT = 1289, + CMD_SET_RECORDTIME = 1203, + CMD_SET_RECORD_QUALITY = 1286, + CMD_SET_REPEATER_PARAMS = 1264, + CMD_SET_RESOLUTION = 1205, + CMD_SET_SCHEDULE_DEFAULT = 1257, + CMD_SET_SNOOZE_MODE = 1271, + CMD_SET_STORGE_TYPE = 1223, + CMD_SET_TELNET = 1247, + CMD_SET_TIMEZONE = 1215, + CMD_SET_TONE_FILE = 1201, + CMD_SET_UPGRADE = 1238, + CMD_SNAPSHOT = 1028, + CMD_START_REALTIME_MEDIA = 1003, + CMD_START_RECORD = 1009, + CMD_START_REC_BROADCASE = 900, + CMD_START_TALKBACK = 1005, + CMD_START_VOICECALL = 1007, + CMD_STOP_REALTIME_MEDIA = 1004, + CMD_STOP_RECORD = 1010, + CMD_STOP_REC_BROADCASE = 901, + CMD_STOP_SHARE = 1023, + CMD_STOP_TALKBACK = 1006, + CMD_STOP_VOICECALL = 1008, + CMD_STREAM_MSG = 1302, + CMD_STRESS_TEST_OPER = 1050, + CMD_TIME_SYCN = 1033, + CMD_UNBIND_ACCOUNT = 1002, + CMD_VIDEO_FRAME = 1300, + CMD_WIFI_CONFIG = 1032, + SWITCH_TIME = 1162, + CMD_BATTERY_FALSE_EVENT_COUNT = 6056, + CMD_FLOODLIGHT_GET_WIFI_RSSI_INFO = 6080, + CMD_INDOOR_AI_CRYING_ENABLE = 6024, + CMD_INDOOR_AI_MOTION_ENABLE = 6023, + CMD_INDOOR_AI_PERSON_ENABLE = 6022, + CMD_INDOOR_AI_PET_ENABLE = 6026, + CMD_INDOOR_AI_SOUND_ENABLE = 6025, + CMD_INDOOR_SET_MOTION_DETECTION_TYPE = 6027, + CMD_INDOOR_CONTINUE_RECORD_SCHEDULE = 6013, + CMD_INDOOR_DET_SET_ACTIVE_ZONE = 6042, + CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE = 6040, + CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE = 6045, + CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX = 6041, + CMD_INDOOR_DET_SET_PET_ENABLE = 6047, + CMD_INDOOR_DET_SET_PET_EXPEL_RESPONSOR = 6048, + CMD_INDOOR_DET_SET_PET_EXPEL_RESP_IDX = 6049, + CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE = 6043, + CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE = 6046, + CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX = 6044, + CMD_INDOOR_EVENT_COUNT = 6053, + CMD_INDOOR_HK_ACTIVE_HOMEKIT = 6061, + CMD_INDOOR_HK_GET_HK_BIND_STATUS = 6062, + CMD_INDOOR_LED_SWITCH = 6014, + CMD_INDOOR_NAS_STORAGE_TYPE = 6050, + CMD_INDOOR_OWNER_STREAM_TYPE = 6052, + CMD_INDOOR_PAN_CALIBRATION = 6017, + CMD_OUTDOOR_PAN_CALIBRATION = 6251, + CMD_INDOOR_PAN_MOTION_TRACK = 6016, + CMD_INDOOR_PAN_SPEED = 6015, + CMD_INDOOR_PUSH_JUMP_TYPE = 6021, + CMD_INDOOR_PUSH_NOTIFY_TYPE = 6020, + CMD_INDOOR_SET_CONTINUE_ENABLE = 6010, + CMD_INDOOR_SET_CONTINUE_TYPE = 6011, + CMD_INDOOR_SET_RECORD_AUDIO_ENABLE = 6012, + CMD_INDOOR_SHOW_SDCARD = 6054, + CMD_INDOOR_TFCARD_NAS_STATUS = 6051, + CMD_INDOOR_ROTATE = 6030, + CMD_OUTDOOR_ROTATE = 6038, + CMD_INDOOR_ENABLE_PRIVACY_MODE = 6090, + CMD_INDOOR_SET_PRIVACY_ANGLE = 6091, + CMD_INDOOR_DEFAULT_ANGLE_SET = 6092, + CMD_INDOOR_DEFAULT_ANGLE_ENABLE = 6093, + CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME = 6094, + CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK = 6095, + CMD_T8200X_SET_RINGTONE_VOLUME = 6096, + CMD_IN_TEST_MODE = 6072, + CMD_PLAY_BACK_EVENT_STOP = 1055, + CMD_SET_DETECT_TYPE = 6071, + CMD_SET_PIR_SENSITIVITY = 6070, + CMD_SMARTLOCK_QUERY_BATTERY_LEVEL = 6001, + CMD_SMARTLOCK_QUERY_STATUS = 6000, + P2P_ADD_PW = 1950, + P2P_CALIBRATE_LOCK = 1960, + P2P_DELETE_FINGER = 1953, + P2P_DELETE_USER = 1951, + P2P_ENTER_OTA = 1238, + P2P_GET_FINGER_PW_USAGE = 1963, + P2P_GET_LOCK_PARAM = 1959, + P2P_GET_USER_AND_PW_ID = 1964, + P2P_ON_OFF_LOCK = 1961, + P2P_PULL_BLE = 1962, + P2P_QUERY_PW = 1954, + P2P_QUERY_STATUS_IN_LOCK = 1955, + P2P_RESET = 1040, + P2P_SET_LOCK_PARAM = 1958, + P2P_UPDATE_PW = 1957, + P2P_UPDATE_USER_TIME = 1956, + SUB1G_REP_BIND_FAILED = 2109, + SUB1G_REP_CHARGE_STATE = 2108, + SUB1G_REP_POWER_OFF = 2110, + SUB1G_REP_RUNTIME_STATE = 2107, + SUB1G_REP_UNPLUG_POWER_LINE = 2111, + CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425 = 6073, + CMD_FLOODLIGHT_SET_DETECTION_RANGE = 6086, + CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY = 6087, + CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY = 6081, + CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY = 6083, + CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY = 6085, + CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY = 6107, + CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION = 6032, + CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION = 6033, + CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION = 6035, + CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE = 6031, + CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION = 6098, + CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL = 6100, + CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION = 6101, + CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE = 6102, + CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT = 6105, + CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION = 6106, + CMD_FLOODLIGHT_SET_AUTO_CALIBRATION = 6099, + CMD_SMARTLOCK_AUTO_LOCK = 6500, + CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE = 6501, + CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME = 6601, + CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME = 6602, + CMD_SMARTLOCK_LOCK_SOUND = 6505, + CMD_SMARTLOCK_LOG = 6700, + CMD_SMARTLOCK_NOTIFICATION = 6506, + CMD_SMARTLOCK_NOTIFICATION_LOCKED = 6606, + CMD_SMARTLOCK_NOTIFICATION_UNLOCKED = 6605, + CMD_SMARTLOCK_ONE_TOUCH_LOCK = 6502, + CMD_SMARTLOCK_SCRAMBLE_PASSCODE = 6504, + CMD_SMARTLOCK_WIFI_STATUS = 6507, + CMD_SMARTLOCK_WRONG_TRY_PROTECT = 6503, + CMD_SMARTLOCK_AUTO_LOCK_TIMER = 6600, + CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN = 6604, + CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS = 6603, + CMD_SMARTLOCK_NIGHT_VISION_ENHANCE = 6614, + CMD_SMARTLOCK_NIGHT_VISION_SIDE = 6615, + CMD_SMARTLOCK_LEFT_OPEN_ALARM = 6616, + CMD_SMARTLOCK_TAMPER_ALARM = 6617, + CMD_SMARTLOCK_VOLUME = 6618, + CMD_DOORBELL_DUAL_VIEW_MODE = 2700, + CMD_DOORBELL_DUAL_VIEW_MODE2 = 6243, + CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY = 2705, + CMD_DOORBELL_DUAL_RADAR_WD_SWITCH = 2706, + CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE = 2707, + CMD_DOORBELL_DUAL_RADAR_WD_TIME = 2708, + CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH = 2709, + CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE = 2710, + CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME = 2711, + CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH = 2712, + CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME = 2713, + CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH = 2714, + CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE = 2715, + CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE = 2716, + CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH = 2723, + CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT = 2725, + CMD_SMARTSAFE_ALERT_VOLUME = 1946165264, + CMD_SMARTSAFE_IS_ENABLE_BEEP = 1946165248, + CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT = 1946165251, + CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN = 1946165262, + CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM = 1946165255, + CMD_SMARTSAFE_IS_ENABLE_STATUS_CHANGE_NOTIFY = 1946165258, + CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK = 1946165256, + CMD_SMARTSAFE_IS_PWD_SET = 1946165254, + CMD_SMARTSAFE_IS_SET_PREFIX_PWD = 1946165257, + CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL = 1946165250, + CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND = 1946165261, + CMD_SMARTSAFE_LEFT_OPEN_SECONDS = 1946165263, + CMD_SMARTSAFE_LOCK_STATUS = 1946165260, + CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES = 1946165252, + CMD_SMARTSAFE_NOTIF = 1946165265, + CMD_SMARTSAFE_PANIC_FINGER_COUNT = 1946165268, + CMD_SMARTSAFE_POWER_SAVE_ON = 1946165267, + CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS = 1946165253, + CMD_SMARTSAFE_REMOTE_OPEN_TYPE = 1946165266, + CMD_SMARTSAFE_RSSI = 1946165259, + CMD_SMARTSAFE_VOLUME = 1946165249, + CMD_SMARTSAFE_PARAM_BASE = 1946165248, + CMD_SMARTSAFE_SETTINGS = 1946157056, + CMD_SMARTSAFE_STATUS_UPDATE = 1946157057, + CMD_SET_PAYLOAD_LOCKV12 = 1930, + CMD_SET_MOTION_DETECTION_TYPE_HB3 = 1298, + CMD_GET_WORKING_DAYS_HB3 = 1191, + CMD_GET_DETECTED_EVENTS_HB3 = 1192, + CMD_GET_RECORDED_EVENTS_HB3 = 1193, + CELLULAR_INFO = 7002, + CELLULAR_SIGNAL_STRENGTH = 7006, + CMD_DATABASE_COUNT = 10005, + CMD_DATABASE_COUNT_BY_DEVICE = 10012, + CMD_DATABASE_COUNT_BY_DATE = 10008, + CMD_DATABASE_DELETE = 10001, + CMD_DATABASE_DOWNLOAD = 8001, + CMD_DATABASE_IMAGE = 1308, + CMD_DATABASE_QUERY = 10000, + CMD_DATABASE_QUERY_BY_DATE = 10006, + CMD_DATABASE_QUERY_COMBINATION = 10009, + CMD_DATABASE_QUERY_COMBINATION_WITH_AI = 10011, + CMD_DATABASE_QUERY_LATEST_INFO = 10013, + CMD_DATABASE_SYNC = 10003, + CMD_DATABASE_UPDATE = 10002, + CMD_DATABASE = 1306, + CMD_SYNC_QUERY_RECENT_PACKAGE_INFO = 10018, + CMD_DATABASE_QUERY_LOCAL = 10017, + CMD_WALL_LIGHT_SPEAKER_VOLUME = 6342, + CMD_WALL_LIGHT_ALERT_VOLUME = 6347, + CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN = 6330, + CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL = 6332, + CMD_WALL_LIGHT_NOTIFICATION = 6334, + CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN = 6335, + CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL = 6337, + CMD_WALL_LIGHT_NOTIFICATION_TYPE = 6338, + CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS = 6379,// [{"color":16760832},{"color":16744448},{"color":16728320},{"color":16720384},{"color":16711696},{"color":3927961},{"color":1568995},{"color":485368},{"color":9983},{"color":4664060},{"color":16769280}] + CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES = 6380,// [{"name":"Aurora","mode":1,"id":0,"speed":4000,"colors":[65321,65468,28671,9215,42239]},{"name":"Warmth","mode":1,"id":1,"speed":4000,"colors":[16758528,16744448,16732160,16719360,16742144]},{"name":"Let's Party","mode":2,"id":2,"speed":500,"colors":[16718080,16756736,65298,40703,4980991]}] + CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE = 6381, + CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE = 6382, + CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE = 6383, + CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING = 6361, + CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING = 6384, + CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING = 6366, + CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING = 6367, + CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING = 6385, + CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING = 6372, + CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING = 6373, + CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING = 6386, + CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING = 6378, + CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING = 7511, + CMD_CAMERA_GARAGE_DOOR_STATUS = 7500, + CMD_CAMERA_GARAGE_DOOR_CALIBRATE = 7505, + CMD_CAMERA_GARAGE_DOOR_SENSORS = 7503, + CMD_STORAGE_INFO_HB3 = 1307, + CMD_SET_FLICKER_ADJUSTMENT = 8000, + CMD_SET_CROSS_CAMERA_TRACKING = 1065, + CMD_SET_TRACKING_ASSISTANCE = 1069, + CMD_SET_CONTINUOUS_TRACKING_TIME = 1070, + CMD_SET_CROSS_TRACKING_CAMERA_LIST = 1072, + CMD_SET_CROSS_TRACKING_GROUP_LIST = 1073, + CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350 = 6208, + CMD_INDOOR_ENABLE_PRIVACY_MODE_S350 = 6250, + CMD_MOTION_SET_LEAVING_DETECTION = 2726, + CMD_MOTION_SET_LEAVING_REACTIONS = 2727, + CMD_SMARKLOCK_ADD_FINGER = 1965, + CMD_SMARKLOCK_ADD_FINGER_STEP = 1967, + CMD_SMARKLOCK_CANCLE_FINGER = 1966, + CMD_SMARTLOCK_ALARM_NOTIFY = 1970, + CMD_SMARTLOCK_ALARM_STOP = 1971, + CMD_SMARTLOCK_GET_DOOR_STATUS = 1972, + CMD_TRANSFER_PAYLOAD = 1940, + CMD_WIFILOCK_KEYPAD_ENTER_OTA = 1933, + CMD_SMART_DROP_DELIVERY_MODE = 2103, + CMD_SMART_DROP_OPEN = 2105, + CMD_SMART_DROP_OPEN_LID = 2100, + CMD_SMART_DROP_IS_DENIED_DELIVERY = 2106, + CMD_SMART_DROP_HAS_MASTER_PIN = 2109, + CMD_SMART_DROP_IS_PIN_REQUIRED = 2107 +} +export declare enum MessageType { + INIT_P2P_CLIENT_TYPE = 1, + CONNECT_P2P_TYPE = 2, + DEINIT_P2P_CLIENT_TYPE = 3, + SET_COMMAND_WITH_INT_TYPE = 4, + GET_COMMAND_WITH_INT_TYPE = 5, + SET_COMMAND_WITH_STRING_TYPE = 6, + GET_COMMAND_WITH_STRING_TYPE = 7, + SET_REC_BROADCAT_STATE_TYPE = 8, + SET_COMMAND_WITH_M_STRING = 9, + SET_COMMAND_WITH_INT_STRING_TYPE = 10, + SET_SCHEDULE_TYPE = 11, + BATCH_DEL_EVENT_TYPE = 12, + ADD_AI_FACE_INFO_TYPE = 13, + SET_COMMAND_WITH_2INT_MSTRING = 14, + CHECK_HUB_STATE = 15, + SET_COMMAND_WITH_2STR_INT = 16, + BIND_HUB_TYPE = 17, + P2P_BIND_HUB_TYPE = 18 +} +export declare enum ErrorCode { + ERROR_BIND_CLIENT_SOCKET_CREATE_FAIL = -304, + ERROR_BIND_CLIENT_SOCKET_RECEIVE_LEN_ERROR = -307, + ERROR_BIND_CLIENT_SOCKET_RECEIVE_TIMEOUT = -306, + ERROR_BIND_CLIENT_SOCKET_SEND_FAIL = -305, + ERROR_BIND_COMMAND_ERROR = -309, + ERROR_BIND_PARAM_NULL = -308, + ERROR_BROADCAST_RECEIVE_SN_NULL = -303, + ERROR_BROADCAST_RECEIVE_TIME_OUT = -302, + ERROR_BROADCAST_START_ALREADY_RUNNING = -300, + ERROR_BROADCAST_STOP_SOCKET_FD_ERROR = -301, + ERROR_CLOSE_HOMEKIT = -143, + ERROR_COMMAND_TIMEOUT = -133, + ERROR_CONNECT_TIMEOUT = -134, + ERROR_DEV_BUSY = -114, + ERROR_DEV_CLOSE = -128, + ERROR_DEV_OFFLINE = -109, + ERROR_DEV_UPDATEING = -113, + ERROR_GET_EXEC_RESULT = -120, + ERROR_HAVE_CONNECT = -101, + ERROR_HIGHT_TEMPERATURE = -121, + ERROR_HUB_NON_ADMIN = -125, + ERROR_HUB_UPDATEING = -112, + ERROR_INVALID_ACCOUNT = -104, + ERROR_INVALID_COMMAND = -103, + ERROR_INVALID_PARAM = -110, + ERROR_INVALID_PARAM_LEN = -107, + ERROR_MAX_DEV_CONNECT_NUM = -123, + ERROR_MAX_HUB_CONNECT_NUM = -102, + ERROR_MAX_NAS_CONNECT_NUM = -130, + ERROR_MODE_DISABLE = -129, + ERROR_NETWORK_NOT_AVAILABLE = 998, + ERROR_NOT_FACE = -115, + ERROR_NOT_FIND_DEV = -106, + ERROR_NOT_TFCARD = -118, + ERROR_NULL_POINT = -100, + ERROR_OPEN_FILE_FAIL = -111, + ERROR_PARAM_NO_CHANGE = -116, + ERROR_PIPE_FAIL = -124, + ERROR_PLAY_STOP = -127, + ERROR_POWER_LOW = -117, + ERROR_PPCS_ALREADY_INITIALIZED = -2, + ERROR_PPCS_CONNECTING = -126, + ERROR_PPCS_DEVICE_NOT_ONLINE = -6, + ERROR_PPCS_FAIL_TO_CREATE_THREAD = -22, + ERROR_PPCS_FAIL_TO_RESOLVE_NAME = -7, + ERROR_PPCS_ID_OUT_OF_DATE = -9, + ERROR_PPCS_INVALID_APILICENSE = -21, + ERROR_PPCS_INVALID_DSK = -23, + ERROR_PPCS_INVALID_ID = -4, + ERROR_PPCS_INVALID_PARAMETER = -5, + ERROR_PPCS_INVALID_PREFIX = -8, + ERROR_PPCS_INVALID_SESSION_HANDLE = -11, + ERROR_PPCS_MAX_SESSION = -17, + ERROR_PPCS_NOT_INITIALIZED = -1, + ERROR_PPCS_NO_RELAY_SERVER_AVAILABLE = -10, + ERROR_PPCS_RELAY = 1, + ERROR_PPCS_REMOTE_SITE_BUFFER_FULL = -15, + ERROR_PPCS_SESSION_CLOSED_CALLED = -14, + ERROR_PPCS_SESSION_CLOSED_INSUFFICIENT_MEMORY = -20, + ERROR_PPCS_SESSION_CLOSED_REMOTE = -12, + ERROR_PPCS_SESSION_CLOSED_TIMEOUT = -13, + ERROR_PPCS_SUCCESSFUL = 0, + ERROR_PPCS_TIME_OUT = -3, + ERROR_PPCS_UDP_PORT_BIND_FAILED = -18, + ERROR_PPCS_USER_CONNECT_BREAK = -19, + ERROR_PPCS_USER_LISTEN_BREAK = -16, + ERROR_SET_P2P_INFO = -122, + ERROR_STATION_HAS_BIND = 20020, + ERROR_TFCARD_FORMATING = -119, + ERROR_TFCARD_REPAIRING = -135, + ERROR_TFCARD_VOLUME_OVERFLOW = -132, + ERROR_WAIT_TIMEOUT = -108, + ERROR_WAKEUP_CAMRA_TYPE = -131, + ERROR_WRITE_FLASH = -105, + ERROR_XM_BASE = -200, + ERROR_XM_WIFI_DISCONNECT = -203, + ERROR_XM_WIFI_TIMEOUT = -205, + ERROR_XM_WIFI_WAKEUP_FAIL = -204, + ERROR_LIMIT_REACHED = -500, + ERROR_FAILED_TO_REQUEST = 503, + ERROR_SEQUENCE_NUMBER = -151 +} +export declare enum TFCardStatus { + NULL = -1, + NORMAL = 0, + NON_ORIGINAL = 1, + MOUNT_FAIL = 2, + FORMAT_FAIL = 3, + REMOVE = 4, + FORMATING = 5, + BUSY = 6, + E2FSCK_FAIL_MOUNT_RW = 7, + E2FSCK_FAIL_MOUNT_FAIL_REINSERT = 8, + E2FSCK_FAIL_MOUNT_RO = 9, + E2FSCK_FAIL_MOUNT_RW_ERR = 10, + REPAIRING = 11, + MOUNT_FAIL_E2FSCK_ERROR = 12, + MOUNT_FAIL_E2FSCK_TIMEOUT = 13, + MOUNT_RW_E2FSCK_ERROR = 14, + MOUNT_RW_E2FSCK_TIMEOUT = 15, + MOUNT_RO_E2FSCK_OK = 16, + MOUNT_RO_E2FSCK_ERROR = 17, + MOUNT_RO_E2FSCK_TIMEOUT = 18, + MOUNT_RERR_E2FSCK_OK = 19, + MOUNT_RERR_E2FSCK_ERROR = 20, + MOUNT_RERR_E2FSCK_TIMEOUT = 21, + UNNORMAL_IO_ERROR = 22, + RISK = 23, + MOUNTING = 24 +} +export declare enum AlarmEvent { + HUB_STOP = 0, + DEV_STOP = 1, + GSENSOR = 2, + PIR = 3, + APP = 4, + HOT = 5, + DOOR = 6, + CAMERA_PIR = 7, + MOTION_SENSOR = 8, + CAMERA_GSENSOR = 9, + CAMERA_APP = 10, + CAMERA_LINKAGE = 11, + HUB_KEYPAD = 13, + HUB_STOP_BY_KEYPAD = 15, + HUB_STOP_BY_APP = 16, + HUB_STOP_BY_HAND = 17, + APP_LIGHT = 22, + APP_LIGHT_SOUND = 23, + MOTION_APP_LIGHT = 24, + MOTION_APP_LIGHT_ALARM = 25 +} +export declare enum WatermarkSetting1 { + OFF = 0, + ON = 1 +} +export declare enum WatermarkSetting2 { + OFF = 1, + ON = 2 +} +export declare enum WatermarkSetting3 { + OFF = 0, + TIMESTAMP = 1, + TIMESTAMP_AND_LOGO = 2 +} +export declare enum WatermarkSetting4 { + TIMESTAMP = 0, + TIMESTAMP_AND_LOGO = 1, + OFF = 2 +} +export declare enum WatermarkSetting5 { + LOGO = 1, + OFF = 2 +} +export declare enum PanTiltDirection { + ROTATE360 = 0, + LEFT = 1, + RIGHT = 2, + UP = 3, + DOWN = 4 +} +export declare enum VideoCodec { + UNKNOWN = -1, + H264 = 0, + H265 = 1 +} +export declare enum AudioCodec { + UNKNOWN = -1, + NONE = 0, + AAC = 1,// 0 + AAC_LC = 2,// 1 + AAC_ELD = 3 +} +export declare enum ESLCommand { + ACTIVATE_DEVICE = 107, + ADD_FINGER = 6003, + ADD_FINGER_STEP = 6029, + ADD_PW = 6002, + BIND_LOCK = 101, + CALIBRATE_LOCK = 6017, + CANCEL_ADD_FINGER = 115, + CHECK_KEYPAD_CONNECT = 130, + CREATE_TEMPORARY_PW = 125, + DELETE_FINGER = 6006, + DELETE_LOCK_EVENT = 127, + DELETE_PW = 6005, + DELETE_USER = 6004, + ECDH_CONSULT = 131, + ECDH_MODE_GET_PUBLIC_KEY = 138, + END_BIND = 102, + ENTER_OTA = 6020, + ENTER_OTA_UPDATE = 116, + GET_FINGER_PW_USAGE = 6022, + GET_KEYPAD_INFO = 136, + GET_LOCK_PARAM = 6016, + GET_LOCK_PUBLIC_KEY = 121, + GET_USER_ID_AND_PW_ID = 6027, + HEART_BEAT = 6001, + KEYPAD_ENTER_OTA = 135, + KEYPAD_VERIFY_APP = 134, + LOCK_KEYPAD_BIND_NOTIFY = 133, + MANUAL_CALIBRATE = 128, + MODIFY_NAME = 119, + NOTIFY = 110, + ON_OFF_LOCK = 6018, + PULL_BLE = 6024, + QUERY_ALL_USERS = 6007, + QUERY_LOCK_RECORD = 122, + QUERY_ONE_USER = 6008, + QUERY_PW = 6009, + QUERY_PW_LIST = 6010, + QUERY_STATUS_IN_LOCK = 6012, + QUERY_STATUS_IN_SERVER = 6011, + RECEIVE_SEQ_NUM = 6028, + REMOVE_DEVICE = 124, + REMOVE_KEYPAD = 137, + RESET = 6019, + SAVE_LOCK_PARAM_TO_SERVER = 6023, + SEND_LOCK_INFO_TO_KEYPAD = 132, + SEND_OTA_PACKAGE = 117, + SET_LOCK_PARAM = 6015, + SHUT_DOWN_BLE = 6026, + TEMPORARY_PW_LIST = 126, + UPDATE_PW = 6014, + UPDATE_USER_TIME = 6013, + VERIFY_IDENTITY = 6000, + VERIFY_PW = 118, + WIFI_CONNECT = 106, + WIFI_LIST = 105, + WIFI_SCAN = 104 +} +export declare enum ESLBleCommand { + BIND_LOCK = 1, + VERIFY_IDENTITY = 2, + HEART_BEAT = 3, + ACTIVATE_DEVICE = 4, + ADD_PW = 5, + CALIBRATE_LOCK = 7, + ON_OFF_LOCK = 8, + RESET = 9, + WIFI_SCAN = 10, + WIFI_LIST = 11, + WIFI_CONNECT = 12, + ADD_FINGER = 13, + DELETE_FINGER = 14, + DELETE_USER = 15, + CANCEL_ADD_FINGER = 16, + QUERY_STATUS_IN_LOCK = 17, + NOTIFY = 18, + END_BIND = 21, + GET_LOCK_PUBLIC_KEY = 22, + VERIFY_PW = 23, + QUERY_LOCK_RECORD = 24, + QUERY_ALL_USERS = 25, + QUERY_PW = 26, + UPDATE_PW = 27, + UPDATE_USER_TIME = 28, + MODIFY_NAME = 29, + GET_FINGER_PW_USAGE = 30, + ENTER_OTA_UPDATE = 31, + SEND_OTA_PACKAGE = 32, + GET_LOCK_PARAM = 33, + SET_LOCK_PARAM = 34, + SHUT_DOWN_BLE = 36 +} +export declare enum ESLAnkerBleConstant { + a = -95, + b = -94, + c = -93, + d = -92, + e = -91, + f = -90, + g = -89, + h = -88, + i = -87, + j = -86 +} +export declare enum P2PConnectionType { + ONLY_LOCAL = 1, + QUICKEST = 2 +} +export declare enum IndoorSoloSmartdropCommandType { + CMD_ANSWERING_RING_RECORD = 1027, + CMD_AUDIO_RECORD = 1029, + CMD_BRIGHTNESS = 1021, + CMD_CHIME_BIND = 1007, + CMD_CHIME_OPEN = 1006, + CMD_DELETE_HISTORY_FILE = 1011, + CMD_DELETE_METERING_ZONE = 1014, + CMD_ENABLE_HDR = 1019, + CMD_END_SPEAK = 1002, + CMD_FIXED_RESOLUTION = 1018, + CMD_LED_NIGHT_OPEN = 1026, + CMD_MOTION_ADVANCE_OPTION_DEFAULT = 1028, + CMD_MOTION_DETECTION_PACKAGE = 1016, + CMD_MOTION_DETECTION_ZONE = 1009, + CMD_MOTION_DETECTION_ZONE_DELETE = 1008, + CMD_MOTION_UN_DETECTION_ZONE = 1024, + CMD_MOTION_UN_DETECTION_ZONE_DELETE = 1025, + CMD_QUERY_DEVICE_VOLTAGE = 1015, + CMD_QUICK_RESPONSE = 1004, + CMD_SEND_VIDEO_BITRATE = 1017, + CMD_SET_METERING_ZONE = 1013, + CMD_SET_RINGTONE_VOLUME = 1012, + CMD_START_LIVE = 1000, + CMD_START_SPEAK = 1001, + CMD_STREAM_INFO = 1005, + CMD_UPDATE_QUICK_RESPONSE = 1010, + CMD_VIDEO_DISTORTIONCORRECTION = 1022, + CMD_VIDEO_QUALITY = 1020, + CMD_VIDEO_RECORD_QUALITY = 1023, + CMD_ZOOM_REGION = 1003 +} +export declare enum SmartSafeCommandCode { + BIND_CMD = 1, + VERIFY_IDENTITY = 2, + DEFAULT = 3, + ACTIVATE_DEVICE = 4, + ADD_PASSWORD = 5, + QUERY_IS_SET_PASSWORD = 6, + ADD_FINGERPRINT = 7, + DELETE_FINGERPRINT = 8, + QUERY_FINGERPRINT_LIST = 9, + ENTER_OTA_UPDATE = 10, + SEND_OTA_PACKAGE = 11, + QUERY_LOCK_STATUS = 12, + UNLOCK = 13, + QUERY_BATTERY = 14, + SET_LOCK_ALARM = 15, + SET_CRACK_PROTECT = 16, + UNLOAD_BATTERY = 17, + QUERY_FW_CODE = 18, + SCAN_WIFI = 19, + QUERY_WIFI_LIST = 20, + CONNECT_WIFI = 21, + QUERY_CRACK_PROTECT = 22, + QUERY_LOCK_ALARM = 23, + QUERY_SCRAMBLE_PASSWORD = 24, + SET_SCRAMBLE_PASSWORD = 25, + QUERY_DUAL_UNLOCK = 26, + SET_DUAL_UNLOCK = 27, + UNLOCK_EVENTS = 28, + CANCEL_FINGERPRINT = 29, + ACTIVE_WIFI = 30, + SET_VOLUME = 31, + QUERY_VOLUME = 32, + SET_LIGHT = 33, + QUERY_LIGHT = 34, + SET_SHAKE = 35, + QUERY_SHAKE = 36, + UNBIND = 37, + UPDATE_FINGERPRINT = 38, + UPDATE_NAME = 39, + SET_PUSH = 40, + QUERY_PUSH = 41, + SET_VOLUME_ALERT = 42, + QUERY_VOLUME_ALERT = 43, + QUERY_PASSWORD = 44, + SET_UNLOCK_MODE = 45, + QUERY_UNLOCK_MODE = 46, + SET_VERIFY_PIN = 47, + UNLOCK_EVENTS2 = 48, + UNLOCK_EVENTS3 = 49, + SET_POWERSAVE = 50, + QUERY_POWERSAVE = 51, + SEND_WIFI_OTA = 52, + QUERY_IS_SET_PANIC_FINGERPRINT = 53 +} +export declare enum SmartSafeAlarm911Event { + CANCEL_ALARM = 0, + ALARM = 1, + ALARM_SUCCESS = 2, + ALARM_NOT_OPEN = 3, + ALARM_OPEN_FAILED = 4 +} +export declare enum SmartSafeShakeAlarmEvent { + CANCEL_ALARM = 0, + ALARM = 1 +} +export declare enum SmartSafeBatteryTemperatureEvent { + NORMAL = 0, + LOW = 1, + HIGH = 2 +} +export declare enum SmartSafeBatteryStatusEvent { + NOT_CHARGING = 0, + CHARGING = 1 +} +export declare enum DatabaseReturnCode { + ERROR_DB_NOT_READY = -1100, + SUCCESSFUL = 0 +} +export declare enum P2PStorageType { + NONE = 0, + EMMC = 1, + HD = 2, + SDCARD = 3, + SENSOR = 4, + ALARM = 5 +} +export declare enum FilterStorageType { + NONE = 0, + LOCAL = 1, + CLOUD = 2 +} +export declare enum FilterEventType { + ALL = 0, + VIDEO = 1, + ALERT = 2 +} +export declare enum FeatureTag { + USER = 0, + STRANGER = 1, + SELF_LEARNING_NO_CONFIRM = 2, + SELF_LEARNING_CONFIRM = 3, + SELF_LEARNING_ERROR_CONFIRM = 4 +} +export declare enum FilterDetectType { + NOT_SUPPORT = 0, + PERSON_FACE = 1, + PERSON_BODY = 2, + VEHICLE = 4, + PET = 8, + SOUND = 128, + CRYING = 256, + PACKAGE = 512, + PACKAGE_PICK_UP = 512, + PACKAGE_DELIVERED = 1024, + CROSS_DELIVERED = 2048 +} +export declare enum CalibrateGarageType { + ROLLER_DOOR = 1, + SECTIONAL_DOOR = 2, + TILT_DOOR = 3 +} +export interface LockV12P2PCommand { + aesKey: string; + bleCommand: number; + payload: LockV12P2PCommandType; +} +export interface SmartLockP2PCommand { + bleCommand: number; + payload: SmartLockP2PCommandType; +} +export declare enum EncryptionType { + NONE = 0, + LEVEL_1 = 1, + LEVEL_2 = 2 +} +export declare enum InternalP2PCommandType { + WithIntString = 0, + WithInt = 1, + WithStringPayload = 2, + WithString = 3, + WithoutData = 4 +} +export declare enum TrackerCommandType { + COMMAND_ANTILOST = 1001, + COMMAND_AUDIO_SETTING = 999, + COMMAND_BATTERY = 1003, + COMMAND_LOCATION = 1002, + COMMAND_LOST_MODE = 998, + COMMAND_NEW_LOCATION = 1008, + COMMAND_NOTIFICATION = 1004, + COMMAND_OPEN_ANTI_TOUCH = 1010, + COMMAND_TYPE_FINDMYPHONE = 1000, + DISTURB_LOCATION_LIST = 1007, + LOCATION_ADDRESS = 1006, + LOCATION_NEW_ADDRESS = 1009, + TYPE_ICON_INDEX = 1005 +} +export declare enum SmartLockCommand { + CALIBRATE_LOCK = 6017, + QUERY_STATUS_IN_LOCK = 6012, + ON_OFF_LOCK = 6018, + ADD_PW = 6002, + UPDATE_USER_TIME = 146, + UPDATE_PW = 6014, + QUERY_PW = 6009, + ADD_FINGER = 6003, + CANCEL_ADD_FINGER = 115, + DELETE_FINGER = 6006, + UPDATE_FINGER_NAME = 119, + QUERY_ALL_USERS = 6007, + DELETE_USER = 6004, + GET_FINGER_PW_USAGE = 6022, + WIFI_SCAN = 104, + WIFI_LIST = 105, + WIFI_CONNECT = 106, + ACTIVATE_DEVICE = 107, + SET_LOCK_PARAM = 6015, + GET_LOCK_PARAM = 6016, + GET_LOCK_EVENT = 122, + PULL_BLE = 6024, + NOTIFY = 142, + CONNECT = 138, + DISCONNECT = 141, + CAPACITY_NEGOTIATION = 139, + SET_CAPACITY = 140, + VERIFY_IDENTIFY = 6000, + BIND = 101, + UNBIND = 124, + HEARTBEAT = 6001, + RESET = 6019, + BIND_SUCCESS = 102 +} +export declare enum SmartLockFunctionType { + TYPE_1 = 1, + TYPE_2 = 2 +} +export declare enum SmartLockBleCommandFunctionType1 { + CONNECT = 1, + DISCONNECT = 2, + CAPACITY_NEGOTIATION = 3, + SET_CAPACITY = 5, + VERIFY_IDENTIFY = 34, + BIND = 35, + UNBIND = 36, + HEARTBEAT = 38, + GET_DEVICE_INFO = 41, + GET_OTA_STATUS = 44, + OTA_OPERATION = 45, + OTA_DATA_SENDING = 46, + RESET = 47, + BIND_SUCCESS = 48 +} +export declare enum SmartLockBleCommandFunctionType2 { + CALIBRATE_LOCK = 33, + QUERY_STATUS_IN_LOCK = 34, + ON_OFF_LOCK = 35, + ADD_PW = 36, + UPDATE_USER_TIME = 37, + UPDATE_PW = 38, + QUERY_PW = 39, + ADD_FINGER = 40, + CANCEL_ADD_FINGER = 41, + DELETE_FINGER = 42, + UPDATE_FINGER_NAME = 43, + QUERY_ALL_USERS = 44, + DELETE_USER = 45, + GET_FINGER_PW_USAGE = 46, + WIFI_SCAN = 48, + WIFI_LIST = 49, + WIFI_CONNECT = 50, + ACTIVATE_DEVICE = 51, + SET_LOCK_PARAM = 52, + GET_LOCK_PARAM = 53, + GET_LOCK_EVENT = 56, + PULL_BLE = 61, + NOTIFY = 74 +} diff --git a/build/p2p/types.js b/build/p2p/types.js new file mode 100644 index 00000000..e6dfab37 --- /dev/null +++ b/build/p2p/types.js @@ -0,0 +1,1219 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SmartLockBleCommandFunctionType2 = exports.SmartLockBleCommandFunctionType1 = exports.SmartLockFunctionType = exports.SmartLockCommand = exports.TrackerCommandType = exports.InternalP2PCommandType = exports.EncryptionType = exports.CalibrateGarageType = exports.FilterDetectType = exports.FeatureTag = exports.FilterEventType = exports.FilterStorageType = exports.P2PStorageType = exports.DatabaseReturnCode = exports.SmartSafeBatteryStatusEvent = exports.SmartSafeBatteryTemperatureEvent = exports.SmartSafeShakeAlarmEvent = exports.SmartSafeAlarm911Event = exports.SmartSafeCommandCode = exports.IndoorSoloSmartdropCommandType = exports.P2PConnectionType = exports.ESLAnkerBleConstant = exports.ESLBleCommand = exports.ESLCommand = exports.AudioCodec = exports.VideoCodec = exports.PanTiltDirection = exports.WatermarkSetting5 = exports.WatermarkSetting4 = exports.WatermarkSetting3 = exports.WatermarkSetting2 = exports.WatermarkSetting1 = exports.AlarmEvent = exports.TFCardStatus = exports.ErrorCode = exports.MessageType = exports.CommandType = exports.P2PDataTypeHeader = exports.P2PDataType = exports.ResponseMessageType = exports.RequestMessageType = void 0; +exports.RequestMessageType = { + STUN: Buffer.from([0xF1, 0x00]), + LOOKUP: Buffer.from([0xF1, 0x20]), + LOOKUP_WITH_KEY: Buffer.from([0xF1, 0x26]), + LOOKUP_WITH_KEY2: Buffer.from([0xF1, 0x6a]), + TURN_LOOKUP_WITH_KEY: Buffer.from([0xF1, 0x80]), + TURN_SERVER_INIT: Buffer.from([0xF1, 0x70]), + TURN_CLIENT_OK: Buffer.from([0xF1, 0x72]), + CHECK_CAM2: Buffer.from([0xF1, 0x83]), + LOCAL_LOOKUP: Buffer.from([0xF1, 0x30]), + PING: Buffer.from([0xF1, 0xE0]), + PONG: Buffer.from([0xF1, 0xE1]), + CHECK_CAM: Buffer.from([0xF1, 0x41]), + DATA: Buffer.from([0xF1, 0xD0]), + ACK: Buffer.from([0xF1, 0xD1]), + END: Buffer.from([0xF1, 0xF0]) +}; +exports.ResponseMessageType = { + STUN: Buffer.from([0xF1, 0x01]), + LOOKUP_RESP: Buffer.from([0xF1, 0x21]), + LOOKUP_ADDR: Buffer.from([0xF1, 0x40]), + LOCAL_LOOKUP_RESP: Buffer.from([0xF1, 0x41]), + TURN_SERVER_LIST: Buffer.from([0xF1, 0x69]), + TURN_SERVER_OK: Buffer.from([0xF1, 0x71]), + TURN_SERVER_TOKEN: Buffer.from([0xF1, 0x73]), + TURN_SERVER_LOOKUP_OK: Buffer.from([0xF1, 0x81]), + LOOKUP_ADDR2: Buffer.from([0xF1, 0x82]), + UNKNOWN_83: Buffer.from([0xF1, 0x83]), + TURN_SERVER_CAM_ID: Buffer.from([0xF1, 0x84]), + END: Buffer.from([0xF1, 0xF0]), + PONG: Buffer.from([0xF1, 0xE1]), + PING: Buffer.from([0xF1, 0xE0]), + CAM_ID: Buffer.from([0xF1, 0x42]), + ACK: Buffer.from([0xF1, 0xD1]), + DATA: Buffer.from([0xF1, 0xD0]) +}; +var P2PDataType; +(function (P2PDataType) { + P2PDataType[P2PDataType["UNKNOWN"] = -1] = "UNKNOWN"; + P2PDataType[P2PDataType["DATA"] = 0] = "DATA"; + P2PDataType[P2PDataType["VIDEO"] = 1] = "VIDEO"; + P2PDataType[P2PDataType["CONTROL"] = 2] = "CONTROL"; + P2PDataType[P2PDataType["BINARY"] = 3] = "BINARY"; +})(P2PDataType || (exports.P2PDataType = P2PDataType = {})); +exports.P2PDataTypeHeader = { + DATA: Buffer.from([0xD1, P2PDataType.DATA]), + VIDEO: Buffer.from([0xD1, P2PDataType.VIDEO]), + CONTROL: Buffer.from([0xD1, P2PDataType.CONTROL]), + BINARY: Buffer.from([0xD1, P2PDataType.BINARY]) +}; +var CommandType; +(function (CommandType) { + //com.oceanwing.battery.cam.zmedia.model.CommandType + CommandType[CommandType["ARM_DELAY_AWAY"] = 1158] = "ARM_DELAY_AWAY"; + CommandType[CommandType["ARM_DELAY_CUS1"] = 1159] = "ARM_DELAY_CUS1"; + CommandType[CommandType["ARM_DELAY_CUS2"] = 1160] = "ARM_DELAY_CUS2"; + CommandType[CommandType["ARM_DELAY_CUS3"] = 1161] = "ARM_DELAY_CUS3"; + CommandType[CommandType["ARM_DELAY_HOME"] = 1157] = "ARM_DELAY_HOME"; + CommandType[CommandType["ARM_DELAY_OFF"] = 1180] = "ARM_DELAY_OFF"; + CommandType[CommandType["AUTOMATION_DATA"] = 1278] = "AUTOMATION_DATA"; + CommandType[CommandType["AUTOMATION_ID_LIST"] = 1165] = "AUTOMATION_ID_LIST"; + CommandType[CommandType["CMD_ALARM_DELAY_AWAY"] = 1167] = "CMD_ALARM_DELAY_AWAY"; + CommandType[CommandType["CMD_ALARM_DELAY_CUSTOM1"] = 1168] = "CMD_ALARM_DELAY_CUSTOM1"; + CommandType[CommandType["CMD_ALARM_DELAY_CUSTOM2"] = 1169] = "CMD_ALARM_DELAY_CUSTOM2"; + CommandType[CommandType["CMD_ALARM_DELAY_CUSTOM3"] = 1170] = "CMD_ALARM_DELAY_CUSTOM3"; + CommandType[CommandType["CMD_ALARM_DELAY_HOME"] = 1166] = "CMD_ALARM_DELAY_HOME"; + CommandType[CommandType["CMD_AUDDEC_SWITCH"] = 1017] = "CMD_AUDDEC_SWITCH"; + CommandType[CommandType["CMD_AUDIO_FRAME"] = 1301] = "CMD_AUDIO_FRAME"; + CommandType[CommandType["CMD_BATCH_RECORD"] = 1049] = "CMD_BATCH_RECORD"; + CommandType[CommandType["CMD_BAT_DOORBELL_CHIME_SWITCH"] = 1702] = "CMD_BAT_DOORBELL_CHIME_SWITCH"; + CommandType[CommandType["CMD_BAT_DOORBELL_DINGDONG_R"] = 1718] = "CMD_BAT_DOORBELL_DINGDONG_R"; + CommandType[CommandType["CMD_BAT_DOORBELL_DINGDONG_V"] = 1717] = "CMD_BAT_DOORBELL_DINGDONG_V"; + CommandType[CommandType["CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH"] = 1703] = "CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH"; + CommandType[CommandType["CMD_BAT_DOORBELL_ONLY_AI"] = 1719] = "CMD_BAT_DOORBELL_ONLY_AI"; + CommandType[CommandType["CMD_BAT_DOORBELL_QUICK_RESPONSE"] = 1706] = "CMD_BAT_DOORBELL_QUICK_RESPONSE"; + CommandType[CommandType["CMD_BAT_DOORBELL_SET_AC_VALUE"] = 1714] = "CMD_BAT_DOORBELL_SET_AC_VALUE"; + CommandType[CommandType["CMD_BAT_DOORBELL_SET_ELECTRONIC_RINGTONE_TIME"] = 1709] = "CMD_BAT_DOORBELL_SET_ELECTRONIC_RINGTONE_TIME"; + CommandType[CommandType["CMD_BAT_DOORBELL_SET_LED_ENABLE"] = 1716] = "CMD_BAT_DOORBELL_SET_LED_ENABLE"; + CommandType[CommandType["CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE"] = 1710] = "CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE"; + CommandType[CommandType["CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME"] = 1708] = "CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME"; + CommandType[CommandType["CMD_BAT_DOORBELL_UPDATE_QUICK_RESPONSE"] = 1707] = "CMD_BAT_DOORBELL_UPDATE_QUICK_RESPONSE"; + CommandType[CommandType["CMD_BAT_DOORBELL_VIDEO_QUALITY"] = 1705] = "CMD_BAT_DOORBELL_VIDEO_QUALITY"; + CommandType[CommandType["CMD_BAT_DOORBELL_VIDEO_QUALITY2"] = 2730] = "CMD_BAT_DOORBELL_VIDEO_QUALITY2"; + CommandType[CommandType["CMD_BAT_DOORBELL_RECORD_QUALITY2"] = 2731] = "CMD_BAT_DOORBELL_RECORD_QUALITY2"; + CommandType[CommandType["CMD_BAT_DOORBELL_WDR_SWITCH"] = 1704] = "CMD_BAT_DOORBELL_WDR_SWITCH"; + CommandType[CommandType["CMD_BIND_BROADCAST"] = 1000] = "CMD_BIND_BROADCAST"; + CommandType[CommandType["CMD_BIND_SYNC_ACCOUNT_INFO"] = 1001] = "CMD_BIND_SYNC_ACCOUNT_INFO"; + CommandType[CommandType["CMD_BIND_SYNC_ACCOUNT_INFO_EX"] = 1054] = "CMD_BIND_SYNC_ACCOUNT_INFO_EX"; + CommandType[CommandType["CMD_CAMERA_INFO"] = 1103] = "CMD_CAMERA_INFO"; + CommandType[CommandType["CMD_CHANGE_PWD"] = 1030] = "CMD_CHANGE_PWD"; + CommandType[CommandType["CMD_CHANGE_WIFI_PWD"] = 1031] = "CMD_CHANGE_WIFI_PWD"; + CommandType[CommandType["CMD_CLOSE_AUDDEC"] = 1018] = "CMD_CLOSE_AUDDEC"; + CommandType[CommandType["CMD_CLOSE_DEV_LED"] = 1046] = "CMD_CLOSE_DEV_LED"; + CommandType[CommandType["CMD_CLOSE_EAS"] = 1016] = "CMD_CLOSE_EAS"; + CommandType[CommandType["CMD_CLOSE_IRCUT"] = 1014] = "CMD_CLOSE_IRCUT"; + CommandType[CommandType["CMD_CLOSE_PIR"] = 1012] = "CMD_CLOSE_PIR"; + CommandType[CommandType["CMD_COLLECT_RECORD"] = 1047] = "CMD_COLLECT_RECORD"; + CommandType[CommandType["CMD_CONVERT_MP4_OK"] = 1303] = "CMD_CONVERT_MP4_OK"; + CommandType[CommandType["CMD_DECOLLECT_RECORD"] = 1048] = "CMD_DECOLLECT_RECORD"; + CommandType[CommandType["CMD_DELLETE_RECORD"] = 1027] = "CMD_DELLETE_RECORD"; + CommandType[CommandType["CMD_DEL_FACE_PHOTO"] = 1234] = "CMD_DEL_FACE_PHOTO"; + CommandType[CommandType["CMD_DEL_USER_PHOTO"] = 1232] = "CMD_DEL_USER_PHOTO"; + CommandType[CommandType["CMD_DEVS_BIND_BROADCASE"] = 1038] = "CMD_DEVS_BIND_BROADCASE"; + CommandType[CommandType["CMD_DEVS_BIND_NOTIFY"] = 1039] = "CMD_DEVS_BIND_NOTIFY"; + CommandType[CommandType["CMD_DEVS_LOCK"] = 1019] = "CMD_DEVS_LOCK"; + CommandType[CommandType["CMD_DEVS_SWITCH"] = 1035] = "CMD_DEVS_SWITCH"; + CommandType[CommandType["CMD_DEVS_TO_FACTORY"] = 1037] = "CMD_DEVS_TO_FACTORY"; + CommandType[CommandType["CMD_DEVS_UNBIND"] = 1040] = "CMD_DEVS_UNBIND"; + CommandType[CommandType["CMD_DEVS_UNLOCK"] = 1020] = "CMD_DEVS_UNLOCK"; + CommandType[CommandType["CMD_DEV_LED_SWITCH"] = 1045] = "CMD_DEV_LED_SWITCH"; + CommandType[CommandType["CMD_DEV_PUSHMSG_MODE"] = 1252] = "CMD_DEV_PUSHMSG_MODE"; + CommandType[CommandType["CMD_DEV_RECORD_AUTOSTOP"] = 1251] = "CMD_DEV_RECORD_AUTOSTOP"; + CommandType[CommandType["CMD_DEV_RECORD_INTERVAL"] = 1250] = "CMD_DEV_RECORD_INTERVAL"; + CommandType[CommandType["CMD_DEV_RECORD_TIMEOUT"] = 1249] = "CMD_DEV_RECORD_TIMEOUT"; + CommandType[CommandType["CMD_DOWNLOAD_FINISH"] = 1304] = "CMD_DOWNLOAD_FINISH"; + CommandType[CommandType["CMD_DOORBELL_NOTIFY_PAYLOAD"] = 1701] = "CMD_DOORBELL_NOTIFY_PAYLOAD"; + CommandType[CommandType["CMD_DOORBELL_SET_PAYLOAD"] = 1700] = "CMD_DOORBELL_SET_PAYLOAD"; + CommandType[CommandType["CMD_DOORLOCK_ACCOUNT_UNBIND"] = 1915] = "CMD_DOORLOCK_ACCOUNT_UNBIND"; + CommandType[CommandType["CMD_DOORLOCK_BIND"] = 1910] = "CMD_DOORLOCK_BIND"; + CommandType[CommandType["CMD_DOORLOCK_DATA_PASS_THROUGH"] = 1911] = "CMD_DOORLOCK_DATA_PASS_THROUGH"; + CommandType[CommandType["CMD_DOORLOCK_DATA_PASS_THROUGH_ERR"] = 1918] = "CMD_DOORLOCK_DATA_PASS_THROUGH_ERR"; + CommandType[CommandType["CMD_DOORLOCK_GET_STATE"] = 1912] = "CMD_DOORLOCK_GET_STATE"; + CommandType[CommandType["CMD_DOORLOCK_ONLINE_REPORT"] = 1917] = "CMD_DOORLOCK_ONLINE_REPORT"; + CommandType[CommandType["CMD_DOORLOCK_OTA"] = 1914] = "CMD_DOORLOCK_OTA"; + CommandType[CommandType["CMD_DOORLOCK_P2P_SEQ"] = 1916] = "CMD_DOORLOCK_P2P_SEQ"; + CommandType[CommandType["CMD_DOORLOCK_SET_PUSH_MODE"] = 1919] = "CMD_DOORLOCK_SET_PUSH_MODE"; + CommandType[CommandType["CMD_DOOR_SENSOR_ALARM_ENABLE"] = 1506] = "CMD_DOOR_SENSOR_ALARM_ENABLE"; + CommandType[CommandType["CMD_DOOR_SENSOR_DOOR_EVT"] = 1503] = "CMD_DOOR_SENSOR_DOOR_EVT"; + CommandType[CommandType["CMD_DOOR_SENSOR_ENABLE_LED"] = 1505] = "CMD_DOOR_SENSOR_ENABLE_LED"; + CommandType[CommandType["CMD_DOOR_SENSOR_GET_DOOR_STATE"] = 1502] = "CMD_DOOR_SENSOR_GET_DOOR_STATE"; + CommandType[CommandType["CMD_DOOR_SENSOR_GET_INFO"] = 1501] = "CMD_DOOR_SENSOR_GET_INFO"; + CommandType[CommandType["CMD_DOOR_SENSOR_INFO_REPORT"] = 1500] = "CMD_DOOR_SENSOR_INFO_REPORT"; + CommandType[CommandType["CMD_DOOR_SENSOR_LOW_POWER_REPORT"] = 1504] = "CMD_DOOR_SENSOR_LOW_POWER_REPORT"; + CommandType[CommandType["CMD_DOWNLOAD_CANCEL"] = 1051] = "CMD_DOWNLOAD_CANCEL"; + CommandType[CommandType["CMD_DOWNLOAD_VIDEO"] = 1024] = "CMD_DOWNLOAD_VIDEO"; + CommandType[CommandType["CMD_EAS_SWITCH"] = 1015] = "CMD_EAS_SWITCH"; + CommandType[CommandType["CMD_ENTRY_SENSOR_BAT_STATE"] = 1552] = "CMD_ENTRY_SENSOR_BAT_STATE"; + CommandType[CommandType["CMD_ENTRY_SENSOR_CHANGE_TIME"] = 1551] = "CMD_ENTRY_SENSOR_CHANGE_TIME"; + CommandType[CommandType["CMD_ENTRY_SENSOR_STATUS"] = 1550] = "CMD_ENTRY_SENSOR_STATUS"; + CommandType[CommandType["CMD_FLOODLIGHT_BROADCAST"] = 902] = "CMD_FLOODLIGHT_BROADCAST"; + CommandType[CommandType["CMD_FORMAT_SD"] = 1029] = "CMD_FORMAT_SD"; + CommandType[CommandType["CMD_FORMAT_SD_PROGRESS"] = 1053] = "CMD_FORMAT_SD_PROGRESS"; + CommandType[CommandType["CMD_GATEWAYINFO"] = 1100] = "CMD_GATEWAYINFO"; + CommandType[CommandType["CMD_GEO_ADD_USER_INFO"] = 1259] = "CMD_GEO_ADD_USER_INFO"; + CommandType[CommandType["CMD_GEO_DEL_USER_INFO"] = 1261] = "CMD_GEO_DEL_USER_INFO"; + CommandType[CommandType["CMD_GEO_SET_USER_STATUS"] = 1258] = "CMD_GEO_SET_USER_STATUS"; + CommandType[CommandType["CMD_GEO_UPDATE_LOC_SETTING"] = 1262] = "CMD_GEO_UPDATE_LOC_SETTING"; + CommandType[CommandType["CMD_GEO_UPDATE_USER_INFO"] = 1260] = "CMD_GEO_UPDATE_USER_INFO"; + CommandType[CommandType["CMD_GET_ADMIN_PWD"] = 1122] = "CMD_GET_ADMIN_PWD"; + CommandType[CommandType["CMD_GET_ALARM_MODE"] = 1151] = "CMD_GET_ALARM_MODE"; + CommandType[CommandType["CMD_GET_ARMING_INFO"] = 1107] = "CMD_GET_ARMING_INFO"; + CommandType[CommandType["CMD_GET_ARMING_STATUS"] = 1108] = "CMD_GET_ARMING_STATUS"; + CommandType[CommandType["CMD_GET_AUDDEC_INFO"] = 1109] = "CMD_GET_AUDDEC_INFO"; + CommandType[CommandType["CMD_GET_AUDDEC_SENSITIVITY"] = 1110] = "CMD_GET_AUDDEC_SENSITIVITY"; + CommandType[CommandType["CMD_GET_AUDDE_CSTATUS"] = 1111] = "CMD_GET_AUDDE_CSTATUS"; + CommandType[CommandType["CMD_GET_AWAY_ACTION"] = 1239] = "CMD_GET_AWAY_ACTION"; + CommandType[CommandType["CMD_GET_BATTERY"] = 1101] = "CMD_GET_BATTERY"; + CommandType[CommandType["CMD_GET_BATTERY_TEMP"] = 1138] = "CMD_GET_BATTERY_TEMP"; + CommandType[CommandType["CMD_GET_CAMERA_LOCK"] = 1119] = "CMD_GET_CAMERA_LOCK"; + CommandType[CommandType["CMD_GET_CHARGE_STATUS"] = 1136] = "CMD_GET_CHARGE_STATUS"; + CommandType[CommandType["CMD_GET_CUSTOM1_ACTION"] = 1148] = "CMD_GET_CUSTOM1_ACTION"; + CommandType[CommandType["CMD_GET_CUSTOM2_ACTION"] = 1149] = "CMD_GET_CUSTOM2_ACTION"; + CommandType[CommandType["CMD_GET_CUSTOM3_ACTION"] = 1150] = "CMD_GET_CUSTOM3_ACTION"; + CommandType[CommandType["CMD_GET_DELAY_ALARM"] = 1164] = "CMD_GET_DELAY_ALARM"; + CommandType[CommandType["CMD_GET_DEVICE_PING"] = 1152] = "CMD_GET_DEVICE_PING"; + CommandType[CommandType["CMD_GET_DEVS_NAME"] = 1129] = "CMD_GET_DEVS_NAME"; + CommandType[CommandType["CMD_GET_DEVS_RSSI_LIST"] = 1274] = "CMD_GET_DEVS_RSSI_LIST"; + CommandType[CommandType["CMD_GET_DEV_CLOUD_STATUS"] = 1182] = "CMD_GET_DEV_CLOUD_STATUS"; + CommandType[CommandType["CMD_GET_DEV_HK_RECORD_STATUS"] = 1181] = "CMD_GET_DEV_HK_RECORD_STATUS"; + CommandType[CommandType["CMD_GET_DEV_STATUS"] = 1131] = "CMD_GET_DEV_STATUS"; + CommandType[CommandType["CMD_GET_DEV_TONE_INFO"] = 1127] = "CMD_GET_DEV_TONE_INFO"; + CommandType[CommandType["CMD_GET_DEV_UPGRADE"] = 1134] = "CMD_GET_DEV_UPGRADE"; + CommandType[CommandType["CMD_GET_EAS_STATUS"] = 1118] = "CMD_GET_EAS_STATUS"; + CommandType[CommandType["CMD_GET_EXCEPTION_LOG"] = 1124] = "CMD_GET_EXCEPTION_LOG"; + CommandType[CommandType["CMD_GET_FLOODLIGHT_WIFI_LIST"] = 1405] = "CMD_GET_FLOODLIGHT_WIFI_LIST"; + CommandType[CommandType["CMD_GET_GATEWAY_LOCK"] = 1120] = "CMD_GET_GATEWAY_LOCK"; + CommandType[CommandType["CMD_GET_HOME_ACTION"] = 1225] = "CMD_GET_HOME_ACTION"; + CommandType[CommandType["CMD_GET_HUB_LAN_IP"] = 1176] = "CMD_GET_HUB_LAN_IP"; + CommandType[CommandType["CMD_GET_HUB_LOG"] = 1132] = "CMD_GET_HUB_LOG"; + CommandType[CommandType["CMD_GET_HUB_LOGIG"] = 1140] = "CMD_GET_HUB_LOGIG"; + CommandType[CommandType["CMD_GET_HUB_NAME"] = 1128] = "CMD_GET_HUB_NAME"; + CommandType[CommandType["CMD_GET_HUB_POWER_SUPPLY"] = 1137] = "CMD_GET_HUB_POWER_SUPPLY"; + CommandType[CommandType["CMD_GET_HUB_TONE_INFO"] = 1126] = "CMD_GET_HUB_TONE_INFO"; + CommandType[CommandType["CMD_GET_HUB_UPGRADE"] = 1133] = "CMD_GET_HUB_UPGRADE"; + CommandType[CommandType["CMD_GET_IRCUTSENSITIVITY"] = 1114] = "CMD_GET_IRCUTSENSITIVITY"; + CommandType[CommandType["CMD_GET_IRMODE"] = 1113] = "CMD_GET_IRMODE"; + CommandType[CommandType["CMD_GET_MDETECT_PARAM"] = 1105] = "CMD_GET_MDETECT_PARAM"; + CommandType[CommandType["CMD_GET_MIRRORMODE"] = 1112] = "CMD_GET_MIRRORMODE"; + CommandType[CommandType["CMD_GET_NEWVESION"] = 1125] = "CMD_GET_NEWVESION"; + CommandType[CommandType["CMD_GET_OFF_ACTION"] = 1177] = "CMD_GET_OFF_ACTION"; + CommandType[CommandType["CMD_GET_P2P_CONN_STATUS"] = 1130] = "CMD_GET_P2P_CONN_STATUS"; + CommandType[CommandType["CMD_GET_PIRCTRL"] = 1116] = "CMD_GET_PIRCTRL"; + CommandType[CommandType["CMD_GET_PIRINFO"] = 1115] = "CMD_GET_PIRINFO"; + CommandType[CommandType["CMD_GET_PIRSENSITIVITY"] = 1117] = "CMD_GET_PIRSENSITIVITY"; + CommandType[CommandType["CMD_GET_RECORD_TIME"] = 1104] = "CMD_GET_RECORD_TIME"; + CommandType[CommandType["CMD_GET_REPEATER_CONN_TEST_RESULT"] = 1270] = "CMD_GET_REPEATER_CONN_TEST_RESULT"; + CommandType[CommandType["CMD_GET_REPEATER_RSSI"] = 1266] = "CMD_GET_REPEATER_RSSI"; + CommandType[CommandType["CMD_GET_REPEATER_SITE_LIST"] = 1263] = "CMD_GET_REPEATER_SITE_LIST"; + CommandType[CommandType["CMD_GET_SOLAR_SHOW"] = 1294] = "CMD_GET_SOLAR_SHOW"; + CommandType[CommandType["CMD_GET_START_HOMEKIT"] = 1163] = "CMD_GET_START_HOMEKIT"; + CommandType[CommandType["CMD_GET_SUB1G_RSSI"] = 1141] = "CMD_GET_SUB1G_RSSI"; + CommandType[CommandType["CMD_GET_TFCARD_FORMAT_STATUS"] = 1143] = "CMD_GET_TFCARD_FORMAT_STATUS"; + CommandType[CommandType["CMD_GET_TFCARD_REPAIR_STATUS"] = 1153] = "CMD_GET_TFCARD_REPAIR_STATUS"; + CommandType[CommandType["CMD_GET_TFCARD_STATUS"] = 1135] = "CMD_GET_TFCARD_STATUS"; + CommandType[CommandType["CMD_GET_UPDATE_STATUS"] = 1121] = "CMD_GET_UPDATE_STATUS"; + CommandType[CommandType["CMD_GET_UPGRADE_RESULT"] = 1043] = "CMD_GET_UPGRADE_RESULT"; + CommandType[CommandType["CMD_GET_WAN_LINK_STATUS"] = 1268] = "CMD_GET_WAN_LINK_STATUS"; + CommandType[CommandType["CMD_GET_WAN_MODE"] = 1265] = "CMD_GET_WAN_MODE"; + CommandType[CommandType["CMD_GET_WIFI_PWD"] = 1123] = "CMD_GET_WIFI_PWD"; + CommandType[CommandType["CMD_GET_WIFI_RSSI"] = 1142] = "CMD_GET_WIFI_RSSI"; + CommandType[CommandType["CMD_HUB_ALARM_TONE"] = 1281] = "CMD_HUB_ALARM_TONE"; + CommandType[CommandType["CMD_HUB_CLEAR_EMMC_VOLUME"] = 1800] = "CMD_HUB_CLEAR_EMMC_VOLUME"; + CommandType[CommandType["CMD_HUB_NOTIFY_ALARM"] = 1282] = "CMD_HUB_NOTIFY_ALARM"; + CommandType[CommandType["CMD_HUB_NOTIFY_MODE"] = 1283] = "CMD_HUB_NOTIFY_MODE"; + CommandType[CommandType["CMD_HUB_REBOOT"] = 1034] = "CMD_HUB_REBOOT"; + CommandType[CommandType["CMD_HUB_TO_FACTORY"] = 1036] = "CMD_HUB_TO_FACTORY"; + CommandType[CommandType["CMD_IRCUT_SWITCH"] = 1013] = "CMD_IRCUT_SWITCH"; + CommandType[CommandType["CMD_KEYPAD_BATTERY_CAP_STATE"] = 1653] = "CMD_KEYPAD_BATTERY_CAP_STATE"; + CommandType[CommandType["CMD_KEYPAD_BATTERY_CHARGER_STATE"] = 1655] = "CMD_KEYPAD_BATTERY_CHARGER_STATE"; + CommandType[CommandType["CMD_KEYPAD_BATTERY_TEMP_STATE"] = 1654] = "CMD_KEYPAD_BATTERY_TEMP_STATE"; + CommandType[CommandType["CMD_KEYPAD_GET_PASSWORD"] = 1657] = "CMD_KEYPAD_GET_PASSWORD"; + CommandType[CommandType["CMD_KEYPAD_GET_PASSWORD_LIST"] = 1662] = "CMD_KEYPAD_GET_PASSWORD_LIST"; + CommandType[CommandType["CMD_KEYPAD_IS_PSW_SET"] = 1670] = "CMD_KEYPAD_IS_PSW_SET"; + CommandType[CommandType["CMD_KEYPAD_PSW_OPEN"] = 1664] = "CMD_KEYPAD_PSW_OPEN"; + CommandType[CommandType["CMD_KEYPAD_SET_CUSTOM_MAP"] = 1660] = "CMD_KEYPAD_SET_CUSTOM_MAP"; + CommandType[CommandType["CMD_KEYPAD_SET_PASSWORD"] = 1650] = "CMD_KEYPAD_SET_PASSWORD"; + CommandType[CommandType["CMD_LEAVING_DELAY_AWAY"] = 1172] = "CMD_LEAVING_DELAY_AWAY"; + CommandType[CommandType["CMD_LEAVING_DELAY_CUSTOM1"] = 1173] = "CMD_LEAVING_DELAY_CUSTOM1"; + CommandType[CommandType["CMD_LEAVING_DELAY_CUSTOM2"] = 1174] = "CMD_LEAVING_DELAY_CUSTOM2"; + CommandType[CommandType["CMD_LEAVING_DELAY_CUSTOM3"] = 1175] = "CMD_LEAVING_DELAY_CUSTOM3"; + CommandType[CommandType["CMD_LEAVING_DELAY_HOME"] = 1171] = "CMD_LEAVING_DELAY_HOME"; + CommandType[CommandType["CMD_LIVEVIEW_LED_SWITCH"] = 1056] = "CMD_LIVEVIEW_LED_SWITCH"; + CommandType[CommandType["CMD_MDETECTINFO"] = 1106] = "CMD_MDETECTINFO"; + CommandType[CommandType["CMD_MOTION_SENSOR_BAT_STATE"] = 1601] = "CMD_MOTION_SENSOR_BAT_STATE"; + CommandType[CommandType["CMD_MOTION_SENSOR_ENABLE_LED"] = 1607] = "CMD_MOTION_SENSOR_ENABLE_LED"; + CommandType[CommandType["CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE"] = 1613] = "CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE"; + CommandType[CommandType["CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE"] = 1610] = "CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE"; + CommandType[CommandType["CMD_MOTION_SENSOR_PIR_EVT"] = 1605] = "CMD_MOTION_SENSOR_PIR_EVT"; + CommandType[CommandType["CMD_MOTION_SENSOR_SET_CHIRP_TONE"] = 1611] = "CMD_MOTION_SENSOR_SET_CHIRP_TONE"; + CommandType[CommandType["CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY"] = 1609] = "CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY"; + CommandType[CommandType["CMD_MOTION_SENSOR_WORK_MODE"] = 1612] = "CMD_MOTION_SENSOR_WORK_MODE"; + CommandType[CommandType["CMD_NAS_SWITCH"] = 1145] = "CMD_NAS_SWITCH"; + CommandType[CommandType["CMD_NAS_TEST"] = 1146] = "CMD_NAS_TEST"; + CommandType[CommandType["CMD_NOTIFY_PAYLOAD"] = 1351] = "CMD_NOTIFY_PAYLOAD"; + CommandType[CommandType["CMD_P2P_DISCONNECT"] = 1044] = "CMD_P2P_DISCONNECT"; + CommandType[CommandType["CMD_PING"] = 1139] = "CMD_PING"; + CommandType[CommandType["CMD_PIR_SWITCH"] = 1011] = "CMD_PIR_SWITCH"; + CommandType[CommandType["CMD_RECORDDATE_SEARCH"] = 1041] = "CMD_RECORDDATE_SEARCH"; + CommandType[CommandType["CMD_RECORDLIST_SEARCH"] = 1042] = "CMD_RECORDLIST_SEARCH"; + CommandType[CommandType["CMD_RECORD_AUDIO_SWITCH"] = 1366] = "CMD_RECORD_AUDIO_SWITCH"; + CommandType[CommandType["CMD_RECORD_IMG"] = 1021] = "CMD_RECORD_IMG"; + CommandType[CommandType["CMD_RECORD_IMG_STOP"] = 1022] = "CMD_RECORD_IMG_STOP"; + CommandType[CommandType["CMD_RECORD_PLAY_CTRL"] = 1026] = "CMD_RECORD_PLAY_CTRL"; + CommandType[CommandType["CMD_RECORD_VIEW"] = 1025] = "CMD_RECORD_VIEW"; + CommandType[CommandType["CMD_REPAIR_PROGRESS"] = 1058] = "CMD_REPAIR_PROGRESS"; + CommandType[CommandType["CMD_REPAIR_SD"] = 1057] = "CMD_REPAIR_SD"; + CommandType[CommandType["CMD_REPEATER_RSSI_TEST"] = 1269] = "CMD_REPEATER_RSSI_TEST"; + CommandType[CommandType["CMD_RF433_DONGLE_STATUS_CHANGE"] = 1900] = "CMD_RF433_DONGLE_STATUS_CHANGE"; + CommandType[CommandType["CMD_RF433_GET_DONGLE_STATE"] = 1901] = "CMD_RF433_GET_DONGLE_STATE"; + CommandType[CommandType["CMD_RF433_TRIGER_RING"] = 1902] = "CMD_RF433_TRIGER_RING"; + CommandType[CommandType["CMD_SDINFO"] = 1102] = "CMD_SDINFO"; + CommandType[CommandType["CMD_SDINFO_EX"] = 1144] = "CMD_SDINFO_EX"; + CommandType[CommandType["CMD_SENSOR_SET_CHIRP_TONE"] = 1507] = "CMD_SENSOR_SET_CHIRP_TONE"; + CommandType[CommandType["CMD_SENSOR_SET_CHIRP_VOLUME"] = 1508] = "CMD_SENSOR_SET_CHIRP_VOLUME"; + CommandType[CommandType["CMD_SET_AI_NICKNAME"] = 1242] = "CMD_SET_AI_NICKNAME"; + CommandType[CommandType["CMD_SET_AI_PHOTO"] = 1231] = "CMD_SET_AI_PHOTO"; + CommandType[CommandType["CMD_SET_AI_SWITCH"] = 1236] = "CMD_SET_AI_SWITCH"; + CommandType[CommandType["CMD_SET_ALL_ACTION"] = 1255] = "CMD_SET_ALL_ACTION"; + CommandType[CommandType["CMD_SET_ARMING"] = 1224] = "CMD_SET_ARMING"; + CommandType[CommandType["CMD_SET_ARMING_SCHEDULE"] = 1211] = "CMD_SET_ARMING_SCHEDULE"; + CommandType[CommandType["CMD_SET_AS_SERVER"] = 1237] = "CMD_SET_AS_SERVER"; + CommandType[CommandType["CMD_SET_AUDDEC_INFO"] = 1212] = "CMD_SET_AUDDEC_INFO"; + CommandType[CommandType["CMD_SET_AUDDEC_SENSITIVITY"] = 1213] = "CMD_SET_AUDDEC_SENSITIVITY"; + CommandType[CommandType["CMD_SET_AUDIOSENSITIVITY"] = 1227] = "CMD_SET_AUDIOSENSITIVITY"; + CommandType[CommandType["CMD_SET_AUDIO_MUTE_RECORD"] = 1288] = "CMD_SET_AUDIO_MUTE_RECORD"; + CommandType[CommandType["CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT"] = 2123] = "CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT"; + CommandType[CommandType["CMD_SET_AUTO_DELETE_RECORD"] = 1367] = "CMD_SET_AUTO_DELETE_RECORD"; + CommandType[CommandType["CMD_SET_BITRATE"] = 1206] = "CMD_SET_BITRATE"; + CommandType[CommandType["CMD_SET_CUSTOM_MODE"] = 1256] = "CMD_SET_CUSTOM_MODE"; + CommandType[CommandType["CMD_SET_DEVS_NAME"] = 1217] = "CMD_SET_DEVS_NAME"; + CommandType[CommandType["CMD_SET_DEVS_OSD"] = 1214] = "CMD_SET_DEVS_OSD"; + CommandType[CommandType["CMD_SET_DEVS_TONE_FILE"] = 1202] = "CMD_SET_DEVS_TONE_FILE"; + CommandType[CommandType["CMD_SET_DEV_MD_RECORD"] = 1273] = "CMD_SET_DEV_MD_RECORD"; + CommandType[CommandType["CMD_SET_DEV_MIC_MUTE"] = 1240] = "CMD_SET_DEV_MIC_MUTE"; + CommandType[CommandType["CMD_SET_DEV_MIC_VOLUME"] = 1229] = "CMD_SET_DEV_MIC_VOLUME"; + CommandType[CommandType["CMD_SET_DEV_SPEAKER_MUTE"] = 1241] = "CMD_SET_DEV_SPEAKER_MUTE"; + CommandType[CommandType["CMD_SET_DEV_SPEAKER_VOLUME"] = 1230] = "CMD_SET_DEV_SPEAKER_VOLUME"; + CommandType[CommandType["CMD_SET_DEV_STORAGE_TYPE"] = 1228] = "CMD_SET_DEV_STORAGE_TYPE"; + CommandType[CommandType["CMD_SET_DOORSENSOR_ALWAYS_OPEN"] = 1290] = "CMD_SET_DOORSENSOR_ALWAYS_OPEN"; + CommandType[CommandType["CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY"] = 1291] = "CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_BRIGHT_VALUE"] = 1401] = "CMD_SET_FLOODLIGHT_BRIGHT_VALUE"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_DETECTION_AREA"] = 1407] = "CMD_SET_FLOODLIGHT_DETECTION_AREA"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_LIGHT_SCHEDULE"] = 1404] = "CMD_SET_FLOODLIGHT_LIGHT_SCHEDULE"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_MANUAL_SWITCH"] = 1400] = "CMD_SET_FLOODLIGHT_MANUAL_SWITCH"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_STREET_LAMP"] = 1402] = "CMD_SET_FLOODLIGHT_STREET_LAMP"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_TOTAL_SWITCH"] = 1403] = "CMD_SET_FLOODLIGHT_TOTAL_SWITCH"; + CommandType[CommandType["CMD_SET_FLOODLIGHT_WIFI_CONNECT"] = 1406] = "CMD_SET_FLOODLIGHT_WIFI_CONNECT"; + CommandType[CommandType["CMD_SET_GSSENSITIVITY"] = 1226] = "CMD_SET_GSSENSITIVITY"; + CommandType[CommandType["CMD_SET_HUB_ALARM_AUTO_END"] = 1280] = "CMD_SET_HUB_ALARM_AUTO_END"; + CommandType[CommandType["CMD_SET_HUB_ALARM_CLOSE"] = 1279] = "CMD_SET_HUB_ALARM_CLOSE"; + CommandType[CommandType["CMD_SET_HUB_AUDEC_STATUS"] = 1222] = "CMD_SET_HUB_AUDEC_STATUS"; + CommandType[CommandType["CMD_SET_HUB_GS_STATUS"] = 1220] = "CMD_SET_HUB_GS_STATUS"; + CommandType[CommandType["CMD_SET_HUB_IRCUT_STATUS"] = 1219] = "CMD_SET_HUB_IRCUT_STATUS"; + CommandType[CommandType["CMD_SET_HUB_MVDEC_STATUS"] = 1221] = "CMD_SET_HUB_MVDEC_STATUS"; + CommandType[CommandType["CMD_SET_HUB_NAME"] = 1216] = "CMD_SET_HUB_NAME"; + CommandType[CommandType["CMD_SET_HUB_OSD"] = 1253] = "CMD_SET_HUB_OSD"; + CommandType[CommandType["CMD_SET_HUB_PIR_STATUS"] = 1218] = "CMD_SET_HUB_PIR_STATUS"; + CommandType[CommandType["CMD_SET_HUB_SPK_VOLUME"] = 1235] = "CMD_SET_HUB_SPK_VOLUME"; + CommandType[CommandType["CMD_SET_IRMODE"] = 1208] = "CMD_SET_IRMODE"; + CommandType[CommandType["CMD_SET_JSON_SCHEDULE"] = 1254] = "CMD_SET_JSON_SCHEDULE"; + CommandType[CommandType["CMD_SET_LANGUAGE"] = 1200] = "CMD_SET_LANGUAGE"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_PIR"] = 1412] = "CMD_SET_LIGHT_CTRL_BRIGHT_PIR"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425"] = 1422] = "CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_SCH"] = 1413] = "CMD_SET_LIGHT_CTRL_BRIGHT_SCH"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425"] = 1421] = "CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_LAMP_VALUE"] = 1410] = "CMD_SET_LIGHT_CTRL_LAMP_VALUE"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_PIR_SWITCH"] = 1408] = "CMD_SET_LIGHT_CTRL_PIR_SWITCH"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_PIR_TIME"] = 1409] = "CMD_SET_LIGHT_CTRL_PIR_TIME"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_SUNRISE_INFO"] = 1415] = "CMD_SET_LIGHT_CTRL_SUNRISE_INFO"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_SUNRISE_SWITCH"] = 1414] = "CMD_SET_LIGHT_CTRL_SUNRISE_SWITCH"; + CommandType[CommandType["CMD_SET_LIGHT_CTRL_TRIGGER"] = 1411] = "CMD_SET_LIGHT_CTRL_TRIGGER"; + CommandType[CommandType["CMD_SET_MDETECTPARAM"] = 1204] = "CMD_SET_MDETECTPARAM"; + CommandType[CommandType["CMD_SET_MDSENSITIVITY"] = 1272] = "CMD_SET_MDSENSITIVITY"; + CommandType[CommandType["CMD_SET_MIRRORMODE"] = 1207] = "CMD_SET_MIRRORMODE"; + CommandType[CommandType["CMD_SET_MOTION_SENSITIVITY"] = 1276] = "CMD_SET_MOTION_SENSITIVITY"; + CommandType[CommandType["CMD_SET_NAS_PASSWD"] = 1287] = "CMD_SET_NAS_PASSWD"; + CommandType[CommandType["CMD_SET_NIGHT_VISION_TYPE"] = 1277] = "CMD_SET_NIGHT_VISION_TYPE"; + CommandType[CommandType["CMD_SET_NOTFACE_PUSHMSG"] = 1248] = "CMD_SET_NOTFACE_PUSHMSG"; + CommandType[CommandType["CMD_SET_PAYLOAD"] = 1350] = "CMD_SET_PAYLOAD"; + CommandType[CommandType["CMD_SET_PIRSENSITIVITY"] = 1210] = "CMD_SET_PIRSENSITIVITY"; + CommandType[CommandType["CMD_SET_PIR_INFO"] = 1209] = "CMD_SET_PIR_INFO"; + CommandType[CommandType["CMD_SET_PIR_POWERMODE"] = 1246] = "CMD_SET_PIR_POWERMODE"; + CommandType[CommandType["CMD_SET_PIR_TEST_MODE"] = 1243] = "CMD_SET_PIR_TEST_MODE"; + CommandType[CommandType["CMD_SET_POWER_CHARGE"] = 1293] = "CMD_SET_POWER_CHARGE"; + CommandType[CommandType["CMD_SET_PRIVACYPARAM"] = 1295] = "CMD_SET_PRIVACYPARAM"; + CommandType[CommandType["CMD_SET_PRI_ACTION"] = 1233] = "CMD_SET_PRI_ACTION"; + CommandType[CommandType["CMD_SET_PROMPT_VOLUME"] = 1292] = "CMD_SET_PROMPT_VOLUME"; + CommandType[CommandType["CMD_SET_PUSH_EFFECT"] = 1289] = "CMD_SET_PUSH_EFFECT"; + CommandType[CommandType["CMD_SET_RECORDTIME"] = 1203] = "CMD_SET_RECORDTIME"; + CommandType[CommandType["CMD_SET_RECORD_QUALITY"] = 1286] = "CMD_SET_RECORD_QUALITY"; + CommandType[CommandType["CMD_SET_REPEATER_PARAMS"] = 1264] = "CMD_SET_REPEATER_PARAMS"; + CommandType[CommandType["CMD_SET_RESOLUTION"] = 1205] = "CMD_SET_RESOLUTION"; + CommandType[CommandType["CMD_SET_SCHEDULE_DEFAULT"] = 1257] = "CMD_SET_SCHEDULE_DEFAULT"; + CommandType[CommandType["CMD_SET_SNOOZE_MODE"] = 1271] = "CMD_SET_SNOOZE_MODE"; + CommandType[CommandType["CMD_SET_STORGE_TYPE"] = 1223] = "CMD_SET_STORGE_TYPE"; + CommandType[CommandType["CMD_SET_TELNET"] = 1247] = "CMD_SET_TELNET"; + CommandType[CommandType["CMD_SET_TIMEZONE"] = 1215] = "CMD_SET_TIMEZONE"; + CommandType[CommandType["CMD_SET_TONE_FILE"] = 1201] = "CMD_SET_TONE_FILE"; + CommandType[CommandType["CMD_SET_UPGRADE"] = 1238] = "CMD_SET_UPGRADE"; + CommandType[CommandType["CMD_SNAPSHOT"] = 1028] = "CMD_SNAPSHOT"; + CommandType[CommandType["CMD_START_REALTIME_MEDIA"] = 1003] = "CMD_START_REALTIME_MEDIA"; + CommandType[CommandType["CMD_START_RECORD"] = 1009] = "CMD_START_RECORD"; + CommandType[CommandType["CMD_START_REC_BROADCASE"] = 900] = "CMD_START_REC_BROADCASE"; + CommandType[CommandType["CMD_START_TALKBACK"] = 1005] = "CMD_START_TALKBACK"; + CommandType[CommandType["CMD_START_VOICECALL"] = 1007] = "CMD_START_VOICECALL"; + CommandType[CommandType["CMD_STOP_REALTIME_MEDIA"] = 1004] = "CMD_STOP_REALTIME_MEDIA"; + CommandType[CommandType["CMD_STOP_RECORD"] = 1010] = "CMD_STOP_RECORD"; + CommandType[CommandType["CMD_STOP_REC_BROADCASE"] = 901] = "CMD_STOP_REC_BROADCASE"; + CommandType[CommandType["CMD_STOP_SHARE"] = 1023] = "CMD_STOP_SHARE"; + CommandType[CommandType["CMD_STOP_TALKBACK"] = 1006] = "CMD_STOP_TALKBACK"; + CommandType[CommandType["CMD_STOP_VOICECALL"] = 1008] = "CMD_STOP_VOICECALL"; + CommandType[CommandType["CMD_STREAM_MSG"] = 1302] = "CMD_STREAM_MSG"; + CommandType[CommandType["CMD_STRESS_TEST_OPER"] = 1050] = "CMD_STRESS_TEST_OPER"; + CommandType[CommandType["CMD_TIME_SYCN"] = 1033] = "CMD_TIME_SYCN"; + CommandType[CommandType["CMD_UNBIND_ACCOUNT"] = 1002] = "CMD_UNBIND_ACCOUNT"; + CommandType[CommandType["CMD_VIDEO_FRAME"] = 1300] = "CMD_VIDEO_FRAME"; + CommandType[CommandType["CMD_WIFI_CONFIG"] = 1032] = "CMD_WIFI_CONFIG"; + CommandType[CommandType["SWITCH_TIME"] = 1162] = "SWITCH_TIME"; + CommandType[CommandType["CMD_BATTERY_FALSE_EVENT_COUNT"] = 6056] = "CMD_BATTERY_FALSE_EVENT_COUNT"; + CommandType[CommandType["CMD_FLOODLIGHT_GET_WIFI_RSSI_INFO"] = 6080] = "CMD_FLOODLIGHT_GET_WIFI_RSSI_INFO"; + //CMD_FLOODLIGHT_SET_PIR_TEST_MODE = 6081, + CommandType[CommandType["CMD_INDOOR_AI_CRYING_ENABLE"] = 6024] = "CMD_INDOOR_AI_CRYING_ENABLE"; + CommandType[CommandType["CMD_INDOOR_AI_MOTION_ENABLE"] = 6023] = "CMD_INDOOR_AI_MOTION_ENABLE"; + CommandType[CommandType["CMD_INDOOR_AI_PERSON_ENABLE"] = 6022] = "CMD_INDOOR_AI_PERSON_ENABLE"; + CommandType[CommandType["CMD_INDOOR_AI_PET_ENABLE"] = 6026] = "CMD_INDOOR_AI_PET_ENABLE"; + CommandType[CommandType["CMD_INDOOR_AI_SOUND_ENABLE"] = 6025] = "CMD_INDOOR_AI_SOUND_ENABLE"; + CommandType[CommandType["CMD_INDOOR_SET_MOTION_DETECTION_TYPE"] = 6027] = "CMD_INDOOR_SET_MOTION_DETECTION_TYPE"; + CommandType[CommandType["CMD_INDOOR_CONTINUE_RECORD_SCHEDULE"] = 6013] = "CMD_INDOOR_CONTINUE_RECORD_SCHEDULE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_ACTIVE_ZONE"] = 6042] = "CMD_INDOOR_DET_SET_ACTIVE_ZONE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE"] = 6040] = "CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE"] = 6045] = "CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX"] = 6041] = "CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX"; + CommandType[CommandType["CMD_INDOOR_DET_SET_PET_ENABLE"] = 6047] = "CMD_INDOOR_DET_SET_PET_ENABLE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_PET_EXPEL_RESPONSOR"] = 6048] = "CMD_INDOOR_DET_SET_PET_EXPEL_RESPONSOR"; + CommandType[CommandType["CMD_INDOOR_DET_SET_PET_EXPEL_RESP_IDX"] = 6049] = "CMD_INDOOR_DET_SET_PET_EXPEL_RESP_IDX"; + CommandType[CommandType["CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE"] = 6043] = "CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE"] = 6046] = "CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE"; + CommandType[CommandType["CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX"] = 6044] = "CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX"; + CommandType[CommandType["CMD_INDOOR_EVENT_COUNT"] = 6053] = "CMD_INDOOR_EVENT_COUNT"; + CommandType[CommandType["CMD_INDOOR_HK_ACTIVE_HOMEKIT"] = 6061] = "CMD_INDOOR_HK_ACTIVE_HOMEKIT"; + CommandType[CommandType["CMD_INDOOR_HK_GET_HK_BIND_STATUS"] = 6062] = "CMD_INDOOR_HK_GET_HK_BIND_STATUS"; + CommandType[CommandType["CMD_INDOOR_LED_SWITCH"] = 6014] = "CMD_INDOOR_LED_SWITCH"; + CommandType[CommandType["CMD_INDOOR_NAS_STORAGE_TYPE"] = 6050] = "CMD_INDOOR_NAS_STORAGE_TYPE"; + CommandType[CommandType["CMD_INDOOR_OWNER_STREAM_TYPE"] = 6052] = "CMD_INDOOR_OWNER_STREAM_TYPE"; + CommandType[CommandType["CMD_INDOOR_PAN_CALIBRATION"] = 6017] = "CMD_INDOOR_PAN_CALIBRATION"; + CommandType[CommandType["CMD_OUTDOOR_PAN_CALIBRATION"] = 6251] = "CMD_OUTDOOR_PAN_CALIBRATION"; + CommandType[CommandType["CMD_INDOOR_PAN_MOTION_TRACK"] = 6016] = "CMD_INDOOR_PAN_MOTION_TRACK"; + CommandType[CommandType["CMD_INDOOR_PAN_SPEED"] = 6015] = "CMD_INDOOR_PAN_SPEED"; + CommandType[CommandType["CMD_INDOOR_PUSH_JUMP_TYPE"] = 6021] = "CMD_INDOOR_PUSH_JUMP_TYPE"; + CommandType[CommandType["CMD_INDOOR_PUSH_NOTIFY_TYPE"] = 6020] = "CMD_INDOOR_PUSH_NOTIFY_TYPE"; + CommandType[CommandType["CMD_INDOOR_SET_CONTINUE_ENABLE"] = 6010] = "CMD_INDOOR_SET_CONTINUE_ENABLE"; + CommandType[CommandType["CMD_INDOOR_SET_CONTINUE_TYPE"] = 6011] = "CMD_INDOOR_SET_CONTINUE_TYPE"; + CommandType[CommandType["CMD_INDOOR_SET_RECORD_AUDIO_ENABLE"] = 6012] = "CMD_INDOOR_SET_RECORD_AUDIO_ENABLE"; + CommandType[CommandType["CMD_INDOOR_SHOW_SDCARD"] = 6054] = "CMD_INDOOR_SHOW_SDCARD"; + CommandType[CommandType["CMD_INDOOR_TFCARD_NAS_STATUS"] = 6051] = "CMD_INDOOR_TFCARD_NAS_STATUS"; + CommandType[CommandType["CMD_INDOOR_ROTATE"] = 6030] = "CMD_INDOOR_ROTATE"; + CommandType[CommandType["CMD_OUTDOOR_ROTATE"] = 6038] = "CMD_OUTDOOR_ROTATE"; + CommandType[CommandType["CMD_INDOOR_ENABLE_PRIVACY_MODE"] = 6090] = "CMD_INDOOR_ENABLE_PRIVACY_MODE"; + CommandType[CommandType["CMD_INDOOR_SET_PRIVACY_ANGLE"] = 6091] = "CMD_INDOOR_SET_PRIVACY_ANGLE"; + CommandType[CommandType["CMD_INDOOR_DEFAULT_ANGLE_SET"] = 6092] = "CMD_INDOOR_DEFAULT_ANGLE_SET"; + CommandType[CommandType["CMD_INDOOR_DEFAULT_ANGLE_ENABLE"] = 6093] = "CMD_INDOOR_DEFAULT_ANGLE_ENABLE"; + CommandType[CommandType["CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME"] = 6094] = "CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME"; + CommandType[CommandType["CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK"] = 6095] = "CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK"; + CommandType[CommandType["CMD_T8200X_SET_RINGTONE_VOLUME"] = 6096] = "CMD_T8200X_SET_RINGTONE_VOLUME"; + CommandType[CommandType["CMD_IN_TEST_MODE"] = 6072] = "CMD_IN_TEST_MODE"; + CommandType[CommandType["CMD_PLAY_BACK_EVENT_STOP"] = 1055] = "CMD_PLAY_BACK_EVENT_STOP"; + CommandType[CommandType["CMD_SET_DETECT_TYPE"] = 6071] = "CMD_SET_DETECT_TYPE"; + CommandType[CommandType["CMD_SET_PIR_SENSITIVITY"] = 6070] = "CMD_SET_PIR_SENSITIVITY"; + CommandType[CommandType["CMD_SMARTLOCK_QUERY_BATTERY_LEVEL"] = 6001] = "CMD_SMARTLOCK_QUERY_BATTERY_LEVEL"; + CommandType[CommandType["CMD_SMARTLOCK_QUERY_STATUS"] = 6000] = "CMD_SMARTLOCK_QUERY_STATUS"; + CommandType[CommandType["P2P_ADD_PW"] = 1950] = "P2P_ADD_PW"; + CommandType[CommandType["P2P_CALIBRATE_LOCK"] = 1960] = "P2P_CALIBRATE_LOCK"; + CommandType[CommandType["P2P_DELETE_FINGER"] = 1953] = "P2P_DELETE_FINGER"; + CommandType[CommandType["P2P_DELETE_USER"] = 1951] = "P2P_DELETE_USER"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + CommandType[CommandType["P2P_ENTER_OTA"] = 1238] = "P2P_ENTER_OTA"; + CommandType[CommandType["P2P_GET_FINGER_PW_USAGE"] = 1963] = "P2P_GET_FINGER_PW_USAGE"; + CommandType[CommandType["P2P_GET_LOCK_PARAM"] = 1959] = "P2P_GET_LOCK_PARAM"; + CommandType[CommandType["P2P_GET_USER_AND_PW_ID"] = 1964] = "P2P_GET_USER_AND_PW_ID"; + CommandType[CommandType["P2P_ON_OFF_LOCK"] = 1961] = "P2P_ON_OFF_LOCK"; + CommandType[CommandType["P2P_PULL_BLE"] = 1962] = "P2P_PULL_BLE"; + CommandType[CommandType["P2P_QUERY_PW"] = 1954] = "P2P_QUERY_PW"; + CommandType[CommandType["P2P_QUERY_STATUS_IN_LOCK"] = 1955] = "P2P_QUERY_STATUS_IN_LOCK"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + CommandType[CommandType["P2P_RESET"] = 1040] = "P2P_RESET"; + CommandType[CommandType["P2P_SET_LOCK_PARAM"] = 1958] = "P2P_SET_LOCK_PARAM"; + CommandType[CommandType["P2P_UPDATE_PW"] = 1957] = "P2P_UPDATE_PW"; + CommandType[CommandType["P2P_UPDATE_USER_TIME"] = 1956] = "P2P_UPDATE_USER_TIME"; + CommandType[CommandType["SUB1G_REP_BIND_FAILED"] = 2109] = "SUB1G_REP_BIND_FAILED"; + CommandType[CommandType["SUB1G_REP_CHARGE_STATE"] = 2108] = "SUB1G_REP_CHARGE_STATE"; + CommandType[CommandType["SUB1G_REP_POWER_OFF"] = 2110] = "SUB1G_REP_POWER_OFF"; + CommandType[CommandType["SUB1G_REP_RUNTIME_STATE"] = 2107] = "SUB1G_REP_RUNTIME_STATE"; + CommandType[CommandType["SUB1G_REP_UNPLUG_POWER_LINE"] = 2111] = "SUB1G_REP_UNPLUG_POWER_LINE"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425"] = 6073] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE"] = 6086] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY"] = 6087] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY"] = 6081] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY"] = 6083] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY"] = 6085] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY"] = 6107] = "CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY"; + CommandType[CommandType["CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION"] = 6032] = "CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION"; + CommandType[CommandType["CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION"] = 6033] = "CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION"] = 6035] = "CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE"] = 6031] = "CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION"] = 6098] = "CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL"] = 6100] = "CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION"] = 6101] = "CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE"] = 6102] = "CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT"] = 6105] = "CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION"] = 6106] = "CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION"; + CommandType[CommandType["CMD_FLOODLIGHT_SET_AUTO_CALIBRATION"] = 6099] = "CMD_FLOODLIGHT_SET_AUTO_CALIBRATION"; + CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK"] = 6500] = "CMD_SMARTLOCK_AUTO_LOCK"; + CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE"] = 6501] = "CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE"; + CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME"] = 6601] = "CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME"; + CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME"] = 6602] = "CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME"; + CommandType[CommandType["CMD_SMARTLOCK_LOCK_SOUND"] = 6505] = "CMD_SMARTLOCK_LOCK_SOUND"; + CommandType[CommandType["CMD_SMARTLOCK_LOG"] = 6700] = "CMD_SMARTLOCK_LOG"; + CommandType[CommandType["CMD_SMARTLOCK_NOTIFICATION"] = 6506] = "CMD_SMARTLOCK_NOTIFICATION"; + CommandType[CommandType["CMD_SMARTLOCK_NOTIFICATION_LOCKED"] = 6606] = "CMD_SMARTLOCK_NOTIFICATION_LOCKED"; + CommandType[CommandType["CMD_SMARTLOCK_NOTIFICATION_UNLOCKED"] = 6605] = "CMD_SMARTLOCK_NOTIFICATION_UNLOCKED"; + CommandType[CommandType["CMD_SMARTLOCK_ONE_TOUCH_LOCK"] = 6502] = "CMD_SMARTLOCK_ONE_TOUCH_LOCK"; + CommandType[CommandType["CMD_SMARTLOCK_SCRAMBLE_PASSCODE"] = 6504] = "CMD_SMARTLOCK_SCRAMBLE_PASSCODE"; + CommandType[CommandType["CMD_SMARTLOCK_WIFI_STATUS"] = 6507] = "CMD_SMARTLOCK_WIFI_STATUS"; + CommandType[CommandType["CMD_SMARTLOCK_WRONG_TRY_PROTECT"] = 6503] = "CMD_SMARTLOCK_WRONG_TRY_PROTECT"; + CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_TIMER"] = 6600] = "CMD_SMARTLOCK_AUTO_LOCK_TIMER"; + CommandType[CommandType["CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN"] = 6604] = "CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN"; + CommandType[CommandType["CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS"] = 6603] = "CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS"; + CommandType[CommandType["CMD_SMARTLOCK_NIGHT_VISION_ENHANCE"] = 6614] = "CMD_SMARTLOCK_NIGHT_VISION_ENHANCE"; + CommandType[CommandType["CMD_SMARTLOCK_NIGHT_VISION_SIDE"] = 6615] = "CMD_SMARTLOCK_NIGHT_VISION_SIDE"; + //CMD_SMARTLOCK_OPEN_DIRECTION = 6615, + CommandType[CommandType["CMD_SMARTLOCK_LEFT_OPEN_ALARM"] = 6616] = "CMD_SMARTLOCK_LEFT_OPEN_ALARM"; + CommandType[CommandType["CMD_SMARTLOCK_TAMPER_ALARM"] = 6617] = "CMD_SMARTLOCK_TAMPER_ALARM"; + CommandType[CommandType["CMD_SMARTLOCK_VOLUME"] = 6618] = "CMD_SMARTLOCK_VOLUME"; + CommandType[CommandType["CMD_DOORBELL_DUAL_VIEW_MODE"] = 2700] = "CMD_DOORBELL_DUAL_VIEW_MODE"; + CommandType[CommandType["CMD_DOORBELL_DUAL_VIEW_MODE2"] = 6243] = "CMD_DOORBELL_DUAL_VIEW_MODE2"; + CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY"] = 2705] = "CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY"; + CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_SWITCH"] = 2706] = "CMD_DOORBELL_DUAL_RADAR_WD_SWITCH"; + CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE"] = 2707] = "CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE"; + CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_TIME"] = 2708] = "CMD_DOORBELL_DUAL_RADAR_WD_TIME"; + CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH"] = 2709] = "CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH"; + CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE"] = 2710] = "CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE"; + CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME"] = 2711] = "CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME"; + CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH"] = 2712] = "CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH"; + CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME"] = 2713] = "CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME"; + CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH"] = 2714] = "CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH"; + CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE"] = 2715] = "CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE"; + CommandType[CommandType["CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE"] = 2716] = "CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE"; + CommandType[CommandType["CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH"] = 2723] = "CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH"; + CommandType[CommandType["CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT"] = 2725] = "CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT"; + CommandType[CommandType["CMD_SMARTSAFE_ALERT_VOLUME"] = 1946165264] = "CMD_SMARTSAFE_ALERT_VOLUME"; + CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_BEEP"] = 1946165248] = "CMD_SMARTSAFE_IS_ENABLE_BEEP"; + CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT"] = 1946165251] = "CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT"; + CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN"] = 1946165262] = "CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN"; + CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM"] = 1946165255] = "CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM"; + CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_STATUS_CHANGE_NOTIFY"] = 1946165258] = "CMD_SMARTSAFE_IS_ENABLE_STATUS_CHANGE_NOTIFY"; + CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK"] = 1946165256] = "CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK"; + CommandType[CommandType["CMD_SMARTSAFE_IS_PWD_SET"] = 1946165254] = "CMD_SMARTSAFE_IS_PWD_SET"; + CommandType[CommandType["CMD_SMARTSAFE_IS_SET_PREFIX_PWD"] = 1946165257] = "CMD_SMARTSAFE_IS_SET_PREFIX_PWD"; + CommandType[CommandType["CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL"] = 1946165250] = "CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL"; + CommandType[CommandType["CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND"] = 1946165261] = "CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND"; + CommandType[CommandType["CMD_SMARTSAFE_LEFT_OPEN_SECONDS"] = 1946165263] = "CMD_SMARTSAFE_LEFT_OPEN_SECONDS"; + CommandType[CommandType["CMD_SMARTSAFE_LOCK_STATUS"] = 1946165260] = "CMD_SMARTSAFE_LOCK_STATUS"; + CommandType[CommandType["CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES"] = 1946165252] = "CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES"; + CommandType[CommandType["CMD_SMARTSAFE_NOTIF"] = 1946165265] = "CMD_SMARTSAFE_NOTIF"; + CommandType[CommandType["CMD_SMARTSAFE_PANIC_FINGER_COUNT"] = 1946165268] = "CMD_SMARTSAFE_PANIC_FINGER_COUNT"; + CommandType[CommandType["CMD_SMARTSAFE_POWER_SAVE_ON"] = 1946165267] = "CMD_SMARTSAFE_POWER_SAVE_ON"; + CommandType[CommandType["CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS"] = 1946165253] = "CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS"; + CommandType[CommandType["CMD_SMARTSAFE_REMOTE_OPEN_TYPE"] = 1946165266] = "CMD_SMARTSAFE_REMOTE_OPEN_TYPE"; + CommandType[CommandType["CMD_SMARTSAFE_RSSI"] = 1946165259] = "CMD_SMARTSAFE_RSSI"; + CommandType[CommandType["CMD_SMARTSAFE_VOLUME"] = 1946165249] = "CMD_SMARTSAFE_VOLUME"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + CommandType[CommandType["CMD_SMARTSAFE_PARAM_BASE"] = 1946165248] = "CMD_SMARTSAFE_PARAM_BASE"; + CommandType[CommandType["CMD_SMARTSAFE_SETTINGS"] = 1946157056] = "CMD_SMARTSAFE_SETTINGS"; + CommandType[CommandType["CMD_SMARTSAFE_STATUS_UPDATE"] = 1946157057] = "CMD_SMARTSAFE_STATUS_UPDATE"; + CommandType[CommandType["CMD_SET_PAYLOAD_LOCKV12"] = 1930] = "CMD_SET_PAYLOAD_LOCKV12"; + CommandType[CommandType["CMD_SET_MOTION_DETECTION_TYPE_HB3"] = 1298] = "CMD_SET_MOTION_DETECTION_TYPE_HB3"; + CommandType[CommandType["CMD_GET_WORKING_DAYS_HB3"] = 1191] = "CMD_GET_WORKING_DAYS_HB3"; + CommandType[CommandType["CMD_GET_DETECTED_EVENTS_HB3"] = 1192] = "CMD_GET_DETECTED_EVENTS_HB3"; + CommandType[CommandType["CMD_GET_RECORDED_EVENTS_HB3"] = 1193] = "CMD_GET_RECORDED_EVENTS_HB3"; + CommandType[CommandType["CELLULAR_INFO"] = 7002] = "CELLULAR_INFO"; + CommandType[CommandType["CELLULAR_SIGNAL_STRENGTH"] = 7006] = "CELLULAR_SIGNAL_STRENGTH"; + CommandType[CommandType["CMD_DATABASE_COUNT"] = 10005] = "CMD_DATABASE_COUNT"; + CommandType[CommandType["CMD_DATABASE_COUNT_BY_DEVICE"] = 10012] = "CMD_DATABASE_COUNT_BY_DEVICE"; + CommandType[CommandType["CMD_DATABASE_COUNT_BY_DATE"] = 10008] = "CMD_DATABASE_COUNT_BY_DATE"; + CommandType[CommandType["CMD_DATABASE_DELETE"] = 10001] = "CMD_DATABASE_DELETE"; + CommandType[CommandType["CMD_DATABASE_DOWNLOAD"] = 8001] = "CMD_DATABASE_DOWNLOAD"; + CommandType[CommandType["CMD_DATABASE_IMAGE"] = 1308] = "CMD_DATABASE_IMAGE"; + CommandType[CommandType["CMD_DATABASE_QUERY"] = 10000] = "CMD_DATABASE_QUERY"; + CommandType[CommandType["CMD_DATABASE_QUERY_BY_DATE"] = 10006] = "CMD_DATABASE_QUERY_BY_DATE"; + CommandType[CommandType["CMD_DATABASE_QUERY_COMBINATION"] = 10009] = "CMD_DATABASE_QUERY_COMBINATION"; + CommandType[CommandType["CMD_DATABASE_QUERY_COMBINATION_WITH_AI"] = 10011] = "CMD_DATABASE_QUERY_COMBINATION_WITH_AI"; + CommandType[CommandType["CMD_DATABASE_QUERY_LATEST_INFO"] = 10013] = "CMD_DATABASE_QUERY_LATEST_INFO"; + CommandType[CommandType["CMD_DATABASE_SYNC"] = 10003] = "CMD_DATABASE_SYNC"; + CommandType[CommandType["CMD_DATABASE_UPDATE"] = 10002] = "CMD_DATABASE_UPDATE"; + CommandType[CommandType["CMD_DATABASE"] = 1306] = "CMD_DATABASE"; + CommandType[CommandType["CMD_SYNC_QUERY_RECENT_PACKAGE_INFO"] = 10018] = "CMD_SYNC_QUERY_RECENT_PACKAGE_INFO"; + CommandType[CommandType["CMD_DATABASE_QUERY_LOCAL"] = 10017] = "CMD_DATABASE_QUERY_LOCAL"; + CommandType[CommandType["CMD_WALL_LIGHT_SPEAKER_VOLUME"] = 6342] = "CMD_WALL_LIGHT_SPEAKER_VOLUME"; + CommandType[CommandType["CMD_WALL_LIGHT_ALERT_VOLUME"] = 6347] = "CMD_WALL_LIGHT_ALERT_VOLUME"; + CommandType[CommandType["CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN"] = 6330] = "CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN"; + CommandType[CommandType["CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL"] = 6332] = "CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL"; + CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION"] = 6334] = "CMD_WALL_LIGHT_NOTIFICATION"; + CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN"] = 6335] = "CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN"; + CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL"] = 6337] = "CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL"; + CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION_TYPE"] = 6338] = "CMD_WALL_LIGHT_NOTIFICATION_TYPE"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS"] = 6379] = "CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES"] = 6380] = "CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE"] = 6381] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE"] = 6382] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE"] = 6383] = "CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING"] = 6361] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING"] = 6384] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING"] = 6366] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING"] = 6367] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING"] = 6385] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING"] = 6372] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING"] = 6373] = "CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING"] = 6386] = "CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING"; + CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING"] = 6378] = "CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING"; + CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING"] = 7511] = "CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING"; + CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_STATUS"] = 7500] = "CMD_CAMERA_GARAGE_DOOR_STATUS"; + //CMD_CAMERA_GARAGE_DOOR_UNKNOWN1 = 7501, + //CMD_CAMERA_GARAGE_DOOR_UNKNOWN2 = 7502, + CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_CALIBRATE"] = 7505] = "CMD_CAMERA_GARAGE_DOOR_CALIBRATE"; + //CMD_CAMERA_GARAGE_DOOR_UNKNOWN3 = 7506, + CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_SENSORS"] = 7503] = "CMD_CAMERA_GARAGE_DOOR_SENSORS"; + CommandType[CommandType["CMD_STORAGE_INFO_HB3"] = 1307] = "CMD_STORAGE_INFO_HB3"; + CommandType[CommandType["CMD_SET_FLICKER_ADJUSTMENT"] = 8000] = "CMD_SET_FLICKER_ADJUSTMENT"; + CommandType[CommandType["CMD_SET_CROSS_CAMERA_TRACKING"] = 1065] = "CMD_SET_CROSS_CAMERA_TRACKING"; + CommandType[CommandType["CMD_SET_TRACKING_ASSISTANCE"] = 1069] = "CMD_SET_TRACKING_ASSISTANCE"; + CommandType[CommandType["CMD_SET_CONTINUOUS_TRACKING_TIME"] = 1070] = "CMD_SET_CONTINUOUS_TRACKING_TIME"; + CommandType[CommandType["CMD_SET_CROSS_TRACKING_CAMERA_LIST"] = 1072] = "CMD_SET_CROSS_TRACKING_CAMERA_LIST"; + CommandType[CommandType["CMD_SET_CROSS_TRACKING_GROUP_LIST"] = 1073] = "CMD_SET_CROSS_TRACKING_GROUP_LIST"; + CommandType[CommandType["CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350"] = 6208] = "CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350"; + CommandType[CommandType["CMD_INDOOR_ENABLE_PRIVACY_MODE_S350"] = 6250] = "CMD_INDOOR_ENABLE_PRIVACY_MODE_S350"; + CommandType[CommandType["CMD_MOTION_SET_LEAVING_DETECTION"] = 2726] = "CMD_MOTION_SET_LEAVING_DETECTION"; + CommandType[CommandType["CMD_MOTION_SET_LEAVING_REACTIONS"] = 2727] = "CMD_MOTION_SET_LEAVING_REACTIONS"; + CommandType[CommandType["CMD_SMARKLOCK_ADD_FINGER"] = 1965] = "CMD_SMARKLOCK_ADD_FINGER"; + CommandType[CommandType["CMD_SMARKLOCK_ADD_FINGER_STEP"] = 1967] = "CMD_SMARKLOCK_ADD_FINGER_STEP"; + CommandType[CommandType["CMD_SMARKLOCK_CANCLE_FINGER"] = 1966] = "CMD_SMARKLOCK_CANCLE_FINGER"; + CommandType[CommandType["CMD_SMARTLOCK_ALARM_NOTIFY"] = 1970] = "CMD_SMARTLOCK_ALARM_NOTIFY"; + CommandType[CommandType["CMD_SMARTLOCK_ALARM_STOP"] = 1971] = "CMD_SMARTLOCK_ALARM_STOP"; + CommandType[CommandType["CMD_SMARTLOCK_GET_DOOR_STATUS"] = 1972] = "CMD_SMARTLOCK_GET_DOOR_STATUS"; + CommandType[CommandType["CMD_TRANSFER_PAYLOAD"] = 1940] = "CMD_TRANSFER_PAYLOAD"; + CommandType[CommandType["CMD_WIFILOCK_KEYPAD_ENTER_OTA"] = 1933] = "CMD_WIFILOCK_KEYPAD_ENTER_OTA"; + CommandType[CommandType["CMD_SMART_DROP_DELIVERY_MODE"] = 2103] = "CMD_SMART_DROP_DELIVERY_MODE"; + CommandType[CommandType["CMD_SMART_DROP_OPEN"] = 2105] = "CMD_SMART_DROP_OPEN"; + CommandType[CommandType["CMD_SMART_DROP_OPEN_LID"] = 2100] = "CMD_SMART_DROP_OPEN_LID"; + CommandType[CommandType["CMD_SMART_DROP_IS_DENIED_DELIVERY"] = 2106] = "CMD_SMART_DROP_IS_DENIED_DELIVERY"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + CommandType[CommandType["CMD_SMART_DROP_HAS_MASTER_PIN"] = 2109] = "CMD_SMART_DROP_HAS_MASTER_PIN"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + CommandType[CommandType["CMD_SMART_DROP_IS_PIN_REQUIRED"] = 2107] = "CMD_SMART_DROP_IS_PIN_REQUIRED"; +})(CommandType || (exports.CommandType = CommandType = {})); +var MessageType; +(function (MessageType) { + //com.oceanwing.battery.cam.zmedia.model.FunctionType + MessageType[MessageType["INIT_P2P_CLIENT_TYPE"] = 1] = "INIT_P2P_CLIENT_TYPE"; + MessageType[MessageType["CONNECT_P2P_TYPE"] = 2] = "CONNECT_P2P_TYPE"; + MessageType[MessageType["DEINIT_P2P_CLIENT_TYPE"] = 3] = "DEINIT_P2P_CLIENT_TYPE"; + MessageType[MessageType["SET_COMMAND_WITH_INT_TYPE"] = 4] = "SET_COMMAND_WITH_INT_TYPE"; + MessageType[MessageType["GET_COMMAND_WITH_INT_TYPE"] = 5] = "GET_COMMAND_WITH_INT_TYPE"; + MessageType[MessageType["SET_COMMAND_WITH_STRING_TYPE"] = 6] = "SET_COMMAND_WITH_STRING_TYPE"; + MessageType[MessageType["GET_COMMAND_WITH_STRING_TYPE"] = 7] = "GET_COMMAND_WITH_STRING_TYPE"; + MessageType[MessageType["SET_REC_BROADCAT_STATE_TYPE"] = 8] = "SET_REC_BROADCAT_STATE_TYPE"; + MessageType[MessageType["SET_COMMAND_WITH_M_STRING"] = 9] = "SET_COMMAND_WITH_M_STRING"; + MessageType[MessageType["SET_COMMAND_WITH_INT_STRING_TYPE"] = 10] = "SET_COMMAND_WITH_INT_STRING_TYPE"; + MessageType[MessageType["SET_SCHEDULE_TYPE"] = 11] = "SET_SCHEDULE_TYPE"; + MessageType[MessageType["BATCH_DEL_EVENT_TYPE"] = 12] = "BATCH_DEL_EVENT_TYPE"; + MessageType[MessageType["ADD_AI_FACE_INFO_TYPE"] = 13] = "ADD_AI_FACE_INFO_TYPE"; + MessageType[MessageType["SET_COMMAND_WITH_2INT_MSTRING"] = 14] = "SET_COMMAND_WITH_2INT_MSTRING"; + MessageType[MessageType["CHECK_HUB_STATE"] = 15] = "CHECK_HUB_STATE"; + MessageType[MessageType["SET_COMMAND_WITH_2STR_INT"] = 16] = "SET_COMMAND_WITH_2STR_INT"; + MessageType[MessageType["BIND_HUB_TYPE"] = 17] = "BIND_HUB_TYPE"; + MessageType[MessageType["P2P_BIND_HUB_TYPE"] = 18] = "P2P_BIND_HUB_TYPE"; +})(MessageType || (exports.MessageType = MessageType = {})); +var ErrorCode; +(function (ErrorCode) { + //com.oceanwing.battery.cam.zmedia.model.MediaErrorCode + ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_CREATE_FAIL"] = -304] = "ERROR_BIND_CLIENT_SOCKET_CREATE_FAIL"; + ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_RECEIVE_LEN_ERROR"] = -307] = "ERROR_BIND_CLIENT_SOCKET_RECEIVE_LEN_ERROR"; + ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_RECEIVE_TIMEOUT"] = -306] = "ERROR_BIND_CLIENT_SOCKET_RECEIVE_TIMEOUT"; + ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_SEND_FAIL"] = -305] = "ERROR_BIND_CLIENT_SOCKET_SEND_FAIL"; + ErrorCode[ErrorCode["ERROR_BIND_COMMAND_ERROR"] = -309] = "ERROR_BIND_COMMAND_ERROR"; + ErrorCode[ErrorCode["ERROR_BIND_PARAM_NULL"] = -308] = "ERROR_BIND_PARAM_NULL"; + ErrorCode[ErrorCode["ERROR_BROADCAST_RECEIVE_SN_NULL"] = -303] = "ERROR_BROADCAST_RECEIVE_SN_NULL"; + ErrorCode[ErrorCode["ERROR_BROADCAST_RECEIVE_TIME_OUT"] = -302] = "ERROR_BROADCAST_RECEIVE_TIME_OUT"; + ErrorCode[ErrorCode["ERROR_BROADCAST_START_ALREADY_RUNNING"] = -300] = "ERROR_BROADCAST_START_ALREADY_RUNNING"; + ErrorCode[ErrorCode["ERROR_BROADCAST_STOP_SOCKET_FD_ERROR"] = -301] = "ERROR_BROADCAST_STOP_SOCKET_FD_ERROR"; + ErrorCode[ErrorCode["ERROR_CLOSE_HOMEKIT"] = -143] = "ERROR_CLOSE_HOMEKIT"; + ErrorCode[ErrorCode["ERROR_COMMAND_TIMEOUT"] = -133] = "ERROR_COMMAND_TIMEOUT"; + ErrorCode[ErrorCode["ERROR_CONNECT_TIMEOUT"] = -134] = "ERROR_CONNECT_TIMEOUT"; + ErrorCode[ErrorCode["ERROR_DEV_BUSY"] = -114] = "ERROR_DEV_BUSY"; + ErrorCode[ErrorCode["ERROR_DEV_CLOSE"] = -128] = "ERROR_DEV_CLOSE"; + ErrorCode[ErrorCode["ERROR_DEV_OFFLINE"] = -109] = "ERROR_DEV_OFFLINE"; + ErrorCode[ErrorCode["ERROR_DEV_UPDATEING"] = -113] = "ERROR_DEV_UPDATEING"; + ErrorCode[ErrorCode["ERROR_GET_EXEC_RESULT"] = -120] = "ERROR_GET_EXEC_RESULT"; + ErrorCode[ErrorCode["ERROR_HAVE_CONNECT"] = -101] = "ERROR_HAVE_CONNECT"; + ErrorCode[ErrorCode["ERROR_HIGHT_TEMPERATURE"] = -121] = "ERROR_HIGHT_TEMPERATURE"; + ErrorCode[ErrorCode["ERROR_HUB_NON_ADMIN"] = -125] = "ERROR_HUB_NON_ADMIN"; + ErrorCode[ErrorCode["ERROR_HUB_UPDATEING"] = -112] = "ERROR_HUB_UPDATEING"; + ErrorCode[ErrorCode["ERROR_INVALID_ACCOUNT"] = -104] = "ERROR_INVALID_ACCOUNT"; + ErrorCode[ErrorCode["ERROR_INVALID_COMMAND"] = -103] = "ERROR_INVALID_COMMAND"; + ErrorCode[ErrorCode["ERROR_INVALID_PARAM"] = -110] = "ERROR_INVALID_PARAM"; + ErrorCode[ErrorCode["ERROR_INVALID_PARAM_LEN"] = -107] = "ERROR_INVALID_PARAM_LEN"; + ErrorCode[ErrorCode["ERROR_MAX_DEV_CONNECT_NUM"] = -123] = "ERROR_MAX_DEV_CONNECT_NUM"; + ErrorCode[ErrorCode["ERROR_MAX_HUB_CONNECT_NUM"] = -102] = "ERROR_MAX_HUB_CONNECT_NUM"; + ErrorCode[ErrorCode["ERROR_MAX_NAS_CONNECT_NUM"] = -130] = "ERROR_MAX_NAS_CONNECT_NUM"; + ErrorCode[ErrorCode["ERROR_MODE_DISABLE"] = -129] = "ERROR_MODE_DISABLE"; + ErrorCode[ErrorCode["ERROR_NETWORK_NOT_AVAILABLE"] = 998] = "ERROR_NETWORK_NOT_AVAILABLE"; + ErrorCode[ErrorCode["ERROR_NOT_FACE"] = -115] = "ERROR_NOT_FACE"; + ErrorCode[ErrorCode["ERROR_NOT_FIND_DEV"] = -106] = "ERROR_NOT_FIND_DEV"; + ErrorCode[ErrorCode["ERROR_NOT_TFCARD"] = -118] = "ERROR_NOT_TFCARD"; + ErrorCode[ErrorCode["ERROR_NULL_POINT"] = -100] = "ERROR_NULL_POINT"; + ErrorCode[ErrorCode["ERROR_OPEN_FILE_FAIL"] = -111] = "ERROR_OPEN_FILE_FAIL"; + ErrorCode[ErrorCode["ERROR_PARAM_NO_CHANGE"] = -116] = "ERROR_PARAM_NO_CHANGE"; + ErrorCode[ErrorCode["ERROR_PIPE_FAIL"] = -124] = "ERROR_PIPE_FAIL"; + ErrorCode[ErrorCode["ERROR_PLAY_STOP"] = -127] = "ERROR_PLAY_STOP"; + ErrorCode[ErrorCode["ERROR_POWER_LOW"] = -117] = "ERROR_POWER_LOW"; + ErrorCode[ErrorCode["ERROR_PPCS_ALREADY_INITIALIZED"] = -2] = "ERROR_PPCS_ALREADY_INITIALIZED"; + ErrorCode[ErrorCode["ERROR_PPCS_CONNECTING"] = -126] = "ERROR_PPCS_CONNECTING"; + ErrorCode[ErrorCode["ERROR_PPCS_DEVICE_NOT_ONLINE"] = -6] = "ERROR_PPCS_DEVICE_NOT_ONLINE"; + ErrorCode[ErrorCode["ERROR_PPCS_FAIL_TO_CREATE_THREAD"] = -22] = "ERROR_PPCS_FAIL_TO_CREATE_THREAD"; + ErrorCode[ErrorCode["ERROR_PPCS_FAIL_TO_RESOLVE_NAME"] = -7] = "ERROR_PPCS_FAIL_TO_RESOLVE_NAME"; + ErrorCode[ErrorCode["ERROR_PPCS_ID_OUT_OF_DATE"] = -9] = "ERROR_PPCS_ID_OUT_OF_DATE"; + ErrorCode[ErrorCode["ERROR_PPCS_INVALID_APILICENSE"] = -21] = "ERROR_PPCS_INVALID_APILICENSE"; + ErrorCode[ErrorCode["ERROR_PPCS_INVALID_DSK"] = -23] = "ERROR_PPCS_INVALID_DSK"; + ErrorCode[ErrorCode["ERROR_PPCS_INVALID_ID"] = -4] = "ERROR_PPCS_INVALID_ID"; + ErrorCode[ErrorCode["ERROR_PPCS_INVALID_PARAMETER"] = -5] = "ERROR_PPCS_INVALID_PARAMETER"; + ErrorCode[ErrorCode["ERROR_PPCS_INVALID_PREFIX"] = -8] = "ERROR_PPCS_INVALID_PREFIX"; + ErrorCode[ErrorCode["ERROR_PPCS_INVALID_SESSION_HANDLE"] = -11] = "ERROR_PPCS_INVALID_SESSION_HANDLE"; + ErrorCode[ErrorCode["ERROR_PPCS_MAX_SESSION"] = -17] = "ERROR_PPCS_MAX_SESSION"; + ErrorCode[ErrorCode["ERROR_PPCS_NOT_INITIALIZED"] = -1] = "ERROR_PPCS_NOT_INITIALIZED"; + ErrorCode[ErrorCode["ERROR_PPCS_NO_RELAY_SERVER_AVAILABLE"] = -10] = "ERROR_PPCS_NO_RELAY_SERVER_AVAILABLE"; + ErrorCode[ErrorCode["ERROR_PPCS_RELAY"] = 1] = "ERROR_PPCS_RELAY"; + ErrorCode[ErrorCode["ERROR_PPCS_REMOTE_SITE_BUFFER_FULL"] = -15] = "ERROR_PPCS_REMOTE_SITE_BUFFER_FULL"; + ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_CALLED"] = -14] = "ERROR_PPCS_SESSION_CLOSED_CALLED"; + ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_INSUFFICIENT_MEMORY"] = -20] = "ERROR_PPCS_SESSION_CLOSED_INSUFFICIENT_MEMORY"; + ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_REMOTE"] = -12] = "ERROR_PPCS_SESSION_CLOSED_REMOTE"; + ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_TIMEOUT"] = -13] = "ERROR_PPCS_SESSION_CLOSED_TIMEOUT"; + ErrorCode[ErrorCode["ERROR_PPCS_SUCCESSFUL"] = 0] = "ERROR_PPCS_SUCCESSFUL"; + ErrorCode[ErrorCode["ERROR_PPCS_TIME_OUT"] = -3] = "ERROR_PPCS_TIME_OUT"; + ErrorCode[ErrorCode["ERROR_PPCS_UDP_PORT_BIND_FAILED"] = -18] = "ERROR_PPCS_UDP_PORT_BIND_FAILED"; + ErrorCode[ErrorCode["ERROR_PPCS_USER_CONNECT_BREAK"] = -19] = "ERROR_PPCS_USER_CONNECT_BREAK"; + ErrorCode[ErrorCode["ERROR_PPCS_USER_LISTEN_BREAK"] = -16] = "ERROR_PPCS_USER_LISTEN_BREAK"; + ErrorCode[ErrorCode["ERROR_SET_P2P_INFO"] = -122] = "ERROR_SET_P2P_INFO"; + ErrorCode[ErrorCode["ERROR_STATION_HAS_BIND"] = 20020] = "ERROR_STATION_HAS_BIND"; + ErrorCode[ErrorCode["ERROR_TFCARD_FORMATING"] = -119] = "ERROR_TFCARD_FORMATING"; + ErrorCode[ErrorCode["ERROR_TFCARD_REPAIRING"] = -135] = "ERROR_TFCARD_REPAIRING"; + ErrorCode[ErrorCode["ERROR_TFCARD_VOLUME_OVERFLOW"] = -132] = "ERROR_TFCARD_VOLUME_OVERFLOW"; + ErrorCode[ErrorCode["ERROR_WAIT_TIMEOUT"] = -108] = "ERROR_WAIT_TIMEOUT"; + ErrorCode[ErrorCode["ERROR_WAKEUP_CAMRA_TYPE"] = -131] = "ERROR_WAKEUP_CAMRA_TYPE"; + ErrorCode[ErrorCode["ERROR_WRITE_FLASH"] = -105] = "ERROR_WRITE_FLASH"; + ErrorCode[ErrorCode["ERROR_XM_BASE"] = -200] = "ERROR_XM_BASE"; + ErrorCode[ErrorCode["ERROR_XM_WIFI_DISCONNECT"] = -203] = "ERROR_XM_WIFI_DISCONNECT"; + ErrorCode[ErrorCode["ERROR_XM_WIFI_TIMEOUT"] = -205] = "ERROR_XM_WIFI_TIMEOUT"; + ErrorCode[ErrorCode["ERROR_XM_WIFI_WAKEUP_FAIL"] = -204] = "ERROR_XM_WIFI_WAKEUP_FAIL"; + ErrorCode[ErrorCode["ERROR_LIMIT_REACHED"] = -500] = "ERROR_LIMIT_REACHED"; + ErrorCode[ErrorCode["ERROR_FAILED_TO_REQUEST"] = 503] = "ERROR_FAILED_TO_REQUEST"; + ErrorCode[ErrorCode["ERROR_SEQUENCE_NUMBER"] = -151] = "ERROR_SEQUENCE_NUMBER"; +})(ErrorCode || (exports.ErrorCode = ErrorCode = {})); +var TFCardStatus; +(function (TFCardStatus) { + TFCardStatus[TFCardStatus["NULL"] = -1] = "NULL"; + TFCardStatus[TFCardStatus["NORMAL"] = 0] = "NORMAL"; + TFCardStatus[TFCardStatus["NON_ORIGINAL"] = 1] = "NON_ORIGINAL"; + TFCardStatus[TFCardStatus["MOUNT_FAIL"] = 2] = "MOUNT_FAIL"; + TFCardStatus[TFCardStatus["FORMAT_FAIL"] = 3] = "FORMAT_FAIL"; + TFCardStatus[TFCardStatus["REMOVE"] = 4] = "REMOVE"; + TFCardStatus[TFCardStatus["FORMATING"] = 5] = "FORMATING"; + TFCardStatus[TFCardStatus["BUSY"] = 6] = "BUSY"; + TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_RW"] = 7] = "E2FSCK_FAIL_MOUNT_RW"; + TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_FAIL_REINSERT"] = 8] = "E2FSCK_FAIL_MOUNT_FAIL_REINSERT"; + TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_RO"] = 9] = "E2FSCK_FAIL_MOUNT_RO"; + TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_RW_ERR"] = 10] = "E2FSCK_FAIL_MOUNT_RW_ERR"; + TFCardStatus[TFCardStatus["REPAIRING"] = 11] = "REPAIRING"; + TFCardStatus[TFCardStatus["MOUNT_FAIL_E2FSCK_ERROR"] = 12] = "MOUNT_FAIL_E2FSCK_ERROR"; + TFCardStatus[TFCardStatus["MOUNT_FAIL_E2FSCK_TIMEOUT"] = 13] = "MOUNT_FAIL_E2FSCK_TIMEOUT"; + TFCardStatus[TFCardStatus["MOUNT_RW_E2FSCK_ERROR"] = 14] = "MOUNT_RW_E2FSCK_ERROR"; + TFCardStatus[TFCardStatus["MOUNT_RW_E2FSCK_TIMEOUT"] = 15] = "MOUNT_RW_E2FSCK_TIMEOUT"; + TFCardStatus[TFCardStatus["MOUNT_RO_E2FSCK_OK"] = 16] = "MOUNT_RO_E2FSCK_OK"; + TFCardStatus[TFCardStatus["MOUNT_RO_E2FSCK_ERROR"] = 17] = "MOUNT_RO_E2FSCK_ERROR"; + TFCardStatus[TFCardStatus["MOUNT_RO_E2FSCK_TIMEOUT"] = 18] = "MOUNT_RO_E2FSCK_TIMEOUT"; + TFCardStatus[TFCardStatus["MOUNT_RERR_E2FSCK_OK"] = 19] = "MOUNT_RERR_E2FSCK_OK"; + TFCardStatus[TFCardStatus["MOUNT_RERR_E2FSCK_ERROR"] = 20] = "MOUNT_RERR_E2FSCK_ERROR"; + TFCardStatus[TFCardStatus["MOUNT_RERR_E2FSCK_TIMEOUT"] = 21] = "MOUNT_RERR_E2FSCK_TIMEOUT"; + TFCardStatus[TFCardStatus["UNNORMAL_IO_ERROR"] = 22] = "UNNORMAL_IO_ERROR"; + TFCardStatus[TFCardStatus["RISK"] = 23] = "RISK"; + TFCardStatus[TFCardStatus["MOUNTING"] = 24] = "MOUNTING"; +})(TFCardStatus || (exports.TFCardStatus = TFCardStatus = {})); +var AlarmEvent; +(function (AlarmEvent) { + //com.oceanwing.battery.cam.zmedia.model.ZControlResponse + AlarmEvent[AlarmEvent["HUB_STOP"] = 0] = "HUB_STOP"; + AlarmEvent[AlarmEvent["DEV_STOP"] = 1] = "DEV_STOP"; + AlarmEvent[AlarmEvent["GSENSOR"] = 2] = "GSENSOR"; + AlarmEvent[AlarmEvent["PIR"] = 3] = "PIR"; + AlarmEvent[AlarmEvent["APP"] = 4] = "APP"; + AlarmEvent[AlarmEvent["HOT"] = 5] = "HOT"; + AlarmEvent[AlarmEvent["DOOR"] = 6] = "DOOR"; + AlarmEvent[AlarmEvent["CAMERA_PIR"] = 7] = "CAMERA_PIR"; + AlarmEvent[AlarmEvent["MOTION_SENSOR"] = 8] = "MOTION_SENSOR"; + AlarmEvent[AlarmEvent["CAMERA_GSENSOR"] = 9] = "CAMERA_GSENSOR"; + AlarmEvent[AlarmEvent["CAMERA_APP"] = 10] = "CAMERA_APP"; + AlarmEvent[AlarmEvent["CAMERA_LINKAGE"] = 11] = "CAMERA_LINKAGE"; + AlarmEvent[AlarmEvent["HUB_KEYPAD"] = 13] = "HUB_KEYPAD"; + AlarmEvent[AlarmEvent["HUB_STOP_BY_KEYPAD"] = 15] = "HUB_STOP_BY_KEYPAD"; + AlarmEvent[AlarmEvent["HUB_STOP_BY_APP"] = 16] = "HUB_STOP_BY_APP"; + AlarmEvent[AlarmEvent["HUB_STOP_BY_HAND"] = 17] = "HUB_STOP_BY_HAND"; + AlarmEvent[AlarmEvent["APP_LIGHT"] = 22] = "APP_LIGHT"; + AlarmEvent[AlarmEvent["APP_LIGHT_SOUND"] = 23] = "APP_LIGHT_SOUND"; + AlarmEvent[AlarmEvent["MOTION_APP_LIGHT"] = 24] = "MOTION_APP_LIGHT"; + AlarmEvent[AlarmEvent["MOTION_APP_LIGHT_ALARM"] = 25] = "MOTION_APP_LIGHT_ALARM"; +})(AlarmEvent || (exports.AlarmEvent = AlarmEvent = {})); +// Doorbell, Solo cameras +var WatermarkSetting1; +(function (WatermarkSetting1) { + WatermarkSetting1[WatermarkSetting1["OFF"] = 0] = "OFF"; + WatermarkSetting1[WatermarkSetting1["ON"] = 1] = "ON"; +})(WatermarkSetting1 || (exports.WatermarkSetting1 = WatermarkSetting1 = {})); +// Battery doorbells, eufycam 1/e +var WatermarkSetting2; +(function (WatermarkSetting2) { + WatermarkSetting2[WatermarkSetting2["OFF"] = 1] = "OFF"; + WatermarkSetting2[WatermarkSetting2["ON"] = 2] = "ON"; +})(WatermarkSetting2 || (exports.WatermarkSetting2 = WatermarkSetting2 = {})); +// cameras 2x +var WatermarkSetting3; +(function (WatermarkSetting3) { + WatermarkSetting3[WatermarkSetting3["OFF"] = 0] = "OFF"; + WatermarkSetting3[WatermarkSetting3["TIMESTAMP"] = 1] = "TIMESTAMP"; + WatermarkSetting3[WatermarkSetting3["TIMESTAMP_AND_LOGO"] = 2] = "TIMESTAMP_AND_LOGO"; +})(WatermarkSetting3 || (exports.WatermarkSetting3 = WatermarkSetting3 = {})); +// Floodlight, Indoor cameras +var WatermarkSetting4; +(function (WatermarkSetting4) { + WatermarkSetting4[WatermarkSetting4["TIMESTAMP"] = 0] = "TIMESTAMP"; + WatermarkSetting4[WatermarkSetting4["TIMESTAMP_AND_LOGO"] = 1] = "TIMESTAMP_AND_LOGO"; + WatermarkSetting4[WatermarkSetting4["OFF"] = 2] = "OFF"; +})(WatermarkSetting4 || (exports.WatermarkSetting4 = WatermarkSetting4 = {})); +// Garage cameras +var WatermarkSetting5; +(function (WatermarkSetting5) { + WatermarkSetting5[WatermarkSetting5["LOGO"] = 1] = "LOGO"; + WatermarkSetting5[WatermarkSetting5["OFF"] = 2] = "OFF"; +})(WatermarkSetting5 || (exports.WatermarkSetting5 = WatermarkSetting5 = {})); +var PanTiltDirection; +(function (PanTiltDirection) { + PanTiltDirection[PanTiltDirection["ROTATE360"] = 0] = "ROTATE360"; + PanTiltDirection[PanTiltDirection["LEFT"] = 1] = "LEFT"; + PanTiltDirection[PanTiltDirection["RIGHT"] = 2] = "RIGHT"; + PanTiltDirection[PanTiltDirection["UP"] = 3] = "UP"; + PanTiltDirection[PanTiltDirection["DOWN"] = 4] = "DOWN"; +})(PanTiltDirection || (exports.PanTiltDirection = PanTiltDirection = {})); +var VideoCodec; +(function (VideoCodec) { + VideoCodec[VideoCodec["UNKNOWN"] = -1] = "UNKNOWN"; + VideoCodec[VideoCodec["H264"] = 0] = "H264"; + VideoCodec[VideoCodec["H265"] = 1] = "H265"; +})(VideoCodec || (exports.VideoCodec = VideoCodec = {})); +var AudioCodec; +(function (AudioCodec) { + AudioCodec[AudioCodec["UNKNOWN"] = -1] = "UNKNOWN"; + AudioCodec[AudioCodec["NONE"] = 0] = "NONE"; + AudioCodec[AudioCodec["AAC"] = 1] = "AAC"; + AudioCodec[AudioCodec["AAC_LC"] = 2] = "AAC_LC"; + AudioCodec[AudioCodec["AAC_ELD"] = 3] = "AAC_ELD"; +})(AudioCodec || (exports.AudioCodec = AudioCodec = {})); +var ESLCommand; +(function (ESLCommand) { + ESLCommand[ESLCommand["ACTIVATE_DEVICE"] = 107] = "ACTIVATE_DEVICE"; + ESLCommand[ESLCommand["ADD_FINGER"] = 6003] = "ADD_FINGER"; + ESLCommand[ESLCommand["ADD_FINGER_STEP"] = 6029] = "ADD_FINGER_STEP"; + ESLCommand[ESLCommand["ADD_PW"] = 6002] = "ADD_PW"; + ESLCommand[ESLCommand["BIND_LOCK"] = 101] = "BIND_LOCK"; + ESLCommand[ESLCommand["CALIBRATE_LOCK"] = 6017] = "CALIBRATE_LOCK"; + ESLCommand[ESLCommand["CANCEL_ADD_FINGER"] = 115] = "CANCEL_ADD_FINGER"; + ESLCommand[ESLCommand["CHECK_KEYPAD_CONNECT"] = 130] = "CHECK_KEYPAD_CONNECT"; + ESLCommand[ESLCommand["CREATE_TEMPORARY_PW"] = 125] = "CREATE_TEMPORARY_PW"; + ESLCommand[ESLCommand["DELETE_FINGER"] = 6006] = "DELETE_FINGER"; + ESLCommand[ESLCommand["DELETE_LOCK_EVENT"] = 127] = "DELETE_LOCK_EVENT"; + ESLCommand[ESLCommand["DELETE_PW"] = 6005] = "DELETE_PW"; + ESLCommand[ESLCommand["DELETE_USER"] = 6004] = "DELETE_USER"; + ESLCommand[ESLCommand["ECDH_CONSULT"] = 131] = "ECDH_CONSULT"; + ESLCommand[ESLCommand["ECDH_MODE_GET_PUBLIC_KEY"] = 138] = "ECDH_MODE_GET_PUBLIC_KEY"; + ESLCommand[ESLCommand["END_BIND"] = 102] = "END_BIND"; + ESLCommand[ESLCommand["ENTER_OTA"] = 6020] = "ENTER_OTA"; + ESLCommand[ESLCommand["ENTER_OTA_UPDATE"] = 116] = "ENTER_OTA_UPDATE"; + ESLCommand[ESLCommand["GET_FINGER_PW_USAGE"] = 6022] = "GET_FINGER_PW_USAGE"; + ESLCommand[ESLCommand["GET_KEYPAD_INFO"] = 136] = "GET_KEYPAD_INFO"; + ESLCommand[ESLCommand["GET_LOCK_PARAM"] = 6016] = "GET_LOCK_PARAM"; + ESLCommand[ESLCommand["GET_LOCK_PUBLIC_KEY"] = 121] = "GET_LOCK_PUBLIC_KEY"; + ESLCommand[ESLCommand["GET_USER_ID_AND_PW_ID"] = 6027] = "GET_USER_ID_AND_PW_ID"; + ESLCommand[ESLCommand["HEART_BEAT"] = 6001] = "HEART_BEAT"; + ESLCommand[ESLCommand["KEYPAD_ENTER_OTA"] = 135] = "KEYPAD_ENTER_OTA"; + ESLCommand[ESLCommand["KEYPAD_VERIFY_APP"] = 134] = "KEYPAD_VERIFY_APP"; + ESLCommand[ESLCommand["LOCK_KEYPAD_BIND_NOTIFY"] = 133] = "LOCK_KEYPAD_BIND_NOTIFY"; + ESLCommand[ESLCommand["MANUAL_CALIBRATE"] = 128] = "MANUAL_CALIBRATE"; + ESLCommand[ESLCommand["MODIFY_NAME"] = 119] = "MODIFY_NAME"; + ESLCommand[ESLCommand["NOTIFY"] = 110] = "NOTIFY"; + ESLCommand[ESLCommand["ON_OFF_LOCK"] = 6018] = "ON_OFF_LOCK"; + ESLCommand[ESLCommand["PULL_BLE"] = 6024] = "PULL_BLE"; + ESLCommand[ESLCommand["QUERY_ALL_USERS"] = 6007] = "QUERY_ALL_USERS"; + ESLCommand[ESLCommand["QUERY_LOCK_RECORD"] = 122] = "QUERY_LOCK_RECORD"; + ESLCommand[ESLCommand["QUERY_ONE_USER"] = 6008] = "QUERY_ONE_USER"; + ESLCommand[ESLCommand["QUERY_PW"] = 6009] = "QUERY_PW"; + ESLCommand[ESLCommand["QUERY_PW_LIST"] = 6010] = "QUERY_PW_LIST"; + ESLCommand[ESLCommand["QUERY_STATUS_IN_LOCK"] = 6012] = "QUERY_STATUS_IN_LOCK"; + ESLCommand[ESLCommand["QUERY_STATUS_IN_SERVER"] = 6011] = "QUERY_STATUS_IN_SERVER"; + ESLCommand[ESLCommand["RECEIVE_SEQ_NUM"] = 6028] = "RECEIVE_SEQ_NUM"; + ESLCommand[ESLCommand["REMOVE_DEVICE"] = 124] = "REMOVE_DEVICE"; + ESLCommand[ESLCommand["REMOVE_KEYPAD"] = 137] = "REMOVE_KEYPAD"; + ESLCommand[ESLCommand["RESET"] = 6019] = "RESET"; + ESLCommand[ESLCommand["SAVE_LOCK_PARAM_TO_SERVER"] = 6023] = "SAVE_LOCK_PARAM_TO_SERVER"; + ESLCommand[ESLCommand["SEND_LOCK_INFO_TO_KEYPAD"] = 132] = "SEND_LOCK_INFO_TO_KEYPAD"; + ESLCommand[ESLCommand["SEND_OTA_PACKAGE"] = 117] = "SEND_OTA_PACKAGE"; + ESLCommand[ESLCommand["SET_LOCK_PARAM"] = 6015] = "SET_LOCK_PARAM"; + ESLCommand[ESLCommand["SHUT_DOWN_BLE"] = 6026] = "SHUT_DOWN_BLE"; + ESLCommand[ESLCommand["TEMPORARY_PW_LIST"] = 126] = "TEMPORARY_PW_LIST"; + ESLCommand[ESLCommand["UPDATE_PW"] = 6014] = "UPDATE_PW"; + ESLCommand[ESLCommand["UPDATE_USER_TIME"] = 6013] = "UPDATE_USER_TIME"; + ESLCommand[ESLCommand["VERIFY_IDENTITY"] = 6000] = "VERIFY_IDENTITY"; + ESLCommand[ESLCommand["VERIFY_PW"] = 118] = "VERIFY_PW"; + ESLCommand[ESLCommand["WIFI_CONNECT"] = 106] = "WIFI_CONNECT"; + ESLCommand[ESLCommand["WIFI_LIST"] = 105] = "WIFI_LIST"; + ESLCommand[ESLCommand["WIFI_SCAN"] = 104] = "WIFI_SCAN"; +})(ESLCommand || (exports.ESLCommand = ESLCommand = {})); +var ESLBleCommand; +(function (ESLBleCommand) { + ESLBleCommand[ESLBleCommand["BIND_LOCK"] = 1] = "BIND_LOCK"; + ESLBleCommand[ESLBleCommand["VERIFY_IDENTITY"] = 2] = "VERIFY_IDENTITY"; + ESLBleCommand[ESLBleCommand["HEART_BEAT"] = 3] = "HEART_BEAT"; + ESLBleCommand[ESLBleCommand["ACTIVATE_DEVICE"] = 4] = "ACTIVATE_DEVICE"; + ESLBleCommand[ESLBleCommand["ADD_PW"] = 5] = "ADD_PW"; + ESLBleCommand[ESLBleCommand["CALIBRATE_LOCK"] = 7] = "CALIBRATE_LOCK"; + ESLBleCommand[ESLBleCommand["ON_OFF_LOCK"] = 8] = "ON_OFF_LOCK"; + ESLBleCommand[ESLBleCommand["RESET"] = 9] = "RESET"; + ESLBleCommand[ESLBleCommand["WIFI_SCAN"] = 10] = "WIFI_SCAN"; + ESLBleCommand[ESLBleCommand["WIFI_LIST"] = 11] = "WIFI_LIST"; + ESLBleCommand[ESLBleCommand["WIFI_CONNECT"] = 12] = "WIFI_CONNECT"; + ESLBleCommand[ESLBleCommand["ADD_FINGER"] = 13] = "ADD_FINGER"; + ESLBleCommand[ESLBleCommand["DELETE_FINGER"] = 14] = "DELETE_FINGER"; + ESLBleCommand[ESLBleCommand["DELETE_USER"] = 15] = "DELETE_USER"; + ESLBleCommand[ESLBleCommand["CANCEL_ADD_FINGER"] = 16] = "CANCEL_ADD_FINGER"; + ESLBleCommand[ESLBleCommand["QUERY_STATUS_IN_LOCK"] = 17] = "QUERY_STATUS_IN_LOCK"; + ESLBleCommand[ESLBleCommand["NOTIFY"] = 18] = "NOTIFY"; + ESLBleCommand[ESLBleCommand["END_BIND"] = 21] = "END_BIND"; + ESLBleCommand[ESLBleCommand["GET_LOCK_PUBLIC_KEY"] = 22] = "GET_LOCK_PUBLIC_KEY"; + ESLBleCommand[ESLBleCommand["VERIFY_PW"] = 23] = "VERIFY_PW"; + ESLBleCommand[ESLBleCommand["QUERY_LOCK_RECORD"] = 24] = "QUERY_LOCK_RECORD"; + ESLBleCommand[ESLBleCommand["QUERY_ALL_USERS"] = 25] = "QUERY_ALL_USERS"; + ESLBleCommand[ESLBleCommand["QUERY_PW"] = 26] = "QUERY_PW"; + ESLBleCommand[ESLBleCommand["UPDATE_PW"] = 27] = "UPDATE_PW"; + ESLBleCommand[ESLBleCommand["UPDATE_USER_TIME"] = 28] = "UPDATE_USER_TIME"; + ESLBleCommand[ESLBleCommand["MODIFY_NAME"] = 29] = "MODIFY_NAME"; + ESLBleCommand[ESLBleCommand["GET_FINGER_PW_USAGE"] = 30] = "GET_FINGER_PW_USAGE"; + ESLBleCommand[ESLBleCommand["ENTER_OTA_UPDATE"] = 31] = "ENTER_OTA_UPDATE"; + ESLBleCommand[ESLBleCommand["SEND_OTA_PACKAGE"] = 32] = "SEND_OTA_PACKAGE"; + ESLBleCommand[ESLBleCommand["GET_LOCK_PARAM"] = 33] = "GET_LOCK_PARAM"; + ESLBleCommand[ESLBleCommand["SET_LOCK_PARAM"] = 34] = "SET_LOCK_PARAM"; + ESLBleCommand[ESLBleCommand["SHUT_DOWN_BLE"] = 36] = "SHUT_DOWN_BLE"; +})(ESLBleCommand || (exports.ESLBleCommand = ESLBleCommand = {})); +var ESLAnkerBleConstant; +(function (ESLAnkerBleConstant) { + ESLAnkerBleConstant[ESLAnkerBleConstant["a"] = -95] = "a"; + ESLAnkerBleConstant[ESLAnkerBleConstant["b"] = -94] = "b"; + ESLAnkerBleConstant[ESLAnkerBleConstant["c"] = -93] = "c"; + ESLAnkerBleConstant[ESLAnkerBleConstant["d"] = -92] = "d"; + ESLAnkerBleConstant[ESLAnkerBleConstant["e"] = -91] = "e"; + ESLAnkerBleConstant[ESLAnkerBleConstant["f"] = -90] = "f"; + ESLAnkerBleConstant[ESLAnkerBleConstant["g"] = -89] = "g"; + ESLAnkerBleConstant[ESLAnkerBleConstant["h"] = -88] = "h"; + ESLAnkerBleConstant[ESLAnkerBleConstant["i"] = -87] = "i"; + ESLAnkerBleConstant[ESLAnkerBleConstant["j"] = -86] = "j"; +})(ESLAnkerBleConstant || (exports.ESLAnkerBleConstant = ESLAnkerBleConstant = {})); +var P2PConnectionType; +(function (P2PConnectionType) { + P2PConnectionType[P2PConnectionType["ONLY_LOCAL"] = 1] = "ONLY_LOCAL"; + P2PConnectionType[P2PConnectionType["QUICKEST"] = 2] = "QUICKEST"; +})(P2PConnectionType || (exports.P2PConnectionType = P2PConnectionType = {})); +var IndoorSoloSmartdropCommandType; +(function (IndoorSoloSmartdropCommandType) { + //com.eufy.security.indoorcam.logic.net.IcP2PCommandType + //com.eufy.security.smartdrop.logic.net.SDP2PCommandType + //com.eufy.security.solo.logic.net.SoloP2PCommandType + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_ANSWERING_RING_RECORD"] = 1027] = "CMD_ANSWERING_RING_RECORD"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_AUDIO_RECORD"] = 1029] = "CMD_AUDIO_RECORD"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_BRIGHTNESS"] = 1021] = "CMD_BRIGHTNESS"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_CHIME_BIND"] = 1007] = "CMD_CHIME_BIND"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_CHIME_OPEN"] = 1006] = "CMD_CHIME_OPEN"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_DELETE_HISTORY_FILE"] = 1011] = "CMD_DELETE_HISTORY_FILE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_DELETE_METERING_ZONE"] = 1014] = "CMD_DELETE_METERING_ZONE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_ENABLE_HDR"] = 1019] = "CMD_ENABLE_HDR"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_END_SPEAK"] = 1002] = "CMD_END_SPEAK"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_FIXED_RESOLUTION"] = 1018] = "CMD_FIXED_RESOLUTION"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_LED_NIGHT_OPEN"] = 1026] = "CMD_LED_NIGHT_OPEN"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_ADVANCE_OPTION_DEFAULT"] = 1028] = "CMD_MOTION_ADVANCE_OPTION_DEFAULT"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_DETECTION_PACKAGE"] = 1016] = "CMD_MOTION_DETECTION_PACKAGE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_DETECTION_ZONE"] = 1009] = "CMD_MOTION_DETECTION_ZONE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_DETECTION_ZONE_DELETE"] = 1008] = "CMD_MOTION_DETECTION_ZONE_DELETE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_UN_DETECTION_ZONE"] = 1024] = "CMD_MOTION_UN_DETECTION_ZONE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_UN_DETECTION_ZONE_DELETE"] = 1025] = "CMD_MOTION_UN_DETECTION_ZONE_DELETE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_QUERY_DEVICE_VOLTAGE"] = 1015] = "CMD_QUERY_DEVICE_VOLTAGE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_QUICK_RESPONSE"] = 1004] = "CMD_QUICK_RESPONSE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_SEND_VIDEO_BITRATE"] = 1017] = "CMD_SEND_VIDEO_BITRATE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_SET_METERING_ZONE"] = 1013] = "CMD_SET_METERING_ZONE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_SET_RINGTONE_VOLUME"] = 1012] = "CMD_SET_RINGTONE_VOLUME"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_START_LIVE"] = 1000] = "CMD_START_LIVE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_START_SPEAK"] = 1001] = "CMD_START_SPEAK"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_STREAM_INFO"] = 1005] = "CMD_STREAM_INFO"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_UPDATE_QUICK_RESPONSE"] = 1010] = "CMD_UPDATE_QUICK_RESPONSE"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_VIDEO_DISTORTIONCORRECTION"] = 1022] = "CMD_VIDEO_DISTORTIONCORRECTION"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_VIDEO_QUALITY"] = 1020] = "CMD_VIDEO_QUALITY"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_VIDEO_RECORD_QUALITY"] = 1023] = "CMD_VIDEO_RECORD_QUALITY"; + IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_ZOOM_REGION"] = 1003] = "CMD_ZOOM_REGION"; +})(IndoorSoloSmartdropCommandType || (exports.IndoorSoloSmartdropCommandType = IndoorSoloSmartdropCommandType = {})); +var SmartSafeCommandCode; +(function (SmartSafeCommandCode) { + SmartSafeCommandCode[SmartSafeCommandCode["BIND_CMD"] = 1] = "BIND_CMD"; + SmartSafeCommandCode[SmartSafeCommandCode["VERIFY_IDENTITY"] = 2] = "VERIFY_IDENTITY"; + SmartSafeCommandCode[SmartSafeCommandCode["DEFAULT"] = 3] = "DEFAULT"; + SmartSafeCommandCode[SmartSafeCommandCode["ACTIVATE_DEVICE"] = 4] = "ACTIVATE_DEVICE"; + SmartSafeCommandCode[SmartSafeCommandCode["ADD_PASSWORD"] = 5] = "ADD_PASSWORD"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_IS_SET_PASSWORD"] = 6] = "QUERY_IS_SET_PASSWORD"; + SmartSafeCommandCode[SmartSafeCommandCode["ADD_FINGERPRINT"] = 7] = "ADD_FINGERPRINT"; + SmartSafeCommandCode[SmartSafeCommandCode["DELETE_FINGERPRINT"] = 8] = "DELETE_FINGERPRINT"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_FINGERPRINT_LIST"] = 9] = "QUERY_FINGERPRINT_LIST"; + SmartSafeCommandCode[SmartSafeCommandCode["ENTER_OTA_UPDATE"] = 10] = "ENTER_OTA_UPDATE"; + SmartSafeCommandCode[SmartSafeCommandCode["SEND_OTA_PACKAGE"] = 11] = "SEND_OTA_PACKAGE"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_LOCK_STATUS"] = 12] = "QUERY_LOCK_STATUS"; + SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK"] = 13] = "UNLOCK"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_BATTERY"] = 14] = "QUERY_BATTERY"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_LOCK_ALARM"] = 15] = "SET_LOCK_ALARM"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_CRACK_PROTECT"] = 16] = "SET_CRACK_PROTECT"; + SmartSafeCommandCode[SmartSafeCommandCode["UNLOAD_BATTERY"] = 17] = "UNLOAD_BATTERY"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_FW_CODE"] = 18] = "QUERY_FW_CODE"; + SmartSafeCommandCode[SmartSafeCommandCode["SCAN_WIFI"] = 19] = "SCAN_WIFI"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_WIFI_LIST"] = 20] = "QUERY_WIFI_LIST"; + SmartSafeCommandCode[SmartSafeCommandCode["CONNECT_WIFI"] = 21] = "CONNECT_WIFI"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_CRACK_PROTECT"] = 22] = "QUERY_CRACK_PROTECT"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_LOCK_ALARM"] = 23] = "QUERY_LOCK_ALARM"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_SCRAMBLE_PASSWORD"] = 24] = "QUERY_SCRAMBLE_PASSWORD"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_SCRAMBLE_PASSWORD"] = 25] = "SET_SCRAMBLE_PASSWORD"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_DUAL_UNLOCK"] = 26] = "QUERY_DUAL_UNLOCK"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_DUAL_UNLOCK"] = 27] = "SET_DUAL_UNLOCK"; + SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK_EVENTS"] = 28] = "UNLOCK_EVENTS"; + SmartSafeCommandCode[SmartSafeCommandCode["CANCEL_FINGERPRINT"] = 29] = "CANCEL_FINGERPRINT"; + SmartSafeCommandCode[SmartSafeCommandCode["ACTIVE_WIFI"] = 30] = "ACTIVE_WIFI"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_VOLUME"] = 31] = "SET_VOLUME"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_VOLUME"] = 32] = "QUERY_VOLUME"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_LIGHT"] = 33] = "SET_LIGHT"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_LIGHT"] = 34] = "QUERY_LIGHT"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_SHAKE"] = 35] = "SET_SHAKE"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_SHAKE"] = 36] = "QUERY_SHAKE"; + SmartSafeCommandCode[SmartSafeCommandCode["UNBIND"] = 37] = "UNBIND"; + SmartSafeCommandCode[SmartSafeCommandCode["UPDATE_FINGERPRINT"] = 38] = "UPDATE_FINGERPRINT"; + SmartSafeCommandCode[SmartSafeCommandCode["UPDATE_NAME"] = 39] = "UPDATE_NAME"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_PUSH"] = 40] = "SET_PUSH"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_PUSH"] = 41] = "QUERY_PUSH"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_VOLUME_ALERT"] = 42] = "SET_VOLUME_ALERT"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_VOLUME_ALERT"] = 43] = "QUERY_VOLUME_ALERT"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_PASSWORD"] = 44] = "QUERY_PASSWORD"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_UNLOCK_MODE"] = 45] = "SET_UNLOCK_MODE"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_UNLOCK_MODE"] = 46] = "QUERY_UNLOCK_MODE"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_VERIFY_PIN"] = 47] = "SET_VERIFY_PIN"; + SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK_EVENTS2"] = 48] = "UNLOCK_EVENTS2"; + SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK_EVENTS3"] = 49] = "UNLOCK_EVENTS3"; + SmartSafeCommandCode[SmartSafeCommandCode["SET_POWERSAVE"] = 50] = "SET_POWERSAVE"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_POWERSAVE"] = 51] = "QUERY_POWERSAVE"; + SmartSafeCommandCode[SmartSafeCommandCode["SEND_WIFI_OTA"] = 52] = "SEND_WIFI_OTA"; + SmartSafeCommandCode[SmartSafeCommandCode["QUERY_IS_SET_PANIC_FINGERPRINT"] = 53] = "QUERY_IS_SET_PANIC_FINGERPRINT"; +})(SmartSafeCommandCode || (exports.SmartSafeCommandCode = SmartSafeCommandCode = {})); +var SmartSafeAlarm911Event; +(function (SmartSafeAlarm911Event) { + SmartSafeAlarm911Event[SmartSafeAlarm911Event["CANCEL_ALARM"] = 0] = "CANCEL_ALARM"; + SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM"] = 1] = "ALARM"; + SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM_SUCCESS"] = 2] = "ALARM_SUCCESS"; + SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM_NOT_OPEN"] = 3] = "ALARM_NOT_OPEN"; + SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM_OPEN_FAILED"] = 4] = "ALARM_OPEN_FAILED"; +})(SmartSafeAlarm911Event || (exports.SmartSafeAlarm911Event = SmartSafeAlarm911Event = {})); +var SmartSafeShakeAlarmEvent; +(function (SmartSafeShakeAlarmEvent) { + SmartSafeShakeAlarmEvent[SmartSafeShakeAlarmEvent["CANCEL_ALARM"] = 0] = "CANCEL_ALARM"; + SmartSafeShakeAlarmEvent[SmartSafeShakeAlarmEvent["ALARM"] = 1] = "ALARM"; +})(SmartSafeShakeAlarmEvent || (exports.SmartSafeShakeAlarmEvent = SmartSafeShakeAlarmEvent = {})); +var SmartSafeBatteryTemperatureEvent; +(function (SmartSafeBatteryTemperatureEvent) { + SmartSafeBatteryTemperatureEvent[SmartSafeBatteryTemperatureEvent["NORMAL"] = 0] = "NORMAL"; + SmartSafeBatteryTemperatureEvent[SmartSafeBatteryTemperatureEvent["LOW"] = 1] = "LOW"; + SmartSafeBatteryTemperatureEvent[SmartSafeBatteryTemperatureEvent["HIGH"] = 2] = "HIGH"; +})(SmartSafeBatteryTemperatureEvent || (exports.SmartSafeBatteryTemperatureEvent = SmartSafeBatteryTemperatureEvent = {})); +var SmartSafeBatteryStatusEvent; +(function (SmartSafeBatteryStatusEvent) { + SmartSafeBatteryStatusEvent[SmartSafeBatteryStatusEvent["NOT_CHARGING"] = 0] = "NOT_CHARGING"; + SmartSafeBatteryStatusEvent[SmartSafeBatteryStatusEvent["CHARGING"] = 1] = "CHARGING"; +})(SmartSafeBatteryStatusEvent || (exports.SmartSafeBatteryStatusEvent = SmartSafeBatteryStatusEvent = {})); +var DatabaseReturnCode; +(function (DatabaseReturnCode) { + DatabaseReturnCode[DatabaseReturnCode["ERROR_DB_NOT_READY"] = -1100] = "ERROR_DB_NOT_READY"; + DatabaseReturnCode[DatabaseReturnCode["SUCCESSFUL"] = 0] = "SUCCESSFUL"; +})(DatabaseReturnCode || (exports.DatabaseReturnCode = DatabaseReturnCode = {})); +var P2PStorageType; +(function (P2PStorageType) { + P2PStorageType[P2PStorageType["NONE"] = 0] = "NONE"; + P2PStorageType[P2PStorageType["EMMC"] = 1] = "EMMC"; + P2PStorageType[P2PStorageType["HD"] = 2] = "HD"; + P2PStorageType[P2PStorageType["SDCARD"] = 3] = "SDCARD"; + P2PStorageType[P2PStorageType["SENSOR"] = 4] = "SENSOR"; + P2PStorageType[P2PStorageType["ALARM"] = 5] = "ALARM"; +})(P2PStorageType || (exports.P2PStorageType = P2PStorageType = {})); +var FilterStorageType; +(function (FilterStorageType) { + FilterStorageType[FilterStorageType["NONE"] = 0] = "NONE"; + FilterStorageType[FilterStorageType["LOCAL"] = 1] = "LOCAL"; + FilterStorageType[FilterStorageType["CLOUD"] = 2] = "CLOUD"; +})(FilterStorageType || (exports.FilterStorageType = FilterStorageType = {})); +var FilterEventType; +(function (FilterEventType) { + FilterEventType[FilterEventType["ALL"] = 0] = "ALL"; + FilterEventType[FilterEventType["VIDEO"] = 1] = "VIDEO"; + FilterEventType[FilterEventType["ALERT"] = 2] = "ALERT"; +})(FilterEventType || (exports.FilterEventType = FilterEventType = {})); +var FeatureTag; +(function (FeatureTag) { + FeatureTag[FeatureTag["USER"] = 0] = "USER"; + FeatureTag[FeatureTag["STRANGER"] = 1] = "STRANGER"; + FeatureTag[FeatureTag["SELF_LEARNING_NO_CONFIRM"] = 2] = "SELF_LEARNING_NO_CONFIRM"; + FeatureTag[FeatureTag["SELF_LEARNING_CONFIRM"] = 3] = "SELF_LEARNING_CONFIRM"; + FeatureTag[FeatureTag["SELF_LEARNING_ERROR_CONFIRM"] = 4] = "SELF_LEARNING_ERROR_CONFIRM"; +})(FeatureTag || (exports.FeatureTag = FeatureTag = {})); +var FilterDetectType; +(function (FilterDetectType) { + FilterDetectType[FilterDetectType["NOT_SUPPORT"] = 0] = "NOT_SUPPORT"; + FilterDetectType[FilterDetectType["PERSON_FACE"] = 1] = "PERSON_FACE"; + FilterDetectType[FilterDetectType["PERSON_BODY"] = 2] = "PERSON_BODY"; + FilterDetectType[FilterDetectType["VEHICLE"] = 4] = "VEHICLE"; + FilterDetectType[FilterDetectType["PET"] = 8] = "PET"; + FilterDetectType[FilterDetectType["SOUND"] = 128] = "SOUND"; + FilterDetectType[FilterDetectType["CRYING"] = 256] = "CRYING"; + FilterDetectType[FilterDetectType["PACKAGE"] = 512] = "PACKAGE"; + // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values + FilterDetectType[FilterDetectType["PACKAGE_PICK_UP"] = 512] = "PACKAGE_PICK_UP"; + FilterDetectType[FilterDetectType["PACKAGE_DELIVERED"] = 1024] = "PACKAGE_DELIVERED"; + FilterDetectType[FilterDetectType["CROSS_DELIVERED"] = 2048] = "CROSS_DELIVERED"; +})(FilterDetectType || (exports.FilterDetectType = FilterDetectType = {})); +var CalibrateGarageType; +(function (CalibrateGarageType) { + CalibrateGarageType[CalibrateGarageType["ROLLER_DOOR"] = 1] = "ROLLER_DOOR"; + CalibrateGarageType[CalibrateGarageType["SECTIONAL_DOOR"] = 2] = "SECTIONAL_DOOR"; + CalibrateGarageType[CalibrateGarageType["TILT_DOOR"] = 3] = "TILT_DOOR"; +})(CalibrateGarageType || (exports.CalibrateGarageType = CalibrateGarageType = {})); +var EncryptionType; +(function (EncryptionType) { + EncryptionType[EncryptionType["NONE"] = 0] = "NONE"; + EncryptionType[EncryptionType["LEVEL_1"] = 1] = "LEVEL_1"; + EncryptionType[EncryptionType["LEVEL_2"] = 2] = "LEVEL_2"; +})(EncryptionType || (exports.EncryptionType = EncryptionType = {})); +var InternalP2PCommandType; +(function (InternalP2PCommandType) { + InternalP2PCommandType[InternalP2PCommandType["WithIntString"] = 0] = "WithIntString"; + InternalP2PCommandType[InternalP2PCommandType["WithInt"] = 1] = "WithInt"; + InternalP2PCommandType[InternalP2PCommandType["WithStringPayload"] = 2] = "WithStringPayload"; + InternalP2PCommandType[InternalP2PCommandType["WithString"] = 3] = "WithString"; + InternalP2PCommandType[InternalP2PCommandType["WithoutData"] = 4] = "WithoutData"; +})(InternalP2PCommandType || (exports.InternalP2PCommandType = InternalP2PCommandType = {})); +var TrackerCommandType; +(function (TrackerCommandType) { + TrackerCommandType[TrackerCommandType["COMMAND_ANTILOST"] = 1001] = "COMMAND_ANTILOST"; + TrackerCommandType[TrackerCommandType["COMMAND_AUDIO_SETTING"] = 999] = "COMMAND_AUDIO_SETTING"; + TrackerCommandType[TrackerCommandType["COMMAND_BATTERY"] = 1003] = "COMMAND_BATTERY"; + TrackerCommandType[TrackerCommandType["COMMAND_LOCATION"] = 1002] = "COMMAND_LOCATION"; + TrackerCommandType[TrackerCommandType["COMMAND_LOST_MODE"] = 998] = "COMMAND_LOST_MODE"; + TrackerCommandType[TrackerCommandType["COMMAND_NEW_LOCATION"] = 1008] = "COMMAND_NEW_LOCATION"; + TrackerCommandType[TrackerCommandType["COMMAND_NOTIFICATION"] = 1004] = "COMMAND_NOTIFICATION"; + TrackerCommandType[TrackerCommandType["COMMAND_OPEN_ANTI_TOUCH"] = 1010] = "COMMAND_OPEN_ANTI_TOUCH"; + TrackerCommandType[TrackerCommandType["COMMAND_TYPE_FINDMYPHONE"] = 1000] = "COMMAND_TYPE_FINDMYPHONE"; + TrackerCommandType[TrackerCommandType["DISTURB_LOCATION_LIST"] = 1007] = "DISTURB_LOCATION_LIST"; + TrackerCommandType[TrackerCommandType["LOCATION_ADDRESS"] = 1006] = "LOCATION_ADDRESS"; + TrackerCommandType[TrackerCommandType["LOCATION_NEW_ADDRESS"] = 1009] = "LOCATION_NEW_ADDRESS"; + TrackerCommandType[TrackerCommandType["TYPE_ICON_INDEX"] = 1005] = "TYPE_ICON_INDEX"; +})(TrackerCommandType || (exports.TrackerCommandType = TrackerCommandType = {})); +var SmartLockCommand; +(function (SmartLockCommand) { + SmartLockCommand[SmartLockCommand["CALIBRATE_LOCK"] = 6017] = "CALIBRATE_LOCK"; + SmartLockCommand[SmartLockCommand["QUERY_STATUS_IN_LOCK"] = 6012] = "QUERY_STATUS_IN_LOCK"; + SmartLockCommand[SmartLockCommand["ON_OFF_LOCK"] = 6018] = "ON_OFF_LOCK"; + SmartLockCommand[SmartLockCommand["ADD_PW"] = 6002] = "ADD_PW"; + SmartLockCommand[SmartLockCommand["UPDATE_USER_TIME"] = 146] = "UPDATE_USER_TIME"; + SmartLockCommand[SmartLockCommand["UPDATE_PW"] = 6014] = "UPDATE_PW"; + SmartLockCommand[SmartLockCommand["QUERY_PW"] = 6009] = "QUERY_PW"; + SmartLockCommand[SmartLockCommand["ADD_FINGER"] = 6003] = "ADD_FINGER"; + SmartLockCommand[SmartLockCommand["CANCEL_ADD_FINGER"] = 115] = "CANCEL_ADD_FINGER"; + SmartLockCommand[SmartLockCommand["DELETE_FINGER"] = 6006] = "DELETE_FINGER"; + SmartLockCommand[SmartLockCommand["UPDATE_FINGER_NAME"] = 119] = "UPDATE_FINGER_NAME"; + SmartLockCommand[SmartLockCommand["QUERY_ALL_USERS"] = 6007] = "QUERY_ALL_USERS"; + SmartLockCommand[SmartLockCommand["DELETE_USER"] = 6004] = "DELETE_USER"; + SmartLockCommand[SmartLockCommand["GET_FINGER_PW_USAGE"] = 6022] = "GET_FINGER_PW_USAGE"; + SmartLockCommand[SmartLockCommand["WIFI_SCAN"] = 104] = "WIFI_SCAN"; + SmartLockCommand[SmartLockCommand["WIFI_LIST"] = 105] = "WIFI_LIST"; + SmartLockCommand[SmartLockCommand["WIFI_CONNECT"] = 106] = "WIFI_CONNECT"; + SmartLockCommand[SmartLockCommand["ACTIVATE_DEVICE"] = 107] = "ACTIVATE_DEVICE"; + SmartLockCommand[SmartLockCommand["SET_LOCK_PARAM"] = 6015] = "SET_LOCK_PARAM"; + SmartLockCommand[SmartLockCommand["GET_LOCK_PARAM"] = 6016] = "GET_LOCK_PARAM"; + SmartLockCommand[SmartLockCommand["GET_LOCK_EVENT"] = 122] = "GET_LOCK_EVENT"; + SmartLockCommand[SmartLockCommand["PULL_BLE"] = 6024] = "PULL_BLE"; + SmartLockCommand[SmartLockCommand["NOTIFY"] = 142] = "NOTIFY"; + SmartLockCommand[SmartLockCommand["CONNECT"] = 138] = "CONNECT"; + SmartLockCommand[SmartLockCommand["DISCONNECT"] = 141] = "DISCONNECT"; + SmartLockCommand[SmartLockCommand["CAPACITY_NEGOTIATION"] = 139] = "CAPACITY_NEGOTIATION"; + SmartLockCommand[SmartLockCommand["SET_CAPACITY"] = 140] = "SET_CAPACITY"; + SmartLockCommand[SmartLockCommand["VERIFY_IDENTIFY"] = 6000] = "VERIFY_IDENTIFY"; + SmartLockCommand[SmartLockCommand["BIND"] = 101] = "BIND"; + SmartLockCommand[SmartLockCommand["UNBIND"] = 124] = "UNBIND"; + SmartLockCommand[SmartLockCommand["HEARTBEAT"] = 6001] = "HEARTBEAT"; + SmartLockCommand[SmartLockCommand["RESET"] = 6019] = "RESET"; + SmartLockCommand[SmartLockCommand["BIND_SUCCESS"] = 102] = "BIND_SUCCESS"; +})(SmartLockCommand || (exports.SmartLockCommand = SmartLockCommand = {})); +var SmartLockFunctionType; +(function (SmartLockFunctionType) { + SmartLockFunctionType[SmartLockFunctionType["TYPE_1"] = 1] = "TYPE_1"; + SmartLockFunctionType[SmartLockFunctionType["TYPE_2"] = 2] = "TYPE_2"; +})(SmartLockFunctionType || (exports.SmartLockFunctionType = SmartLockFunctionType = {})); +var SmartLockBleCommandFunctionType1; +(function (SmartLockBleCommandFunctionType1) { + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["CONNECT"] = 1] = "CONNECT"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["DISCONNECT"] = 2] = "DISCONNECT"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["CAPACITY_NEGOTIATION"] = 3] = "CAPACITY_NEGOTIATION"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["SET_CAPACITY"] = 5] = "SET_CAPACITY"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["VERIFY_IDENTIFY"] = 34] = "VERIFY_IDENTIFY"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["BIND"] = 35] = "BIND"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["UNBIND"] = 36] = "UNBIND"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["HEARTBEAT"] = 38] = "HEARTBEAT"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["GET_DEVICE_INFO"] = 41] = "GET_DEVICE_INFO"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["GET_OTA_STATUS"] = 44] = "GET_OTA_STATUS"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["OTA_OPERATION"] = 45] = "OTA_OPERATION"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["OTA_DATA_SENDING"] = 46] = "OTA_DATA_SENDING"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["RESET"] = 47] = "RESET"; + SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["BIND_SUCCESS"] = 48] = "BIND_SUCCESS"; +})(SmartLockBleCommandFunctionType1 || (exports.SmartLockBleCommandFunctionType1 = SmartLockBleCommandFunctionType1 = {})); +var SmartLockBleCommandFunctionType2; +(function (SmartLockBleCommandFunctionType2) { + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["CALIBRATE_LOCK"] = 33] = "CALIBRATE_LOCK"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["QUERY_STATUS_IN_LOCK"] = 34] = "QUERY_STATUS_IN_LOCK"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ON_OFF_LOCK"] = 35] = "ON_OFF_LOCK"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ADD_PW"] = 36] = "ADD_PW"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["UPDATE_USER_TIME"] = 37] = "UPDATE_USER_TIME"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["UPDATE_PW"] = 38] = "UPDATE_PW"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["QUERY_PW"] = 39] = "QUERY_PW"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ADD_FINGER"] = 40] = "ADD_FINGER"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["CANCEL_ADD_FINGER"] = 41] = "CANCEL_ADD_FINGER"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["DELETE_FINGER"] = 42] = "DELETE_FINGER"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["UPDATE_FINGER_NAME"] = 43] = "UPDATE_FINGER_NAME"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["QUERY_ALL_USERS"] = 44] = "QUERY_ALL_USERS"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["DELETE_USER"] = 45] = "DELETE_USER"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["GET_FINGER_PW_USAGE"] = 46] = "GET_FINGER_PW_USAGE"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["WIFI_SCAN"] = 48] = "WIFI_SCAN"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["WIFI_LIST"] = 49] = "WIFI_LIST"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["WIFI_CONNECT"] = 50] = "WIFI_CONNECT"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ACTIVATE_DEVICE"] = 51] = "ACTIVATE_DEVICE"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["SET_LOCK_PARAM"] = 52] = "SET_LOCK_PARAM"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["GET_LOCK_PARAM"] = 53] = "GET_LOCK_PARAM"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["GET_LOCK_EVENT"] = 56] = "GET_LOCK_EVENT"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["PULL_BLE"] = 61] = "PULL_BLE"; + SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["NOTIFY"] = 74] = "NOTIFY"; +})(SmartLockBleCommandFunctionType2 || (exports.SmartLockBleCommandFunctionType2 = SmartLockBleCommandFunctionType2 = {})); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/p2p/types.js.map b/build/p2p/types.js.map new file mode 100644 index 00000000..f64d1d8b --- /dev/null +++ b/build/p2p/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/p2p/types.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG;IAC9B,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,EAAkB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,eAAe,EAAS,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,gBAAgB,EAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,oBAAoB,EAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,gBAAgB,EAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,cAAc,EAAU,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,UAAU,EAAc,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,EAAY,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,SAAS,EAAe,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,GAAG,EAAqB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,GAAG,EAAqB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CACpD,CAAA;AAEY,QAAA,mBAAmB,GAAG;IAC/B,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,WAAW,EAAa,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,WAAW,EAAa,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,iBAAiB,EAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,gBAAgB,EAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,cAAc,EAAU,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,iBAAiB,EAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,qBAAqB,EAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,EAAY,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,UAAU,EAAc,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,kBAAkB,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,GAAG,EAAqB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,EAAkB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,GAAG,EAAqB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,EAAoB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CACpD,CAAA;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,oDAAY,CAAA;IACZ,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,mDAAW,CAAA;IACX,iDAAU,CAAA;AACd,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAEY,QAAA,iBAAiB,GAAG;IAC7B,IAAI,EAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,EAAe,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,EAAa,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,EAAc,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9D,CAAA;AAED,IAAY,WAwiBX;AAxiBD,WAAY,WAAW;IACnB,oDAAoD;IACpD,oEAAqB,CAAA;IACrB,oEAAqB,CAAA;IACrB,oEAAqB,CAAA;IACrB,oEAAqB,CAAA;IACrB,oEAAqB,CAAA;IACrB,kEAAoB,CAAA;IACpB,sEAAsB,CAAA;IACtB,4EAAyB,CAAA;IACzB,gFAA2B,CAAA;IAC3B,sFAA8B,CAAA;IAC9B,sFAA8B,CAAA;IAC9B,sFAA8B,CAAA;IAC9B,gFAA2B,CAAA;IAC3B,0EAAwB,CAAA;IACxB,sEAAsB,CAAA;IACtB,wEAAuB,CAAA;IACvB,kGAAoC,CAAA;IACpC,8FAAkC,CAAA;IAClC,8FAAkC,CAAA;IAClC,wHAA+C,CAAA;IAC/C,wFAA+B,CAAA;IAC/B,sGAAsC,CAAA;IACtC,kGAAoC,CAAA;IACpC,kIAAoD,CAAA;IACpD,sGAAsC,CAAA;IACtC,oHAA6C,CAAA;IAC7C,gHAA2C,CAAA;IAC3C,oHAA6C,CAAA;IAC7C,oGAAqC,CAAA;IACrC,sGAAsC,CAAA;IACtC,wGAAuC,CAAA;IACvC,8FAAkC,CAAA;IAClC,4EAAyB,CAAA;IACzB,4FAAiC,CAAA;IACjC,kGAAoC,CAAA;IACpC,sEAAsB,CAAA;IACtB,oEAAqB,CAAA;IACrB,8EAA0B,CAAA;IAC1B,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,kEAAoB,CAAA;IACpB,sEAAsB,CAAA;IACtB,kEAAoB,CAAA;IACpB,4EAAyB,CAAA;IACzB,4EAAyB,CAAA;IACzB,gFAA2B,CAAA;IAC3B,4EAAyB,CAAA;IACzB,4EAAyB,CAAA;IACzB,4EAAyB,CAAA;IACzB,sFAA8B,CAAA;IAC9B,gFAA2B,CAAA;IAC3B,kEAAoB,CAAA;IACpB,sEAAsB,CAAA;IACtB,8EAA0B,CAAA;IAC1B,sEAAsB,CAAA;IACtB,sEAAsB,CAAA;IACtB,4EAAyB,CAAA;IACzB,gFAA2B,CAAA;IAC3B,sFAA8B,CAAA;IAC9B,sFAA8B,CAAA;IAC9B,oFAA6B,CAAA;IAC7B,8EAA0B,CAAA;IAC1B,8FAAkC,CAAA;IAClC,wFAA+B,CAAA;IAC/B,8FAAkC,CAAA;IAClC,0EAAwB,CAAA;IACxB,oGAAqC,CAAA;IACrC,4GAAyC,CAAA;IACzC,oFAA6B,CAAA;IAC7B,4FAAiC,CAAA;IACjC,wEAAuB,CAAA;IACvB,gFAA2B,CAAA;IAC3B,4FAAiC,CAAA;IACjC,gGAAmC,CAAA;IACnC,wFAA+B,CAAA;IAC/B,4FAAiC,CAAA;IACjC,oGAAqC,CAAA;IACrC,wFAA+B,CAAA;IAC/B,8FAAkC,CAAA;IAClC,wGAAuC,CAAA;IACvC,8EAA0B,CAAA;IAC1B,4EAAyB,CAAA;IACzB,oEAAqB,CAAA;IACrB,4FAAiC,CAAA;IACjC,gGAAmC,CAAA;IACnC,sFAA8B,CAAA;IAC9B,uFAA8B,CAAA;IAC9B,kEAAoB,CAAA;IACpB,oFAA6B,CAAA;IAC7B,sEAAsB,CAAA;IACtB,kFAA4B,CAAA;IAC5B,kFAA4B,CAAA;IAC5B,sFAA8B,CAAA;IAC9B,4FAAiC,CAAA;IACjC,wFAA+B,CAAA;IAC/B,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,8EAA0B,CAAA;IAC1B,kFAA4B,CAAA;IAC5B,8EAA0B,CAAA;IAC1B,4FAAiC,CAAA;IACjC,kFAA4B,CAAA;IAC5B,8EAA0B,CAAA;IAC1B,sEAAsB,CAAA;IACtB,gFAA2B,CAAA;IAC3B,8EAA0B,CAAA;IAC1B,kFAA4B,CAAA;IAC5B,oFAA6B,CAAA;IAC7B,oFAA6B,CAAA;IAC7B,oFAA6B,CAAA;IAC7B,8EAA0B,CAAA;IAC1B,8EAA0B,CAAA;IAC1B,0EAAwB,CAAA;IACxB,oFAA6B,CAAA;IAC7B,wFAA+B,CAAA;IAC/B,gGAAmC,CAAA;IACnC,4EAAyB,CAAA;IACzB,kFAA4B,CAAA;IAC5B,8EAA0B,CAAA;IAC1B,4EAAyB,CAAA;IACzB,kFAA4B,CAAA;IAC5B,gGAAmC,CAAA;IACnC,gFAA2B,CAAA;IAC3B,8EAA0B,CAAA;IAC1B,4EAAyB,CAAA;IACzB,sEAAsB,CAAA;IACtB,0EAAwB,CAAA;IACxB,wEAAuB,CAAA;IACvB,wFAA+B,CAAA;IAC/B,kFAA4B,CAAA;IAC5B,8EAA0B,CAAA;IAC1B,wFAA+B,CAAA;IAC/B,oEAAqB,CAAA;IACrB,kFAA4B,CAAA;IAC5B,4EAAyB,CAAA;IACzB,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,sFAA8B,CAAA;IAC9B,sEAAsB,CAAA;IACtB,sEAAsB,CAAA;IACtB,oFAA6B,CAAA;IAC7B,8EAA0B,CAAA;IAC1B,0GAAwC,CAAA;IACxC,kFAA4B,CAAA;IAC5B,4FAAiC,CAAA;IACjC,4EAAyB,CAAA;IACzB,kFAA4B,CAAA;IAC5B,4EAAyB,CAAA;IACzB,gGAAmC,CAAA;IACnC,gGAAmC,CAAA;IACnC,kFAA4B,CAAA;IAC5B,kFAA4B,CAAA;IAC5B,oFAA6B,CAAA;IAC7B,sFAA8B,CAAA;IAC9B,wEAAuB,CAAA;IACvB,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,0FAAgC,CAAA;IAChC,gFAA2B,CAAA;IAC3B,8EAA0B,CAAA;IAC1B,oEAAqB,CAAA;IACrB,4EAAyB,CAAA;IACzB,wEAAuB,CAAA;IACvB,gGAAmC,CAAA;IACnC,wGAAuC,CAAA;IACvC,kGAAoC,CAAA;IACpC,sFAA8B,CAAA;IAC9B,gGAAmC,CAAA;IACnC,kFAA4B,CAAA;IAC5B,8EAA0B,CAAA;IAC1B,0FAAgC,CAAA;IAChC,sFAA8B,CAAA;IAC9B,oFAA6B,CAAA;IAC7B,0FAAgC,CAAA;IAChC,0FAAgC,CAAA;IAChC,0FAAgC,CAAA;IAChC,oFAA6B,CAAA;IAC7B,sFAA8B,CAAA;IAC9B,sEAAsB,CAAA;IACtB,8FAAkC,CAAA;IAClC,gGAAmC,CAAA;IACnC,oHAA6C,CAAA;IAC7C,kHAA4C,CAAA;IAC5C,0FAAgC,CAAA;IAChC,wGAAuC,CAAA;IACvC,kHAA4C,CAAA;IAC5C,8FAAkC,CAAA;IAClC,oEAAqB,CAAA;IACrB,gEAAmB,CAAA;IACnB,4EAAyB,CAAA;IACzB,4EAAyB,CAAA;IACzB,wDAAe,CAAA;IACf,oEAAqB,CAAA;IACrB,kFAA4B,CAAA;IAC5B,kFAA4B,CAAA;IAC5B,sFAA8B,CAAA;IAC9B,oEAAqB,CAAA;IACrB,8EAA0B,CAAA;IAC1B,gFAA2B,CAAA;IAC3B,sEAAsB,CAAA;IACtB,8EAA0B,CAAA;IAC1B,kEAAoB,CAAA;IACpB,oFAA6B,CAAA;IAC7B,oGAAqC,CAAA;IACrC,4FAAiC,CAAA;IACjC,kFAA4B,CAAA;IAC5B,4DAAiB,CAAA;IACjB,kEAAoB,CAAA;IACpB,0FAAgC,CAAA;IAChC,8FAAkC,CAAA;IAClC,8EAA0B,CAAA;IAC1B,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,oEAAqB,CAAA;IACrB,sFAA8B,CAAA;IAC9B,0EAAwB,CAAA;IACxB,8EAA0B,CAAA;IAC1B,4FAAiC,CAAA;IACjC,wFAA+B,CAAA;IAC/B,0FAAgC,CAAA;IAChC,kHAA4C,CAAA;IAC5C,4FAAiC,CAAA;IACjC,sEAAsB,CAAA;IACtB,8EAA0B,CAAA;IAC1B,0EAAwB,CAAA;IACxB,wEAAuB,CAAA;IACvB,oFAA6B,CAAA;IAC7B,kFAA4B,CAAA;IAC5B,gFAA2B,CAAA;IAC3B,oFAA6B,CAAA;IAC7B,wFAA+B,CAAA;IAC/B,4FAAiC,CAAA;IACjC,wFAA+B,CAAA;IAC/B,oGAAqC,CAAA;IACrC,gHAA2C,CAAA;IAC3C,sGAAsC,CAAA;IACtC,0GAAwC,CAAA;IACxC,0GAAwC,CAAA;IACxC,wGAAuC,CAAA;IACvC,oGAAqC,CAAA;IACrC,sGAAsC,CAAA;IACtC,sGAAsC,CAAA;IACtC,kFAA4B,CAAA;IAC5B,4FAAiC,CAAA;IACjC,sFAA8B,CAAA;IAC9B,wFAA+B,CAAA;IAC/B,kFAA4B,CAAA;IAC5B,wFAA+B,CAAA;IAC/B,wFAA+B,CAAA;IAC/B,wEAAuB,CAAA;IACvB,sEAAsB,CAAA;IACtB,oFAA6B,CAAA;IAC7B,oFAA6B,CAAA;IAC7B,oEAAqB,CAAA;IACrB,kFAA4B,CAAA;IAC5B,wEAAuB,CAAA;IACvB,kGAAoC,CAAA;IACpC,8GAA0C,CAAA;IAC1C,kGAAoC,CAAA;IACpC,8GAA0C,CAAA;IAC1C,kGAAoC,CAAA;IACpC,kGAAoC,CAAA;IACpC,8FAAkC,CAAA;IAClC,sGAAsC,CAAA;IACtC,0GAAwC,CAAA;IACxC,4FAAiC,CAAA;IACjC,gFAA2B,CAAA;IAC3B,kFAA4B,CAAA;IAC5B,4EAAyB,CAAA;IACzB,4FAAiC,CAAA;IACjC,4EAAyB,CAAA;IACzB,0FAAgC,CAAA;IAChC,sFAA8B,CAAA;IAC9B,sEAAsB,CAAA;IACtB,oFAA6B,CAAA;IAC7B,wEAAuB,CAAA;IACvB,kFAA4B,CAAA;IAC5B,kFAA4B,CAAA;IAC5B,gFAA2B,CAAA;IAC3B,gFAA2B,CAAA;IAC3B,4EAAyB,CAAA;IACzB,kFAA4B,CAAA;IAC5B,8EAA0B,CAAA;IAC1B,4EAAyB,CAAA;IACzB,oFAA6B,CAAA;IAC7B,sFAA8B,CAAA;IAC9B,4EAAyB,CAAA;IACzB,wFAA+B,CAAA;IAC/B,8EAA0B,CAAA;IAC1B,8EAA0B,CAAA;IAC1B,oEAAqB,CAAA;IACrB,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,sEAAsB,CAAA;IACtB,gEAAmB,CAAA;IACnB,wFAA+B,CAAA;IAC/B,wEAAuB,CAAA;IACvB,qFAA6B,CAAA;IAC7B,4EAAyB,CAAA;IACzB,8EAA0B,CAAA;IAC1B,sFAA8B,CAAA;IAC9B,sEAAsB,CAAA;IACtB,mFAA4B,CAAA;IAC5B,oEAAqB,CAAA;IACrB,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,oEAAqB,CAAA;IACrB,gFAA2B,CAAA;IAC3B,kEAAoB,CAAA;IACpB,4EAAyB,CAAA;IACzB,sEAAsB,CAAA;IACtB,sEAAsB,CAAA;IACtB,8DAAkB,CAAA;IAClB,kGAAoC,CAAA;IACpC,0GAAwC,CAAA;IACxC,0CAA0C;IAC1C,8FAAkC,CAAA;IAClC,8FAAkC,CAAA;IAClC,8FAAkC,CAAA;IAClC,wFAA+B,CAAA;IAC/B,4FAAiC,CAAA;IACjC,gHAA2C,CAAA;IAC3C,8GAA0C,CAAA;IAC1C,oGAAqC,CAAA;IACrC,sHAA8C,CAAA;IAC9C,kHAA4C,CAAA;IAC5C,0HAAgD,CAAA;IAChD,kGAAoC,CAAA;IACpC,oHAA6C,CAAA;IAC7C,kHAA4C,CAAA;IAC5C,oHAA6C,CAAA;IAC7C,gHAA2C,CAAA;IAC3C,wHAA+C,CAAA;IAC/C,oFAA6B,CAAA;IAC7B,gGAAmC,CAAA;IACnC,wGAAuC,CAAA;IACvC,kFAA4B,CAAA;IAC5B,8FAAkC,CAAA;IAClC,gGAAmC,CAAA;IACnC,4FAAiC,CAAA;IACjC,8FAAkC,CAAA;IAClC,8FAAkC,CAAA;IAClC,gFAA2B,CAAA;IAC3B,0FAAgC,CAAA;IAChC,8FAAkC,CAAA;IAClC,oGAAqC,CAAA;IACrC,gGAAmC,CAAA;IACnC,4GAAyC,CAAA;IACzC,oFAA6B,CAAA;IAC7B,gGAAmC,CAAA;IACnC,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,oGAAqC,CAAA;IACrC,gGAAmC,CAAA;IACnC,gGAAmC,CAAA;IACnC,sGAAsC,CAAA;IACtC,4GAAyC,CAAA;IACzC,oHAA6C,CAAA;IAC7C,oGAAqC,CAAA;IACrC,wEAAuB,CAAA;IACvB,wFAA+B,CAAA;IAC/B,8EAA0B,CAAA;IAC1B,sFAA8B,CAAA;IAC9B,0GAAwC,CAAA;IACxC,4FAAiC,CAAA;IACjC,4DAAiB,CAAA;IACjB,4EAAyB,CAAA;IACzB,0EAAwB,CAAA;IACxB,sEAAsB,CAAA;IACtB,uEAAuE;IACvE,kEAAoB,CAAA;IACpB,sFAA8B,CAAA;IAC9B,4EAAyB,CAAA;IACzB,oFAA6B,CAAA;IAC7B,sEAAsB,CAAA;IACtB,gEAAmB,CAAA;IACnB,gEAAmB,CAAA;IACnB,wFAA+B,CAAA;IAC/B,uEAAuE;IACvE,0DAAgB,CAAA;IAChB,4EAAyB,CAAA;IACzB,kEAAoB,CAAA;IACpB,gFAA2B,CAAA;IAC3B,kFAA4B,CAAA;IAC5B,oFAA6B,CAAA;IAC7B,8EAA0B,CAAA;IAC1B,sFAA8B,CAAA;IAC9B,8FAAkC,CAAA;IAClC,wHAA+C,CAAA;IAC/C,4GAAyC,CAAA;IACzC,4IAAyD,CAAA;IACzD,sJAA8D,CAAA;IAC9D,0JAAgE,CAAA;IAChE,wJAA+D,CAAA;IAC/D,oIAAqD,CAAA;IACrD,4HAAiD,CAAA;IACjD,gIAAmD,CAAA;IACnD,0HAAgD,CAAA;IAChD,kHAA4C,CAAA;IAC5C,sIAAsD,CAAA;IACtD,4HAAiD,CAAA;IACjD,4HAAiD,CAAA;IACjD,gIAAmD,CAAA;IACnD,kJAA4D,CAAA;IAC5D,4HAAiD,CAAA;IACjD,8GAA0C,CAAA;IAC1C,sFAA8B,CAAA;IAC9B,wGAAuC,CAAA;IACvC,4HAAiD,CAAA;IACjD,wHAA+C,CAAA;IAC/C,wFAA+B,CAAA;IAC/B,0EAAwB,CAAA;IACxB,4FAAiC,CAAA;IACjC,0GAAwC,CAAA;IACxC,8GAA0C,CAAA;IAC1C,gGAAmC,CAAA;IACnC,sGAAsC,CAAA;IACtC,0FAAgC,CAAA;IAChC,sGAAsC,CAAA;IACtC,kGAAoC,CAAA;IACpC,wGAAuC,CAAA;IACvC,wGAAuC,CAAA;IACvC,4GAAyC,CAAA;IACzC,sGAAsC,CAAA;IACtC,sCAAsC;IACtC,kGAAoC,CAAA;IACpC,4FAAiC,CAAA;IACjC,gFAA2B,CAAA;IAC3B,8FAAkC,CAAA;IAClC,gGAAmC,CAAA;IACnC,wIAAuD,CAAA;IACvD,0GAAwC,CAAA;IACxC,8GAA0C,CAAA;IAC1C,sGAAsC,CAAA;IACtC,oHAA6C,CAAA;IAC7C,kHAA4C,CAAA;IAC5C,gHAA2C,CAAA;IAC3C,sHAA8C,CAAA;IAC9C,kHAA4C,CAAA;IAC5C,4HAAiD,CAAA;IACjD,wHAA+C,CAAA;IAC/C,gHAA2C,CAAA;IAC3C,sHAA8C,CAAA;IAC9C,8HAAkD,CAAA;IAClD,kGAAuC,CAAA;IACvC,sGAAyC,CAAA;IACzC,wHAAkD,CAAA;IAClD,gHAA8C,CAAA;IAC9C,oHAAgD,CAAA;IAChD,sIAAyD,CAAA;IACzD,0HAAmD,CAAA;IACnD,8FAAqC,CAAA;IACrC,4GAA4C,CAAA;IAC5C,kHAA+C,CAAA;IAC/C,oHAAgD,CAAA;IAChD,4GAA4C,CAAA;IAC5C,gGAAsC,CAAA;IACtC,gHAA8C,CAAA;IAC9C,oFAAgC,CAAA;IAChC,8GAA6C,CAAA;IAC7C,oGAAwC,CAAA;IACxC,0HAAmD,CAAA;IACnD,0GAA2C,CAAA;IAC3C,kFAA+B,CAAA;IAC/B,sFAAiC,CAAA;IACjC,uEAAuE;IACvE,8FAAqC,CAAA;IACrC,0FAAmC,CAAA;IACnC,oGAAwC,CAAA;IACxC,sFAA8B,CAAA;IAC9B,0GAAwC,CAAA;IACxC,wFAA+B,CAAA;IAC/B,8FAAkC,CAAA;IAClC,8FAAkC,CAAA;IAClC,kEAAoB,CAAA;IACpB,wFAA+B,CAAA;IAC/B,6EAA0B,CAAA;IAC1B,iGAAoC,CAAA;IACpC,6FAAkC,CAAA;IAClC,+EAA2B,CAAA;IAC3B,kFAA4B,CAAA;IAC5B,4EAAyB,CAAA;IACzB,6EAA0B,CAAA;IAC1B,6FAAkC,CAAA;IAClC,qGAAsC,CAAA;IACtC,qHAA8C,CAAA;IAC9C,qGAAsC,CAAA;IACtC,2EAAyB,CAAA;IACzB,+EAA2B,CAAA;IAC3B,gEAAmB,CAAA;IACnB,6GAA0C,CAAA;IAC1C,yFAAgC,CAAA;IAChC,kGAAoC,CAAA;IACpC,8FAAkC,CAAA;IAClC,4HAAiD,CAAA;IACjD,wHAA+C,CAAA;IAC/C,8FAAkC,CAAA;IAClC,oHAA6C,CAAA;IAC7C,gHAA2C,CAAA;IAC3C,wGAAuC,CAAA;IACvC,sIAAsD,CAAA;IACtD,sIAAsD,CAAA;IACtD,8IAA0D,CAAA;IAC1D,kJAA4D,CAAA;IAC5D,8IAA0D,CAAA;IAC1D,kIAAoD,CAAA;IACpD,sIAAsD,CAAA;IACtD,sIAAsD,CAAA;IACtD,sIAAsD,CAAA;IACtD,0IAAwD,CAAA;IACxD,0IAAwD,CAAA;IACxD,kIAAoD,CAAA;IACpD,sIAAsD,CAAA;IACtD,sIAAsD,CAAA;IACtD,oHAA6C,CAAA;IAC7C,kGAAoC,CAAA;IACpC,yCAAyC;IACzC,yCAAyC;IACzC,wGAAuC,CAAA;IACvC,yCAAyC;IACzC,oGAAqC,CAAA;IACrC,gFAA2B,CAAA;IAC3B,4FAAiC,CAAA;IACjC,kGAAoC,CAAA;IACpC,8FAAkC,CAAA;IAClC,wGAAuC,CAAA;IACvC,4GAAyC,CAAA;IACzC,0GAAwC,CAAA;IACxC,8HAAkD,CAAA;IAClD,8GAA0C,CAAA;IAC1C,wGAAuC,CAAA;IACvC,wGAAuC,CAAA;IACvC,wFAA+B,CAAA;IAC/B,kGAAoC,CAAA;IACpC,8FAAkC,CAAA;IAClC,4FAAiC,CAAA;IACjC,wFAA+B,CAAA;IAC/B,kGAAoC,CAAA;IACpC,gFAA2B,CAAA;IAC3B,kGAAoC,CAAA;IACpC,gGAAmC,CAAA;IACnC,8EAA0B,CAAA;IAC1B,sFAA8B,CAAA;IAC9B,0GAAwC,CAAA;IACxC,uEAAuE;IACvE,kGAAoC,CAAA;IACpC,uEAAuE;IACvE,oGAAqC,CAAA;AACzC,CAAC,EAxiBW,WAAW,2BAAX,WAAW,QAwiBtB;AAED,IAAY,WAoBX;AApBD,WAAY,WAAW;IACnB,qDAAqD;IACrD,6EAAwB,CAAA;IACxB,qEAAoB,CAAA;IACpB,iFAA0B,CAAA;IAC1B,uFAA6B,CAAA;IAC7B,uFAA6B,CAAA;IAC7B,6FAAgC,CAAA;IAChC,6FAAgC,CAAA;IAChC,2FAA+B,CAAA;IAC/B,uFAA6B,CAAA;IAC7B,sGAAqC,CAAA;IACrC,wEAAsB,CAAA;IACtB,8EAAyB,CAAA;IACzB,gFAA0B,CAAA;IAC1B,gGAAkC,CAAA;IAClC,oEAAoB,CAAA;IACpB,wFAA8B,CAAA;IAC9B,gEAAkB,CAAA;IAClB,wEAAsB,CAAA;AAC1B,CAAC,EApBW,WAAW,2BAAX,WAAW,QAoBtB;AAED,IAAY,SAmFX;AAnFD,WAAY,SAAS;IACjB,uDAAuD;IACvD,4GAA2C,CAAA;IAC3C,wHAAiD,CAAA;IACjD,oHAA+C,CAAA;IAC/C,wGAAyC,CAAA;IACzC,oFAA+B,CAAA;IAC/B,8EAA4B,CAAA;IAC5B,kGAAsC,CAAA;IACtC,oGAAuC,CAAA;IACvC,8GAA4C,CAAA;IAC5C,4GAA2C,CAAA;IAC3C,0EAA0B,CAAA;IAC1B,8EAA4B,CAAA;IAC5B,8EAA4B,CAAA;IAC5B,gEAAqB,CAAA;IACrB,kEAAsB,CAAA;IACtB,sEAAwB,CAAA;IACxB,0EAA0B,CAAA;IAC1B,8EAA4B,CAAA;IAC5B,wEAAyB,CAAA;IACzB,kFAA8B,CAAA;IAC9B,0EAA0B,CAAA;IAC1B,0EAA0B,CAAA;IAC1B,8EAA4B,CAAA;IAC5B,8EAA4B,CAAA;IAC5B,0EAA0B,CAAA;IAC1B,kFAA8B,CAAA;IAC9B,sFAAgC,CAAA;IAChC,sFAAgC,CAAA;IAChC,sFAAgC,CAAA;IAChC,wEAAyB,CAAA;IACzB,yFAAiC,CAAA;IACjC,gEAAqB,CAAA;IACrB,wEAAyB,CAAA;IACzB,oEAAuB,CAAA;IACvB,oEAAuB,CAAA;IACvB,4EAA2B,CAAA;IAC3B,8EAA4B,CAAA;IAC5B,kEAAsB,CAAA;IACtB,kEAAsB,CAAA;IACtB,kEAAsB,CAAA;IACtB,8FAAmC,CAAA;IACnC,8EAA4B,CAAA;IAC5B,0FAAiC,CAAA;IACjC,mGAAsC,CAAA;IACtC,gGAAoC,CAAA;IACpC,oFAA8B,CAAA;IAC9B,6FAAmC,CAAA;IACnC,+EAA4B,CAAA;IAC5B,4EAA0B,CAAA;IAC1B,0FAAiC,CAAA;IACjC,oFAA8B,CAAA;IAC9B,qGAAuC,CAAA;IACvC,+EAA4B,CAAA;IAC5B,sFAA+B,CAAA;IAC/B,2GAA0C,CAAA;IAC1C,iEAAoB,CAAA;IACpB,uGAAwC,CAAA;IACxC,mGAAsC,CAAA;IACtC,6HAAmD,CAAA;IACnD,mGAAsC,CAAA;IACtC,qGAAuC,CAAA;IACvC,2EAAyB,CAAA;IACzB,wEAAwB,CAAA;IACxB,iGAAqC,CAAA;IACrC,6FAAmC,CAAA;IACnC,2FAAkC,CAAA;IAClC,wEAAyB,CAAA;IACzB,iFAA8B,CAAA;IAC9B,gFAA6B,CAAA;IAC7B,gFAA6B,CAAA;IAC7B,4FAAmC,CAAA;IACnC,wEAAyB,CAAA;IACzB,kFAA8B,CAAA;IAC9B,sEAAwB,CAAA;IACxB,8DAAoB,CAAA;IACpB,oFAA+B,CAAA;IAC/B,8EAA4B,CAAA;IAC5B,sFAAgC,CAAA;IAChC,0EAA0B,CAAA;IAC1B,iFAA6B,CAAA;IAC7B,8EAA4B,CAAA;AAChC,CAAC,EAnFW,SAAS,yBAAT,SAAS,QAmFpB;AAED,IAAY,YA2BX;AA3BD,WAAY,YAAY;IACpB,gDAAS,CAAA;IACT,mDAAU,CAAA;IACV,+DAAgB,CAAA;IAChB,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,mDAAU,CAAA;IACV,yDAAa,CAAA;IACb,+CAAQ,CAAA;IACR,+EAAwB,CAAA;IACxB,qGAAmC,CAAA;IACnC,+EAAwB,CAAA;IACxB,wFAA6B,CAAA;IAC7B,0DAAc,CAAA;IACd,sFAA4B,CAAA;IAC5B,0FAA8B,CAAA;IAC9B,kFAA0B,CAAA;IAC1B,sFAA4B,CAAA;IAC5B,4EAAuB,CAAA;IACvB,kFAA0B,CAAA;IAC1B,sFAA4B,CAAA;IAC5B,gFAAyB,CAAA;IACzB,sFAA4B,CAAA;IAC5B,0FAA8B,CAAA;IAC9B,0EAAsB,CAAA;IACtB,gDAAS,CAAA;IACT,wDAAa,CAAA;AACjB,CAAC,EA3BW,YAAY,4BAAZ,YAAY,QA2BvB;AAED,IAAY,UAsBX;AAtBD,WAAY,UAAU;IAClB,yDAAyD;IACzD,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,iDAAW,CAAA;IACX,yCAAO,CAAA;IACP,yCAAO,CAAA;IACP,yCAAO,CAAA;IACP,2CAAQ,CAAA;IACR,uDAAc,CAAA;IACd,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,wDAAe,CAAA;IACf,gEAAmB,CAAA;IACnB,wDAAe,CAAA;IACf,wEAAuB,CAAA;IACvB,kEAAoB,CAAA;IACpB,oEAAqB,CAAA;IACrB,sDAAc,CAAA;IACd,kEAAoB,CAAA;IACpB,oEAAqB,CAAA;IACrB,gFAA2B,CAAA;AAC/B,CAAC,EAtBW,UAAU,0BAAV,UAAU,QAsBrB;AAED,yBAAyB;AACzB,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,uDAAO,CAAA;IACP,qDAAM,CAAA;AACV,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,iCAAiC;AACjC,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,uDAAO,CAAA;IACP,qDAAM,CAAA;AACV,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,aAAa;AACb,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,uDAAO,CAAA;IACP,mEAAa,CAAA;IACb,qFAAsB,CAAA;AAC1B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAGD,6BAA6B;AAC7B,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,mEAAa,CAAA;IACb,qFAAsB,CAAA;IACtB,uDAAO,CAAA;AACX,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAED,iBAAiB;AACjB,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,yDAAQ,CAAA;IACR,uDAAO,CAAA;AACX,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,iEAAa,CAAA;IACb,uDAAQ,CAAA;IACR,yDAAS,CAAA;IACT,mDAAM,CAAA;IACN,uDAAQ,CAAA;AACZ,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,kDAAY,CAAA;IACZ,2CAAQ,CAAA;IACR,2CAAQ,CAAA;AACZ,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,kDAAY,CAAA;IACZ,2CAAQ,CAAA;IACR,yCAAO,CAAA;IACP,+CAAU,CAAA;IACV,iDAAW,CAAA;AACf,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAED,IAAY,UAyDX;AAzDD,WAAY,UAAU;IAClB,mEAAqB,CAAA;IACrB,0DAAiB,CAAA;IACjB,oEAAsB,CAAA;IACtB,kDAAa,CAAA;IACb,uDAAe,CAAA;IACf,kEAAqB,CAAA;IACrB,uEAAuB,CAAA;IACvB,6EAA0B,CAAA;IAC1B,2EAAyB,CAAA;IACzB,gEAAoB,CAAA;IACpB,uEAAuB,CAAA;IACvB,wDAAgB,CAAA;IAChB,4DAAkB,CAAA;IAClB,6DAAkB,CAAA;IAClB,qFAA8B,CAAA;IAC9B,qDAAc,CAAA;IACd,wDAAgB,CAAA;IAChB,qEAAsB,CAAA;IACtB,4EAA0B,CAAA;IAC1B,mEAAqB,CAAA;IACrB,kEAAqB,CAAA;IACrB,2EAAyB,CAAA;IACzB,gFAA4B,CAAA;IAC5B,0DAAiB,CAAA;IACjB,qEAAsB,CAAA;IACtB,uEAAuB,CAAA;IACvB,mFAA6B,CAAA;IAC7B,qEAAsB,CAAA;IACtB,2DAAiB,CAAA;IACjB,iDAAY,CAAA;IACZ,4DAAkB,CAAA;IAClB,sDAAe,CAAA;IACf,oEAAsB,CAAA;IACtB,uEAAuB,CAAA;IACvB,kEAAqB,CAAA;IACrB,sDAAe,CAAA;IACf,gEAAoB,CAAA;IACpB,8EAA2B,CAAA;IAC3B,kFAA6B,CAAA;IAC7B,oEAAsB,CAAA;IACtB,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;IACnB,gDAAY,CAAA;IACZ,wFAAgC,CAAA;IAChC,qFAA8B,CAAA;IAC9B,qEAAsB,CAAA;IACtB,kEAAqB,CAAA;IACrB,gEAAoB,CAAA;IACpB,uEAAuB,CAAA;IACvB,wDAAgB,CAAA;IAChB,sEAAuB,CAAA;IACvB,oEAAsB,CAAA;IACtB,uDAAe,CAAA;IACf,6DAAkB,CAAA;IAClB,uDAAe,CAAA;IACf,uDAAe,CAAA;AACnB,CAAC,EAzDW,UAAU,0BAAV,UAAU,QAyDrB;AAED,IAAY,aAiCX;AAjCD,WAAY,aAAa;IACrB,2DAAa,CAAA;IACb,uEAAmB,CAAA;IACnB,6DAAc,CAAA;IACd,uEAAmB,CAAA;IACnB,qDAAU,CAAA;IACV,qEAAkB,CAAA;IAClB,+DAAe,CAAA;IACf,mDAAS,CAAA;IACT,4DAAc,CAAA;IACd,4DAAc,CAAA;IACd,kEAAiB,CAAA;IACjB,8DAAe,CAAA;IACf,oEAAkB,CAAA;IAClB,gEAAgB,CAAA;IAChB,4EAAsB,CAAA;IACtB,kFAAyB,CAAA;IACzB,sDAAW,CAAA;IACX,0DAAa,CAAA;IACb,gFAAwB,CAAA;IACxB,4DAAc,CAAA;IACd,4EAAsB,CAAA;IACtB,wEAAoB,CAAA;IACpB,0DAAa,CAAA;IACb,4DAAc,CAAA;IACd,0EAAqB,CAAA;IACrB,gEAAgB,CAAA;IAChB,gFAAwB,CAAA;IACxB,0EAAqB,CAAA;IACrB,0EAAqB,CAAA;IACrB,sEAAmB,CAAA;IACnB,sEAAmB,CAAA;IACnB,oEAAkB,CAAA;AACtB,CAAC,EAjCW,aAAa,6BAAb,aAAa,QAiCxB;AAED,IAAY,mBAWX;AAXD,WAAY,mBAAmB;IAC3B,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,yDAAO,CAAA;AACX,CAAC,EAXW,mBAAmB,mCAAnB,mBAAmB,QAW9B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,qEAAc,CAAA;IACd,iEAAY,CAAA;AAChB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,8BAkCX;AAlCD,WAAY,8BAA8B;IACtC,wDAAwD;IACxD,wDAAwD;IACxD,qDAAqD;IACrD,gIAAgC,CAAA;IAChC,8GAAuB,CAAA;IACvB,0GAAqB,CAAA;IACrB,0GAAqB,CAAA;IACrB,0GAAqB,CAAA;IACrB,4HAA8B,CAAA;IAC9B,8HAA+B,CAAA;IAC/B,0GAAqB,CAAA;IACrB,wGAAoB,CAAA;IACpB,sHAA2B,CAAA;IAC3B,kHAAyB,CAAA;IACzB,gJAAwC,CAAA;IACxC,sIAAmC,CAAA;IACnC,gIAAgC,CAAA;IAChC,8IAAuC,CAAA;IACvC,sIAAmC,CAAA;IACnC,oJAA0C,CAAA;IAC1C,8HAA+B,CAAA;IAC/B,kHAAyB,CAAA;IACzB,0HAA6B,CAAA;IAC7B,wHAA4B,CAAA;IAC5B,4HAA8B,CAAA;IAC9B,0GAAqB,CAAA;IACrB,4GAAsB,CAAA;IACtB,4GAAsB,CAAA;IACtB,gIAAgC,CAAA;IAChC,0IAAqC,CAAA;IACrC,gHAAwB,CAAA;IACxB,8HAA+B,CAAA;IAC/B,4GAAsB,CAAA;AAC1B,CAAC,EAlCW,8BAA8B,8CAA9B,8BAA8B,QAkCzC;AAED,IAAY,oBAsDX;AAtDD,WAAY,oBAAoB;IAC5B,uEAAY,CAAA;IACZ,qFAAe,CAAA;IACf,qEAAO,CAAA;IACP,qFAAe,CAAA;IACf,+EAAY,CAAA;IACZ,iGAAqB,CAAA;IACrB,qFAAe,CAAA;IACf,2FAAkB,CAAA;IAClB,mGAAsB,CAAA;IACtB,wFAAgB,CAAA;IAChB,wFAAgB,CAAA;IAChB,0FAAiB,CAAA;IACjB,oEAAM,CAAA;IACN,kFAAa,CAAA;IACb,oFAAc,CAAA;IACd,0FAAiB,CAAA;IACjB,oFAAc,CAAA;IACd,kFAAa,CAAA;IACb,0EAAS,CAAA;IACT,sFAAe,CAAA;IACf,gFAAY,CAAA;IACZ,8FAAmB,CAAA;IACnB,wFAAgB,CAAA;IAChB,sGAAuB,CAAA;IACvB,kGAAqB,CAAA;IACrB,0FAAiB,CAAA;IACjB,sFAAe,CAAA;IACf,kFAAa,CAAA;IACb,4FAAkB,CAAA;IAClB,8EAAW,CAAA;IACX,4EAAU,CAAA;IACV,gFAAY,CAAA;IACZ,0EAAS,CAAA;IACT,8EAAW,CAAA;IACX,0EAAS,CAAA;IACT,8EAAW,CAAA;IACX,oEAAM,CAAA;IACN,4FAAkB,CAAA;IAClB,8EAAW,CAAA;IACX,wEAAQ,CAAA;IACR,4EAAU,CAAA;IACV,wFAAgB,CAAA;IAChB,4FAAkB,CAAA;IAClB,oFAAc,CAAA;IACd,sFAAe,CAAA;IACf,0FAAiB,CAAA;IACjB,oFAAc,CAAA;IACd,oFAAc,CAAA;IACd,oFAAc,CAAA;IACd,kFAAa,CAAA;IACb,sFAAe,CAAA;IACf,kFAAa,CAAA;IACb,oHAA8B,CAAA;AAClC,CAAC,EAtDW,oBAAoB,oCAApB,oBAAoB,QAsD/B;AAED,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAC9B,mFAAgB,CAAA;IAChB,qEAAS,CAAA;IACT,qFAAiB,CAAA;IACjB,uFAAkB,CAAA;IAClB,6FAAqB,CAAA;AACzB,CAAC,EANW,sBAAsB,sCAAtB,sBAAsB,QAMjC;AAED,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,uFAAgB,CAAA;IAChB,yEAAS,CAAA;AACb,CAAC,EAHW,wBAAwB,wCAAxB,wBAAwB,QAGnC;AAED,IAAY,gCAIX;AAJD,WAAY,gCAAgC;IACxC,2FAAU,CAAA;IACV,qFAAO,CAAA;IACP,uFAAQ,CAAA;AACZ,CAAC,EAJW,gCAAgC,gDAAhC,gCAAgC,QAI3C;AAED,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACnC,6FAAgB,CAAA;IAChB,qFAAY,CAAA;AAChB,CAAC,EAHW,2BAA2B,2CAA3B,2BAA2B,QAGtC;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,2FAA0B,CAAA;IAC1B,uEAAc,CAAA;AAClB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,mDAAQ,CAAA;IACR,mDAAQ,CAAA;IACR,+CAAM,CAAA;IACN,uDAAU,CAAA;IACV,uDAAU,CAAA;IACV,qDAAS,CAAA;AACb,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAED,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,yDAAQ,CAAA;IACR,2DAAS,CAAA;IACT,2DAAS,CAAA;AACb,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,mDAAO,CAAA;IACP,uDAAS,CAAA;IACT,uDAAS,CAAA;AACb,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,2CAAQ,CAAA;IACR,mDAAY,CAAA;IACZ,mFAA4B,CAAA;IAC5B,6EAAyB,CAAA;IACzB,yFAA+B,CAAA;AACnC,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAED,IAAY,gBAaX;AAbD,WAAY,gBAAgB;IACxB,qEAAe,CAAA;IACf,qEAAe,CAAA;IACf,qEAAe,CAAA;IACf,6DAAW,CAAA;IACX,qDAAO,CAAA;IACP,2DAAW,CAAA;IACX,6DAAY,CAAA;IACZ,+DAAa,CAAA;IACb,uEAAuE;IACvE,+EAAqB,CAAA;IACrB,oFAAwB,CAAA;IACxB,gFAAsB,CAAA;AAC1B,CAAC,EAbW,gBAAgB,gCAAhB,gBAAgB,QAa3B;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,2EAAe,CAAA;IACf,iFAAkB,CAAA;IAClB,uEAAa,CAAA;AACjB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAoDD,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,mDAAQ,CAAA;IACR,yDAAW,CAAA;IACX,yDAAW,CAAA;AACf,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAC9B,qFAAa,CAAA;IACb,yEAAO,CAAA;IACP,6FAAiB,CAAA;IACjB,+EAAU,CAAA;IACV,iFAAW,CAAA;AACf,CAAC,EANW,sBAAsB,sCAAtB,sBAAsB,QAMjC;AAED,IAAY,kBAeX;AAfD,WAAY,kBAAkB;IAC1B,sFAAuB,CAAA;IACvB,+FAA2B,CAAA;IAC3B,oFAAsB,CAAA;IACtB,sFAAuB,CAAA;IACvB,uFAAuB,CAAA;IACvB,8FAA2B,CAAA;IAC3B,8FAA2B,CAAA;IAC3B,oGAA8B,CAAA;IAC9B,sGAA+B,CAAA;IAC/B,gGAA4B,CAAA;IAC5B,sFAAuB,CAAA;IACvB,8FAA2B,CAAA;IAC3B,oFAAsB,CAAA;AAE1B,CAAC,EAfW,kBAAkB,kCAAlB,kBAAkB,QAe7B;AAED,IAAY,gBAkCX;AAlCD,WAAY,gBAAgB;IACxB,8EAAqB,CAAA;IACrB,0FAA2B,CAAA;IAC3B,wEAAkB,CAAA;IAClB,8DAAa,CAAA;IACb,iFAAsB,CAAA;IACtB,oEAAgB,CAAA;IAChB,kEAAe,CAAA;IACf,sEAAiB,CAAA;IACjB,mFAAuB,CAAA;IACvB,4EAAoB,CAAA;IACpB,qFAAwB,CAAA;IACxB,gFAAsB,CAAA;IACtB,wEAAkB,CAAA;IAClB,wFAA0B,CAAA;IAC1B,mEAAe,CAAA;IACf,mEAAe,CAAA;IACf,yEAAkB,CAAA;IAClB,+EAAqB,CAAA;IACrB,8EAAqB,CAAA;IACrB,8EAAqB,CAAA;IACrB,6EAAoB,CAAA;IACpB,kEAAe,CAAA;IACf,6DAAY,CAAA;IACZ,+DAAa,CAAA;IACb,qEAAgB,CAAA;IAChB,yFAA0B,CAAA;IAC1B,yEAAkB,CAAA;IAClB,gFAAsB,CAAA;IACtB,yDAAU,CAAA;IACV,6DAAY,CAAA;IACZ,oEAAgB,CAAA;IAChB,4DAAY,CAAA;IACZ,yEAAkB,CAAA;AACtB,CAAC,EAlCW,gBAAgB,gCAAhB,gBAAgB,QAkC3B;AAED,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,qEAAU,CAAA;IACV,qEAAU,CAAA;AACd,CAAC,EAHW,qBAAqB,qCAArB,qBAAqB,QAGhC;AAED,IAAY,gCAeX;AAfD,WAAY,gCAAgC;IACxC,6FAAW,CAAA;IACX,mGAAc,CAAA;IACd,uHAAwB,CAAA;IACxB,uGAAgB,CAAA;IAChB,8GAAoB,CAAA;IACpB,wFAAS,CAAA;IACT,4FAAW,CAAA;IACX,kGAAc,CAAA;IACd,8GAAoB,CAAA;IACpB,4GAAmB,CAAA;IACnB,0GAAkB,CAAA;IAClB,gHAAqB,CAAA;IACrB,0FAAU,CAAA;IACV,wGAAiB,CAAA;AACrB,CAAC,EAfW,gCAAgC,gDAAhC,gCAAgC,QAe3C;AAED,IAAY,gCAwBX;AAxBD,WAAY,gCAAgC;IACxC,4GAAmB,CAAA;IACnB,wHAAyB,CAAA;IACzB,sGAAgB,CAAA;IAChB,4FAAW,CAAA;IACX,gHAAqB,CAAA;IACrB,kGAAc,CAAA;IACd,gGAAa,CAAA;IACb,oGAAe,CAAA;IACf,kHAAsB,CAAA;IACtB,0GAAkB,CAAA;IAClB,oHAAuB,CAAA;IACvB,8GAAoB,CAAA;IACpB,sGAAgB,CAAA;IAChB,sHAAwB,CAAA;IACxB,kGAAc,CAAA;IACd,kGAAc,CAAA;IACd,wGAAiB,CAAA;IACjB,8GAAoB,CAAA;IACpB,4GAAmB,CAAA;IACnB,4GAAmB,CAAA;IACnB,4GAAmB,CAAA;IACnB,gGAAa,CAAA;IACb,4FAAW,CAAA;AACf,CAAC,EAxBW,gCAAgC,gDAAhC,gCAAgC,QAwB3C"} \ No newline at end of file diff --git a/build/p2p/utils.d.ts b/build/p2p/utils.d.ts new file mode 100644 index 00000000..01c81e51 --- /dev/null +++ b/build/p2p/utils.d.ts @@ -0,0 +1,72 @@ +import { Socket } from "dgram"; +import NodeRSA from "node-rsa"; +import { P2PMessageParts, P2PMessageState, P2PQueueMessage, RGBColor } from "./interfaces"; +import { CommandType, ESLCommand, LockV12P2PCommand, SmartSafeCommandCode, VideoCodec, EncryptionType, SmartLockP2PCommand, SmartLockFunctionType, SmartLockCommand } from "./types"; +import { Address, LockP2PCommandType, SmartSafeNotificationResponse, SmartSafeP2PCommandType } from "./models"; +import { DeviceType } from "../http/types"; +export declare const MAGIC_WORD = "XZYH"; +export declare const isPrivateIp: (ip: string) => boolean; +export declare const getLocalIpAddress: (init?: string) => string; +export declare const isP2PCommandEncrypted: (cmd: CommandType) => boolean; +export declare const getP2PCommandEncryptionKey: (serialNumber: string, p2pDid: string) => string; +export declare const encryptP2PData: (data: Buffer, key: Buffer) => Buffer; +export declare const decryptP2PData: (data: Buffer, key: Buffer) => Buffer; +export declare const paddingP2PData: (data: Buffer, blocksize?: number) => Buffer; +export declare const buildLookupWithKeyPayload: (socket: Socket, p2pDid: string, dskKey: string) => Buffer; +export declare const buildLookupWithKeyPayload2: (p2pDid: string, dskKey: string) => Buffer; +export declare const buildLookupWithKeyPayload3: (p2pDid: string, address: Address, data: Buffer) => Buffer; +export declare const buildCheckCamPayload: (p2pDid: string) => Buffer; +export declare const buildCheckCamPayload2: (p2pDid: string, data: Buffer) => Buffer; +export declare const buildIntCommandPayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, value: number, strValue?: string, channel?: number) => Buffer; +export declare const buildStringTypeCommandPayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, strValue: string, strValueSub: string, channel?: number) => Buffer; +export declare const buildIntStringCommandPayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, value: number, valueSub?: number, strValue?: string, strValueSub?: string, channel?: number) => Buffer; +export declare const sendMessage: (socket: Socket, address: { + host: string; + port: number; +}, msgID: Buffer, payload?: Buffer) => Promise; +export declare const hasHeader: (msg: Buffer, searchedType: Buffer) => boolean; +export declare const buildCommandHeader: (seqNumber: number, commandType: CommandType, p2pDataTypeHeader?: Buffer | null) => Buffer; +export declare const buildCommandWithStringTypePayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, value: string, channel?: number) => Buffer; +export declare const sortP2PMessageParts: (messages: P2PMessageParts) => Buffer; +export declare const getRSAPrivateKey: (pem: string, enableEmbeddedPKCS1Support?: boolean) => NodeRSA; +export declare const getNewRSAPrivateKey: (enableEmbeddedPKCS1Support?: boolean) => NodeRSA; +export declare const decryptAESData: (hexkey: string, data: Buffer) => Buffer; +export declare const findStartCode: (data: Buffer) => boolean; +export declare const isIFrame: (data: Buffer) => boolean; +export declare const decryptLockAESData: (key: string, iv: string, data: Buffer) => Buffer; +export declare const encryptLockAESData: (key: string, iv: string, data: Buffer) => Buffer; +export declare const generateBasicLockAESKey: (adminID: string, stationSN: string) => string; +export declare const getCurrentTimeInSeconds: () => number; +export declare const generateLockSequence: (deviceType?: DeviceType, serialnumber?: string) => number; +export declare const encodeLockPayload: (data: string) => Buffer; +export declare const getLockVectorBytes: (data: string) => string; +export declare const decodeLockPayload: (data: Buffer) => string; +export declare const decodeBase64: (data: string) => Buffer; +export declare const eslTimestamp: (timestamp_in_sec?: number) => number[]; +export declare const generateAdvancedLockAESKey: () => string; +export declare const getVideoCodec: (data: Buffer) => VideoCodec; +export declare const checkT8420: (serialNumber: string) => boolean; +export declare const buildVoidCommandPayload: (channel?: number) => Buffer; +export declare function isP2PQueueMessage(type: P2PQueueMessage | P2PMessageState): type is P2PQueueMessage; +export declare const encryptPayloadData: (data: string | Buffer, key: Buffer, iv: Buffer) => Buffer; +export declare const decryptPayloadData: (data: Buffer, key: Buffer, iv: Buffer) => Buffer; +export declare const eufyKDF: (key: Buffer) => Buffer; +export declare const getAdvancedLockKey: (key: string, publicKey: string) => string; +export declare const getLockV12Key: (key: string, publicKey: string) => string; +export declare const buildTalkbackAudioFrameHeader: (audioData: Buffer, channel?: number) => Buffer; +export declare const decodeP2PCloudIPs: (data: string) => Array

; +export declare const decodeSmartSafeData: (deviceSN: string, data: Buffer) => SmartSafeNotificationResponse; +export declare const getSmartSafeP2PCommand: (deviceSN: string, user_id: string, command: CommandType, intCommand: SmartSafeCommandCode, channel: number, sequence: number, data: Buffer) => SmartSafeP2PCommandType; +export declare const getLockP2PCommand: (deviceSN: string, user_id: string, command: CommandType, channel: number, lockPublicKey: string, payload: any) => LockP2PCommandType; +export declare const getLockV12P2PCommand: (deviceSN: string, user_id: string, command: CommandType | ESLCommand, channel: number, lockPublicKey: string, sequence: number, data: Buffer) => LockV12P2PCommand; +export declare const DecimalToRGBColor: (color: number) => RGBColor; +export declare const RGBColorToDecimal: (color: RGBColor) => number; +export declare const getNullTerminatedString: (data: Buffer, encoding?: BufferEncoding) => string; +export declare const isUsbCharging: (value: number) => boolean; +export declare const isSolarCharging: (value: number) => boolean; +export declare const isPlugSolarCharging: (value: number) => boolean; +export declare const isCharging: (value: number) => boolean; +export declare const getSmartLockCurrentTimeInSeconds: () => number; +export declare const generateSmartLockAESKey: (adminUserId: string, time: number) => Buffer; +export declare const getSmartLockP2PCommand: (deviceSN: string, user_id: string, command: CommandType | SmartLockCommand, channel: number, sequence: number, data: Buffer, functionType?: SmartLockFunctionType) => SmartLockP2PCommand; +export declare const readNullTerminatedBuffer: (input: Buffer) => Buffer; diff --git a/build/p2p/utils.js b/build/p2p/utils.js new file mode 100644 index 00000000..d820f832 --- /dev/null +++ b/build/p2p/utils.js @@ -0,0 +1,824 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getLockP2PCommand = exports.getSmartSafeP2PCommand = exports.decodeSmartSafeData = exports.decodeP2PCloudIPs = exports.buildTalkbackAudioFrameHeader = exports.getLockV12Key = exports.getAdvancedLockKey = exports.eufyKDF = exports.decryptPayloadData = exports.encryptPayloadData = exports.buildVoidCommandPayload = exports.checkT8420 = exports.getVideoCodec = exports.generateAdvancedLockAESKey = exports.eslTimestamp = exports.decodeBase64 = exports.decodeLockPayload = exports.getLockVectorBytes = exports.encodeLockPayload = exports.generateLockSequence = exports.getCurrentTimeInSeconds = exports.generateBasicLockAESKey = exports.encryptLockAESData = exports.decryptLockAESData = exports.isIFrame = exports.findStartCode = exports.decryptAESData = exports.getNewRSAPrivateKey = exports.getRSAPrivateKey = exports.sortP2PMessageParts = exports.buildCommandWithStringTypePayload = exports.buildCommandHeader = exports.hasHeader = exports.sendMessage = exports.buildIntStringCommandPayload = exports.buildStringTypeCommandPayload = exports.buildIntCommandPayload = exports.buildCheckCamPayload2 = exports.buildCheckCamPayload = exports.buildLookupWithKeyPayload3 = exports.buildLookupWithKeyPayload2 = exports.buildLookupWithKeyPayload = exports.paddingP2PData = exports.decryptP2PData = exports.encryptP2PData = exports.getP2PCommandEncryptionKey = exports.isP2PCommandEncrypted = exports.getLocalIpAddress = exports.isPrivateIp = exports.MAGIC_WORD = void 0; +exports.readNullTerminatedBuffer = exports.getSmartLockP2PCommand = exports.generateSmartLockAESKey = exports.getSmartLockCurrentTimeInSeconds = exports.isCharging = exports.isPlugSolarCharging = exports.isSolarCharging = exports.isUsbCharging = exports.getNullTerminatedString = exports.RGBColorToDecimal = exports.DecimalToRGBColor = exports.getLockV12P2PCommand = void 0; +exports.isP2PQueueMessage = isP2PQueueMessage; +const node_rsa_1 = __importDefault(require("node-rsa")); +const CryptoJS = __importStar(require("crypto-js")); +const crypto_1 = require("crypto"); +const os = __importStar(require("os")); +const types_1 = require("./types"); +const device_1 = require("../http/device"); +const ble_1 = require("./ble"); +const logging_1 = require("../logging"); +exports.MAGIC_WORD = "XZYH"; +const isPrivateIp = (ip) => /^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || + /^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || + /^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || + /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || + /^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || + /^f[cd][0-9a-f]{2}:/i.test(ip) || + /^fe80:/i.test(ip) || + /^::1$/.test(ip) || + /^::$/.test(ip); +exports.isPrivateIp = isPrivateIp; +const stringWithLength = (input, chunkLength = 128) => { + const stringAsBuffer = Buffer.from(input); + const bufferSize = stringAsBuffer.byteLength < chunkLength ? chunkLength : Math.ceil(stringAsBuffer.byteLength / chunkLength) * chunkLength; + const result = Buffer.alloc(bufferSize); + stringAsBuffer.copy(result); + return result; +}; +const getLocalIpAddress = (init = "") => { + const ifaces = os.networkInterfaces(); + let localAddress = init; + for (const name in ifaces) { + const iface = ifaces[name].filter(function (details) { + return details.family === "IPv4" && details.internal === false; + }); + if (iface.length > 0) { + localAddress = iface[0].address; + break; + } + } + return localAddress; +}; +exports.getLocalIpAddress = getLocalIpAddress; +const p2pDidToBuffer = (p2pDid) => { + const p2pArray = p2pDid.split("-"); + const buf1 = stringWithLength(p2pArray[0], 8); + const buf2 = Buffer.allocUnsafe(4); + buf2.writeUInt32BE(Number.parseInt(p2pArray[1]), 0); + const buf3 = stringWithLength(p2pArray[2], 8); + return Buffer.concat([buf1, buf2, buf3], 20); +}; +const isP2PCommandEncrypted = function (cmd) { + return [1001, 1002, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1015, 1017, 1019, 1035, 1045, 1056, 1145, 1146, 1152, 1200, 1207, 1210, 1213, 1214, 1226, 1227, 1229, 1230, 1233, 1236, 1240, 1241, 1243, 1246, 1272, 1273, 1275, 1400, 1401, 1402, 1403, 1408, 1409, 1410, 1412, 1413, 1506, 1507, 1607, 1609, 1610, 1611, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1013, 1202, 1205, 1206, 1024, 1025, 1132, 1215, 1216, 1217, 1414, 1026, 1164, 1201, 1027, 1047, 1048, 1029, 1034, 1036, 1043, 1057, 1203, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1232, 1234, 1235, 1237, 1238, 1248, 1253, 1257, 1269, 1800, 1037, 1040, 1038, 1049, 1050, 1051, 1054, 1060, 1204, 1254, 1255, 1256, 1258, 1259, 1260, 1261, 1262, 1264, 1271, 1350, 1404, 1101, 1106, 1108, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1118, 1119, 1121, 1103, 1129, 1211, 1228, 1231, 1242, 1249, 1250, 1251, 1252, 1405, 1406, 1407, 1700].includes(cmd); +}; +exports.isP2PCommandEncrypted = isP2PCommandEncrypted; +const getP2PCommandEncryptionKey = function (serialNumber, p2pDid) { + return `${serialNumber.slice(-7)}${p2pDid.substring(p2pDid.indexOf("-"), p2pDid.indexOf("-") + 9)}`; +}; +exports.getP2PCommandEncryptionKey = getP2PCommandEncryptionKey; +const encryptP2PData = (data, key) => { + const cipher = (0, crypto_1.createCipheriv)("aes-128-ecb", key, null); + cipher.setAutoPadding(false); + return Buffer.concat([ + cipher.update(data), + cipher.final() + ]); +}; +exports.encryptP2PData = encryptP2PData; +const decryptP2PData = (data, key) => { + const decipher = (0, crypto_1.createDecipheriv)("aes-128-ecb", key, null); + decipher.setAutoPadding(false); + return Buffer.concat([ + decipher.update(data), + decipher.final() + ]); +}; +exports.decryptP2PData = decryptP2PData; +const paddingP2PData = (data, blocksize = 16) => { + const bufferSize = data.byteLength < blocksize ? blocksize : Math.ceil(data.byteLength / blocksize) * blocksize; + const result = Buffer.alloc(bufferSize); + data.copy(result); + return result; +}; +exports.paddingP2PData = paddingP2PData; +const buildLookupWithKeyPayload = (socket, p2pDid, dskKey) => { + const p2pDidBuffer = p2pDidToBuffer(p2pDid); + const addressInfo = socket.address(); + const port = addressInfo.port; + const portAsBuffer = Buffer.allocUnsafe(2); + portAsBuffer.writeUInt16LE(port, 0); + //const ip = socket.address().address; + const ip = (0, exports.getLocalIpAddress)(addressInfo.address); + const temp_buff = []; + ip.split(".").reverse().forEach(element => { + temp_buff.push(Number.parseInt(element)); + }); + const ipAsBuffer = Buffer.from(temp_buff); + const splitter = Buffer.from([0x00, 0x02]); + const magic = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00]); + const dskKeyAsBuffer = Buffer.from(dskKey); + const fourEmpty = Buffer.from([0x00, 0x00, 0x00, 0x00]); + return Buffer.concat([p2pDidBuffer, splitter, portAsBuffer, ipAsBuffer, magic, dskKeyAsBuffer, fourEmpty]); +}; +exports.buildLookupWithKeyPayload = buildLookupWithKeyPayload; +const buildLookupWithKeyPayload2 = (p2pDid, dskKey) => { + const p2pDidBuffer = p2pDidToBuffer(p2pDid); + const dskKeyAsBuffer = Buffer.from(dskKey); + const fourEmpty = Buffer.from([0x00, 0x00, 0x00, 0x00]); + return Buffer.concat([p2pDidBuffer, dskKeyAsBuffer, fourEmpty]); +}; +exports.buildLookupWithKeyPayload2 = buildLookupWithKeyPayload2; +const buildLookupWithKeyPayload3 = (p2pDid, address, data) => { + const p2pDidBuffer = p2pDidToBuffer(p2pDid); + const portAsBuffer = Buffer.allocUnsafe(2); + portAsBuffer.writeUInt16LE(address.port, 0); + const temp_buff = []; + address.host.split(".").reverse().forEach(element => { + temp_buff.push(Number.parseInt(element)); + }); + const ipAsBuffer = Buffer.from(temp_buff); + const splitter = Buffer.from([0x00, 0x02]); + const eightEmpty = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); + return Buffer.concat([p2pDidBuffer, splitter, portAsBuffer, ipAsBuffer, eightEmpty, data]); +}; +exports.buildLookupWithKeyPayload3 = buildLookupWithKeyPayload3; +const buildCheckCamPayload = (p2pDid) => { + const p2pDidBuffer = p2pDidToBuffer(p2pDid); + const magic = Buffer.from([0x00, 0x00, 0x00]); + return Buffer.concat([p2pDidBuffer, magic]); +}; +exports.buildCheckCamPayload = buildCheckCamPayload; +const buildCheckCamPayload2 = (p2pDid, data) => { + const p2pDidBuffer = p2pDidToBuffer(p2pDid); + const magic = Buffer.from([0x00, 0x00, 0x00, 0x00]); + return Buffer.concat([data, p2pDidBuffer, magic]); +}; +exports.buildCheckCamPayload2 = buildCheckCamPayload2; +const buildIntCommandPayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, value, strValue = "", channel = 255) => { + const emptyBuffer = Buffer.from([0x00, 0x00]); + const magicBuffer = Buffer.from([0x01, 0x00]); + const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; + const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); + const valueBuffer = Buffer.allocUnsafe(4); + valueBuffer.writeUInt32LE(value, 0); + const headerBuffer = Buffer.allocUnsafe(2); + const strValueBuffer = strValue.length === 0 ? Buffer.from([]) : stringWithLength(strValue); + const tmpDataBuffer = Buffer.concat([ + valueBuffer, + strValueBuffer + ]); + const dataBuffer = encrypted ? (0, exports.paddingP2PData)(tmpDataBuffer) : tmpDataBuffer; + headerBuffer.writeUInt16LE(dataBuffer.length, 0); + return Buffer.concat([ + headerBuffer, + emptyBuffer, + magicBuffer, + channelBuffer, + emptyBuffer, + encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer + ]); +}; +exports.buildIntCommandPayload = buildIntCommandPayload; +const buildStringTypeCommandPayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, strValue, strValueSub, channel = 255) => { + const emptyBuffer = Buffer.from([0x00, 0x00]); + const magicBuffer = Buffer.from([0x01, 0x00]); + const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; + const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); + const someBuffer = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00]); + const strValueBuffer = stringWithLength(strValue); + const strValueSubBuffer = stringWithLength(strValueSub); + const headerBuffer = Buffer.allocUnsafe(2); + const tmpDataBuffer = Buffer.concat([ + someBuffer, + strValueBuffer, + strValueSubBuffer + ]); + const dataBuffer = encrypted ? (0, exports.paddingP2PData)(tmpDataBuffer) : tmpDataBuffer; + headerBuffer.writeUInt16LE(dataBuffer.length, 0); + return Buffer.concat([ + headerBuffer, + emptyBuffer, + magicBuffer, + channelBuffer, + emptyBuffer, + encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer + ]); +}; +exports.buildStringTypeCommandPayload = buildStringTypeCommandPayload; +const buildIntStringCommandPayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, value, valueSub = 0, strValue = "", strValueSub = "", channel = 0) => { + const emptyBuffer = Buffer.from([0x00, 0x00]); + const magicBuffer = Buffer.from([0x01, 0x00]); + const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; + const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); + const someintBuffer = Buffer.allocUnsafe(4); + someintBuffer.writeUInt32LE(valueSub, 0); + const valueBuffer = Buffer.allocUnsafe(4); + valueBuffer.writeUInt32LE(value, 0); + const strValueBuffer = strValue.length === 0 ? Buffer.from([]) : stringWithLength(strValue); + const strValueSubBuffer = strValueSub.length === 0 ? Buffer.from([]) : stringWithLength(strValueSub); + const headerBuffer = Buffer.allocUnsafe(2); + const tmpDataBuffer = Buffer.concat([ + someintBuffer, + valueBuffer, + strValueBuffer, + strValueSubBuffer + ]); + const dataBuffer = encrypted ? (0, exports.paddingP2PData)(tmpDataBuffer) : tmpDataBuffer; + headerBuffer.writeUInt16LE(dataBuffer.length, 0); + return Buffer.concat([ + headerBuffer, + emptyBuffer, + magicBuffer, + channelBuffer, + emptyBuffer, + encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer + ]); +}; +exports.buildIntStringCommandPayload = buildIntStringCommandPayload; +const sendMessage = async (socket, address, msgID, payload) => { + if (!payload) + payload = Buffer.from([]); + const payloadLen = Buffer.allocUnsafe(2); + payloadLen.writeUInt16BE(payload.length, 0); + const message = Buffer.concat([msgID, payloadLen, payload], 4 + payload.length); + return new Promise((resolve, reject) => { + socket.send(message, address.port, address.host, (err, bytes) => { + return err ? reject(err) : resolve(bytes); + }); + }); +}; +exports.sendMessage = sendMessage; +const hasHeader = (msg, searchedType) => { + const header = Buffer.allocUnsafe(2); + msg.copy(header, 0, 0, 2); + return Buffer.compare(header, searchedType) === 0; +}; +exports.hasHeader = hasHeader; +const buildCommandHeader = (seqNumber, commandType, p2pDataTypeHeader = null) => { + let dataTypeBuffer = types_1.P2PDataTypeHeader.DATA; + if (p2pDataTypeHeader !== null && + (Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.DATA) === 0 || + Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.BINARY) === 0 || + Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.CONTROL) === 0 || + Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.VIDEO) === 0)) { + dataTypeBuffer = p2pDataTypeHeader; + } + const seqAsBuffer = Buffer.allocUnsafe(2); + seqAsBuffer.writeUInt16BE(seqNumber, 0); + const magicString = Buffer.from(exports.MAGIC_WORD); + const commandTypeBuffer = Buffer.allocUnsafe(2); + commandTypeBuffer.writeUInt16LE(commandType, 0); + return Buffer.concat([dataTypeBuffer, seqAsBuffer, magicString, commandTypeBuffer]); +}; +exports.buildCommandHeader = buildCommandHeader; +const buildCommandWithStringTypePayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, value, channel = 0) => { + const headerBuffer = Buffer.allocUnsafe(2); + const emptyBuffer = Buffer.from([0x00, 0x00]); + const magicBuffer = Buffer.from([0x01, 0x00]); + const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; + const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); + const dataBuffer = encrypted ? (0, exports.paddingP2PData)(Buffer.from(value)) : Buffer.from(value); + headerBuffer.writeUInt16LE(dataBuffer.length, 0); + return Buffer.concat([ + headerBuffer, + emptyBuffer, + magicBuffer, + channelBuffer, + emptyBuffer, + encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer + ]); +}; +exports.buildCommandWithStringTypePayload = buildCommandWithStringTypePayload; +const sortP2PMessageParts = (messages) => { + let completeMessage = Buffer.from([]); + Object.keys(messages).map(Number) + .sort((a, b) => { + if (Math.abs(a - b) > 65000) { + if (a < b) { + return 1; + } + else if (b < a) { + return -1; + } + } + return a - b; + }) // assure the seqNumbers are in correct order + .forEach((key) => { + completeMessage = Buffer.concat([completeMessage, messages[key]]); + }); + return completeMessage; +}; +exports.sortP2PMessageParts = sortP2PMessageParts; +const getRSAPrivateKey = (pem, enableEmbeddedPKCS1Support = false) => { + const key = new node_rsa_1.default(); + if (pem.indexOf("\n") !== -1) { + pem = pem.replaceAll("\n", ""); + } + if (pem.startsWith("-----BEGIN RSA PRIVATE KEY-----")) { + pem = pem.replace("-----BEGIN RSA PRIVATE KEY-----", "").replace("-----END RSA PRIVATE KEY-----", ""); + } + key.importKey(pem, "pkcs8"); + const options = { + encryptionScheme: "pkcs1" + }; + if (enableEmbeddedPKCS1Support) { + options.environment = "browser"; + } + key.setOptions(options); + return key; +}; +exports.getRSAPrivateKey = getRSAPrivateKey; +const getNewRSAPrivateKey = (enableEmbeddedPKCS1Support = false) => { + const key = new node_rsa_1.default({ b: 1024 }); + const options = { + encryptionScheme: "pkcs1" + }; + if (enableEmbeddedPKCS1Support) { + options.environment = "browser"; + } + key.setOptions(options); + return key; +}; +exports.getNewRSAPrivateKey = getNewRSAPrivateKey; +const decryptAESData = (hexkey, data) => { + const key = CryptoJS.enc.Hex.parse(hexkey); + const cipherParams = CryptoJS.lib.CipherParams.create({ + ciphertext: CryptoJS.enc.Hex.parse(data.toString("hex")) + }); + const decrypted = CryptoJS.AES.decrypt(cipherParams, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.NoPadding + }); + return Buffer.from(CryptoJS.enc.Hex.stringify(decrypted), "hex"); +}; +exports.decryptAESData = decryptAESData; +const findStartCode = (data) => { + if (data !== undefined && data.length > 0) { + if (data.length >= 4) { + const startcode = [...data.subarray(0, 4)]; + if ((startcode[0] === 0 && startcode[1] === 0 && startcode[2] === 1) || (startcode[0] === 0 && startcode[1] === 0 && startcode[2] === 0 && startcode[3] === 1)) + return true; + } + else if (data.length === 3) { + const startcode = [...data.subarray(0, 3)]; + if ((startcode[0] === 0 && startcode[1] === 0 && startcode[2] === 1)) + return true; + } + } + return false; +}; +exports.findStartCode = findStartCode; +const isIFrame = (data) => { + const validValues = [64, 66, 68, 78, 101, 103]; + if (data !== undefined && data.length > 0) { + if (data.length >= 5) { + const startcode = [...data.subarray(0, 5)]; + if (validValues.includes(startcode[3]) || validValues.includes(startcode[4])) + return true; + } + } + return false; +}; +exports.isIFrame = isIFrame; +const decryptLockAESData = (key, iv, data) => { + const ekey = CryptoJS.enc.Hex.parse(key); + const eiv = CryptoJS.enc.Hex.parse(iv); + const cipherParams = CryptoJS.lib.CipherParams.create({ + ciphertext: CryptoJS.enc.Hex.parse(data.toString("hex")) + }); + const decrypted = CryptoJS.AES.decrypt(cipherParams, ekey, { + iv: eiv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }); + return Buffer.from(CryptoJS.enc.Hex.stringify(decrypted), "hex"); +}; +exports.decryptLockAESData = decryptLockAESData; +const encryptLockAESData = (key, iv, data) => { + const ekey = CryptoJS.enc.Hex.parse(key); + const eiv = CryptoJS.enc.Hex.parse(iv); + const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Hex.parse(data.toString("hex")), ekey, { + iv: eiv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }); + return Buffer.from(CryptoJS.enc.Hex.stringify(encrypted.ciphertext), "hex"); +}; +exports.encryptLockAESData = encryptLockAESData; +const generateBasicLockAESKey = (adminID, stationSN) => { + const encoder = new TextEncoder(); + const encOwnerID = encoder.encode(adminID); + const encStationSerial = encoder.encode(stationSN); + const array = [104, -83, -72, 38, -107, 99, -110, 17, -95, -121, 54, 57, -46, -98, -111, 89]; + for (let i = 0; i < 16; i++) { + array[i] = (array[i] + encStationSerial[((encStationSerial[i] * 3) + 5) % 16] + encOwnerID[((encOwnerID[i] * 3) + 5) % 40]); + } + return Buffer.from(array).toString("hex"); +}; +exports.generateBasicLockAESKey = generateBasicLockAESKey; +const getCurrentTimeInSeconds = function () { + return Math.trunc(new Date().getTime() / 1000); +}; +exports.getCurrentTimeInSeconds = getCurrentTimeInSeconds; +const generateLockSequence = (deviceType, serialnumber) => { + if (deviceType !== undefined && serialnumber !== undefined) + if (device_1.Device.isLockWifi(deviceType, serialnumber) || device_1.Device.isLockWifiNoFinger(deviceType)) + return Math.trunc(Math.random() * 1000); + return (0, exports.getCurrentTimeInSeconds)(); +}; +exports.generateLockSequence = generateLockSequence; +const encodeLockPayload = (data) => { + const encoder = new TextEncoder(); + const encData = encoder.encode(data); + const length = encData.length; + const old_buffer = Buffer.from(encData); + if (length % 16 == 0) { + return old_buffer; + } + const new_length = (Math.trunc(length / 16) + 1) * 16; + const new_buffer = Buffer.alloc(new_length); + old_buffer.copy(new_buffer, 0); + return new_buffer; +}; +exports.encodeLockPayload = encodeLockPayload; +const getLockVectorBytes = (data) => { + const encoder = new TextEncoder(); + const encData = encoder.encode(data); + const old_buffer = Buffer.from(encData); + if (encData.length >= 16) + return old_buffer.toString("hex"); + const new_buffer = Buffer.alloc(16); + old_buffer.copy(new_buffer, 0); + return new_buffer.toString("hex"); +}; +exports.getLockVectorBytes = getLockVectorBytes; +const decodeLockPayload = (data) => { + const decoder = new TextDecoder(); + return decoder.decode(data); +}; +exports.decodeLockPayload = decodeLockPayload; +const decodeBase64 = (data) => { + const base64RegExp = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/; + if (base64RegExp.test(data)) + return Buffer.from(data, "base64"); + return Buffer.from(data); +}; +exports.decodeBase64 = decodeBase64; +const eslTimestamp = function (timestamp_in_sec = new Date().getTime() / 1000) { + const array = []; + for (let pos = 0; pos < 4; pos++) { + array[pos] = ((timestamp_in_sec >> (pos * 8)) & 255); + } + return array; +}; +exports.eslTimestamp = eslTimestamp; +const generateAdvancedLockAESKey = () => { + const randomBytesArray = [...(0, crypto_1.randomBytes)(16)]; + let result = ""; + for (let pos = 0; pos < randomBytesArray.length; pos++) { + result += "0123456789ABCDEF".charAt((randomBytesArray[pos] >> 4) & 15); + result += "0123456789ABCDEF".charAt(randomBytesArray[pos] & 15); + } + return result; +}; +exports.generateAdvancedLockAESKey = generateAdvancedLockAESKey; +const getVideoCodec = (data) => { + if (data !== undefined && data.length > 0) { + if (data.length >= 5) { + const h265Values = [38, 64, 66, 68, 78]; + const startcode = [...data.subarray(0, 5)]; + if (h265Values.includes(startcode[3]) || h265Values.includes(startcode[4])) { + return types_1.VideoCodec.H265; + } + else if (startcode[3] === 103 || startcode[4] === 103) { + return types_1.VideoCodec.H264; + } + } + return types_1.VideoCodec.H264; + } + return types_1.VideoCodec.UNKNOWN; // Maybe return h264 as Eufy does? +}; +exports.getVideoCodec = getVideoCodec; +const checkT8420 = (serialNumber) => { + if (!(serialNumber !== undefined && serialNumber !== null && serialNumber.length > 0 && serialNumber.startsWith("T8420")) || serialNumber.length <= 7 || serialNumber[6] != "6") { + return false; + } + return true; +}; +exports.checkT8420 = checkT8420; +const buildVoidCommandPayload = (channel = 255) => { + const headerBuffer = Buffer.from([0x00, 0x00]); + const emptyBuffer = Buffer.from([0x00, 0x00]); + const magicBuffer = Buffer.from([0x01, 0x00]); + const channelBuffer = Buffer.from([channel, 0x00]); + return Buffer.concat([ + headerBuffer, + emptyBuffer, + magicBuffer, + channelBuffer, + emptyBuffer + ]); +}; +exports.buildVoidCommandPayload = buildVoidCommandPayload; +function isP2PQueueMessage(type) { + return type.p2pCommand !== undefined; +} +const encryptPayloadData = (data, key, iv) => { + const cipher = (0, crypto_1.createCipheriv)("aes-128-cbc", key, iv); + return Buffer.concat([ + cipher.update(data), + cipher.final() + ]); +}; +exports.encryptPayloadData = encryptPayloadData; +const decryptPayloadData = (data, key, iv) => { + const cipher = (0, crypto_1.createDecipheriv)("aes-128-cbc", key, iv); + return Buffer.concat([ + cipher.update(data), + cipher.final() + ]); +}; +exports.decryptPayloadData = decryptPayloadData; +const eufyKDF = (key) => { + const hash_length = 32; + const digest_length = 48; + const staticBuffer = Buffer.from("ECIES"); + const steps = Math.ceil(digest_length / hash_length); + const buffer = Buffer.alloc(hash_length * steps); + let tmpBuffer = staticBuffer; + for (let step = 0; step < steps; ++step) { + tmpBuffer = (0, crypto_1.createHmac)("sha256", key).update(tmpBuffer).digest(); + const digest = (0, crypto_1.createHmac)("sha256", key).update(Buffer.concat([tmpBuffer, staticBuffer])).digest(); + digest.copy(buffer, hash_length * step); + } + return buffer.subarray(0, digest_length); +}; +exports.eufyKDF = eufyKDF; +const getAdvancedLockKey = (key, publicKey) => { + const ecdh = (0, crypto_1.createECDH)("prime256v1"); + ecdh.generateKeys(); + const secret = ecdh.computeSecret(Buffer.concat([Buffer.from("04", "hex"), Buffer.from(publicKey, "hex")])); + const randomValue = (0, crypto_1.randomBytes)(16); + const derivedKey = (0, exports.eufyKDF)(secret); + const encryptedData = (0, exports.encryptPayloadData)(key, derivedKey.subarray(0, 16), randomValue); + const hmac = (0, crypto_1.createHmac)("sha256", derivedKey.subarray(16)); + hmac.update(randomValue); + hmac.update(encryptedData); + const hmacDigest = hmac.digest(); + return Buffer.concat([Buffer.from(ecdh.getPublicKey("hex", "compressed"), "hex"), randomValue, encryptedData, hmacDigest]).toString("hex"); +}; +exports.getAdvancedLockKey = getAdvancedLockKey; +const getLockV12Key = (key, publicKey) => { + const ecdh = (0, crypto_1.createECDH)("prime256v1"); + ecdh.generateKeys(); + const secret = ecdh.computeSecret(Buffer.concat([Buffer.from("04", "hex"), Buffer.from(publicKey, "hex")])); + const randomValue = (0, crypto_1.randomBytes)(16); + const derivedKey = (0, exports.eufyKDF)(secret); + const encryptedData = (0, exports.encryptPayloadData)(Buffer.from(key, "hex"), derivedKey.subarray(0, 16), randomValue); + const hmac = (0, crypto_1.createHmac)("sha256", derivedKey.subarray(16)); + hmac.update(randomValue); + hmac.update(encryptedData); + const hmacDigest = hmac.digest(); + return Buffer.concat([Buffer.from(ecdh.getPublicKey("hex", "compressed"), "hex"), randomValue, encryptedData, hmacDigest]).toString("hex"); +}; +exports.getLockV12Key = getLockV12Key; +const buildTalkbackAudioFrameHeader = (audioData, channel = 0) => { + const audioDataLength = Buffer.allocUnsafe(4); + audioDataLength.writeUInt32LE(audioData.length); + const unknown1 = Buffer.alloc(1); + const audioType = Buffer.alloc(1); + const audioSeq = Buffer.alloc(2); + const audioTimestamp = Buffer.alloc(8); + const audioDataHeader = Buffer.concat([audioDataLength, unknown1, audioType, audioSeq, audioTimestamp]); + const bytesToRead = Buffer.allocUnsafe(4); + bytesToRead.writeUInt32LE(audioData.length + audioDataHeader.length); + const magicBuffer = Buffer.from([0x01, 0x00]); + const channelBuffer = Buffer.from([channel, 0x00]); + const emptyBuffer = Buffer.from([0x00, 0x00]); + return Buffer.concat([ + bytesToRead, + magicBuffer, + channelBuffer, + emptyBuffer, + audioDataHeader + ]); +}; +exports.buildTalkbackAudioFrameHeader = buildTalkbackAudioFrameHeader; +const decodeP2PCloudIPs = (data) => { + const lookupTable = Buffer.from("4959433db5bf6da347534f6165e371e9677f02030badb3892b2f35c16b8b959711e5a70deff1050783fb9d3bc5c713171d1f2529d3df", "hex"); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [encoded, name = "name not included"] = data.split(":"); + const output = Buffer.alloc(encoded.length / 2); + for (let i = 0; i <= data.length / 2; i++) { + let z = 0x39; // 57 // '9' + for (let j = 0; j < i; j++) { + z = z ^ output[j]; + } + const x = (data.charCodeAt(i * 2 + 1) - "A".charCodeAt(0)); + const y = (data.charCodeAt(i * 2) - "A".charCodeAt(0)) * 0x10; + output[i] = z ^ lookupTable[i % lookupTable.length] ^ x + y; + } + const result = []; + output.toString("utf8").split(",").forEach((ip) => { + if (ip !== "") { + result.push({ host: ip, port: 32100 }); + } + }); + return result; +}; +exports.decodeP2PCloudIPs = decodeP2PCloudIPs; +const decodeSmartSafeData = function (deviceSN, data) { + const response = ble_1.BleCommandFactory.parseSmartSafe(data); + return { + versionCode: response.getVersionCode(), + dataType: response.getDataType(), + commandCode: response.getCommandCode(), + packageFlag: response.getPackageFlag(), + responseCode: response.getResponseCode(), + data: (0, exports.decryptPayloadData)(response.getData(), Buffer.from(deviceSN), Buffer.from(device_1.SmartSafe.IV, "hex")) + }; +}; +exports.decodeSmartSafeData = decodeSmartSafeData; +const getSmartSafeP2PCommand = function (deviceSN, user_id, command, intCommand, channel, sequence, data) { + const encPayload = (0, exports.encryptPayloadData)(data, Buffer.from(deviceSN), Buffer.from(device_1.SmartSafe.IV, "hex")); + const bleCommand = new ble_1.BleCommandFactory() + .setVersionCode(device_1.SmartSafe.VERSION_CODE) + .setCommandCode(intCommand) + .setDataType(-1) + .setData(encPayload) + .getSmartSafeCommand(); + logging_1.rootP2PLogger.debug(`Generate smart safe command`, { deviceSN: deviceSN, userId: user_id, command: command, intCommand: intCommand, channel: channel, sequence: sequence, data: data.toString("hex") }); + return { + commandType: types_1.CommandType.CMD_SET_PAYLOAD, + value: JSON.stringify({ + account_id: user_id, + cmd: command, + mChannel: channel, + mValue3: 0, + payload: { + data: bleCommand.toString("hex"), + prj_id: command, + seq_num: sequence, + } + }), + channel: channel + }; +}; +exports.getSmartSafeP2PCommand = getSmartSafeP2PCommand; +const getLockP2PCommand = function (deviceSN, user_id, command, channel, lockPublicKey, payload) { + const key = (0, exports.generateAdvancedLockAESKey)(); + const ecdhKey = (0, exports.getAdvancedLockKey)(key, lockPublicKey); + const iv = (0, exports.getLockVectorBytes)(deviceSN); + const encPayload = (0, exports.encryptLockAESData)(key, iv, Buffer.from(JSON.stringify(payload))); + logging_1.rootP2PLogger.debug(`Generate lock command`, { deviceSN: deviceSN, userId: user_id, command: command, channel: channel, data: JSON.stringify(payload) }); + return { + commandType: types_1.CommandType.CMD_SET_PAYLOAD, + value: JSON.stringify({ + key: ecdhKey, + account_id: user_id, + cmd: command, + mChannel: channel, + mValue3: 0, + payload: encPayload.toString("base64") + }).replace(/=/g, "\\u003d"), + channel: channel, + aesKey: key + }; +}; +exports.getLockP2PCommand = getLockP2PCommand; +const getLockV12P2PCommand = function (deviceSN, user_id, command, channel, lockPublicKey, sequence, data) { + const key = (0, exports.generateAdvancedLockAESKey)(); + const encryptedAesKey = (0, exports.getLockV12Key)(key, lockPublicKey); + const iv = (0, exports.getLockVectorBytes)(deviceSN); + const encPayload = (0, exports.encryptPayloadData)(data, Buffer.from(key, "hex"), Buffer.from(iv, "hex")); + logging_1.rootP2PLogger.debug(`Generate smart lock v12 command`, { deviceSN: deviceSN, userId: user_id, command: command, channel: channel, sequence: sequence, data: data.toString("hex") }); + const bleCommand = new ble_1.BleCommandFactory() + .setVersionCode(device_1.Lock.VERSION_CODE_LOCKV12) + .setCommandCode(Number.parseInt(types_1.ESLBleCommand[types_1.ESLCommand[command]])) //TODO: Change internal command identification? + .setDataType(-1) + .setData(encPayload) + .setAdditionalData(Buffer.from(encryptedAesKey, "hex")); + return { + aesKey: key, + bleCommand: bleCommand.getCommandCode(), + payload: { + commandType: types_1.CommandType.CMD_SET_PAYLOAD, + value: JSON.stringify({ + account_id: user_id, + cmd: types_1.CommandType.CMD_SET_PAYLOAD_LOCKV12, + mChannel: channel, + mValue3: 0, + payload: { + apiCommand: command, + lock_payload: bleCommand.getLockV12Command().toString("hex"), + seq_num: sequence, + } + }) + } + }; +}; +exports.getLockV12P2PCommand = getLockV12P2PCommand; +const DecimalToRGBColor = function (color) { + return { + red: (color >> 16) & 0xff, + green: (color >> 8) & 0xff, + blue: color & 0xff, + }; +}; +exports.DecimalToRGBColor = DecimalToRGBColor; +const RGBColorToDecimal = function (color) { + return (color.red << 16) + (color.green << 8) + (color.blue); +}; +exports.RGBColorToDecimal = RGBColorToDecimal; +const getNullTerminatedString = function (data, encoding) { + const index = data.indexOf(0); + return data.toString(encoding, 0, index === -1 ? data.length : index); +}; +exports.getNullTerminatedString = getNullTerminatedString; +const isUsbCharging = function (value) { + return (value & 1) == 1; +}; +exports.isUsbCharging = isUsbCharging; +const isSolarCharging = function (value) { + return ((value >> 2) & 1) == 1; +}; +exports.isSolarCharging = isSolarCharging; +const isPlugSolarCharging = function (value) { + return ((value >> 3) & 1) == 1; +}; +exports.isPlugSolarCharging = isPlugSolarCharging; +const isCharging = function (value) { + return (0, exports.isUsbCharging)(value) || (0, exports.isSolarCharging)(value) || (0, exports.isPlugSolarCharging)(value); +}; +exports.isCharging = isCharging; +const getSmartLockCurrentTimeInSeconds = function () { + return Math.trunc(new Date().getTime() / 1000) | Math.trunc(Math.random() * 100); +}; +exports.getSmartLockCurrentTimeInSeconds = getSmartLockCurrentTimeInSeconds; +const generateSmartLockAESKey = (adminUserId, time) => { + const buffer = Buffer.allocUnsafe(4); + buffer.writeUint32BE(time); + return Buffer.concat([Buffer.from(adminUserId.substring(adminUserId.length - 12)), buffer]); +}; +exports.generateSmartLockAESKey = generateSmartLockAESKey; +const getSmartLockP2PCommand = function (deviceSN, user_id, command, channel, sequence, data, functionType = types_1.SmartLockFunctionType.TYPE_2) { + const time = (0, exports.getSmartLockCurrentTimeInSeconds)(); + const key = (0, exports.generateSmartLockAESKey)(user_id, time); + const iv = (0, exports.getLockVectorBytes)(deviceSN); + const encPayload = (0, exports.encryptPayloadData)(data, key, Buffer.from(iv, "hex")); + logging_1.rootP2PLogger.debug(`Generate smart lock command`, { deviceSN: deviceSN, userId: user_id, command: command, channel: channel, sequence: sequence, data: data.toString("hex"), functionType: functionType }); + let commandCode = 0; + if (functionType === types_1.SmartLockFunctionType.TYPE_1) { + commandCode = Number.parseInt(types_1.SmartLockBleCommandFunctionType1[types_1.SmartLockCommand[command]]); + } + else if (functionType === types_1.SmartLockFunctionType.TYPE_2) { + commandCode = Number.parseInt(types_1.SmartLockBleCommandFunctionType2[types_1.SmartLockCommand[command]]); + } + const bleCommand = new ble_1.BleCommandFactory() + .setVersionCode(device_1.Lock.VERSION_CODE_SMART_LOCK) + .setCommandCode(commandCode) + .setDataType(functionType) + .setData(encPayload); + return { + bleCommand: bleCommand.getCommandCode(), + payload: { + commandType: types_1.CommandType.CMD_SET_PAYLOAD, + value: JSON.stringify({ + account_id: user_id, + cmd: types_1.CommandType.CMD_TRANSFER_PAYLOAD, + mChannel: channel, + mValue3: 0, + payload: { + apiCommand: command, + lock_payload: bleCommand.getSmartLockCommand().toString("hex"), + seq_num: sequence, + time: time, + } + }) + } + }; +}; +exports.getSmartLockP2PCommand = getSmartLockP2PCommand; +const readNullTerminatedBuffer = (input) => { + const index = input.indexOf(new Uint8Array([0])); + if (index === -1) { + const result = Buffer.alloc(input.length); + input.copy(result); + return result; + } + const result = Buffer.alloc(input.subarray(0, index).length); + input.subarray(0, index).copy(result); + return result; +}; +exports.readNullTerminatedBuffer = readNullTerminatedBuffer; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/p2p/utils.js.map b/build/p2p/utils.js.map new file mode 100644 index 00000000..23d13983 --- /dev/null +++ b/build/p2p/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/p2p/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/client.d.ts b/build/push/client.d.ts new file mode 100644 index 00000000..08965131 --- /dev/null +++ b/build/push/client.d.ts @@ -0,0 +1,49 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { PushClientEvents } from "./interfaces"; +export declare class PushClient extends TypedEmitter { + private readonly HOST; + private readonly PORT; + private readonly MCS_VERSION; + private readonly HEARTBEAT_INTERVAL; + private loggedIn; + private streamId; + private lastStreamIdReported; + private currentDelay; + private client?; + private heartbeatTimeout?; + private reconnectTimeout?; + private persistentIds; + private static proto; + private pushClientParser; + private auth; + private constructor(); + static init(auth: { + androidId: string; + securityToken: string; + }): Promise; + private initialize; + getPersistentIds(): Array; + setPersistentIds(ids: Array): void; + connect(): void; + private buildLoginRequest; + private buildHeartbeatPingRequest; + private buildHeartbeatAckRequest; + private onSocketData; + private onSocketConnect; + private onSocketClose; + private onSocketError; + private handleParsedMessage; + private handleHeartbeatPing; + private handleHeartbeatAck; + private convertPayloadMessage; + private getStreamId; + private newStreamIdAvailable; + private scheduleHeartbeat; + private sendHeartbeat; + isConnected(): boolean; + private getHeartbeatInterval; + private getCurrentDelay; + private resetCurrentDelay; + private scheduleReconnect; + close(): void; +} diff --git a/build/push/client.js b/build/push/client.js new file mode 100644 index 00000000..1e9cbd6c --- /dev/null +++ b/build/push/client.js @@ -0,0 +1,323 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PushClient = void 0; +const long_1 = __importDefault(require("long")); +const path = __importStar(require("path")); +const protobufjs_1 = require("protobufjs"); +const tls = __importStar(require("tls")); +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const models_1 = require("./models"); +const parser_1 = require("./parser"); +const utils_1 = require("../utils"); +const error_1 = require("./error"); +const error_2 = require("../error"); +const utils_2 = require("../p2p/utils"); +const logging_1 = require("../logging"); +class PushClient extends tiny_typed_emitter_1.TypedEmitter { + HOST = "mtalk.google.com"; + PORT = 5228; + MCS_VERSION = 41; + HEARTBEAT_INTERVAL = 5 * 60 * 1000; + loggedIn = false; + streamId = 0; + lastStreamIdReported = -1; + currentDelay = 0; + client; + heartbeatTimeout; + reconnectTimeout; + persistentIds = []; + static proto = null; + pushClientParser; + auth; + constructor(pushClientParser, auth) { + super(); + this.pushClientParser = pushClientParser; + this.auth = auth; + } + static async init(auth) { + this.proto = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/mcs.proto")); + const pushClientParser = await parser_1.PushClientParser.init(); + return new PushClient(pushClientParser, auth); + } + initialize() { + this.loggedIn = false; + this.streamId = 0; + this.lastStreamIdReported = -1; + if (this.client) { + this.client.removeAllListeners(); + this.client.destroy(); + this.client = undefined; + } + this.pushClientParser.resetState(); + if (this.reconnectTimeout) { + clearTimeout(this.reconnectTimeout); + this.reconnectTimeout = undefined; + } + } + getPersistentIds() { + return this.persistentIds; + } + setPersistentIds(ids) { + this.persistentIds = ids; + } + connect() { + this.initialize(); + this.pushClientParser.on("message", (message) => this.handleParsedMessage(message)); + this.client = tls.connect(this.PORT, this.HOST, { + rejectUnauthorized: false, + }); + this.client.setKeepAlive(true); + // For debugging purposes + //this.client.enableTrace(); + this.client.on("connect", () => this.onSocketConnect()); + this.client.on("close", () => this.onSocketClose()); + this.client.on("error", (error) => this.onSocketError(error)); + this.client.on("data", (newData) => this.onSocketData(newData)); + this.client.write(this.buildLoginRequest()); + } + buildLoginRequest() { + const androidId = this.auth.androidId; + const securityToken = this.auth.securityToken; + const LoginRequestType = PushClient.proto.lookupType("mcs_proto.LoginRequest"); + const hexAndroidId = long_1.default.fromString(androidId).toString(16); + const loginRequest = { + adaptiveHeartbeat: false, + authService: 2, + authToken: securityToken, + id: "chrome-63.0.3234.0", + domain: "mcs.android.com", + deviceId: `android-${hexAndroidId}`, + networkType: 1, + resource: androidId, + user: androidId, + useRmq2: true, + setting: [{ name: "new_vc", value: "1" }], + clientEvent: [], + receivedPersistentId: this.persistentIds, + }; + const errorMessage = LoginRequestType.verify(loginRequest); + if (errorMessage) { + throw new error_1.BuildLoginRequestError(errorMessage, { context: { loginRequest: loginRequest } }); + } + const buffer = LoginRequestType.encodeDelimited(loginRequest).finish(); + return Buffer.concat([Buffer.from([this.MCS_VERSION, models_1.MessageTag.LoginRequest]), buffer]); + } + buildHeartbeatPingRequest(stream_id) { + const heartbeatPingRequest = {}; + if (stream_id) { + heartbeatPingRequest.last_stream_id_received = stream_id; + } + logging_1.rootPushLogger.debug(`Push client - heartbeatPingRequest`, { streamId: stream_id, request: JSON.stringify(heartbeatPingRequest) }); + const HeartbeatPingRequestType = PushClient.proto.lookupType("mcs_proto.HeartbeatPing"); + const errorMessage = HeartbeatPingRequestType.verify(heartbeatPingRequest); + if (errorMessage) { + throw new error_1.BuildHeartbeatPingRequestError(errorMessage, { context: { heartbeatPingRequest: heartbeatPingRequest } }); + } + const buffer = HeartbeatPingRequestType.encodeDelimited(heartbeatPingRequest).finish(); + return Buffer.concat([Buffer.from([models_1.MessageTag.HeartbeatPing]), buffer]); + } + buildHeartbeatAckRequest(stream_id, status) { + const heartbeatAckRequest = {}; + if (stream_id && !status) { + heartbeatAckRequest.last_stream_id_received = stream_id; + } + else if (!stream_id && status) { + heartbeatAckRequest.status = status; + } + else { + heartbeatAckRequest.last_stream_id_received = stream_id; + heartbeatAckRequest.status = status; + } + logging_1.rootPushLogger.debug(`Push client - heartbeatAckRequest`, { streamId: stream_id, status: status, request: JSON.stringify(heartbeatAckRequest) }); + const HeartbeatAckRequestType = PushClient.proto.lookupType("mcs_proto.HeartbeatAck"); + const errorMessage = HeartbeatAckRequestType.verify(heartbeatAckRequest); + if (errorMessage) { + throw new error_1.BuildHeartbeatAckRequestError(errorMessage, { context: { heartbeatAckRequest: heartbeatAckRequest } }); + } + const buffer = HeartbeatAckRequestType.encodeDelimited(heartbeatAckRequest).finish(); + return Buffer.concat([Buffer.from([models_1.MessageTag.HeartbeatAck]), buffer]); + } + onSocketData(newData) { + this.pushClientParser.handleData(newData); + } + onSocketConnect() { + // + } + onSocketClose() { + this.loggedIn = false; + if (this.heartbeatTimeout) { + clearTimeout(this.heartbeatTimeout); + this.heartbeatTimeout = undefined; + } + this.emit("close"); + this.scheduleReconnect(); + } + onSocketError(err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Push client - Socket Error`, { error: (0, utils_1.getError)(error) }); + } + handleParsedMessage(message) { + this.resetCurrentDelay(); + switch (message.tag) { + case models_1.MessageTag.DataMessageStanza: + logging_1.rootPushLogger.debug(`Push client - DataMessageStanza`, { message: JSON.stringify(message) }); + if (message.object && message.object.persistentId) + this.persistentIds.push(message.object.persistentId); + this.emit("message", this.convertPayloadMessage(message)); + break; + case models_1.MessageTag.HeartbeatPing: + this.handleHeartbeatPing(message); + break; + case models_1.MessageTag.HeartbeatAck: + this.handleHeartbeatAck(message); + break; + case models_1.MessageTag.Close: + logging_1.rootPushLogger.debug(`Push client - Close: Server requested close`, { message: JSON.stringify(message) }); + break; + case models_1.MessageTag.LoginResponse: + logging_1.rootPushLogger.debug("Push client - Login response: GCM -> logged in -> waiting for push messages...", { message: JSON.stringify(message) }); + this.loggedIn = true; + this.persistentIds = []; + this.emit("connect"); + this.heartbeatTimeout = setTimeout(() => { + this.scheduleHeartbeat(this); + }, this.getHeartbeatInterval()); + break; + case models_1.MessageTag.LoginRequest: + logging_1.rootPushLogger.debug(`Push client - Login request`, { message: JSON.stringify(message) }); + break; + case models_1.MessageTag.IqStanza: + logging_1.rootPushLogger.debug(`Push client - IqStanza: Not implemented`, { message: JSON.stringify(message) }); + break; + default: + logging_1.rootPushLogger.debug(`Push client - Unknown message`, { message: JSON.stringify(message) }); + return; + } + this.streamId++; + } + handleHeartbeatPing(message) { + logging_1.rootPushLogger.debug(`Push client - Heartbeat ping`, { message: JSON.stringify(message) }); + let streamId = undefined; + let status = undefined; + if (this.newStreamIdAvailable()) { + streamId = this.getStreamId(); + } + if (message.object && message.object.status) { + status = message.object.status; + } + if (this.client) + this.client.write(this.buildHeartbeatAckRequest(streamId, status)); + } + handleHeartbeatAck(message) { + logging_1.rootPushLogger.debug(`Push client - Heartbeat acknowledge`, { message: JSON.stringify(message) }); + } + convertPayloadMessage(message) { + const { appData, ...otherData } = message.object; + const messageData = {}; + appData.forEach((kv) => { + if (kv.key === "payload") { + const payload = (0, utils_1.parseJSON)((0, utils_2.getNullTerminatedString)(Buffer.from(kv.value, "base64"), "utf8"), logging_1.rootPushLogger); + messageData[kv.key] = payload; + } + else { + messageData[kv.key] = kv.value; + } + }); + return { + ...otherData, + payload: messageData, + }; + } + getStreamId() { + this.lastStreamIdReported = this.streamId; + return this.streamId; + } + newStreamIdAvailable() { + return this.lastStreamIdReported != this.streamId; + } + scheduleHeartbeat(client) { + if (client.sendHeartbeat()) { + this.heartbeatTimeout = setTimeout(() => { + this.scheduleHeartbeat(client); + }, client.getHeartbeatInterval()); + } + else { + logging_1.rootPushLogger.debug("Push client - Heartbeat disabled!"); + } + } + sendHeartbeat() { + let streamId = undefined; + if (this.newStreamIdAvailable()) { + streamId = this.getStreamId(); + } + if (this.client && this.isConnected()) { + logging_1.rootPushLogger.debug(`Push client - Sending heartbeat...`, { streamId: streamId }); + this.client.write(this.buildHeartbeatPingRequest(streamId)); + return true; + } + else { + logging_1.rootPushLogger.debug("Push client - No more connected, reconnect..."); + this.scheduleReconnect(); + } + return false; + } + isConnected() { + return this.loggedIn; + } + getHeartbeatInterval() { + return this.HEARTBEAT_INTERVAL; + } + getCurrentDelay() { + const delay = this.currentDelay == 0 ? 5000 : this.currentDelay; + if (this.currentDelay < 60000) + this.currentDelay += 10000; + if (this.currentDelay >= 60000 && this.currentDelay < 600000) + this.currentDelay += 60000; + return delay; + } + resetCurrentDelay() { + this.currentDelay = 0; + } + scheduleReconnect() { + const delay = this.getCurrentDelay(); + logging_1.rootPushLogger.debug("Push client - Schedule reconnect...", { delay: delay }); + if (!this.reconnectTimeout) + this.reconnectTimeout = setTimeout(() => { + this.connect(); + }, delay); + } + close() { + const wasConnected = this.isConnected(); + this.initialize(); + if (wasConnected) + this.emit("close"); + } +} +exports.PushClient = PushClient; +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/build/push/client.js.map b/build/push/client.js.map new file mode 100644 index 00000000..d5cbe5da --- /dev/null +++ b/build/push/client.js.map @@ -0,0 +1 @@ +{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/push/client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/error.d.ts b/build/push/error.d.ts new file mode 100644 index 00000000..75e985ac --- /dev/null +++ b/build/push/error.d.ts @@ -0,0 +1,73 @@ +import { BaseError, Jsonable } from "../error"; +export declare class UnknownExpiryFormaError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class FidRegistrationFailedError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class RenewFidTokenFailedError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class ExecuteCheckInError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class RegisterGcmError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BuildLoginRequestError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BuildHeartbeatPingRequestError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class BuildHeartbeatAckRequestError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class FidGenerationError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class MCSProtocolVersionError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class MCSProtocolProcessingStateError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} +export declare class MCSProtocolMessageTagError extends BaseError { + constructor(message: string, options?: { + cause?: Error; + context?: Jsonable; + }); +} diff --git a/build/push/error.js b/build/push/error.js new file mode 100644 index 00000000..742e13dd --- /dev/null +++ b/build/push/error.js @@ -0,0 +1,101 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MCSProtocolMessageTagError = exports.MCSProtocolProcessingStateError = exports.MCSProtocolVersionError = exports.FidGenerationError = exports.BuildHeartbeatAckRequestError = exports.BuildHeartbeatPingRequestError = exports.BuildLoginRequestError = exports.RegisterGcmError = exports.ExecuteCheckInError = exports.RenewFidTokenFailedError = exports.FidRegistrationFailedError = exports.UnknownExpiryFormaError = void 0; +const error_1 = require("../error"); +class UnknownExpiryFormaError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = UnknownExpiryFormaError.name; + } +} +exports.UnknownExpiryFormaError = UnknownExpiryFormaError; +class FidRegistrationFailedError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = FidRegistrationFailedError.name; + } +} +exports.FidRegistrationFailedError = FidRegistrationFailedError; +class RenewFidTokenFailedError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = RenewFidTokenFailedError.name; + } +} +exports.RenewFidTokenFailedError = RenewFidTokenFailedError; +class ExecuteCheckInError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = ExecuteCheckInError.name; + } +} +exports.ExecuteCheckInError = ExecuteCheckInError; +class RegisterGcmError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = RegisterGcmError.name; + } +} +exports.RegisterGcmError = RegisterGcmError; +class BuildLoginRequestError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BuildLoginRequestError.name; + } +} +exports.BuildLoginRequestError = BuildLoginRequestError; +class BuildHeartbeatPingRequestError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BuildHeartbeatPingRequestError.name; + } +} +exports.BuildHeartbeatPingRequestError = BuildHeartbeatPingRequestError; +class BuildHeartbeatAckRequestError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = BuildHeartbeatAckRequestError.name; + } +} +exports.BuildHeartbeatAckRequestError = BuildHeartbeatAckRequestError; +class FidGenerationError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = FidGenerationError.name; + } +} +exports.FidGenerationError = FidGenerationError; +class MCSProtocolVersionError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = MCSProtocolVersionError.name; + } +} +exports.MCSProtocolVersionError = MCSProtocolVersionError; +class MCSProtocolProcessingStateError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = MCSProtocolProcessingStateError.name; + } +} +exports.MCSProtocolProcessingStateError = MCSProtocolProcessingStateError; +class MCSProtocolMessageTagError extends error_1.BaseError { + constructor(message, options = {}) { + super(message, options); + Object.setPrototypeOf(this, new.target.prototype); + this.name = MCSProtocolMessageTagError.name; + } +} +exports.MCSProtocolMessageTagError = MCSProtocolMessageTagError; +//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/push/error.js.map b/build/push/error.js.map new file mode 100644 index 00000000..dc837eef --- /dev/null +++ b/build/push/error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/push/error.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/index.d.ts b/build/push/index.d.ts new file mode 100644 index 00000000..c2679eaf --- /dev/null +++ b/build/push/index.d.ts @@ -0,0 +1,6 @@ +export * from "./models"; +export * from "./interfaces"; +export * from "./service"; +export * from "./types"; +export * from "./error"; +export { sleep, convertTimestampMs } from "./utils"; diff --git a/build/push/index.js b/build/push/index.js new file mode 100644 index 00000000..0d040226 --- /dev/null +++ b/build/push/index.js @@ -0,0 +1,26 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.convertTimestampMs = exports.sleep = void 0; +__exportStar(require("./models"), exports); +__exportStar(require("./interfaces"), exports); +__exportStar(require("./service"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./error"), exports); +var utils_1 = require("./utils"); +Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return utils_1.sleep; } }); +Object.defineProperty(exports, "convertTimestampMs", { enumerable: true, get: function () { return utils_1.convertTimestampMs; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/push/index.js.map b/build/push/index.js.map new file mode 100644 index 00000000..e751db4d --- /dev/null +++ b/build/push/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,iCAAoD;AAA3C,8FAAA,KAAK,OAAA;AAAE,2GAAA,kBAAkB,OAAA"} \ No newline at end of file diff --git a/build/push/interfaces.d.ts b/build/push/interfaces.d.ts new file mode 100644 index 00000000..9c66feec --- /dev/null +++ b/build/push/interfaces.d.ts @@ -0,0 +1,19 @@ +import { Credentials, RawPushMessage, PushMessage } from "./models"; +export interface PushNotificationServiceEvents { + "credential": (credentials: Credentials) => void; + "connect": (token: string) => void; + "close": () => void; + "raw message": (message: RawPushMessage) => void; + "message": (message: PushMessage) => void; +} +export interface PushClientEvents { + "connect": () => void; + "close": () => void; + "message": (message: RawPushMessage) => void; +} +export interface PushClientParserEvents { + "message": (message: { + tag: number; + object: any; + }) => void; +} diff --git a/build/push/interfaces.js b/build/push/interfaces.js new file mode 100644 index 00000000..db919115 --- /dev/null +++ b/build/push/interfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/push/interfaces.js.map b/build/push/interfaces.js.map new file mode 100644 index 00000000..e6176772 --- /dev/null +++ b/build/push/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/push/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/push/models.d.ts b/build/push/models.d.ts new file mode 100644 index 00000000..48bcc811 --- /dev/null +++ b/build/push/models.d.ts @@ -0,0 +1,328 @@ +import { UserType } from "../http/types"; +import { AlarmAction } from "./types"; +export interface CusPushData { + a?: number; + alarm?: number; + alarm_delay?: number; + alarm_type?: number; + arming?: number; + automation_id?: number; + batt_powered?: number; + c?: number; + channel?: number; + click_action?: string; + create_time?: number; + device_name?: string; + e?: string; + event_time?: number; + event_type?: number; + f?: string; + i?: string; + j?: number; + k?: number; + cipher?: number; + m?: number; + mode?: number; + n?: string; + name?: string; + news_id?: number; + nick_name?: string; + notification_style?: number; + p?: string; + file_path?: string; + pic_url?: string; + push_count?: number; + s: string; + session_id?: string; + short_user_id?: string; + storage_type?: number; + t?: string; + tfcard?: number; + type?: number; + unique_id?: string; + user?: UserType; + user_id?: string; + user_name?: string; + bat_low?: string; + msg_type: number; + r?: string; + u?: string; +} +export interface EufyPushMessage { + content: string; + device_sn: string; + event_time: string; + payload?: CusPushData | IndoorPushData | ServerPushData | BatteryDoorbellPushData | LockPushData | SmartSafePushData | GarageDoorPushData | AlarmPushData; + push_time: string; + station_sn: string; + title: string; + type: string; + doorbell?: string; + "google.c.sender.id": string; +} +export interface SmartSafeEventValueDetail { + type: number; + action: number; + figure_id: number; + user_id: number; + name?: string; +} +export interface SmartSafePushData { + dev_name: string; + event_type: number; + event_time: number; + event_value: number | SmartSafeEventValueDetail; +} +export interface LockPushData { + event_type: number; + event_time: number; + short_user_id: string; + nick_name: string; + user_id: string; + device_name: string; + device_sn: string; +} +export interface GarageDoorPushData { + a: number; + msg_type: number; + event_type: number; + door_id: number; + user_name: string; + door_name: string; + pic_url: string; + file_path: string; + storage_type: number; + unique_id: string; + power?: number; +} +export interface BatteryDoorbellPushData { + name: string; + channel: number; + cipher: number; + create_time: number; + device_sn: string; + session_id: string; + event_type: number; + file_path: string; + pic_url: string; + push_count: number; + notification_style: number; + objects?: DoorbellPeopleNames; + nick_name?: string; +} +export interface DoorbellPeopleNames { + names: string[]; +} +export interface RawPushMessage { + id: string; + from: string; + to: string; + category: string; + persistentId: string; + ttl: number; + sent: string; + payload: EufyPushMessage; +} +export interface FidTokenResponse { + token: string; + expiresIn: string; + expiresAt: number; +} +export interface FidInstallationResponse { + name: string; + fid: string; + refreshToken: string; + authToken: FidTokenResponse; +} +export interface CheckinResponse { + statsOk: boolean; + timeMs: string; + androidId: string; + securityToken: string; + versionInfo: string; + deviceDataVersionInfo: string; +} +export interface GcmRegisterResponse { + token: string; +} +export interface Message { + tag: number; + object: any; +} +export declare enum ProcessingState { + MCS_VERSION_TAG_AND_SIZE = 0, + MCS_TAG_AND_SIZE = 1, + MCS_SIZE = 2, + MCS_PROTO_BYTES = 3 +} +export declare enum MessageTag { + HeartbeatPing = 0, + HeartbeatAck = 1, + LoginRequest = 2, + LoginResponse = 3, + Close = 4, + MessageStanza = 5, + PresenceStanza = 6, + IqStanza = 7, + DataMessageStanza = 8, + BatchPresenceStanza = 9, + StreamErrorStanza = 10, + HttpRequest = 11, + HttpResponse = 12, + BindAccountRequest = 13, + BindAccountResponse = 14, + TalkMetadata = 15, + NumProtoTypes = 16 +} +export interface Credentials { + fidResponse: FidInstallationResponse; + checkinResponse: CheckinResponse; + gcmResponse: GcmRegisterResponse; +} +export interface DoorbellPushData { + campaign_name: string; + channel: number; + cipher: number; + content: string; + create_time: number; + device_sn: string; + event_session: string; + event_time: number; + event_type: number; + file_path: string; + person_name?: string; + outer_body: string; + outer_title: string; + pic_url: string; + push_count: number; + station_sn: string; + title: string; + url: string; + url_ex: string; + video_url: string; +} +export interface IndoorPushData { + a: number; + channel: number; + cipher: number; + create_time: number; + trigger_time: number; + device_sn: string; + event_type: number; + file_path: string; + msg_type: number; + name: string; + notification_style: number; + pic_url: string; + push_count: number; + session_id: string; + storage_type: number; + t: number; + tfcard_status: number; + timeout: number; + unique_id: string; +} +export interface ServerPushData { + email: string; + nick_name: string; + verify_code: string; +} +export interface PushMessage { + name: string; + event_time: number; + type: number; + station_sn: string; + device_sn: string; + title?: string; + content?: string; + push_time?: number; + channel?: number; + cipher?: number; + event_session?: string; + event_type?: number; + file_path?: string; + pic_url?: string; + push_count?: number; + notification_style?: number; + tfcard_status?: number; + alarm_delay_type?: number; + alarm_delay?: number; + alarm_type?: number; + sound_alarm?: boolean; + user_name?: string; + user_type?: number; + user_id?: string; + short_user_id?: string; + station_guard_mode?: number; + station_current_mode?: number; + person_name?: string; + sensor_open?: boolean; + device_online?: boolean; + fetch_id?: number; + sense_id?: number; + battery_powered?: boolean; + battery_low?: number; + storage_type?: number; + unique_id?: string; + automation_id?: number; + click_action?: string; + news_id?: number; + doorbell_url?: string; + doorbell_url_ex?: string; + doorbell_video_url?: string; + msg_type?: number; + timeout?: number; + event_value?: number | SmartSafeEventValueDetail; + person_id?: number; + door_id?: number; + power?: number; + email?: string; + verify_code?: string; + alarm_status?: string; + alarm_action?: AlarmAction; + open?: number; + openType?: number; + pin?: string; +} +export interface PlatformPushMode { + a: number; + alarm: number; + arming: number; + channel: number; + cipher: number; + create_time: number; + device_sn: string; + event_type: number; + face_id: number; + file_path: string; + mode: number; + msg_type: number; + name: string; + nick_name: string; + notification_style: number; + parted_status: number; + pic_url: string; + push_count: number; + record_id: number; + s: string; + session_id: string; + storage_type: number; + t: number; + tfcard_status: number; + timeout: number; + unique_id: string; + user: number; + user_name: string; + pic_filepath: string; + trigger_time: number; + alarm_delay: number; + person_id: number; +} +export interface AlarmPushData { + alarm_action_channel: AlarmAction; + alarm_id: string; + alarm_status: string; + alert_time: number; + device_sn: string; + station_sn: string; +} diff --git a/build/push/models.js b/build/push/models.js new file mode 100644 index 00000000..02384742 --- /dev/null +++ b/build/push/models.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MessageTag = exports.ProcessingState = void 0; +var ProcessingState; +(function (ProcessingState) { + // Processing the version, tag, and size packets (assuming minimum length + // size packet). Only used during the login handshake. + ProcessingState[ProcessingState["MCS_VERSION_TAG_AND_SIZE"] = 0] = "MCS_VERSION_TAG_AND_SIZE"; + // Processing the tag and size packets (assuming minimum length size + // packet). Used for normal messages. + ProcessingState[ProcessingState["MCS_TAG_AND_SIZE"] = 1] = "MCS_TAG_AND_SIZE"; + // Processing the size packet alone. + ProcessingState[ProcessingState["MCS_SIZE"] = 2] = "MCS_SIZE"; + // Processing the protocol buffer bytes (for those messages with non-zero + // sizes). + ProcessingState[ProcessingState["MCS_PROTO_BYTES"] = 3] = "MCS_PROTO_BYTES"; +})(ProcessingState || (exports.ProcessingState = ProcessingState = {})); +var MessageTag; +(function (MessageTag) { + MessageTag[MessageTag["HeartbeatPing"] = 0] = "HeartbeatPing"; + MessageTag[MessageTag["HeartbeatAck"] = 1] = "HeartbeatAck"; + MessageTag[MessageTag["LoginRequest"] = 2] = "LoginRequest"; + MessageTag[MessageTag["LoginResponse"] = 3] = "LoginResponse"; + MessageTag[MessageTag["Close"] = 4] = "Close"; + MessageTag[MessageTag["MessageStanza"] = 5] = "MessageStanza"; + MessageTag[MessageTag["PresenceStanza"] = 6] = "PresenceStanza"; + MessageTag[MessageTag["IqStanza"] = 7] = "IqStanza"; + MessageTag[MessageTag["DataMessageStanza"] = 8] = "DataMessageStanza"; + MessageTag[MessageTag["BatchPresenceStanza"] = 9] = "BatchPresenceStanza"; + MessageTag[MessageTag["StreamErrorStanza"] = 10] = "StreamErrorStanza"; + MessageTag[MessageTag["HttpRequest"] = 11] = "HttpRequest"; + MessageTag[MessageTag["HttpResponse"] = 12] = "HttpResponse"; + MessageTag[MessageTag["BindAccountRequest"] = 13] = "BindAccountRequest"; + MessageTag[MessageTag["BindAccountResponse"] = 14] = "BindAccountResponse"; + MessageTag[MessageTag["TalkMetadata"] = 15] = "TalkMetadata"; + MessageTag[MessageTag["NumProtoTypes"] = 16] = "NumProtoTypes"; +})(MessageTag || (exports.MessageTag = MessageTag = {})); +//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/build/push/models.js.map b/build/push/models.js.map new file mode 100644 index 00000000..639659b7 --- /dev/null +++ b/build/push/models.js.map @@ -0,0 +1 @@ +{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/push/models.ts"],"names":[],"mappings":";;;AAsKA,IAAY,eAYX;AAZD,WAAY,eAAe;IACvB,yEAAyE;IACzE,sDAAsD;IACtD,6FAA4B,CAAA;IAC5B,oEAAoE;IACpE,qCAAqC;IACrC,6EAAoB,CAAA;IACpB,oCAAoC;IACpC,6DAAY,CAAA;IACZ,yEAAyE;IACzE,UAAU;IACV,2EAAmB,CAAA;AACvB,CAAC,EAZW,eAAe,+BAAf,eAAe,QAY1B;AAED,IAAY,UAkBX;AAlBD,WAAY,UAAU;IAClB,6DAAiB,CAAA;IACjB,2DAAgB,CAAA;IAChB,2DAAgB,CAAA;IAChB,6DAAiB,CAAA;IACjB,6CAAS,CAAA;IACT,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,mDAAY,CAAA;IACZ,qEAAqB,CAAA;IACrB,yEAAuB,CAAA;IACvB,sEAAsB,CAAA;IACtB,0DAAgB,CAAA;IAChB,4DAAiB,CAAA;IACjB,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,4DAAiB,CAAA;IACjB,8DAAkB,CAAA;AACtB,CAAC,EAlBW,UAAU,0BAAV,UAAU,QAkBrB"} \ No newline at end of file diff --git a/build/push/parser.d.ts b/build/push/parser.d.ts new file mode 100644 index 00000000..5ee8d9a0 --- /dev/null +++ b/build/push/parser.d.ts @@ -0,0 +1,25 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { PushClientParserEvents } from "./interfaces"; +export declare class PushClientParser extends TypedEmitter { + private static proto; + private state; + private data; + private isWaitingForData; + private sizePacketSoFar; + private messageSize; + private messageTag; + private handshakeComplete; + private constructor(); + resetState(): void; + static init(): Promise; + handleData(newData: Buffer): void; + private waitForData; + private handleFullMessage; + private onGotVersion; + private onGotMessageTag; + private onGotMessageSize; + private onGotMessageBytes; + private getNextMessage; + private getMinBytesNeeded; + private buildProtobufFromTag; +} diff --git a/build/push/parser.js b/build/push/parser.js new file mode 100644 index 00000000..0da3e34d --- /dev/null +++ b/build/push/parser.js @@ -0,0 +1,217 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PushClientParser = void 0; +const path = __importStar(require("path")); +const protobufjs_1 = require("protobufjs"); +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const models_1 = require("./models"); +const error_1 = require("../error"); +const error_2 = require("./error"); +const logging_1 = require("../logging"); +class PushClientParser extends tiny_typed_emitter_1.TypedEmitter { + static proto = null; + state = models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE; + data = Buffer.alloc(0); + isWaitingForData = true; + sizePacketSoFar = 0; + messageSize = 0; + messageTag = 0; + handshakeComplete = false; + constructor() { + super(); + } + resetState() { + this.state = models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE; + this.data = Buffer.alloc(0); + this.isWaitingForData = true; + this.sizePacketSoFar = 0; + this.messageSize = 0; + this.messageTag = 0; + this.handshakeComplete = false; + this.removeAllListeners(); + } + static async init() { + this.proto = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/mcs.proto")); + return new PushClientParser(); + } + handleData(newData) { + this.data = Buffer.concat([this.data, newData]); + if (this.isWaitingForData) { + this.isWaitingForData = false; + this.waitForData(); + } + } + waitForData() { + const minBytesNeeded = this.getMinBytesNeeded(); + // If we don't have all bytes yet, wait some more + if (this.data.length < minBytesNeeded) { + this.isWaitingForData = true; + return; + } + else { + this.handleFullMessage(); + } + } + handleFullMessage() { + switch (this.state) { + case models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE: + this.onGotVersion(); + break; + case models_1.ProcessingState.MCS_TAG_AND_SIZE: + this.onGotMessageTag(); + break; + case models_1.ProcessingState.MCS_SIZE: + this.onGotMessageSize(); + break; + case models_1.ProcessingState.MCS_PROTO_BYTES: + this.onGotMessageBytes(); + break; + default: + logging_1.rootPushLogger.warn("Push Parser - Unknown state", { state: this.state }); + break; + } + } + onGotVersion() { + const version = this.data.readInt8(0); + this.data = this.data.subarray(1); + if (version < 41 && version !== 38) { + throw new error_2.MCSProtocolVersionError("Got wrong protocol version", { context: { version: version } }); + } + // Process the LoginResponse message tag. + this.onGotMessageTag(); + } + onGotMessageTag() { + this.messageTag = this.data.readInt8(0); + this.data = this.data.subarray(1); + this.onGotMessageSize(); + } + onGotMessageSize() { + let incompleteSizePacket = false; + const reader = new protobufjs_1.BufferReader(this.data); + try { + this.messageSize = reader.int32(); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + if (error instanceof Error && error.message.startsWith("index out of range:")) { + incompleteSizePacket = true; + } + else { + throw error; + } + } + if (incompleteSizePacket) { + this.sizePacketSoFar = reader.pos; + this.state = models_1.ProcessingState.MCS_SIZE; + this.waitForData(); + return; + } + this.data = this.data.subarray(reader.pos); + this.sizePacketSoFar = 0; + if (this.messageSize > 0) { + this.state = models_1.ProcessingState.MCS_PROTO_BYTES; + this.waitForData(); + } + else { + this.onGotMessageBytes(); + } + } + onGotMessageBytes() { + const protobuf = this.buildProtobufFromTag(this.messageTag); + if (this.messageSize === 0) { + this.emit("message", { tag: this.messageTag, object: {} }); + this.getNextMessage(); + return; + } + if (this.data.length < this.messageSize) { + this.state = models_1.ProcessingState.MCS_PROTO_BYTES; + this.waitForData(); + return; + } + const buffer = this.data.subarray(0, this.messageSize); + this.data = this.data.subarray(this.messageSize); + const message = protobuf.decode(buffer); + const object = protobuf.toObject(message, { + longs: String, + enums: String, + bytes: Buffer, + }); + this.emit("message", { tag: this.messageTag, object: object }); + if (this.messageTag === models_1.MessageTag.LoginResponse) { + if (this.handshakeComplete) { + logging_1.rootPushLogger.error("Push Parser - Unexpected login response!"); + } + else { + this.handshakeComplete = true; + } + } + this.getNextMessage(); + } + getNextMessage() { + this.messageTag = 0; + this.messageSize = 0; + this.state = models_1.ProcessingState.MCS_TAG_AND_SIZE; + this.waitForData(); + } + getMinBytesNeeded() { + switch (this.state) { + case models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE: + return 1 + 1 + 1; + case models_1.ProcessingState.MCS_TAG_AND_SIZE: + return 1 + 1; + case models_1.ProcessingState.MCS_SIZE: + return this.sizePacketSoFar + 1; + case models_1.ProcessingState.MCS_PROTO_BYTES: + return this.messageSize; + default: + throw new error_2.MCSProtocolProcessingStateError("Unknown protocol processing state", { context: { state: this.state } }); + } + } + buildProtobufFromTag(messageTag) { + switch (messageTag) { + case models_1.MessageTag.HeartbeatPing: + return PushClientParser.proto.lookupType("mcs_proto.HeartbeatPing"); + case models_1.MessageTag.HeartbeatAck: + return PushClientParser.proto.lookupType("mcs_proto.HeartbeatAck"); + case models_1.MessageTag.LoginRequest: + return PushClientParser.proto.lookupType("mcs_proto.LoginRequest"); + case models_1.MessageTag.LoginResponse: + return PushClientParser.proto.lookupType("mcs_proto.LoginResponse"); + case models_1.MessageTag.Close: + return PushClientParser.proto.lookupType("mcs_proto.Close"); + case models_1.MessageTag.IqStanza: + return PushClientParser.proto.lookupType("mcs_proto.IqStanza"); + case models_1.MessageTag.DataMessageStanza: + return PushClientParser.proto.lookupType("mcs_proto.DataMessageStanza"); + case models_1.MessageTag.StreamErrorStanza: + return PushClientParser.proto.lookupType("mcs_proto.StreamErrorStanza"); + default: + throw new error_2.MCSProtocolMessageTagError("Unknown protocol message tag", { context: { messageTag: this.messageTag } }); + } + } +} +exports.PushClientParser = PushClientParser; +//# sourceMappingURL=parser.js.map \ No newline at end of file diff --git a/build/push/parser.js.map b/build/push/parser.js.map new file mode 100644 index 00000000..2f9f8bf3 --- /dev/null +++ b/build/push/parser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/push/parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/proto/checkin.proto b/build/push/proto/checkin.proto new file mode 100644 index 00000000..cb6c60d3 --- /dev/null +++ b/build/push/proto/checkin.proto @@ -0,0 +1,266 @@ +// Sample data, if provided, is fished from a Nexus 7 (2013) / flo running Android 5.0 +message CheckinRequest { + // unused + optional string imei = 1; + + // Gservices["android_id"] or 0 on first-checkin + optional int64 androidId = 2; + + // Gservices["digest"] or "" + optional string digest = 3; + + required Checkin checkin = 4; + message Checkin { + // empty Build on pre-checkin + required Build build = 1; + message Build { + // Build.FINGERPRINT + // eg. google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys + optional string fingerprint = 1; + + // Build.HARDWARE + // eg. flo + optional string hardware = 2; + + // Build.BRAND + // eg. google + optional string brand = 3; + + // Build.getRadioVersion() + optional string radio = 4; + + // Build.BOOTLOADER + // eg. FLO-04.04 + optional string bootloader = 5; + + // GoogleSettingsContract.Partner["client_id"] + // eg. android-google + optional string clientId = 6; + + // Build.TIME / 1000L + // eg. 1416533192 + optional int64 time = 7; + + // PackageInfo.versionCode + // eg. 6188736 + optional int32 packageVersionCode = 8; + + // Build.DEVICE + // eg. flo + optional string device = 9; + + // Build.VERSION.SDK_INT + // eg. 21 + optional int32 sdkVersion = 10; + + // Build.MODEL + // eg. Nexus 7 + optional string model = 11; + + // Build.MANUFACTURER + // eg. asus + optional string manufacturer = 12; + + // Build.PRODUCT + // eg. razor + optional string product = 13; + + // fileExists("/system/recovery-from-boot.p") + // eg. false + optional bool otaInstalled = 14; + } + + // last checkin ms or 0 if first checkin + // eg. 0 + optional int64 lastCheckinMs = 2; + + // eg. ("event_log_start",~,1424612602652) on first checkin + repeated Event event = 3; + message Event { + optional string tag = 1; + optional string value = 2; + optional int64 timeMs = 3; + } + + // unknown, n/a on first checkin + repeated Statistic stat = 4; + message Statistic { + required string tag = 1; + optional int32 count = 2; + optional float sum = 3; + } + + // unused + repeated string requestedGroup = 5; + + // TelephonyManager.getNetworkOperator != null|empty + optional string cellOperator = 6; + + // TelephonyManager.getSimOperator != null|empty + optional string simOperator = 7; + + // "WIFI::" | ("mobile" | "notmobile" | "unknown") + "-" + ("roaming" | "notroaming" | "unknown") + optional string roaming = 8; + + // UserHandle.myUserId + // eg. 0 + optional int32 userNumber = 9; + } + + // unused + optional string desiredBuild = 5; + + // Locale.toString + optional string locale = 6; + + // GoogleSettingsContract.Partner["logging_id2"] (choosen randomly on first checkin) + // eg. 12561488293572742346 + optional int64 loggingId = 7; + + // unused + optional string marketCheckin = 8; + + // NetworkInfo.getExtraInfo, WifiInfo.getMacAddress (12 hex-digits) + // eg. d850e6abcdef + repeated string macAddress = 9; + + // TelephonyManager.getDeviceId (14 hex-digits), not set on tablets + optional string meid = 10; + + // "[]" followed by "", empty string on first checkin + repeated string accountCookie = 11; + + // TimeZone.getId + // eg. GMT + optional string timeZone = 12; + + // security token as given on first checkin, not set on first checkin + optional fixed64 securityToken = 13; + + // use 3 + optional int32 version = 14; + + // SHA-1 of each in /system/etc/security/otacerts.zip or "--IOException--" or "--no-output--" + // eg. dKXTm1QH9QShGQwBM/4rg6/lCNQ= + repeated string otaCert = 15; + + // Build.SERIAL != "unknown" + // eg. 07d90b18 + optional string serial = 16; + + // TelephonyManager.getDeviceId (8 hex-digits), not set on tablets + optional string esn = 17; + + optional DeviceConfig deviceConfiguration = 18; + message DeviceConfig { + // ConfigurationInfo.reqTouchScreen + // eg. 3 + optional int32 touchScreen = 1; + + // ConfigurationInfo.reqKeyboardType + // eg. 1 + optional int32 keyboardType = 2; + + // ConfigurationInfo.reqNavigation + // eg. 1 + optional int32 navigation = 3; + // ConfigurationInfo.screenLayout + // eg. 3 + optional int32 screenLayout = 4; + + // ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD + // eg. 0 + optional bool hasHardKeyboard = 5; + + // ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV + // eg. 0 + optional bool hasFiveWayNavigation = 6; + + // DisplayMetrics.densityDpi + // eg. 320 + optional int32 densityDpi = 7; + + // ConfigurationInfo.reqGlEsVersion + // eg. 196608 + optional int32 glEsVersion = 8; + + // PackageManager.getSystemSharedLibraryNames + // eg. "android.test.runner", "com.android.future.usb.accessory", "com.android.location.provider", + // "com.android.media.remotedisplay", "com.android.mediadrm.signer", "com.google.android.maps", + // "com.google.android.media.effects", "com.google.widevine.software.drm", "javax.obex" + repeated string sharedLibrary = 9; + + // PackageManager.getSystemAvailableFeatures + // eg. android.hardware.[...] + repeated string availableFeature = 10; + + // Build.CPU_ABI and Build.CPU_ABI2 != "unknown" + // eg. "armeabi-v7a", "armeabi" + repeated string nativePlatform = 11; + + // DisplayMetrics.widthPixels + // eg. 1200 + optional int32 widthPixels = 12; + + // DisplayMetrics.heightPixels + // eg. 1824 + optional int32 heightPixels = 13; + + // Context.getAssets.getLocales + // eg. [...], "en-US", [...] + repeated string locale = 14; + + // GLES10.glGetString(GLES10.GL_EXTENSIONS) + // eg. "GL_AMD_compressed_ATC_texture", [...] + repeated string glExtension = 15; + + // unused + optional int32 deviceClass = 16; + // unused + optional int32 maxApkDownloadSizeMb = 17; + } + + // "ethernet" or "wifi" + repeated string macAddressType = 19; + + // unknown, use 0 on pre- and first-checkin, and 1 for later checkins + // also present on pre-checkin + required int32 fragment = 20; + + // unknown + optional string userName = 21; + + // UserManager.getUserSerialNumber + // eg. 0 + optional int32 userSerialNumber = 22; +} + +message CheckinResponse { + optional bool statsOk = 1; + repeated Intent intent = 2; + message Intent { + optional string action = 1; + optional string dataUri = 2; + optional string mimeType = 3; + optional string javaClass = 4; + repeated Extra extra = 5; + message Extra { + optional string name = 6; + optional string value = 7; + } + } + optional int64 timeMs = 3; + optional string digest = 4; + repeated GservicesSetting setting = 5; + message GservicesSetting { + optional bytes name = 1; + optional bytes value = 2; + } + optional bool marketOk = 6; + optional fixed64 androidId = 7; + optional fixed64 securityToken = 8; + optional bool settingsDiff = 9; + repeated string deleteSetting = 10; + optional string versionInfo = 11; + optional string deviceDataVersionInfo = 12; +} diff --git a/build/push/proto/mcs.proto b/build/push/proto/mcs.proto new file mode 100644 index 00000000..e9b048fd --- /dev/null +++ b/build/push/proto/mcs.proto @@ -0,0 +1,328 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// MCS protocol for communication between Chrome client and Mobile Connection +// Server . + +syntax = "proto2"; + +option optimize_for = LITE_RUNTIME; + +package mcs_proto; + +/* + Common fields/comments: + + stream_id: no longer sent by server, each side keeps a counter + last_stream_id_received: sent only if a packet was received since last time + a last_stream was sent + status: new bitmask including the 'idle' as bit 0. + + */ + +/** + TAG: 0 + */ +message HeartbeatPing { + optional int32 stream_id = 1; + optional int32 last_stream_id_received = 2; + optional int64 status = 3; +} + +/** + TAG: 1 + */ +message HeartbeatAck { + optional int32 stream_id = 1; + optional int32 last_stream_id_received = 2; + optional int64 status = 3; +} + +message ErrorInfo { + required int32 code = 1; + optional string message = 2; + optional string type = 3; + optional Extension extension = 4; +} + +// MobileSettings class. +// "u:f", "u:b", "u:s" - multi user devices reporting foreground, background +// and stopped users. +// hbping: heatbeat ping interval +// rmq2v: include explicit stream IDs + +message Setting { + required string name = 1; + required string value = 2; +} + +message HeartbeatStat { + required string ip = 1; + required bool timeout = 2; + required int32 interval_ms = 3; +} + +message HeartbeatConfig { + optional bool upload_stat = 1; + optional string ip = 2; + optional int32 interval_ms = 3; +} + +// ClientEvents are used to inform the server of failed and successful +// connections. +message ClientEvent { + enum Type { + UNKNOWN = 0; + // Count of discarded events if the buffer filled up and was trimmed. + DISCARDED_EVENTS = 1; + // Failed connection event: the connection failed to be established or we + // had a login error. + FAILED_CONNECTION = 2; + // Successful connection event: information about the last successful + // connection, including the time at which it was established. + SUCCESSFUL_CONNECTION = 3; + } + + // Common fields [1-99] + optional Type type = 1; + + // Fields for DISCARDED_EVENTS messages [100-199] + optional uint32 number_discarded_events = 100; + + // Fields for FAILED_CONNECTION and SUCCESSFUL_CONNECTION messages [200-299] + // Network type is a value in net::NetworkChangeNotifier::ConnectionType. + optional int32 network_type = 200; + // Reserved for network_port. + reserved 201; + optional uint64 time_connection_started_ms = 202; + optional uint64 time_connection_ended_ms = 203; + // Error code should be a net::Error value. + optional int32 error_code = 204; + + // Fields for SUCCESSFUL_CONNECTION messages [300-399] + optional uint64 time_connection_established_ms = 300; +} + +/** + TAG: 2 + */ +message LoginRequest { + enum AuthService { + ANDROID_ID = 2; + } + required string id = 1; // Must be present ( proto required ), may be empty + // string. + // mcs.android.com. + required string domain = 2; + // Decimal android ID + required string user = 3; + + required string resource = 4; + + // Secret + required string auth_token = 5; + + // Format is: android-HEX_DEVICE_ID + // The user is the decimal value. + optional string device_id = 6; + + // RMQ1 - no longer used + optional int64 last_rmq_id = 7; + + repeated Setting setting = 8; + //optional int32 compress = 9; + repeated string received_persistent_id = 10; + + // Replaced by "rmq2v" setting + // optional bool include_stream_ids = 11; + + optional bool adaptive_heartbeat = 12; + optional HeartbeatStat heartbeat_stat = 13; + // Must be true. + optional bool use_rmq2 = 14; + optional int64 account_id = 15; + + // ANDROID_ID = 2 + optional AuthService auth_service = 16; + + optional int32 network_type = 17; + optional int64 status = 18; + + // 19, 20, and 21 are not currently populated by Chrome. + reserved 19, 20, 21; + + // Events recorded on the client after the last successful connection. + repeated ClientEvent client_event = 22; +} + +/** + * TAG: 3 + */ +message LoginResponse { + required string id = 1; + // Not used. + optional string jid = 2; + // Null if login was ok. + optional ErrorInfo error = 3; + repeated Setting setting = 4; + optional int32 stream_id = 5; + // Should be "1" + optional int32 last_stream_id_received = 6; + optional HeartbeatConfig heartbeat_config = 7; + // used by the client to synchronize with the server timestamp. + optional int64 server_timestamp = 8; +} + +message StreamErrorStanza { + required string type = 1; + optional string text = 2; +} + +/** + * TAG: 4 + */ +message Close { +} + +message Extension { + // 12: SelectiveAck + // 13: StreamAck + required int32 id = 1; + required bytes data = 2; +} + +/** + * TAG: 7 + * IqRequest must contain a single extension. IqResponse may contain 0 or 1 + * extensions. + */ +message IqStanza { + enum IqType { + GET = 0; + SET = 1; + RESULT = 2; + IQ_ERROR = 3; + } + + optional int64 rmq_id = 1; + required IqType type = 2; + required string id = 3; + optional string from = 4; + optional string to = 5; + optional ErrorInfo error = 6; + + // Only field used in the 38+ protocol (besides common last_stream_id_received, status, rmq_id) + optional Extension extension = 7; + + optional string persistent_id = 8; + optional int32 stream_id = 9; + optional int32 last_stream_id_received = 10; + optional int64 account_id = 11; + optional int64 status = 12; +} + +message AppData { + required string key = 1; + required string value = 2; +} + +/** + * TAG: 8 + */ +message DataMessageStanza { + // Not used. + // optional int64 rmq_id = 1; + + // This is the message ID, set by client, DMP.9 (message_id) + optional string id = 2; + + // Project ID of the sender, DMP.1 + required string from = 3; + + // Part of DMRequest - also the key in DataMessageProto. + optional string to = 4; + + // Package name. DMP.2 + required string category = 5; + + // The collapsed key, DMP.3 + optional string token = 6; + + // User data + GOOGLE. prefixed special entries, DMP.4 + repeated AppData app_data = 7; + + // Not used. + optional bool from_trusted_server = 8; + + // Part of the ACK protocol, returned in DataMessageResponse on server side. + // It's part of the key of DMP. + optional string persistent_id = 9; + + // In-stream ack. Increments on each message sent - a bit redundant + // Not used in DMP/DMR. + optional int32 stream_id = 10; + optional int32 last_stream_id_received = 11; + + // Not used. + // optional string permission = 12; + + // Sent by the device shortly after registration. + optional string reg_id = 13; + + // Not used. + // optional string pkg_signature = 14; + // Not used. + // optional string client_id = 15; + + // serial number of the target user, DMP.8 + // It is the 'serial number' according to user manager. + optional int64 device_user_id = 16; + + // Time to live, in seconds. + optional int32 ttl = 17; + // Timestamp ( according to client ) when message was sent by app, in seconds + optional int64 sent = 18; + + // How long has the message been queued before the flush, in seconds. + // This is needed to account for the time difference between server and + // client: server should adjust 'sent' based on its 'receive' time. + optional int32 queued = 19; + + optional int64 status = 20; + + // Optional field containing the binary payload of the message. + optional bytes raw_data = 21; + + // Not used. + // The maximum delay of the message, in seconds. + // optional int32 max_delay = 22; + + // Not used. + // How long the message was delayed before it was sent, in seconds. + // optional int32 actual_delay = 23; + + // If set the server requests immediate ack. Used for important messages and + // for testing. + optional bool immediate_ack = 24; + + // Not used. + // Enables message receipts from MCS/GCM back to CCS clients + // optional bool delivery_receipt_requested = 25; +} + +/** + Included in IQ with ID 13, sent from client or server after 10 unconfirmed + messages. + */ +message StreamAck { + // No last_streamid_received required. This is included within an IqStanza, + // which includes the last_stream_id_received. +} + +/** + Included in IQ sent after LoginResponse from server with ID 12. +*/ +message SelectiveAck { + repeated string id = 1; +} diff --git a/build/push/service.d.ts b/build/push/service.d.ts new file mode 100644 index 00000000..a73e7c22 --- /dev/null +++ b/build/push/service.d.ts @@ -0,0 +1,46 @@ +import { TypedEmitter } from "tiny-typed-emitter"; +import { Credentials } from "./models"; +import { PushNotificationServiceEvents } from "./interfaces"; +export declare class PushNotificationService extends TypedEmitter { + private readonly APP_PACKAGE; + private readonly APP_ID; + private readonly APP_SENDER_ID; + private readonly APP_CERT_SHA1; + private readonly FCM_PROJECT_ID; + private readonly GOOGLE_API_KEY; + private readonly AUTH_VERSION; + private pushClient?; + private credentialsTimeout?; + private retryTimeout?; + private retryDelay; + private credentials; + private persistentIds; + private connected; + private connecting; + private got; + private constructor(); + private loadLibraries; + static initialize(): Promise; + private buildExpiresAt; + private registerFid; + private renewFidToken; + private createPushCredentials; + private renewPushCredentials; + private loginPushCredentials; + private executeCheckin; + private registerGcm; + private _normalizePushMessage; + private onMessage; + private getCurrentPushRetryDelay; + setCredentials(credentials: Credentials): void; + getCredentials(): Credentials | undefined; + setPersistentIds(persistentIds: string[]): void; + getPersistentIds(): string[]; + private _open; + open(): Promise; + close(): void; + private clearCredentialsTimeout; + private clearRetryTimeout; + private resetRetryTimeout; + isConnected(): boolean; +} diff --git a/build/push/service.js b/build/push/service.js new file mode 100644 index 00000000..bdad0f06 --- /dev/null +++ b/build/push/service.js @@ -0,0 +1,818 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PushNotificationService = void 0; +const qs = __importStar(require("qs")); +const tiny_typed_emitter_1 = require("tiny-typed-emitter"); +const utils_1 = require("./utils"); +const client_1 = require("./client"); +const device_1 = require("../http/device"); +const types_1 = require("../http/types"); +const utils_2 = require("../http/utils"); +const utils_3 = require("../utils"); +const error_1 = require("./error"); +const error_2 = require("../error"); +const logging_1 = require("../logging"); +const _1 = require("."); +const station_1 = require("../http/station"); +class PushNotificationService extends tiny_typed_emitter_1.TypedEmitter { + APP_PACKAGE = "com.oceanwing.battery.cam"; + APP_ID = "1:348804314802:android:440a6773b3620da7"; + APP_SENDER_ID = "348804314802"; + APP_CERT_SHA1 = "F051262F9F99B638F3C76DE349830638555B4A0A"; + FCM_PROJECT_ID = "batterycam-3250a"; + GOOGLE_API_KEY = "AIzaSyCSz1uxGrHXsEktm7O3_wv-uLGpC9BvXR8"; + AUTH_VERSION = "FIS_v2"; + pushClient; + credentialsTimeout; + retryTimeout; + retryDelay = 0; + credentials; + persistentIds = []; + connected = false; + connecting = false; + got; + constructor() { + super(); + } + async loadLibraries() { + const { default: got } = await import("got"); + this.got = got; + } + static async initialize() { + const service = new PushNotificationService(); + await service.loadLibraries(); + return service; + } + buildExpiresAt(expiresIn) { + if (expiresIn.endsWith("ms")) { + return new Date().getTime() + Number.parseInt(expiresIn.substring(0, expiresIn.length - 2)); + } + else if (expiresIn.endsWith("s")) { + return new Date().getTime() + Number.parseInt(expiresIn.substring(0, expiresIn.length - 1)) * 1000; + } + throw new error_1.UnknownExpiryFormaError("Unknown expiresIn-format", { context: { format: expiresIn } }); + } + async registerFid(fid) { + const url = `https://firebaseinstallations.googleapis.com/v1/projects/${this.FCM_PROJECT_ID}/installations`; + try { + const response = await this.got(url, { + method: "post", + json: { + fid: fid, + appId: `${this.APP_ID}`, + authVersion: `${this.AUTH_VERSION}`, + sdkVersion: "a:16.3.1", + }, + headers: { + "X-Android-Package": `${this.APP_PACKAGE}`, + "X-Android-Cert": `${this.APP_CERT_SHA1}`, + "x-goog-api-key": `${this.GOOGLE_API_KEY}`, + }, + responseType: "json", + http2: false, + throwHttpErrors: false, + retry: { + limit: 3, + methods: ["POST"] + }, + hooks: { + beforeError: [ + error => { + const { response, options } = error; + const statusCode = response?.statusCode || 0; + const { method, url, prefixUrl } = options; + const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); + const body = response?.body ? response.body : error.message; + if (response?.body) { + error.name = "RegisterFidError"; + error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; + } + return error; + } + ] + } + }); + if (response.statusCode == 200) { + const result = response.body; + return { + ...result, + authToken: { + ...result.authToken, + expiresAt: this.buildExpiresAt(result.authToken.expiresIn), + }, + }; + } + else { + logging_1.rootPushLogger.error("Register FID - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); + throw new error_1.FidRegistrationFailedError("FID registration failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Register FID - Generic Error", { error: (0, utils_3.getError)(error) }); + throw new error_1.FidRegistrationFailedError("FID registration failed", { cause: error, context: { fid: fid } }); + } + } + async renewFidToken(fid, refreshToken) { + const url = `https://firebaseinstallations.googleapis.com/v1/projects/${this.FCM_PROJECT_ID}/installations/${fid}/authTokens:generate`; + try { + const response = await this.got(url, { + method: "post", + json: { + installation: { + appId: `${this.APP_ID}`, + sdkVersion: "a:16.3.1", + } + }, + headers: { + "X-Android-Package": `${this.APP_PACKAGE}`, + "X-Android-Cert": `${this.APP_CERT_SHA1}`, + "x-goog-api-key": `${this.GOOGLE_API_KEY}`, + Authorization: `${this.AUTH_VERSION} ${refreshToken}` + }, + responseType: "json", + http2: false, + throwHttpErrors: false, + retry: { + limit: 3, + methods: ["POST"] + }, + hooks: { + beforeError: [ + error => { + const { response, options } = error; + const statusCode = response?.statusCode || 0; + const { method, url, prefixUrl } = options; + const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); + const body = response?.body ? response.body : error.message; + if (response?.body) { + error.name = "RenewFidTokenError"; + error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; + } + return error; + } + ] + } + }); + if (response.statusCode == 200) { + const result = response.body; + return { + ...result, + expiresAt: this.buildExpiresAt(result.expiresIn), + }; + } + else { + logging_1.rootPushLogger.error("Renew FID Token - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); + throw new error_1.RenewFidTokenFailedError("FID Token renewal failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Renew FID Token - Generic Error", { error: (0, utils_3.getError)(error) }); + throw new error_1.RenewFidTokenFailedError("FID Token renewal failed", { cause: error, context: { fid: fid, refreshToken: refreshToken } }); + } + } + async createPushCredentials() { + const generatedFid = (0, utils_1.generateFid)(); + return await this.registerFid(generatedFid) + .then(async (registerFidResponse) => { + const checkinResponse = await this.executeCheckin(); + return { + fidResponse: registerFidResponse, + checkinResponse: checkinResponse + }; + }) + .then(async (result) => { + const registerGcmResponse = await this.registerGcm(result.fidResponse, result.checkinResponse); + return { + ...result, + gcmResponse: registerGcmResponse, + }; + }).catch((err) => { + const error = (0, error_2.ensureError)(err); + throw error; + }); + } + async renewPushCredentials(credentials) { + return await this.renewFidToken(credentials.fidResponse.fid, credentials.fidResponse.refreshToken) + .then(async (response) => { + credentials.fidResponse.authToken = response; + return await this.executeCheckin(); + }) + .then(async (response) => { + const registerGcmResponse = await this.registerGcm(credentials.fidResponse, response); + return { + fidResponse: credentials.fidResponse, + checkinResponse: response, + gcmResponse: registerGcmResponse, + }; + }) + .catch(() => { + return this.createPushCredentials(); + }); + } + async loginPushCredentials(credentials) { + logging_1.rootPushLogger.info('fidresponse', credentials.fidResponse); + return await this.executeCheckin() + .then(async (response) => { + const registerGcmResponse = await this.registerGcm(credentials.fidResponse, response); + return { + fidResponse: credentials.fidResponse, + checkinResponse: response, + gcmResponse: registerGcmResponse, + }; + }) + .catch(() => { + return this.createPushCredentials(); + }); + } + async executeCheckin() { + const url = "https://android.clients.google.com/checkin"; + try { + const buffer = await (0, utils_1.buildCheckinRequest)(); + const response = await this.got(url, { + method: "post", + body: Buffer.from(buffer), + headers: { + "Content-Type": "application/x-protobuf", + }, + responseType: "buffer", + http2: false, + throwHttpErrors: false, + retry: { + limit: 3, + methods: ["POST"] + }, + hooks: { + beforeError: [ + error => { + const { response, options } = error; + const statusCode = response?.statusCode || 0; + const { method, url, prefixUrl } = options; + const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); + const body = response?.body ? response.body : error.message; + if (response?.body) { + error.name = "ExecuteCheckInError"; + error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; + } + return error; + } + ] + } + }); + if (response.statusCode == 200) { + return await (0, utils_1.parseCheckinResponse)(response.body); + } + else { + logging_1.rootPushLogger.error("Check in - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); + throw new error_1.ExecuteCheckInError("Google checkin failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); + } + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Check in - Generic Error", { error: (0, utils_3.getError)(error) }); + throw new error_1.ExecuteCheckInError("Google checkin failed", { cause: error }); + } + } + async registerGcm(fidInstallationResponse, checkinResponse) { + const url = "https://android.clients.google.com/c2dm/register3"; + const androidId = checkinResponse.androidId; + const fid = fidInstallationResponse.fid; + const securityToken = checkinResponse.securityToken; + const retry = 5; + try { + for (let retry_count = 1; retry_count <= retry; retry_count++) { + logging_1.rootPushLogger.debug(`Register GCM - Attempt ${retry_count} of ${retry}`, { androidId: androidId, fid: fid, securityToken: securityToken }); + const response = await this.got(url, { + method: "post", + body: qs.stringify({ + "X-subtype": `${this.APP_SENDER_ID}`, + sender: `${this.APP_SENDER_ID}`, + "X-app_ver": "741", + "X-osv": "25", + "X-cliv": "fiid-20.2.0", + "X-gmsv": "201216023", + "X-appid": `${fid}`, + "X-scope": "*", + "X-Goog-Firebase-Installations-Auth": `${fidInstallationResponse.authToken.token}`, + "X-gmp_app_id": `${this.APP_ID}`, + "X-Firebase-Client": "fire-abt/17.1.1+fire-installations/16.3.1+fire-android/+fire-analytics/17.4.2+fire-iid/20.2.0+fire-rc/17.0.0+fire-fcm/20.2.0+fire-cls/17.0.0+fire-cls-ndk/17.0.0+fire-core/19.3.0", + "X-firebase-app-name-hash": "R1dAH9Ui7M-ynoznwBdw01tLxhI", + "X-Firebase-Client-Log-Type": "1", + "X-app_ver_name": "v2.2.2_741", + app: `${this.APP_PACKAGE}`, + device: `${androidId}`, + app_ver: "741", + info: "g3EMJXXElLwaQEb1aBJ6XhxiHjPTUxc", + gcm_ver: "201216023", + plat: "0", + cert: `${this.APP_CERT_SHA1}`, + target_ver: "28", + }), + headers: { + Authorization: `AidLogin ${androidId}:${securityToken}`, + app: `${this.APP_PACKAGE}`, + gcm_ver: "201216023", + "User-Agent": "Android-GCM/1.5", + "content-type": "application/x-www-form-urlencoded", + }, + http2: false, + throwHttpErrors: false, + retry: { + limit: 3, + methods: ["POST"] + }, + hooks: { + beforeError: [ + error => { + const { response, options } = error; + const statusCode = response?.statusCode || 0; + const { method, url, prefixUrl } = options; + const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); + const body = response?.body ? response.body : error.message; + if (response?.body) { + error.name = "RegisterGcmError"; + error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; + } + return error; + } + ] + } + }); + if (response.statusCode == 200) { + const result = response.body.split("="); + if (result[0] == "Error") { + logging_1.rootPushLogger.debug("GCM register error, retry...", { retry: retry, retryCount: retry_count, response: response.body }); + if (retry_count == retry) + throw new error_1.RegisterGcmError("Max GCM registration retries reached", { context: { message: result[1], retry: retry, retryCount: retry_count } }); + } + else { + return { + token: result[1] + }; + } + } + else { + logging_1.rootPushLogger.error("Register GCM - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); + throw new error_1.RegisterGcmError("Google register to GCM failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); + } + await (0, utils_1.sleep)(10000 * retry_count); + } + throw new error_1.RegisterGcmError("Max GCM registration retries reached"); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Register GCM - Generic Error", { error: (0, utils_3.getError)(error) }); + throw new error_1.RegisterGcmError("Google register to GCM failed", { cause: error, context: { fidInstallationResponse: fidInstallationResponse, checkinResponse: checkinResponse } }); + } + } + _normalizePushMessage(message) { + const normalizedMessage = { + name: "", + event_time: 0, + type: -1, + station_sn: "", + device_sn: "" + }; + if (message.payload.payload) { + const payload = message.payload; + // CusPush + try { + normalizedMessage.type = Number.parseInt(payload.type); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - type - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + if (normalizedMessage.type in _1.ServerPushEvent) { + // server push notification + const serverPushData = payload.payload; + normalizedMessage.email = serverPushData.email; + normalizedMessage.person_name = serverPushData.nick_name; + normalizedMessage.verify_code = serverPushData.verify_code; + switch (normalizedMessage.type) { + case _1.ServerPushEvent.ALARM_NOTIFY: + case _1.ServerPushEvent.ALARM_GUEST_NOTIFY: + const alarmPushData = payload.payload; + normalizedMessage.device_sn = alarmPushData.device_sn; + normalizedMessage.station_sn = alarmPushData.station_sn; + normalizedMessage.alarm_status = alarmPushData.alarm_status; + normalizedMessage.alarm_action = alarmPushData.alarm_action_channel; + try { + normalizedMessage.alarm_type = Number.parseInt(alarmPushData.alarm_id); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - alarm_type - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + try { + normalizedMessage.event_time = alarmPushData.alert_time !== undefined ? (0, utils_1.convertTimestampMs)(alarmPushData.alert_time) : Number.parseInt(alarmPushData.alert_time); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - event_time - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + break; + } + } + else { + try { + normalizedMessage.event_time = payload.event_time !== undefined ? (0, utils_1.convertTimestampMs)(Number.parseInt(payload.event_time)) : Number.parseInt(payload.event_time); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPush - event_time - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + try { + normalizedMessage.push_time = payload.push_time !== undefined ? (0, utils_1.convertTimestampMs)(Number.parseInt(payload.push_time)) : Number.parseInt(payload.push_time); + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPush - push_time - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + normalizedMessage.station_sn = payload.station_sn; + normalizedMessage.title = payload.title; + normalizedMessage.content = payload.content; + if (normalizedMessage.type === types_1.DeviceType.FLOODLIGHT) + normalizedMessage.device_sn = payload.station_sn; + else + normalizedMessage.device_sn = payload.device_sn; + if ((0, utils_3.isEmpty)(normalizedMessage.device_sn) && !(0, utils_3.isEmpty)(normalizedMessage.station_sn)) { + normalizedMessage.device_sn = normalizedMessage.station_sn; + } + if (station_1.Station.isStationHomeBase3(normalizedMessage.type) || (normalizedMessage.station_sn.startsWith("T8030") && (device_1.Device.isCamera(normalizedMessage.type)))) { + const platformPushData = payload.payload; + normalizedMessage.name = platformPushData.name ? platformPushData.name : ""; + normalizedMessage.channel = platformPushData.channel !== undefined ? platformPushData.channel : 0; + normalizedMessage.cipher = platformPushData.cipher !== undefined ? platformPushData.cipher : 0; + normalizedMessage.event_session = platformPushData.session_id !== undefined ? platformPushData.session_id : ""; + normalizedMessage.event_type = platformPushData.a !== undefined ? platformPushData.a : platformPushData.event_type; + normalizedMessage.file_path = platformPushData.file_path !== undefined ? platformPushData.file_path : ""; + normalizedMessage.pic_url = platformPushData.pic_url !== undefined ? platformPushData.pic_url : ""; + normalizedMessage.push_count = platformPushData.push_count !== undefined ? platformPushData.push_count : 1; + normalizedMessage.notification_style = platformPushData.notification_style; + normalizedMessage.storage_type = platformPushData.storage_type !== undefined ? platformPushData.storage_type : 1; + normalizedMessage.msg_type = platformPushData.msg_type; + normalizedMessage.person_name = platformPushData.nick_name; + normalizedMessage.person_id = platformPushData.person_id; + normalizedMessage.tfcard_status = platformPushData.tfcard_status; + normalizedMessage.user_type = platformPushData.user; + normalizedMessage.user_name = platformPushData.user_name; + normalizedMessage.station_guard_mode = platformPushData.arming; + normalizedMessage.station_current_mode = platformPushData.mode; + normalizedMessage.alarm_delay = platformPushData.alarm_delay; + normalizedMessage.sound_alarm = platformPushData.alarm !== undefined ? platformPushData.alarm === 1 ? true : false : undefined; + } + else if (device_1.Device.isBatteryDoorbell(normalizedMessage.type) || device_1.Device.isWiredDoorbellDual(normalizedMessage.type)) { + const batteryDoorbellPushData = payload.payload; + normalizedMessage.name = batteryDoorbellPushData.name ? batteryDoorbellPushData.name : ""; + //Get family face names from Doorbell Dual "Family Recognition" event + if (batteryDoorbellPushData.objects !== undefined) { + normalizedMessage.person_name = batteryDoorbellPushData.objects.names !== undefined ? batteryDoorbellPushData.objects.names.join(",") : ""; + } + if (normalizedMessage.person_name === "") { + normalizedMessage.person_name = batteryDoorbellPushData.nick_name; + } + normalizedMessage.channel = batteryDoorbellPushData.channel !== undefined ? batteryDoorbellPushData.channel : 0; + normalizedMessage.cipher = batteryDoorbellPushData.cipher !== undefined ? batteryDoorbellPushData.cipher : 0; + normalizedMessage.event_session = batteryDoorbellPushData.session_id !== undefined ? batteryDoorbellPushData.session_id : ""; + normalizedMessage.event_type = batteryDoorbellPushData.event_type; + normalizedMessage.file_path = batteryDoorbellPushData.file_path !== undefined && batteryDoorbellPushData.file_path !== "" && batteryDoorbellPushData.channel !== undefined ? (0, utils_2.getAbsoluteFilePath)(normalizedMessage.type, batteryDoorbellPushData.channel, batteryDoorbellPushData.file_path) : ""; + normalizedMessage.pic_url = batteryDoorbellPushData.pic_url !== undefined ? batteryDoorbellPushData.pic_url : ""; + normalizedMessage.push_count = batteryDoorbellPushData.push_count !== undefined ? batteryDoorbellPushData.push_count : 1; + normalizedMessage.notification_style = batteryDoorbellPushData.notification_style; + } + else if (device_1.Device.isIndoorCamera(normalizedMessage.type) || + device_1.Device.isSoloCameras(normalizedMessage.type) || + device_1.Device.isWallLightCam(normalizedMessage.type) || + device_1.Device.isOutdoorPanAndTiltCamera(normalizedMessage.type) || + device_1.Device.isFloodLightT8420X(normalizedMessage.type, normalizedMessage.device_sn) || + (device_1.Device.isFloodLight(normalizedMessage.type) && normalizedMessage.type !== types_1.DeviceType.FLOODLIGHT)) { + const indoorPushData = payload.payload; + normalizedMessage.name = indoorPushData.name ? indoorPushData.name : ""; + normalizedMessage.channel = indoorPushData.channel; + normalizedMessage.cipher = indoorPushData.cipher; + normalizedMessage.event_session = indoorPushData.session_id; + normalizedMessage.event_type = indoorPushData.event_type; + //normalizedMessage.file_path = indoorPushData.file_path !== undefined && indoorPushData.file_path !== "" && indoorPushData.channel !== undefined ? getAbsoluteFilePath(normalizedMessage.type, indoorPushData.channel, indoorPushData.file_path) : ""; + normalizedMessage.file_path = indoorPushData.file_path; + normalizedMessage.pic_url = indoorPushData.pic_url !== undefined ? indoorPushData.pic_url : ""; + normalizedMessage.push_count = indoorPushData.push_count !== undefined ? indoorPushData.push_count : 1; + normalizedMessage.notification_style = indoorPushData.notification_style; + normalizedMessage.msg_type = indoorPushData.msg_type; + normalizedMessage.timeout = indoorPushData.timeout; + normalizedMessage.tfcard_status = indoorPushData.tfcard_status; + normalizedMessage.storage_type = indoorPushData.storage_type !== undefined ? indoorPushData.storage_type : 1; + normalizedMessage.unique_id = indoorPushData.unique_id; + } + else if (device_1.Device.isSmartSafe(normalizedMessage.type)) { + const smartSafePushData = payload.payload; + normalizedMessage.event_type = smartSafePushData.event_type; + normalizedMessage.event_value = smartSafePushData.event_value; + /* + event_value: { + type: 3, 3/4 + action: 1, + figure_id: 0, + user_id: 0 + } + */ + normalizedMessage.name = smartSafePushData.dev_name !== undefined ? smartSafePushData.dev_name : ""; + /*normalizedMessage.short_user_id = smartSafePushData.short_user_id !== undefined ? smartSafePushData.short_user_id : ""; + normalizedMessage.user_id = smartSafePushData.user_id !== undefined ? smartSafePushData.user_id : "";*/ + } + else if (device_1.Device.isLock(normalizedMessage.type) && !device_1.Device.isLockWifiVideo(normalizedMessage.type)) { + const lockPushData = payload.payload; + normalizedMessage.event_type = lockPushData.event_type; + normalizedMessage.short_user_id = lockPushData.short_user_id !== undefined ? lockPushData.short_user_id : ""; + normalizedMessage.user_id = lockPushData.user_id !== undefined ? lockPushData.user_id : ""; + normalizedMessage.name = lockPushData.device_name !== undefined ? lockPushData.device_name : ""; + normalizedMessage.person_name = lockPushData.nick_name !== undefined ? lockPushData.nick_name : ""; + } + else if (device_1.Device.isGarageCamera(normalizedMessage.type)) { + const garageDoorPushData = payload.payload; + normalizedMessage.event_type = garageDoorPushData.event_type; + normalizedMessage.user_name = garageDoorPushData.user_name !== undefined ? garageDoorPushData.user_name : ""; + normalizedMessage.door_id = garageDoorPushData.door_id !== undefined ? garageDoorPushData.door_id : -1; + normalizedMessage.name = garageDoorPushData.door_name !== undefined ? garageDoorPushData.door_name : ""; + normalizedMessage.pic_url = garageDoorPushData.pic_url !== undefined ? garageDoorPushData.pic_url : ""; + normalizedMessage.file_path = garageDoorPushData.file_path !== undefined ? garageDoorPushData.file_path : ""; + normalizedMessage.storage_type = garageDoorPushData.storage_type !== undefined ? garageDoorPushData.storage_type : 1; + normalizedMessage.power = garageDoorPushData.power !== undefined ? garageDoorPushData.power : undefined; + } + else { + const cusPushData = payload.payload; + normalizedMessage.name = cusPushData.device_name && cusPushData.device_name !== null && cusPushData.device_name !== "" ? cusPushData.device_name : cusPushData.n ? cusPushData.n : cusPushData.name ? cusPushData.name : ""; + normalizedMessage.channel = cusPushData.c ? cusPushData.c : cusPushData.channel; + normalizedMessage.cipher = cusPushData.k ? cusPushData.k : cusPushData.cipher; + normalizedMessage.event_session = cusPushData.session_id; + normalizedMessage.event_type = cusPushData.a ? cusPushData.a : cusPushData.event_type; + normalizedMessage.file_path = cusPushData.c !== undefined && cusPushData.p !== undefined && cusPushData.p !== "" ? (0, utils_2.getAbsoluteFilePath)(normalizedMessage.type, cusPushData.c, cusPushData.p) : cusPushData.file_path ? cusPushData.file_path : ""; + normalizedMessage.pic_url = cusPushData.pic_url !== undefined ? cusPushData.pic_url : ""; + normalizedMessage.push_count = cusPushData.push_count !== undefined ? cusPushData.push_count : 1; + normalizedMessage.notification_style = cusPushData.notification_style; + normalizedMessage.tfcard_status = cusPushData.tfcard; + normalizedMessage.alarm_delay_type = cusPushData.alarm_type; + normalizedMessage.alarm_delay = cusPushData.alarm_delay; + normalizedMessage.alarm_type = cusPushData.type; + normalizedMessage.sound_alarm = cusPushData.alarm !== undefined ? cusPushData.alarm === 1 ? true : false : undefined; + normalizedMessage.user_name = cusPushData.user_name; + normalizedMessage.user_type = cusPushData.user; + normalizedMessage.user_id = cusPushData.user_id; + normalizedMessage.short_user_id = cusPushData.short_user_id; + normalizedMessage.station_guard_mode = cusPushData.arming; + normalizedMessage.station_current_mode = cusPushData.mode; + normalizedMessage.person_name = cusPushData.f && cusPushData.f !== "" ? cusPushData.f : cusPushData.nick_name && cusPushData.nick_name ? cusPushData.nick_name : ""; + normalizedMessage.sensor_open = cusPushData.e !== undefined ? cusPushData.e == "1" ? true : false : undefined; + normalizedMessage.device_online = cusPushData.m !== undefined ? cusPushData.m === 1 ? true : false : undefined; + try { + normalizedMessage.fetch_id = cusPushData.i !== undefined ? Number.parseInt(cusPushData.i) : undefined; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - fetch_id - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + normalizedMessage.sense_id = cusPushData.j; + normalizedMessage.battery_powered = cusPushData.batt_powered !== undefined ? cusPushData.batt_powered === 1 ? true : false : undefined; + try { + normalizedMessage.battery_low = cusPushData.bat_low !== undefined ? Number.parseInt(cusPushData.bat_low) : undefined; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - battery_low - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + normalizedMessage.storage_type = cusPushData.storage_type !== undefined ? cusPushData.storage_type : 1; + normalizedMessage.unique_id = cusPushData.unique_id; + normalizedMessage.automation_id = cusPushData.automation_id; + normalizedMessage.click_action = cusPushData.click_action; + normalizedMessage.news_id = cusPushData.news_id; + normalizedMessage.msg_type = cusPushData.msg_type; + if (device_1.Device.isStarlight4GLTE(normalizedMessage.type)) { + if (cusPushData.channel && cusPushData.channel !== null && cusPushData.channel !== undefined) { + normalizedMessage.channel = cusPushData.channel; + } + if (cusPushData.cipher && cusPushData.cipher !== null && cusPushData.cipher !== undefined) { + normalizedMessage.cipher = cusPushData.cipher; + } + if (cusPushData.event_type && cusPushData.event_type !== null && cusPushData.event_type !== undefined) { + normalizedMessage.event_type = cusPushData.event_type; + } + if (cusPushData.file_path && cusPushData.file_path !== null && cusPushData.file_path !== undefined) { + normalizedMessage.file_path = cusPushData.file_path; + } + normalizedMessage.msg_type = cusPushData.msg_type; + } + else if (device_1.Device.isSmartDrop(normalizedMessage.type)) { + try { + normalizedMessage.open = cusPushData.e !== undefined ? Number.parseInt(cusPushData.e) : 0; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - open - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + try { + normalizedMessage.openType = cusPushData.r !== undefined ? Number.parseInt(cusPushData.r) : 0; + } + catch (err) { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - openType - Error`, { error: (0, utils_3.getError)(error), message: message }); + } + normalizedMessage.person_name = cusPushData.p; + normalizedMessage.pin = cusPushData.u; + normalizedMessage.channel = cusPushData.channel !== undefined ? cusPushData.channel : 0; + normalizedMessage.cipher = cusPushData.cipher !== undefined ? cusPushData.cipher : 0; + normalizedMessage.event_session = cusPushData.session_id !== undefined ? cusPushData.session_id : ""; + normalizedMessage.file_path = cusPushData.file_path !== undefined ? cusPushData.file_path : ""; + } + } + } + } + else if (message.payload.doorbell !== undefined) { + const doorbellPushData = (0, utils_3.parseJSON)(message.payload.doorbell, logging_1.rootPushLogger); + if (doorbellPushData !== undefined) { + normalizedMessage.name = "Doorbell"; + normalizedMessage.type = 5; + normalizedMessage.event_time = doorbellPushData.create_time !== undefined ? (0, utils_1.convertTimestampMs)(doorbellPushData.create_time) : doorbellPushData.create_time; + normalizedMessage.station_sn = doorbellPushData.device_sn; + normalizedMessage.device_sn = doorbellPushData.device_sn; + normalizedMessage.title = doorbellPushData.title; + normalizedMessage.content = doorbellPushData.content; + normalizedMessage.push_time = doorbellPushData.event_time !== undefined ? (0, utils_1.convertTimestampMs)(doorbellPushData.event_time) : doorbellPushData.event_time; + normalizedMessage.channel = doorbellPushData.channel; + normalizedMessage.cipher = doorbellPushData.cipher; + normalizedMessage.event_session = doorbellPushData.event_session; + normalizedMessage.event_type = doorbellPushData.event_type; + normalizedMessage.file_path = doorbellPushData.file_path; + normalizedMessage.pic_url = doorbellPushData.pic_url; + normalizedMessage.push_count = doorbellPushData.push_count !== undefined ? doorbellPushData.push_count : 1; + normalizedMessage.doorbell_url = doorbellPushData.url; + normalizedMessage.doorbell_url_ex = doorbellPushData.url_ex; + normalizedMessage.doorbell_video_url = doorbellPushData.video_url; + } + } + return normalizedMessage; + } + onMessage(message) { + logging_1.rootPushLogger.debug("Raw push message received", { message: message }); + this.emit("raw message", message); + const normalizedMessage = this._normalizePushMessage(message); + logging_1.rootPushLogger.debug("Normalized push message received", { message: normalizedMessage }); + this.emit("message", normalizedMessage); + } + getCurrentPushRetryDelay() { + const delay = this.retryDelay == 0 ? 5000 : this.retryDelay; + if (this.retryDelay < 60000) + this.retryDelay += 10000; + if (this.retryDelay >= 60000 && this.retryDelay < 600000) + this.retryDelay += 60000; + return delay; + } + setCredentials(credentials) { + this.credentials = credentials; + } + getCredentials() { + return this.credentials; + } + setPersistentIds(persistentIds) { + this.persistentIds = persistentIds; + } + getPersistentIds() { + return this.persistentIds; + } + async _open(renew = false, forceNew = false) { + if (forceNew || !this.credentials || Object.keys(this.credentials).length === 0 || (this.credentials && this.credentials.fidResponse && new Date().getTime() >= this.credentials.fidResponse.authToken.expiresAt)) { + logging_1.rootPushLogger.debug(`Create new push credentials...`, { credentials: this.credentials, renew: renew }); + this.credentials = await this.createPushCredentials().catch(err => { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Create push credentials Error", { error: (0, utils_3.getError)(error), credentials: this.credentials, renew: renew }); + return undefined; + }); + } + else if (this.credentials && renew) { + logging_1.rootPushLogger.debug(`Renew push credentials...`, { credentials: this.credentials, renew: renew }); + this.credentials = await this.renewPushCredentials(this.credentials).catch(err => { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Push credentials renew Error", { error: (0, utils_3.getError)(error), credentials: this.credentials, renew: renew }); + return undefined; + }); + } + else { + logging_1.rootPushLogger.debug(`Login with previous push credentials...`, { credentials: this.credentials }); + this.credentials = await this.loginPushCredentials(this.credentials).catch(err => { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error("Push credentials login Error", { error: (0, utils_3.getError)(error), credentials: this.credentials, renew: renew }); + return undefined; + }); + } + if (this.credentials) { + this.emit("credential", this.credentials); + logging_1.rootPushLogger.debug("Push notification token received", { token: this.credentials.gcmResponse.token, credentials: this.credentials }); + this.clearCredentialsTimeout(); + this.credentialsTimeout = setTimeout(async () => { + logging_1.rootPushLogger.info("Push notification token is expiring, renew it."); + await this._open(true); + }, this.credentials.fidResponse.authToken.expiresAt - new Date().getTime() - 60000); + if (this.pushClient) { + this.pushClient.removeAllListeners(); + } + logging_1.rootPushLogger.debug('Init PushClient with credentials', { credentials: this.credentials }); + this.pushClient = await client_1.PushClient.init({ + androidId: this.credentials.checkinResponse.androidId, + securityToken: this.credentials.checkinResponse.securityToken, + }); + if (this.persistentIds) + this.pushClient.setPersistentIds(this.persistentIds); + const token = this.credentials.gcmResponse.token; + this.pushClient.on("connect", () => { + this.emit("connect", token); + this.connected = true; + this.connecting = false; + }); + this.pushClient.on("close", () => { + this.emit("close"); + this.connected = false; + this.connecting = false; + }); + this.pushClient.on("message", (msg) => this.onMessage(msg)); + this.pushClient.connect(); + } + else { + this.emit("close"); + this.connected = false; + this.connecting = false; + logging_1.rootPushLogger.error("Push notifications are disabled, because the registration failed!", { credentials: this.credentials, renew: renew }); + } + } + async open() { + if (!this.connecting && !this.connected) { + this.connecting = true; + await this._open(false, true).catch((err) => { + const error = (0, error_2.ensureError)(err); + logging_1.rootPushLogger.error(`Got exception trying to initialize push notifications`, { error: (0, utils_3.getError)(error), credentials: this.credentials }); + }); + if (!this.credentials) { + this.clearRetryTimeout(); + const delay = this.getCurrentPushRetryDelay(); + logging_1.rootPushLogger.info(`Retry to register/login for push notification in ${delay / 1000} seconds...`); + this.retryTimeout = setTimeout(async () => { + logging_1.rootPushLogger.info(`Retry to register/login for push notification`); + await this.open(); + }, delay); + } + else { + this.resetRetryTimeout(); + this.emit("credential", this.credentials); + } + } + return this.credentials; + } + close() { + this.resetRetryTimeout(); + this.clearCredentialsTimeout(); + this.pushClient?.close(); + } + clearCredentialsTimeout() { + if (this.credentialsTimeout) { + clearTimeout(this.credentialsTimeout); + this.credentialsTimeout = undefined; + } + } + clearRetryTimeout() { + if (this.retryTimeout) { + clearTimeout(this.retryTimeout); + this.retryTimeout = undefined; + } + } + resetRetryTimeout() { + this.clearRetryTimeout(); + this.retryDelay = 0; + } + isConnected() { + return this.connected; + } +} +exports.PushNotificationService = PushNotificationService; +//# sourceMappingURL=service.js.map \ No newline at end of file diff --git a/build/push/service.js.map b/build/push/service.js.map new file mode 100644 index 00000000..ef0fada9 --- /dev/null +++ b/build/push/service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/push/service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/types.d.ts b/build/push/types.d.ts new file mode 100644 index 00000000..b905d2b0 --- /dev/null +++ b/build/push/types.d.ts @@ -0,0 +1,218 @@ +export declare enum CusPushEvent { + SECURITY = 1, + TFCARD = 2, + DOOR_SENSOR = 3, + CAM_STATE = 4, + GSENSOR = 5, + BATTERY_LOW = 6, + BATTERY_HOT = 7, + LIGHT_STATE = 8, + MODE_SWITCH = 9, + ALARM = 10, + BATTERY_FULL = 11, + REPEATER_RSSI_WEAK = 12, + UPGRADE_STATUS = 13, + MOTION_SENSOR_PIR = 14, + ALARM_DELAY = 16, + HUB_BATT_POWERED = 17, + SENSOR_NO_OPEN = 18, + SMART_DROP = 20 +} +export declare enum CusPushAlarmType { + HUB_STOP = 0, + DEV_STOP = 1, + GSENSOR = 2, + PIR = 3, + APP = 4, + HOT = 5, + DOOR = 6, + CAMERA = 7, + MOTION_SENSOR = 8, + CAMERA_GSENSOR = 9, + CAMERA_APP = 10, + CAMERA_LINKAGE = 11, + HUB_LINKAGE = 12, + HUB_KEYPAD_PANIC_BUTTON = 13, + HUB_KEYPAD_EMERGENCY_CODE = 14, + HUB_STOP_BY_KEYPAD = 15, + HUB_STOP_BY_APP = 16, + HUB_STOP_BY_HUB = 17, + HUB_KEYPAD_CUSTOM_NOT_MAP = 18 +} +export declare enum CusPushMode { + SWITCH_FROM_KEYPAD = 1, + SWITCH_FROM_APP = 2, + SWITCH = 9 +} +export declare enum ServerPushEvent { + INVITE_DEVICE = 10300, + REMOVE_DEVICE = 10200, + REMOVE_HOMEBASE = 10100, + VERIFICATION = 10500, + WEB_ACTION = 10800, + ALARM_NOTIFY = 10900, + ALARM_GUEST_NOTIFY = 11000, + HOUSE_ADDED = 11400, + HOUSE_INVITE = 11300, + HOUSE_REMOVE = 11200 +} +export declare enum DoorbellPushEvent { + BACKGROUND_ACTIVE = 3100, + MOTION_DETECTION = 3101, + FACE_DETECTION = 3102, + PRESS_DOORBELL = 3103, + PET_DETECTION = 3106, + VEHICLE_DETECTION = 3107, + PACKAGE_DELIVERED = 3301, + PACKAGE_TAKEN = 3302, + FAMILY_DETECTION = 3303, + PACKAGE_STRANDED = 3304, + SOMEONE_LOITERING = 3305, + RADAR_MOTION_DETECTION = 3306, + AWAY_FROM_HOME = 3307, + RADAR_DETECTION = 3308 +} +export declare enum LockPushEvent { + MANUAL_UNLOCK = 257, + AUTO_UNLOCK = 258, + PW_UNLOCK = 259, + FINGERPRINT_UNLOCK = 260, + APP_UNLOCK = 261, + MANUAL_LOCK = 262, + KEYPAD_LOCK = 263, + APP_LOCK = 264, + AUTO_LOCK = 265, + PW_LOCK = 266, + FINGER_LOCK = 267, + TEMPORARY_PW_LOCK = 268, + TEMPORARY_PW_UNLOCK = 269, + LOW_POWER = 513, + VERY_LOW_POWER = 514, + MULTIPLE_ERRORS = 515, + LOCK_OFFLINE = 516, + MECHANICAL_ANOMALY = 517, + VIOLENT_DESTRUCTION = 518, + LOCK_MECHANICAL_ANOMALY = 519, + DOOR_OPEN_LEFT = 520, + DOOR_TAMPER = 521, + DOOR_STATE_ERROR = 522, + STATUS_CHANGE = 769, + OTA_STATUS = 770, + LOCK_ONLINE = 771 +} +export declare enum IndoorPushEvent { + MOTION_DETECTION = 3101, + FACE_DETECTION = 3102, + CRYING_DETECTION = 3104, + SOUND_DETECTION = 3105, + PET_DETECTION = 3106, + VEHICLE_DETECTION = 3107 +} +export declare enum GarageDoorPushEvent { + CLOSED_DOOR_BY_APP = 1, + OPEN_DOOR_BY_APP = 2, + CLOSED_DOOR_WITHOUT_APP = 3, + OPEN_DOOR_WITHOUT_APP = 4, + TIMEOUT_DOOR_OPEN_WARNING = 5, + TIMEOUT_CLOSED_DOOR = 6, + TIMEOUT_DOOR_OPEN_WARNING_MINUTES = 7, + LOW_BATTERY = 8 +} +export declare enum SmartSafeEvent { + ALARM_911 = 1946161152, + LOCK_STATUS = 1946161153, + SHAKE_ALARM = 1946161154, + BATTERY_STATUS = 1946161155, + LONG_TIME_NOT_CLOSE = 1946161156, + FORCE_FIGURE = 1946161157, + LOW_POWER = 1946161158, + INPUT_ERR_MAX = 1946161159, + SHUTDOWN = 1946161160 +} +export declare enum HB3PairedDevicePushEvent { + MOTION_DETECTION = 3101, + FACE_DETECTION = 3102, + PRESS_DOORBELL = 3103, + CRYING_DETECTION = 3104, + SOUND_DETECTION = 3105, + PET_DETECTION = 3106, + VEHICLE_DETECTION = 3107, + DOG_DETECTION = 3108, + DOG_LICK_DETECTION = 3109, + DOG_POOP_DETECTION = 3110, + IDENTITY_PERSON_DETECTION = 3111, + STRANGER_PERSON_DETECTION = 3112 +} +export declare enum HB3PairedDeviceMessageType { + SECURITY_EVT = 1, + TFCARD_EVT = 2, + DOOR_SENSOR_EVT = 3, + CAM_STATE_EVT = 4, + GSENSOR_EVT = 5, + BATTERY_LOW_EVT = 6, + BATTERY_HOT_EVT = 7, + LIGHT_STATE_EVT = 8, + ARMING_EVT = 9, + ALARM_EVT = 10, + BATTERY_FULL_EVT = 11, + REPEATER_RSSI_WEAK_EVT = 12, + UPGRADE_STATUS = 13, + MOTION_SENSOR_EVT = 14, + BAT_DOORBELL_EVT = 15, + ALARM_DELAY_EVT = 16, + HUB_BATT_POWERED_EVT = 17, + INDOOR_EVT = 18, + SMARTLOCK_EVT = 19, + LOCK_EVT = 20, + BBM_SOCK_EVT = 21, + DOOR_STATUS_EVT = 22, + HHD_EVT = 23 +} +export declare enum HB3HDDType { + NODISK = 0, + READY = 1, + PROCESSING = 2, + NO_PARTED = 3, + NO_ANKER_DISK = 4, + NOT_FORMAT = 5, + OTHER_USER_DISK = 6, + BAD = 7, + WAIT_NETWOR = 8, + PARTED_DONE = 9, + FULL = 32 +} +export declare enum IndoorPushMessageType { + INDOOR = 18, + TFCARD = 2 +} +export declare enum NotificationStyle { + TEXT = 1, + THUMB = 2, + ALL = 3 +} +export declare enum AlarmAction { + CANCEL_APP = 0, + CANCEL_NOLIGHT = 1 +} +export declare enum SmartDropPushEvent { + LOW_BATTERY = 6, + OVERHEATING_WARNING = 7, + TAMPERED_WARNING = 10, + BATTERY_FULLY_CHARGED = 11, + PERSON_DETECTED = 3102 +} +export declare enum SmartDropOpen { + OPEN = 1, + CLOSED = 2, + LID_STUCK = 3, + PIN_INCORRECT = 4, + LEFT_OPENED = 10, + LOW_TEMPERATURE_WARNING = 11 +} +export declare enum SmartDropOpenedBy { + APP = 1, + PIN = 2, + WITHOUT_KEY = 3, + EMERGENCY_RELEASE_BUTTON = 4, + KEY = 5 +} diff --git a/build/push/types.js b/build/push/types.js new file mode 100644 index 00000000..025d5d24 --- /dev/null +++ b/build/push/types.js @@ -0,0 +1,242 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SmartDropOpenedBy = exports.SmartDropOpen = exports.SmartDropPushEvent = exports.AlarmAction = exports.NotificationStyle = exports.IndoorPushMessageType = exports.HB3HDDType = exports.HB3PairedDeviceMessageType = exports.HB3PairedDevicePushEvent = exports.SmartSafeEvent = exports.GarageDoorPushEvent = exports.IndoorPushEvent = exports.LockPushEvent = exports.DoorbellPushEvent = exports.ServerPushEvent = exports.CusPushMode = exports.CusPushAlarmType = exports.CusPushEvent = void 0; +var CusPushEvent; +(function (CusPushEvent) { + CusPushEvent[CusPushEvent["SECURITY"] = 1] = "SECURITY"; + CusPushEvent[CusPushEvent["TFCARD"] = 2] = "TFCARD"; + CusPushEvent[CusPushEvent["DOOR_SENSOR"] = 3] = "DOOR_SENSOR"; + CusPushEvent[CusPushEvent["CAM_STATE"] = 4] = "CAM_STATE"; + CusPushEvent[CusPushEvent["GSENSOR"] = 5] = "GSENSOR"; + CusPushEvent[CusPushEvent["BATTERY_LOW"] = 6] = "BATTERY_LOW"; + CusPushEvent[CusPushEvent["BATTERY_HOT"] = 7] = "BATTERY_HOT"; + CusPushEvent[CusPushEvent["LIGHT_STATE"] = 8] = "LIGHT_STATE"; + CusPushEvent[CusPushEvent["MODE_SWITCH"] = 9] = "MODE_SWITCH"; + CusPushEvent[CusPushEvent["ALARM"] = 10] = "ALARM"; + CusPushEvent[CusPushEvent["BATTERY_FULL"] = 11] = "BATTERY_FULL"; + CusPushEvent[CusPushEvent["REPEATER_RSSI_WEAK"] = 12] = "REPEATER_RSSI_WEAK"; + CusPushEvent[CusPushEvent["UPGRADE_STATUS"] = 13] = "UPGRADE_STATUS"; + CusPushEvent[CusPushEvent["MOTION_SENSOR_PIR"] = 14] = "MOTION_SENSOR_PIR"; + CusPushEvent[CusPushEvent["ALARM_DELAY"] = 16] = "ALARM_DELAY"; + CusPushEvent[CusPushEvent["HUB_BATT_POWERED"] = 17] = "HUB_BATT_POWERED"; + CusPushEvent[CusPushEvent["SENSOR_NO_OPEN"] = 18] = "SENSOR_NO_OPEN"; + CusPushEvent[CusPushEvent["SMART_DROP"] = 20] = "SMART_DROP"; +})(CusPushEvent || (exports.CusPushEvent = CusPushEvent = {})); +var CusPushAlarmType; +(function (CusPushAlarmType) { + CusPushAlarmType[CusPushAlarmType["HUB_STOP"] = 0] = "HUB_STOP"; + CusPushAlarmType[CusPushAlarmType["DEV_STOP"] = 1] = "DEV_STOP"; + CusPushAlarmType[CusPushAlarmType["GSENSOR"] = 2] = "GSENSOR"; + CusPushAlarmType[CusPushAlarmType["PIR"] = 3] = "PIR"; + CusPushAlarmType[CusPushAlarmType["APP"] = 4] = "APP"; + CusPushAlarmType[CusPushAlarmType["HOT"] = 5] = "HOT"; + CusPushAlarmType[CusPushAlarmType["DOOR"] = 6] = "DOOR"; + CusPushAlarmType[CusPushAlarmType["CAMERA"] = 7] = "CAMERA"; + CusPushAlarmType[CusPushAlarmType["MOTION_SENSOR"] = 8] = "MOTION_SENSOR"; + CusPushAlarmType[CusPushAlarmType["CAMERA_GSENSOR"] = 9] = "CAMERA_GSENSOR"; + CusPushAlarmType[CusPushAlarmType["CAMERA_APP"] = 10] = "CAMERA_APP"; + CusPushAlarmType[CusPushAlarmType["CAMERA_LINKAGE"] = 11] = "CAMERA_LINKAGE"; + CusPushAlarmType[CusPushAlarmType["HUB_LINKAGE"] = 12] = "HUB_LINKAGE"; + CusPushAlarmType[CusPushAlarmType["HUB_KEYPAD_PANIC_BUTTON"] = 13] = "HUB_KEYPAD_PANIC_BUTTON"; + CusPushAlarmType[CusPushAlarmType["HUB_KEYPAD_EMERGENCY_CODE"] = 14] = "HUB_KEYPAD_EMERGENCY_CODE"; + CusPushAlarmType[CusPushAlarmType["HUB_STOP_BY_KEYPAD"] = 15] = "HUB_STOP_BY_KEYPAD"; + CusPushAlarmType[CusPushAlarmType["HUB_STOP_BY_APP"] = 16] = "HUB_STOP_BY_APP"; + CusPushAlarmType[CusPushAlarmType["HUB_STOP_BY_HUB"] = 17] = "HUB_STOP_BY_HUB"; + CusPushAlarmType[CusPushAlarmType["HUB_KEYPAD_CUSTOM_NOT_MAP"] = 18] = "HUB_KEYPAD_CUSTOM_NOT_MAP"; +})(CusPushAlarmType || (exports.CusPushAlarmType = CusPushAlarmType = {})); +var CusPushMode; +(function (CusPushMode) { + CusPushMode[CusPushMode["SWITCH_FROM_KEYPAD"] = 1] = "SWITCH_FROM_KEYPAD"; + CusPushMode[CusPushMode["SWITCH_FROM_APP"] = 2] = "SWITCH_FROM_APP"; + CusPushMode[CusPushMode["SWITCH"] = 9] = "SWITCH"; +})(CusPushMode || (exports.CusPushMode = CusPushMode = {})); +var ServerPushEvent; +(function (ServerPushEvent) { + ServerPushEvent[ServerPushEvent["INVITE_DEVICE"] = 10300] = "INVITE_DEVICE"; + ServerPushEvent[ServerPushEvent["REMOVE_DEVICE"] = 10200] = "REMOVE_DEVICE"; + ServerPushEvent[ServerPushEvent["REMOVE_HOMEBASE"] = 10100] = "REMOVE_HOMEBASE"; + ServerPushEvent[ServerPushEvent["VERIFICATION"] = 10500] = "VERIFICATION"; + ServerPushEvent[ServerPushEvent["WEB_ACTION"] = 10800] = "WEB_ACTION"; + ServerPushEvent[ServerPushEvent["ALARM_NOTIFY"] = 10900] = "ALARM_NOTIFY"; + ServerPushEvent[ServerPushEvent["ALARM_GUEST_NOTIFY"] = 11000] = "ALARM_GUEST_NOTIFY"; + ServerPushEvent[ServerPushEvent["HOUSE_ADDED"] = 11400] = "HOUSE_ADDED"; + ServerPushEvent[ServerPushEvent["HOUSE_INVITE"] = 11300] = "HOUSE_INVITE"; + ServerPushEvent[ServerPushEvent["HOUSE_REMOVE"] = 11200] = "HOUSE_REMOVE"; +})(ServerPushEvent || (exports.ServerPushEvent = ServerPushEvent = {})); +var DoorbellPushEvent; +(function (DoorbellPushEvent) { + DoorbellPushEvent[DoorbellPushEvent["BACKGROUND_ACTIVE"] = 3100] = "BACKGROUND_ACTIVE"; + DoorbellPushEvent[DoorbellPushEvent["MOTION_DETECTION"] = 3101] = "MOTION_DETECTION"; + DoorbellPushEvent[DoorbellPushEvent["FACE_DETECTION"] = 3102] = "FACE_DETECTION"; + DoorbellPushEvent[DoorbellPushEvent["PRESS_DOORBELL"] = 3103] = "PRESS_DOORBELL"; + //OFFLINE = 3106, + DoorbellPushEvent[DoorbellPushEvent["PET_DETECTION"] = 3106] = "PET_DETECTION"; + //ONLINE = 3107, + DoorbellPushEvent[DoorbellPushEvent["VEHICLE_DETECTION"] = 3107] = "VEHICLE_DETECTION"; + DoorbellPushEvent[DoorbellPushEvent["PACKAGE_DELIVERED"] = 3301] = "PACKAGE_DELIVERED"; + DoorbellPushEvent[DoorbellPushEvent["PACKAGE_TAKEN"] = 3302] = "PACKAGE_TAKEN"; + DoorbellPushEvent[DoorbellPushEvent["FAMILY_DETECTION"] = 3303] = "FAMILY_DETECTION"; + DoorbellPushEvent[DoorbellPushEvent["PACKAGE_STRANDED"] = 3304] = "PACKAGE_STRANDED"; + DoorbellPushEvent[DoorbellPushEvent["SOMEONE_LOITERING"] = 3305] = "SOMEONE_LOITERING"; + DoorbellPushEvent[DoorbellPushEvent["RADAR_MOTION_DETECTION"] = 3306] = "RADAR_MOTION_DETECTION"; + DoorbellPushEvent[DoorbellPushEvent["AWAY_FROM_HOME"] = 3307] = "AWAY_FROM_HOME"; + DoorbellPushEvent[DoorbellPushEvent["RADAR_DETECTION"] = 3308] = "RADAR_DETECTION"; +})(DoorbellPushEvent || (exports.DoorbellPushEvent = DoorbellPushEvent = {})); +var LockPushEvent; +(function (LockPushEvent) { + LockPushEvent[LockPushEvent["MANUAL_UNLOCK"] = 257] = "MANUAL_UNLOCK"; + LockPushEvent[LockPushEvent["AUTO_UNLOCK"] = 258] = "AUTO_UNLOCK"; + LockPushEvent[LockPushEvent["PW_UNLOCK"] = 259] = "PW_UNLOCK"; + LockPushEvent[LockPushEvent["FINGERPRINT_UNLOCK"] = 260] = "FINGERPRINT_UNLOCK"; + LockPushEvent[LockPushEvent["APP_UNLOCK"] = 261] = "APP_UNLOCK"; + LockPushEvent[LockPushEvent["MANUAL_LOCK"] = 262] = "MANUAL_LOCK"; + LockPushEvent[LockPushEvent["KEYPAD_LOCK"] = 263] = "KEYPAD_LOCK"; + LockPushEvent[LockPushEvent["APP_LOCK"] = 264] = "APP_LOCK"; + LockPushEvent[LockPushEvent["AUTO_LOCK"] = 265] = "AUTO_LOCK"; + LockPushEvent[LockPushEvent["PW_LOCK"] = 266] = "PW_LOCK"; + LockPushEvent[LockPushEvent["FINGER_LOCK"] = 267] = "FINGER_LOCK"; + LockPushEvent[LockPushEvent["TEMPORARY_PW_LOCK"] = 268] = "TEMPORARY_PW_LOCK"; + LockPushEvent[LockPushEvent["TEMPORARY_PW_UNLOCK"] = 269] = "TEMPORARY_PW_UNLOCK"; + LockPushEvent[LockPushEvent["LOW_POWER"] = 513] = "LOW_POWER"; + LockPushEvent[LockPushEvent["VERY_LOW_POWER"] = 514] = "VERY_LOW_POWER"; + LockPushEvent[LockPushEvent["MULTIPLE_ERRORS"] = 515] = "MULTIPLE_ERRORS"; + LockPushEvent[LockPushEvent["LOCK_OFFLINE"] = 516] = "LOCK_OFFLINE"; + LockPushEvent[LockPushEvent["MECHANICAL_ANOMALY"] = 517] = "MECHANICAL_ANOMALY"; + LockPushEvent[LockPushEvent["VIOLENT_DESTRUCTION"] = 518] = "VIOLENT_DESTRUCTION"; + LockPushEvent[LockPushEvent["LOCK_MECHANICAL_ANOMALY"] = 519] = "LOCK_MECHANICAL_ANOMALY"; + LockPushEvent[LockPushEvent["DOOR_OPEN_LEFT"] = 520] = "DOOR_OPEN_LEFT"; + LockPushEvent[LockPushEvent["DOOR_TAMPER"] = 521] = "DOOR_TAMPER"; + LockPushEvent[LockPushEvent["DOOR_STATE_ERROR"] = 522] = "DOOR_STATE_ERROR"; + LockPushEvent[LockPushEvent["STATUS_CHANGE"] = 769] = "STATUS_CHANGE"; + LockPushEvent[LockPushEvent["OTA_STATUS"] = 770] = "OTA_STATUS"; + LockPushEvent[LockPushEvent["LOCK_ONLINE"] = 771] = "LOCK_ONLINE"; +})(LockPushEvent || (exports.LockPushEvent = LockPushEvent = {})); +var IndoorPushEvent; +(function (IndoorPushEvent) { + IndoorPushEvent[IndoorPushEvent["MOTION_DETECTION"] = 3101] = "MOTION_DETECTION"; + IndoorPushEvent[IndoorPushEvent["FACE_DETECTION"] = 3102] = "FACE_DETECTION"; + IndoorPushEvent[IndoorPushEvent["CRYING_DETECTION"] = 3104] = "CRYING_DETECTION"; + IndoorPushEvent[IndoorPushEvent["SOUND_DETECTION"] = 3105] = "SOUND_DETECTION"; + IndoorPushEvent[IndoorPushEvent["PET_DETECTION"] = 3106] = "PET_DETECTION"; + IndoorPushEvent[IndoorPushEvent["VEHICLE_DETECTION"] = 3107] = "VEHICLE_DETECTION"; +})(IndoorPushEvent || (exports.IndoorPushEvent = IndoorPushEvent = {})); +var GarageDoorPushEvent; +(function (GarageDoorPushEvent) { + GarageDoorPushEvent[GarageDoorPushEvent["CLOSED_DOOR_BY_APP"] = 1] = "CLOSED_DOOR_BY_APP"; + GarageDoorPushEvent[GarageDoorPushEvent["OPEN_DOOR_BY_APP"] = 2] = "OPEN_DOOR_BY_APP"; + GarageDoorPushEvent[GarageDoorPushEvent["CLOSED_DOOR_WITHOUT_APP"] = 3] = "CLOSED_DOOR_WITHOUT_APP"; + GarageDoorPushEvent[GarageDoorPushEvent["OPEN_DOOR_WITHOUT_APP"] = 4] = "OPEN_DOOR_WITHOUT_APP"; + GarageDoorPushEvent[GarageDoorPushEvent["TIMEOUT_DOOR_OPEN_WARNING"] = 5] = "TIMEOUT_DOOR_OPEN_WARNING"; + GarageDoorPushEvent[GarageDoorPushEvent["TIMEOUT_CLOSED_DOOR"] = 6] = "TIMEOUT_CLOSED_DOOR"; + GarageDoorPushEvent[GarageDoorPushEvent["TIMEOUT_DOOR_OPEN_WARNING_MINUTES"] = 7] = "TIMEOUT_DOOR_OPEN_WARNING_MINUTES"; + GarageDoorPushEvent[GarageDoorPushEvent["LOW_BATTERY"] = 8] = "LOW_BATTERY"; +})(GarageDoorPushEvent || (exports.GarageDoorPushEvent = GarageDoorPushEvent = {})); +var SmartSafeEvent; +(function (SmartSafeEvent) { + SmartSafeEvent[SmartSafeEvent["ALARM_911"] = 1946161152] = "ALARM_911"; + SmartSafeEvent[SmartSafeEvent["LOCK_STATUS"] = 1946161153] = "LOCK_STATUS"; + SmartSafeEvent[SmartSafeEvent["SHAKE_ALARM"] = 1946161154] = "SHAKE_ALARM"; + SmartSafeEvent[SmartSafeEvent["BATTERY_STATUS"] = 1946161155] = "BATTERY_STATUS"; + SmartSafeEvent[SmartSafeEvent["LONG_TIME_NOT_CLOSE"] = 1946161156] = "LONG_TIME_NOT_CLOSE"; + SmartSafeEvent[SmartSafeEvent["FORCE_FIGURE"] = 1946161157] = "FORCE_FIGURE"; + SmartSafeEvent[SmartSafeEvent["LOW_POWER"] = 1946161158] = "LOW_POWER"; + SmartSafeEvent[SmartSafeEvent["INPUT_ERR_MAX"] = 1946161159] = "INPUT_ERR_MAX"; + SmartSafeEvent[SmartSafeEvent["SHUTDOWN"] = 1946161160] = "SHUTDOWN"; +})(SmartSafeEvent || (exports.SmartSafeEvent = SmartSafeEvent = {})); +var HB3PairedDevicePushEvent; +(function (HB3PairedDevicePushEvent) { + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["MOTION_DETECTION"] = 3101] = "MOTION_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["FACE_DETECTION"] = 3102] = "FACE_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["PRESS_DOORBELL"] = 3103] = "PRESS_DOORBELL"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["CRYING_DETECTION"] = 3104] = "CRYING_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["SOUND_DETECTION"] = 3105] = "SOUND_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["PET_DETECTION"] = 3106] = "PET_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["VEHICLE_DETECTION"] = 3107] = "VEHICLE_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["DOG_DETECTION"] = 3108] = "DOG_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["DOG_LICK_DETECTION"] = 3109] = "DOG_LICK_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["DOG_POOP_DETECTION"] = 3110] = "DOG_POOP_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["IDENTITY_PERSON_DETECTION"] = 3111] = "IDENTITY_PERSON_DETECTION"; + HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["STRANGER_PERSON_DETECTION"] = 3112] = "STRANGER_PERSON_DETECTION"; +})(HB3PairedDevicePushEvent || (exports.HB3PairedDevicePushEvent = HB3PairedDevicePushEvent = {})); +var HB3PairedDeviceMessageType; +(function (HB3PairedDeviceMessageType) { + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["SECURITY_EVT"] = 1] = "SECURITY_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["TFCARD_EVT"] = 2] = "TFCARD_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["DOOR_SENSOR_EVT"] = 3] = "DOOR_SENSOR_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["CAM_STATE_EVT"] = 4] = "CAM_STATE_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["GSENSOR_EVT"] = 5] = "GSENSOR_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BATTERY_LOW_EVT"] = 6] = "BATTERY_LOW_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BATTERY_HOT_EVT"] = 7] = "BATTERY_HOT_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["LIGHT_STATE_EVT"] = 8] = "LIGHT_STATE_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["ARMING_EVT"] = 9] = "ARMING_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["ALARM_EVT"] = 10] = "ALARM_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BATTERY_FULL_EVT"] = 11] = "BATTERY_FULL_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["REPEATER_RSSI_WEAK_EVT"] = 12] = "REPEATER_RSSI_WEAK_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["UPGRADE_STATUS"] = 13] = "UPGRADE_STATUS"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["MOTION_SENSOR_EVT"] = 14] = "MOTION_SENSOR_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BAT_DOORBELL_EVT"] = 15] = "BAT_DOORBELL_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["ALARM_DELAY_EVT"] = 16] = "ALARM_DELAY_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["HUB_BATT_POWERED_EVT"] = 17] = "HUB_BATT_POWERED_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["INDOOR_EVT"] = 18] = "INDOOR_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["SMARTLOCK_EVT"] = 19] = "SMARTLOCK_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["LOCK_EVT"] = 20] = "LOCK_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BBM_SOCK_EVT"] = 21] = "BBM_SOCK_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["DOOR_STATUS_EVT"] = 22] = "DOOR_STATUS_EVT"; + HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["HHD_EVT"] = 23] = "HHD_EVT"; +})(HB3PairedDeviceMessageType || (exports.HB3PairedDeviceMessageType = HB3PairedDeviceMessageType = {})); +var HB3HDDType; +(function (HB3HDDType) { + HB3HDDType[HB3HDDType["NODISK"] = 0] = "NODISK"; + HB3HDDType[HB3HDDType["READY"] = 1] = "READY"; + HB3HDDType[HB3HDDType["PROCESSING"] = 2] = "PROCESSING"; + HB3HDDType[HB3HDDType["NO_PARTED"] = 3] = "NO_PARTED"; + HB3HDDType[HB3HDDType["NO_ANKER_DISK"] = 4] = "NO_ANKER_DISK"; + HB3HDDType[HB3HDDType["NOT_FORMAT"] = 5] = "NOT_FORMAT"; + HB3HDDType[HB3HDDType["OTHER_USER_DISK"] = 6] = "OTHER_USER_DISK"; + HB3HDDType[HB3HDDType["BAD"] = 7] = "BAD"; + HB3HDDType[HB3HDDType["WAIT_NETWOR"] = 8] = "WAIT_NETWOR"; + HB3HDDType[HB3HDDType["PARTED_DONE"] = 9] = "PARTED_DONE"; + HB3HDDType[HB3HDDType["FULL"] = 32] = "FULL"; +})(HB3HDDType || (exports.HB3HDDType = HB3HDDType = {})); +var IndoorPushMessageType; +(function (IndoorPushMessageType) { + IndoorPushMessageType[IndoorPushMessageType["INDOOR"] = 18] = "INDOOR"; + IndoorPushMessageType[IndoorPushMessageType["TFCARD"] = 2] = "TFCARD"; +})(IndoorPushMessageType || (exports.IndoorPushMessageType = IndoorPushMessageType = {})); +var NotificationStyle; +(function (NotificationStyle) { + NotificationStyle[NotificationStyle["TEXT"] = 1] = "TEXT"; + NotificationStyle[NotificationStyle["THUMB"] = 2] = "THUMB"; + NotificationStyle[NotificationStyle["ALL"] = 3] = "ALL"; +})(NotificationStyle || (exports.NotificationStyle = NotificationStyle = {})); +var AlarmAction; +(function (AlarmAction) { + AlarmAction[AlarmAction["CANCEL_APP"] = 0] = "CANCEL_APP"; + AlarmAction[AlarmAction["CANCEL_NOLIGHT"] = 1] = "CANCEL_NOLIGHT"; +})(AlarmAction || (exports.AlarmAction = AlarmAction = {})); +var SmartDropPushEvent; +(function (SmartDropPushEvent) { + SmartDropPushEvent[SmartDropPushEvent["LOW_BATTERY"] = 6] = "LOW_BATTERY"; + SmartDropPushEvent[SmartDropPushEvent["OVERHEATING_WARNING"] = 7] = "OVERHEATING_WARNING"; + SmartDropPushEvent[SmartDropPushEvent["TAMPERED_WARNING"] = 10] = "TAMPERED_WARNING"; + SmartDropPushEvent[SmartDropPushEvent["BATTERY_FULLY_CHARGED"] = 11] = "BATTERY_FULLY_CHARGED"; + SmartDropPushEvent[SmartDropPushEvent["PERSON_DETECTED"] = 3102] = "PERSON_DETECTED"; +})(SmartDropPushEvent || (exports.SmartDropPushEvent = SmartDropPushEvent = {})); +var SmartDropOpen; +(function (SmartDropOpen) { + SmartDropOpen[SmartDropOpen["OPEN"] = 1] = "OPEN"; + SmartDropOpen[SmartDropOpen["CLOSED"] = 2] = "CLOSED"; + SmartDropOpen[SmartDropOpen["LID_STUCK"] = 3] = "LID_STUCK"; + SmartDropOpen[SmartDropOpen["PIN_INCORRECT"] = 4] = "PIN_INCORRECT"; + SmartDropOpen[SmartDropOpen["LEFT_OPENED"] = 10] = "LEFT_OPENED"; + SmartDropOpen[SmartDropOpen["LOW_TEMPERATURE_WARNING"] = 11] = "LOW_TEMPERATURE_WARNING"; +})(SmartDropOpen || (exports.SmartDropOpen = SmartDropOpen = {})); +var SmartDropOpenedBy; +(function (SmartDropOpenedBy) { + SmartDropOpenedBy[SmartDropOpenedBy["APP"] = 1] = "APP"; + SmartDropOpenedBy[SmartDropOpenedBy["PIN"] = 2] = "PIN"; + SmartDropOpenedBy[SmartDropOpenedBy["WITHOUT_KEY"] = 3] = "WITHOUT_KEY"; + SmartDropOpenedBy[SmartDropOpenedBy["EMERGENCY_RELEASE_BUTTON"] = 4] = "EMERGENCY_RELEASE_BUTTON"; + SmartDropOpenedBy[SmartDropOpenedBy["KEY"] = 5] = "KEY"; +})(SmartDropOpenedBy || (exports.SmartDropOpenedBy = SmartDropOpenedBy = {})); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/push/types.js.map b/build/push/types.js.map new file mode 100644 index 00000000..b6903a23 --- /dev/null +++ b/build/push/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/push/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/utils.d.ts b/build/push/utils.d.ts new file mode 100644 index 00000000..1d950b65 --- /dev/null +++ b/build/push/utils.d.ts @@ -0,0 +1,7 @@ +import { CheckinResponse } from "./models"; +export declare const VALID_FID_PATTERN: RegExp; +export declare function generateFid(): string; +export declare const buildCheckinRequest: () => Promise; +export declare const parseCheckinResponse: (data: Buffer) => Promise; +export declare const sleep: (ms: number) => Promise; +export declare function convertTimestampMs(timestamp: number): number; diff --git a/build/push/utils.js b/build/push/utils.js new file mode 100644 index 00000000..f28585ea --- /dev/null +++ b/build/push/utils.js @@ -0,0 +1,106 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.sleep = exports.parseCheckinResponse = exports.buildCheckinRequest = exports.VALID_FID_PATTERN = void 0; +exports.generateFid = generateFid; +exports.convertTimestampMs = convertTimestampMs; +const crypto_1 = require("crypto"); +const path = __importStar(require("path")); +const protobufjs_1 = require("protobufjs"); +const error_1 = require("./error"); +const logging_1 = require("../logging"); +exports.VALID_FID_PATTERN = /^[cdef][\w-]{21}$/; +function generateFid() { + const fidByteArray = new Uint8Array(17); + fidByteArray.set((0, crypto_1.randomBytes)(fidByteArray.length)); + // Replace the first 4 random bits with the constant FID header of 0b0111. + fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000); + const b64 = Buffer.from(fidByteArray).toString("base64"); + const b64_safe = b64.replace(/\+/g, "-").replace(/\//g, "_"); + const fid = b64_safe.substr(0, 22); + if (exports.VALID_FID_PATTERN.test(fid)) { + logging_1.rootPushLogger.info('generateFid', fid); + return fid; + } + throw new error_1.FidGenerationError("Generated invalid FID", { context: { fid: fid } }); +} +const buildCheckinRequest = async () => { + const root = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/checkin.proto")); + const CheckinRequestModel = root.lookupType("CheckinRequest"); + const payload = { + imei: "109269993813709", + androidId: 0, + checkin: { + build: { + fingerprint: "google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys", + hardware: "flo", + brand: "google", + radio: "FLO-04.04", + clientId: "android-google", + }, + lastCheckinMs: 0, + }, + locale: "en", + loggingId: 1234567890, + macAddress: ["A1B2C3D4E5F6"], + meid: "109269993813709", + accountCookie: [], + timeZone: "GMT", + version: 3, + otaCert: ["71Q6Rn2DDZl1zPDVaaeEHItd+Yg="], + esn: "ABCDEF01", + macAddressType: ["wifi"], + fragment: 0, + userSerialNumber: 0, + }; + const message = CheckinRequestModel.create(payload); + return CheckinRequestModel.encode(message).finish(); +}; +exports.buildCheckinRequest = buildCheckinRequest; +const parseCheckinResponse = async (data) => { + const root = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/checkin.proto")); + const CheckinResponseModel = root.lookupType("CheckinResponse"); + const message = CheckinResponseModel.decode(data); + const object = CheckinResponseModel.toObject(message, { + longs: String, + enums: String, + bytes: String, + }); + return object; +}; +exports.parseCheckinResponse = parseCheckinResponse; +const sleep = async (ms) => { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +}; +exports.sleep = sleep; +function convertTimestampMs(timestamp) { + if (timestamp.toString().length === 10) { + return timestamp * 1000; + } + return timestamp; +} +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/push/utils.js.map b/build/push/utils.js.map new file mode 100644 index 00000000..1504e7cb --- /dev/null +++ b/build/push/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/push/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/utils.d.ts b/build/utils.d.ts new file mode 100644 index 00000000..6439d954 --- /dev/null +++ b/build/utils.d.ts @@ -0,0 +1,19 @@ +import { Category } from "typescript-logging-category-style"; +import EventEmitter from "events"; +import { ErrorObject, EufySecurityPersistentData } from "./interfaces"; +import { BaseError } from "./error"; +import { PropertyMetadataAny } from "./http/interfaces"; +export declare const getError: (error: BaseError) => ErrorObject; +export declare const removeLastChar: (text: string, char: string) => string; +export declare const generateUDID: () => string; +export declare const generateSerialnumber: (length: number) => string; +export declare const md5: (contents: string) => string; +export declare const handleUpdate: (config: EufySecurityPersistentData, oldVersion: number) => EufySecurityPersistentData; +export declare const isEmpty: (str: string | null | undefined) => boolean; +export declare const parseValue: (metadata: PropertyMetadataAny, value: unknown) => unknown; +export declare const parseJSON: (data: string, log: Category) => any; +export declare const validValue: (metadata: PropertyMetadataAny, value: unknown) => void; +export declare const mergeDeep: (target: Record | undefined, source: Record) => Record; +export declare function waitForEvent(emitter: EventEmitter, event: string): Promise; +export declare function getShortUrl(url: URL, prefixUrl?: string): string; +export declare function isValidUrl(value: string, protocols?: Array): boolean; diff --git a/build/utils.js b/build/utils.js new file mode 100644 index 00000000..c4a421e1 --- /dev/null +++ b/build/utils.js @@ -0,0 +1,262 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.mergeDeep = exports.validValue = exports.parseJSON = exports.parseValue = exports.isEmpty = exports.handleUpdate = exports.md5 = exports.generateSerialnumber = exports.generateUDID = exports.removeLastChar = exports.getError = void 0; +exports.waitForEvent = waitForEvent; +exports.getShortUrl = getShortUrl; +exports.isValidUrl = isValidUrl; +const crypto = __importStar(require("crypto")); +const error_1 = require("./error"); +const getError = function (error) { + return { + cause: error.cause, + message: `${error.name}: ${error.message}`, + context: error.context, + stacktrace: error.stack + }; +}; +exports.getError = getError; +const removeLastChar = function (text, char) { + const strArr = [...text]; + strArr.splice(text.lastIndexOf(char), 1); + return strArr.join(""); +}; +exports.removeLastChar = removeLastChar; +const generateUDID = function () { + return crypto.randomBytes(8).readBigUInt64BE().toString(16); +}; +exports.generateUDID = generateUDID; +const generateSerialnumber = function (length) { + return crypto.randomBytes(length / 2).toString("hex"); +}; +exports.generateSerialnumber = generateSerialnumber; +const md5 = (contents) => crypto.createHash("md5").update(contents).digest("hex"); +exports.md5 = md5; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const handleUpdate = function (config, oldVersion) { + if (oldVersion <= 1.24) { + config.cloud_token = ""; + config.cloud_token_expiration = 0; + } + return config; +}; +exports.handleUpdate = handleUpdate; +const isEmpty = function (str) { + if (str) { + if (str.length > 0) + return false; + return true; + } + return true; +}; +exports.isEmpty = isEmpty; +const parseValue = function (metadata, value) { + if (metadata.type === "boolean") { + if (value !== undefined) { + switch (typeof value) { + case "boolean": + break; + case "number": + if (value === 0 || value === 1) { + value = value === 1 ? true : false; + } + else { + throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + break; + case "string": + if (value.toLowerCase() === "true" || value.toLowerCase() === "false") { + value = value.toLowerCase() === "true" ? true : false; + } + else { + throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + break; + default: + throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else { + throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else if (metadata.type === "number") { + if (value !== undefined) { + switch (typeof value) { + case "number": + break; + case "string": + try { + value = Number.parseInt(value); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + throw new error_1.InvalidPropertyValueError("Property expects a number value", { cause: error, context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + break; + default: + throw new error_1.InvalidPropertyValueError("Property expects a number value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else { + throw new error_1.InvalidPropertyValueError("Property expects a number value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else if (metadata.type === "string") { + if (value !== undefined) { + switch (typeof value) { + case "number": + value = value.toString(); + break; + case "string": + break; + case "boolean": + value = value === true ? "true" : "false"; + break; + default: + throw new error_1.InvalidPropertyValueError("Property expects a string value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else { + throw new error_1.InvalidPropertyValueError("Property expects a string value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else if (metadata.type === "object") { + if (value === undefined || value === null) { + throw new error_1.InvalidPropertyValueError("Property expects an object value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else { + throw new error_1.InvalidPropertyValueError(`Property expects a ${metadata.type} value`, { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + return value; +}; +exports.parseValue = parseValue; +const parseJSON = function (data, log) { + try { + return JSON.parse(data.replace(/[\0]+$/g, "")); + } + catch (err) { + const error = (0, error_1.ensureError)(err); + log.debug("JSON parse error", { error: (0, exports.getError)(error), data: data }); + } + return undefined; +}; +exports.parseJSON = parseJSON; +const validValue = function (metadata, value) { + if (metadata.type === "number") { + const numberMetadata = metadata; + const numericValue = Number(value); + if ((numberMetadata.min !== undefined && numberMetadata.min > numericValue) || (numberMetadata.max !== undefined && numberMetadata.max < numericValue) || (numberMetadata.states !== undefined && numberMetadata.states[numericValue] === undefined) || Number.isNaN(numericValue)) { + throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else if (metadata.type === "string") { + const stringMetadata = metadata; + const stringValue = String(value); + if ((stringMetadata.format !== undefined && stringValue.match(stringMetadata.format) === null) || (stringMetadata.minLength !== undefined && stringMetadata.minLength > stringValue.length) || (stringMetadata.maxLength !== undefined && stringMetadata.maxLength < stringValue.length)) { + throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else if (metadata.type === "boolean") { + const str = String(value).toLowerCase().trim(); + if (str !== "true" && str !== "false" && str !== "1" && str !== "0") { + throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else if (metadata.type === "object") { + const metadataObject = metadata; + if (value !== undefined && value !== null && metadataObject.isValidObject !== undefined) { + if (!metadataObject.isValidObject(value)) { + throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } + else { + throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); + } + } +}; +exports.validValue = validValue; +const mergeDeep = function (target, source) { + target = target || {}; + for (const [key, value] of Object.entries(source)) { + if (!(key in target)) { + target[key] = value; + } + else { + if (typeof value === "object") { + // merge objects + target[key] = (0, exports.mergeDeep)(target[key], value); + } + else if (typeof target[key] === "undefined") { + // don't override single keys + target[key] = value; + } + } + } + return target; +}; +exports.mergeDeep = mergeDeep; +function waitForEvent(emitter, event) { + return new Promise((resolve, reject) => { + const success = (val) => { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + emitter.off("error", fail); + resolve(val); + }; + const fail = (err) => { + emitter.off(event, success); + reject(err); + }; + emitter.once(event, success); + emitter.once("error", fail); + }); +} +function getShortUrl(url, prefixUrl) { + if (url.password) { + url = new URL(url.toString()); // prevent original url mutation + url.password = "[redacted]"; + } + let shortUrl = url.toString(); + if (prefixUrl && shortUrl.startsWith(prefixUrl)) { + shortUrl = shortUrl.slice(prefixUrl.length); + } + return shortUrl; +} +function isValidUrl(value, protocols = ["http", "https"]) { + try { + const url = new URL(value); + return protocols + ? url.protocol + ? protocols.map(protocol => `${protocol.toLowerCase()}:`).includes(url.protocol) + : false + : true; + } + catch (err) { + return false; + } +} +; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/utils.js.map b/build/utils.js.map new file mode 100644 index 00000000..9d473aca --- /dev/null +++ b/build/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 50ae0404..fb633325 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "eufy-security-client", - "version": "3.1.1", + "version": "3.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "eufy-security-client", - "version": "3.1.1", + "version": "3.2.0", "license": "MIT", "dependencies": { "@cospired/i18n-iso-languages": "^4.2.0", diff --git a/package.json b/package.json index 7c8b368d..b8cae4ff 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "watch:ts": "tsc -p tsconfig.build.json --watch", "watch": "npm run watch:ts", "lint": "eslint --ext .ts src", - "prepublishOnly": "tsc -p tsconfig.build.json && npm run copy-proto-build" + "prepublishOnly": "tsc -p tsconfig.build.json && npm run copy-proto-build", + "prepare": "npm run build" }, "license": "MIT", "keywords": [ @@ -75,4 +76,4 @@ "url": "https://github.com/bropat/eufy-security-client/issues" }, "readmeFilename": "README.md" -} +} \ No newline at end of file From cd7dfb0afef05bba8060016b2f18396199ad206f Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 02:11:27 +0000 Subject: [PATCH 03/13] fixed the issue preventing the S4 from showing up. The device definition was missing crucial "Station Properties" needed to process P2P data (because the S4 acts as its own station). I've updated src/http/types.ts to include these properties and verified the build. --- build/http/types.js | 14 ++++++++++++++ build/http/types.js.map | 2 +- src/http/types.ts | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/build/http/types.js b/build/http/types.js index 93efcaca..13bc1786 100644 --- a/build/http/types.js +++ b/build/http/types.js @@ -9740,4 +9740,18 @@ exports.StationCommands = { }; exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; +exports.StationProperties[DeviceType.EUFYCAM_S4] = { + ...exports.BaseStationProperties, + [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, + [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, + [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, + [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, + [PropertyName.StationAlarm]: exports.StationAlarmProperty, + [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, + [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, + [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, +}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/http/types.js.map b/build/http/types.js.map index 8d1e5ee9..6443e721 100644 --- a/build/http/types.js.map +++ b/build/http/types.js.map @@ -1 +1 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/http/types.ts b/src/http/types.ts index 527ef220..44b0973e 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -10237,3 +10237,18 @@ export const StationCommands: Commands = { StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; + +StationProperties[DeviceType.EUFYCAM_S4] = { + ...BaseStationProperties, + [PropertyName.StationLANIpAddress]: StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: StationMacAddressProperty, + [PropertyName.StationGuardMode]: StationGuardModeProperty, + [PropertyName.StationCurrentMode]: StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: StationTimeFormatProperty, + [PropertyName.StationTimeZone]: StationTimeZoneProperty, + [PropertyName.StationAlarm]: StationAlarmProperty, + [PropertyName.StationAlarmType]: StationAlarmTypeProperty, + [PropertyName.StationSdStatus]: StationSdStatusProperty, + [PropertyName.StationSdCapacity]: StationSdCapacityProperty, + [PropertyName.StationSdCapacityAvailable]: StationSdAvailableCapacityProperty, +}; From 4bd2862a73b1f85d6fa012678deb4b419dac7689 Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 15:36:51 +0000 Subject: [PATCH 04/13] Fix: Aliased S4 to OUTDOOR_PT_CAMERA for visibility and property support --- .gitignore | 3 +- build/http/types.js | 68 +++------------------------------------ build/http/types.js.map | 2 +- src/http/types.ts | 70 ++++------------------------------------- 4 files changed, 13 insertions(+), 130 deletions(-) diff --git a/.gitignore b/.gitignore index 87eff052..2294851a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules build *.tgz -.DS_Store \ No newline at end of file +.DS_Store +.logs diff --git a/build/http/types.js b/build/http/types.js index 13bc1786..de5d78c9 100644 --- a/build/http/types.js +++ b/build/http/types.js @@ -7639,56 +7639,8 @@ exports.DeviceProperties = { }; exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; -// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA but without floodlight properties -exports.DeviceProperties[DeviceType.EUFYCAM_S4] = { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - // NO DeviceLight properties - S4 has no floodlight - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypeVehicle]: exports.DeviceMotionHB3DetectionTypeVehicleProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionZone]: exports.DeviceMotionZoneProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthOutdoorPTProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, -}; +// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA +exports.DeviceProperties[DeviceType.EUFYCAM_S4] = exports.DeviceProperties[DeviceType.OUTDOOR_PT_CAMERA]; exports.StationNameProperty = { key: "station_name", name: PropertyName.Name, @@ -9740,18 +9692,6 @@ exports.StationCommands = { }; exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.StationProperties[DeviceType.EUFYCAM_S4] = { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, -}; +exports.StationProperties[DeviceType.EUFYCAM_S4] = exports.StationProperties[DeviceType.OUTDOOR_PT_CAMERA]; +exports.StationCommands[DeviceType.EUFYCAM_S4] = exports.StationCommands[DeviceType.OUTDOOR_PT_CAMERA]; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/http/types.js.map b/build/http/types.js.map index 6443e721..e7264701 100644 --- a/build/http/types.js.map +++ b/build/http/types.js.map @@ -1 +1 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/http/types.ts b/src/http/types.ts index 44b0973e..2f213abf 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -8087,56 +8087,9 @@ export const DeviceProperties: Properties = { DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; -// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA but without floodlight properties -DeviceProperties[DeviceType.EUFYCAM_S4] = { - ...GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: DeviceWatermarkProperty, - [PropertyName.DeviceState]: DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: DevicePersonDetectedProperty, - [PropertyName.DeviceVehicleDetected]: DeviceVehicleDetectedProperty, - [PropertyName.DeviceStatusLed]: DeviceStatusLedIndoorFloodProperty, - // NO DeviceLight properties - S4 has no floodlight - [PropertyName.DevicePicture]: DevicePictureProperty, - [PropertyName.DevicePictureUrl]: DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceMicrophone]: DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypeVehicle]: DeviceMotionHB3DetectionTypeVehicleProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceMotionTracking]: DeviceMotionTrackingProperty, - [PropertyName.DeviceVideoStreamingQuality]: DeviceVideoStreamingQualityS340Property, - [PropertyName.DeviceVideoRecordingQuality]: DeviceVideoRecordingQualityS340Property, - [PropertyName.DeviceNotificationType]: DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceRotationSpeed]: DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionZone]: DeviceMotionZoneProperty, - [PropertyName.DeviceSnooze]: DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: DevicePersonNameProperty, - [PropertyName.DevicePowerSource]: DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: DeviceRecordingClipLengthOutdoorPTProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceDualCamWatchViewMode]: DeviceDualCamWatchViewModeS340Property, -}; +// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA +DeviceProperties[DeviceType.EUFYCAM_S4] = DeviceProperties[DeviceType.OUTDOOR_PT_CAMERA]; + export const StationNameProperty: PropertyMetadataString = { key: "station_name", @@ -10238,17 +10191,6 @@ export const StationCommands: Commands = { StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; -StationProperties[DeviceType.EUFYCAM_S4] = { - ...BaseStationProperties, - [PropertyName.StationLANIpAddress]: StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: StationMacAddressProperty, - [PropertyName.StationGuardMode]: StationGuardModeProperty, - [PropertyName.StationCurrentMode]: StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: StationTimeFormatProperty, - [PropertyName.StationTimeZone]: StationTimeZoneProperty, - [PropertyName.StationAlarm]: StationAlarmProperty, - [PropertyName.StationAlarmType]: StationAlarmTypeProperty, - [PropertyName.StationSdStatus]: StationSdStatusProperty, - [PropertyName.StationSdCapacity]: StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: StationSdAvailableCapacityProperty, -}; + +StationProperties[DeviceType.EUFYCAM_S4] = StationProperties[DeviceType.OUTDOOR_PT_CAMERA]; +StationCommands[DeviceType.EUFYCAM_S4] = StationCommands[DeviceType.OUTDOOR_PT_CAMERA]; From b5df0e64c0807d5d02695c60c9c08336ed8fd263 Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 20:40:27 +0000 Subject: [PATCH 05/13] Generalize camera test scripts and fix build ignore - Make P2P and property test scripts universal for all device types. - Update documentation. - Remove build directory from git index. --- build/error.d.ts | 127 - build/error.js | 178 - build/error.js.map | 1 - build/eufysecurity.d.ts | 179 - build/eufysecurity.js | 2634 -------- build/eufysecurity.js.map | 1 - build/http/api.d.ts | 90 - build/http/api.js | 1578 ----- build/http/api.js.map | 1 - build/http/cache.d.ts | 8 - build/http/cache.js | 34 - build/http/cache.js.map | 1 - build/http/const.d.ts | 3 - build/http/const.js | 8546 ------------------------- build/http/const.js.map | 1 - build/http/device.d.ts | 474 -- build/http/device.js | 4314 ------------- build/http/device.js.map | 1 - build/http/error.d.ts | 73 - build/http/error.js | 101 - build/http/error.js.map | 1 - build/http/index.d.ts | 10 - build/http/index.js | 30 - build/http/index.js.map | 1 - build/http/interfaces.d.ts | 241 - build/http/interfaces.js | 3 - build/http/interfaces.js.map | 1 - build/http/models.d.ts | 608 -- build/http/models.js | 3 - build/http/models.js.map | 1 - build/http/parameter.d.ts | 5 - build/http/parameter.js | 103 - build/http/parameter.js.map | 1 - build/http/station.d.ts | 364 -- build/http/station.js | 10561 ------------------------------- build/http/station.js.map | 1 - build/http/types.d.ts | 1335 ---- build/http/types.js | 9697 ---------------------------- build/http/types.js.map | 1 - build/http/utils.d.ts | 79 - build/http/utils.js | 789 --- build/http/utils.js.map | 1 - build/index.d.ts | 8 - build/index.js | 29 - build/index.js.map | 1 - build/interfaces.d.ts | 142 - build/interfaces.js | 3 - build/interfaces.js.map | 1 - build/logging.d.ts | 22 - build/logging.js | 116 - build/logging.js.map | 1 - build/mqtt/interface.d.ts | 6 - build/mqtt/interface.js | 3 - build/mqtt/interface.js.map | 1 - build/mqtt/model.d.ts | 24 - build/mqtt/model.js | 3 - build/mqtt/model.js.map | 1 - build/mqtt/mqtt-eufy.crt | 79 - build/mqtt/proto/lock.proto | 33 - build/mqtt/service.d.ts | 28 - build/mqtt/service.js | 177 - build/mqtt/service.js.map | 1 - build/p2p/ble.d.ts | 59 - build/p2p/ble.js | 280 - build/p2p/ble.js.map | 1 - build/p2p/error.d.ts | 49 - build/p2p/error.js | 69 - build/p2p/error.js.map | 1 - build/p2p/index.d.ts | 8 - build/p2p/index.js | 28 - build/p2p/index.js.map | 1 - build/p2p/interfaces.d.ts | 388 -- build/p2p/interfaces.js | 3 - build/p2p/interfaces.js.map | 1 - build/p2p/models.d.ts | 284 - build/p2p/models.js | 3 - build/p2p/models.js.map | 1 - build/p2p/session.d.ts | 186 - build/p2p/session.js | 2678 -------- build/p2p/session.js.map | 1 - build/p2p/talkback.d.ts | 8 - build/p2p/talkback.js | 23 - build/p2p/talkback.js.map | 1 - build/p2p/types.d.ts | 1164 ---- build/p2p/types.js | 1219 ---- build/p2p/types.js.map | 1 - build/p2p/utils.d.ts | 72 - build/p2p/utils.js | 824 --- build/p2p/utils.js.map | 1 - build/push/client.d.ts | 49 - build/push/client.js | 323 - build/push/client.js.map | 1 - build/push/error.d.ts | 73 - build/push/error.js | 101 - build/push/error.js.map | 1 - build/push/index.d.ts | 6 - build/push/index.js | 26 - build/push/index.js.map | 1 - build/push/interfaces.d.ts | 19 - build/push/interfaces.js | 3 - build/push/interfaces.js.map | 1 - build/push/models.d.ts | 328 - build/push/models.js | 38 - build/push/models.js.map | 1 - build/push/parser.d.ts | 25 - build/push/parser.js | 217 - build/push/parser.js.map | 1 - build/push/proto/checkin.proto | 266 - build/push/proto/mcs.proto | 328 - build/push/service.d.ts | 46 - build/push/service.js | 818 --- build/push/service.js.map | 1 - build/push/types.d.ts | 218 - build/push/types.js | 242 - build/push/types.js.map | 1 - build/push/utils.d.ts | 7 - build/push/utils.js | 106 - build/push/utils.js.map | 1 - build/utils.d.ts | 19 - build/utils.js | 262 - build/utils.js.map | 1 - 121 files changed, 53744 deletions(-) delete mode 100644 build/error.d.ts delete mode 100644 build/error.js delete mode 100644 build/error.js.map delete mode 100644 build/eufysecurity.d.ts delete mode 100644 build/eufysecurity.js delete mode 100644 build/eufysecurity.js.map delete mode 100644 build/http/api.d.ts delete mode 100644 build/http/api.js delete mode 100644 build/http/api.js.map delete mode 100644 build/http/cache.d.ts delete mode 100644 build/http/cache.js delete mode 100644 build/http/cache.js.map delete mode 100644 build/http/const.d.ts delete mode 100644 build/http/const.js delete mode 100644 build/http/const.js.map delete mode 100644 build/http/device.d.ts delete mode 100644 build/http/device.js delete mode 100644 build/http/device.js.map delete mode 100644 build/http/error.d.ts delete mode 100644 build/http/error.js delete mode 100644 build/http/error.js.map delete mode 100644 build/http/index.d.ts delete mode 100644 build/http/index.js delete mode 100644 build/http/index.js.map delete mode 100644 build/http/interfaces.d.ts delete mode 100644 build/http/interfaces.js delete mode 100644 build/http/interfaces.js.map delete mode 100644 build/http/models.d.ts delete mode 100644 build/http/models.js delete mode 100644 build/http/models.js.map delete mode 100644 build/http/parameter.d.ts delete mode 100644 build/http/parameter.js delete mode 100644 build/http/parameter.js.map delete mode 100644 build/http/station.d.ts delete mode 100644 build/http/station.js delete mode 100644 build/http/station.js.map delete mode 100644 build/http/types.d.ts delete mode 100644 build/http/types.js delete mode 100644 build/http/types.js.map delete mode 100644 build/http/utils.d.ts delete mode 100644 build/http/utils.js delete mode 100644 build/http/utils.js.map delete mode 100644 build/index.d.ts delete mode 100644 build/index.js delete mode 100644 build/index.js.map delete mode 100644 build/interfaces.d.ts delete mode 100644 build/interfaces.js delete mode 100644 build/interfaces.js.map delete mode 100644 build/logging.d.ts delete mode 100644 build/logging.js delete mode 100644 build/logging.js.map delete mode 100644 build/mqtt/interface.d.ts delete mode 100644 build/mqtt/interface.js delete mode 100644 build/mqtt/interface.js.map delete mode 100644 build/mqtt/model.d.ts delete mode 100644 build/mqtt/model.js delete mode 100644 build/mqtt/model.js.map delete mode 100644 build/mqtt/mqtt-eufy.crt delete mode 100644 build/mqtt/proto/lock.proto delete mode 100644 build/mqtt/service.d.ts delete mode 100644 build/mqtt/service.js delete mode 100644 build/mqtt/service.js.map delete mode 100644 build/p2p/ble.d.ts delete mode 100644 build/p2p/ble.js delete mode 100644 build/p2p/ble.js.map delete mode 100644 build/p2p/error.d.ts delete mode 100644 build/p2p/error.js delete mode 100644 build/p2p/error.js.map delete mode 100644 build/p2p/index.d.ts delete mode 100644 build/p2p/index.js delete mode 100644 build/p2p/index.js.map delete mode 100644 build/p2p/interfaces.d.ts delete mode 100644 build/p2p/interfaces.js delete mode 100644 build/p2p/interfaces.js.map delete mode 100644 build/p2p/models.d.ts delete mode 100644 build/p2p/models.js delete mode 100644 build/p2p/models.js.map delete mode 100644 build/p2p/session.d.ts delete mode 100644 build/p2p/session.js delete mode 100644 build/p2p/session.js.map delete mode 100644 build/p2p/talkback.d.ts delete mode 100644 build/p2p/talkback.js delete mode 100644 build/p2p/talkback.js.map delete mode 100644 build/p2p/types.d.ts delete mode 100644 build/p2p/types.js delete mode 100644 build/p2p/types.js.map delete mode 100644 build/p2p/utils.d.ts delete mode 100644 build/p2p/utils.js delete mode 100644 build/p2p/utils.js.map delete mode 100644 build/push/client.d.ts delete mode 100644 build/push/client.js delete mode 100644 build/push/client.js.map delete mode 100644 build/push/error.d.ts delete mode 100644 build/push/error.js delete mode 100644 build/push/error.js.map delete mode 100644 build/push/index.d.ts delete mode 100644 build/push/index.js delete mode 100644 build/push/index.js.map delete mode 100644 build/push/interfaces.d.ts delete mode 100644 build/push/interfaces.js delete mode 100644 build/push/interfaces.js.map delete mode 100644 build/push/models.d.ts delete mode 100644 build/push/models.js delete mode 100644 build/push/models.js.map delete mode 100644 build/push/parser.d.ts delete mode 100644 build/push/parser.js delete mode 100644 build/push/parser.js.map delete mode 100644 build/push/proto/checkin.proto delete mode 100644 build/push/proto/mcs.proto delete mode 100644 build/push/service.d.ts delete mode 100644 build/push/service.js delete mode 100644 build/push/service.js.map delete mode 100644 build/push/types.d.ts delete mode 100644 build/push/types.js delete mode 100644 build/push/types.js.map delete mode 100644 build/push/utils.d.ts delete mode 100644 build/push/utils.js delete mode 100644 build/push/utils.js.map delete mode 100644 build/utils.d.ts delete mode 100644 build/utils.js delete mode 100644 build/utils.js.map diff --git a/build/error.d.ts b/build/error.d.ts deleted file mode 100644 index dff45360..00000000 --- a/build/error.d.ts +++ /dev/null @@ -1,127 +0,0 @@ -export type Jsonable = string | number | boolean | object | null | undefined | readonly Jsonable[] | { - readonly [key: string]: Jsonable; -} | { - toJSON(): Jsonable; -}; -export declare class BaseError extends Error { - readonly context?: Jsonable; - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare function ensureError(value: unknown): BaseError; -export declare class InvalidCountryCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class InvalidLanguageCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class StationNotFoundError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class DeviceNotFoundError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class NotSupportedError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class WrongStationError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class RTSPPropertyNotEnabledError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class InvalidPropertyValueError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class InvalidCommandValueError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ReadOnlyPropertyError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class LivestreamError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class TalkbackError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class StationConnectTimeoutError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class AddUserError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class DeleteUserError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class UpdateUserUsernameError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class UpdateUserScheduleError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class UpdateUserPasscodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class PinNotVerifiedError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} diff --git a/build/error.js b/build/error.js deleted file mode 100644 index 69052c23..00000000 --- a/build/error.js +++ /dev/null @@ -1,178 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PinNotVerifiedError = exports.UpdateUserPasscodeError = exports.UpdateUserScheduleError = exports.UpdateUserUsernameError = exports.DeleteUserError = exports.AddUserError = exports.StationConnectTimeoutError = exports.TalkbackError = exports.LivestreamError = exports.ReadOnlyPropertyError = exports.InvalidCommandValueError = exports.InvalidPropertyValueError = exports.RTSPPropertyNotEnabledError = exports.WrongStationError = exports.NotSupportedError = exports.DeviceNotFoundError = exports.StationNotFoundError = exports.InvalidLanguageCodeError = exports.InvalidCountryCodeError = exports.BaseError = void 0; -exports.ensureError = ensureError; -class BaseError extends Error { - context; - constructor(message, options = {}) { - const { cause, context } = options; - super(message, { cause }); //NodeJs 16.9.0 - this.name = this.constructor.name; - this.context = context; - } -} -exports.BaseError = BaseError; -function ensureError(value) { - if (value instanceof Error) - return value; - let stringified = "[Unable to stringify the thrown value]"; - try { - stringified = JSON.stringify(value); - } - catch { } - const error = new Error(`This value was thrown as is, not through an Error: ${stringified}`); - return error; -} -class InvalidCountryCodeError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = InvalidCountryCodeError.name; - } -} -exports.InvalidCountryCodeError = InvalidCountryCodeError; -class InvalidLanguageCodeError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = InvalidLanguageCodeError.name; - } -} -exports.InvalidLanguageCodeError = InvalidLanguageCodeError; -class StationNotFoundError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = StationNotFoundError.name; - } -} -exports.StationNotFoundError = StationNotFoundError; -class DeviceNotFoundError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = DeviceNotFoundError.name; - } -} -exports.DeviceNotFoundError = DeviceNotFoundError; -class NotSupportedError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = NotSupportedError.name; - } -} -exports.NotSupportedError = NotSupportedError; -class WrongStationError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = WrongStationError.name; - } -} -exports.WrongStationError = WrongStationError; -class RTSPPropertyNotEnabledError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = RTSPPropertyNotEnabledError.name; - } -} -exports.RTSPPropertyNotEnabledError = RTSPPropertyNotEnabledError; -class InvalidPropertyValueError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = InvalidPropertyValueError.name; - } -} -exports.InvalidPropertyValueError = InvalidPropertyValueError; -class InvalidCommandValueError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = InvalidCommandValueError.name; - } -} -exports.InvalidCommandValueError = InvalidCommandValueError; -class ReadOnlyPropertyError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ReadOnlyPropertyError.name; - } -} -exports.ReadOnlyPropertyError = ReadOnlyPropertyError; -class LivestreamError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = LivestreamError.name; - } -} -exports.LivestreamError = LivestreamError; -class TalkbackError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = TalkbackError.name; - } -} -exports.TalkbackError = TalkbackError; -class StationConnectTimeoutError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = StationConnectTimeoutError.name; - } -} -exports.StationConnectTimeoutError = StationConnectTimeoutError; -class AddUserError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = AddUserError.name; - } -} -exports.AddUserError = AddUserError; -class DeleteUserError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = DeleteUserError.name; - } -} -exports.DeleteUserError = DeleteUserError; -class UpdateUserUsernameError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = UpdateUserUsernameError.name; - } -} -exports.UpdateUserUsernameError = UpdateUserUsernameError; -class UpdateUserScheduleError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = UpdateUserScheduleError.name; - } -} -exports.UpdateUserScheduleError = UpdateUserScheduleError; -class UpdateUserPasscodeError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = UpdateUserPasscodeError.name; - } -} -exports.UpdateUserPasscodeError = UpdateUserPasscodeError; -class PinNotVerifiedError extends BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = PinNotVerifiedError.name; - } -} -exports.PinNotVerifiedError = PinNotVerifiedError; -//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/error.js.map b/build/error.js.map deleted file mode 100644 index 23bdeb03..00000000 --- a/build/error.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/eufysecurity.d.ts b/build/eufysecurity.d.ts deleted file mode 100644 index 07bf37ef..00000000 --- a/build/eufysecurity.d.ts +++ /dev/null @@ -1,179 +0,0 @@ -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 { - 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; - protected _initializeInternals(): Promise; - 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>; - getDevicesFromStation(stationSN: string): Promise>; - getDevice(deviceSN: string): Promise; - getStationDevice(stationSN: string, channel: number): Promise; - getStations(): Promise>; - getStation(stationSN: string): Promise; - getApi(): HTTPApi; - connectToStation(stationSN: string, p2pConnectionType?: P2PConnectionType): Promise; - isStationConnected(stationSN: string): Promise; - isStationEnergySavingDevice(stationSN: string): Promise; - private handleHouses; - private handleHubs; - private refreshP2PData; - private onStationConnect; - private onStationConnectionError; - private onStationClose; - private handleDevices; - refreshCloudData(): Promise; - close(): void; - setCameraMaxLivestreamDuration(seconds: number): void; - getCameraMaxLivestreamDuration(): number; - registerPushNotifications(credentials?: Credentials, persistentIds?: string[]): Promise; - connect(options?: LoginOptions): Promise; - getPushPersistentIds(): string[]; - private updateDeviceProperties; - private onAPIClose; - private onAPIConnect; - private onAPIConnectionError; - startStationLivestream(deviceSN: string): Promise; - stopStationLivestream(deviceSN: string): Promise; - 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; - cancelStationDownload(deviceSN: string): Promise; - getConfig(): EufySecurityConfig; - setDeviceProperty(deviceSN: string, name: string, value: unknown): Promise; - setStationProperty(stationSN: string, name: string, value: unknown): Promise; - 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; - stopStationTalkback(deviceSN: string): Promise; - private onStationDeviceShakeAlarm; - private onStationDevice911Alarm; - private onStationDeviceJammed; - private onStationDeviceLowBattery; - private onStationDeviceWrongTryProtectAlarm; - addUser(deviceSN: string, username: string, passcode: string, schedule?: Schedule): Promise; - deleteUser(deviceSN: string, username: string): Promise; - updateUser(deviceSN: string, username: string, newUsername: string): Promise; - updateUserPasscode(deviceSN: string, username: string, passcode: string): Promise; - updateUserSchedule(deviceSN: string, username: string, schedule: Schedule): Promise; - 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; -} diff --git a/build/eufysecurity.js b/build/eufysecurity.js deleted file mode 100644 index 437f4312..00000000 --- a/build/eufysecurity.js +++ /dev/null @@ -1,2634 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EufySecurity = void 0; -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const fse = __importStar(require("fs-extra")); -const path = __importStar(require("path")); -const events_1 = __importDefault(require("events")); -const api_1 = require("./http/api"); -const station_1 = require("./http/station"); -const types_1 = require("./http/types"); -const service_1 = require("./push/service"); -const device_1 = require("./http/device"); -const types_2 = require("./p2p/types"); -const utils_1 = require("./utils"); -const error_1 = require("./error"); -const _1 = require("."); -const error_2 = require("./http/error"); -const types_3 = require("./push/types"); -const service_2 = require("./mqtt/service"); -const const_1 = require("./http/const"); -const utils_2 = require("./http/utils"); -const logging_1 = require("./logging"); -const typescript_logging_1 = require("typescript-logging"); -const utils_3 = require("./p2p/utils"); -class EufySecurity extends tiny_typed_emitter_1.TypedEmitter { - config; - api; - houses = {}; - stations = {}; - devices = {}; - P2P_REFRESH_INTERVAL_MIN = 720; - cameraMaxLivestreamSeconds = 30; - cameraStationLivestreamTimeout = new Map(); - pushService; - mqttService; - pushCloudRegistered = false; - pushCloudChecked = false; - persistentFile; - persistentData = { - country: "", - openudid: "", - serial_number: "", - push_credentials: undefined, - push_persistentIds: [], - login_hash: "", - version: "", - httpApi: undefined - }; - connected = false; - retries = 0; - refreshEufySecurityCloudTimeout; - refreshEufySecurityP2PTimeout = {}; - deviceSnoozeTimeout = {}; - loadingEmitter = new events_1.default(); - stationsLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "stations loaded"); - devicesLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "devices loaded"); - constructor(config, log = logging_1.dummyLogger) { - super(); - this.config = config; - logging_1.InternalLogger.logger = log; - } - static async initialize(config, log = logging_1.dummyLogger) { - const eufySecurity = new EufySecurity(config, log); - await eufySecurity._initializeInternals(); - return eufySecurity; - } - async _initializeInternals() { - if (this.config.logging) { - if (this.config.logging.level !== undefined && typeof this.config.logging.level === "number" && Object.values(typescript_logging_1.LogLevel).includes(this.config.logging.level)) - (0, logging_1.setLoggingLevel)("all", this.config.logging.level); - if (this.config.logging.categories !== undefined && Array.isArray(this.config.logging.categories)) { - for (const category of this.config.logging.categories) { - if (typeof category === "object" && - "category" in category && - "level" in category && - typeof category.level === "number" && - Object.values(typescript_logging_1.LogLevel).includes(category.level) && - typeof category.category === "string" && - ["main", "http", "p2p", "push", "mqtt"].includes(category.category.toLowerCase())) { - (0, logging_1.setLoggingLevel)(category.category.toLocaleLowerCase(), category.level); - } - } - } - } - if (this.config.country === undefined) { - this.config.country = "US"; - } - else { - this.config.country = this.config.country.toUpperCase(); - } - if (this.config.language === undefined) { - this.config.language = "en"; - } - if (this.config.eventDurationSeconds === undefined) { - this.config.eventDurationSeconds = 10; - } - if (this.config.p2pConnectionSetup === undefined) { - this.config.p2pConnectionSetup = types_2.P2PConnectionType.QUICKEST; - } - else if (!Object.values(types_2.P2PConnectionType).includes(this.config.p2pConnectionSetup)) { - this.config.p2pConnectionSetup = types_2.P2PConnectionType.QUICKEST; - } - if (this.config.pollingIntervalMinutes === undefined) { - this.config.pollingIntervalMinutes = 10; - } - if (this.config.acceptInvitations === undefined) { - this.config.acceptInvitations = false; - } - if (this.config.enableEmbeddedPKCS1Support === undefined) { - this.config.enableEmbeddedPKCS1Support = false; - } - if (this.config.deviceConfig === undefined) { - this.config.deviceConfig = { - simultaneousDetections: true - }; - } - if (this.config.persistentDir === undefined) { - this.config.persistentDir = path.resolve(__dirname, "../../.."); - } - else if (!fse.existsSync(this.config.persistentDir)) { - this.config.persistentDir = path.resolve(__dirname, "../../.."); - } - if (this.config.persistentData) { - this.persistentData = JSON.parse(this.config.persistentData); - } - else { - this.persistentFile = path.join(this.config.persistentDir, "persistent.json"); - } - try { - if (!this.config.persistentData && fse.statSync(this.persistentFile).isFile()) { - const fileContent = fse.readFileSync(this.persistentFile, "utf8"); - this.persistentData = JSON.parse(fileContent); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.debug("No stored data from last exit found", { error: (0, utils_1.getError)(error) }); - } - logging_1.rootMainLogger.debug("Loaded persistent data", { persistentData: this.persistentData }); - try { - if (this.persistentData.version !== _1.libVersion) { - const currentVersion = Number.parseFloat((0, utils_1.removeLastChar)(_1.libVersion, ".")); - const previousVersion = this.persistentData.version !== "" && this.persistentData.version !== undefined ? Number.parseFloat((0, utils_1.removeLastChar)(this.persistentData.version, ".")) : 0; - logging_1.rootMainLogger.debug("Handling of driver update", { currentVersion: currentVersion, previousVersion: previousVersion }); - if (previousVersion < currentVersion) { - this.persistentData = (0, utils_1.handleUpdate)(this.persistentData, previousVersion); - this.persistentData.version = _1.libVersion; - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Handling update - Error", { error: (0, utils_1.getError)(error) }); - } - if (this.config.trustedDeviceName === undefined || this.config.trustedDeviceName === "") { - if (this.persistentData.fallbackTrustedDeviceName !== undefined) { - this.config.trustedDeviceName = this.persistentData.fallbackTrustedDeviceName; - } - else { - const rnd = (0, utils_2.randomNumber)(0, const_1.PhoneModels.length); - this.persistentData.fallbackTrustedDeviceName = const_1.PhoneModels[rnd]; - this.config.trustedDeviceName = this.persistentData.fallbackTrustedDeviceName; - } - } - if (this.persistentData.login_hash && this.persistentData.login_hash != "") { - logging_1.rootMainLogger.debug("Load previous login_hash", { login_hash: this.persistentData.login_hash }); - if ((0, utils_1.md5)(`${this.config.username}:${this.config.password}`) != this.persistentData.login_hash) { - logging_1.rootMainLogger.info("Authentication properties changed, invalidate saved cloud token."); - this.persistentData.cloud_token = ""; - this.persistentData.cloud_token_expiration = 0; - this.persistentData.httpApi = undefined; - } - } - else { - this.persistentData.cloud_token = ""; - this.persistentData.cloud_token_expiration = 0; - this.persistentData.httpApi = undefined; - } - if (this.persistentData.country !== undefined && this.persistentData.country !== "" && this.persistentData.country !== this.config.country) { - logging_1.rootMainLogger.info("Country property changed, invalidate saved cloud token."); - this.persistentData.cloud_token = ""; - this.persistentData.cloud_token_expiration = 0; - this.persistentData.httpApi = undefined; - } - if (this.persistentData.httpApi !== undefined && (this.persistentData.httpApi.clientPrivateKey === undefined || this.persistentData.httpApi.clientPrivateKey === "" || this.persistentData.httpApi.serverPublicKey === undefined || this.persistentData.httpApi.serverPublicKey === "")) { - logging_1.rootMainLogger.debug("Incomplete persistent data for v2 encrypted cloud api communication. Invalidate authenticated session data."); - this.persistentData.cloud_token = ""; - this.persistentData.cloud_token_expiration = 0; - this.persistentData.httpApi = undefined; - } - this.api = await api_1.HTTPApi.initialize(this.config.country, this.config.username, this.config.password, this.persistentData.httpApi); - this.api.setLanguage(this.config.language); - this.api.setPhoneModel(this.config.trustedDeviceName); - this.api.on("houses", (houses) => this.handleHouses(houses)); - this.api.on("hubs", (hubs) => this.handleHubs(hubs)); - this.api.on("devices", (devices) => this.handleDevices(devices)); - this.api.on("close", () => this.onAPIClose()); - this.api.on("connect", () => this.onAPIConnect()); - this.api.on("captcha request", (id, captcha) => this.onCaptchaRequest(id, captcha)); - this.api.on("auth token invalidated", () => this.onAuthTokenInvalidated()); - this.api.on("tfa request", () => this.onTfaRequest()); - this.api.on("connection error", (error) => this.onAPIConnectionError(error)); - if (this.persistentData.cloud_token && this.persistentData.cloud_token != "" && this.persistentData.cloud_token_expiration) { - logging_1.rootMainLogger.debug("Load previous token", { token: this.persistentData.cloud_token, tokenExpiration: this.persistentData.cloud_token_expiration, persistentHttpApi: this.persistentData.httpApi }); - this.api.setToken(this.persistentData.cloud_token); - this.api.setTokenExpiration(new Date(this.persistentData.cloud_token_expiration)); - } - if (!this.persistentData.openudid || this.persistentData.openudid == "") { - this.persistentData.openudid = (0, utils_1.generateUDID)(); - logging_1.rootMainLogger.debug("Generated new openudid", { openudid: this.persistentData.openudid }); - } - this.api.setOpenUDID(this.persistentData.openudid); - if (!this.persistentData.serial_number || this.persistentData.serial_number == "") { - this.persistentData.serial_number = (0, utils_1.generateSerialnumber)(12); - logging_1.rootMainLogger.debug("Generated new serial_number", { serialnumber: this.persistentData.serial_number }); - } - this.api.setSerialNumber(this.persistentData.serial_number); - this.pushService = await service_1.PushNotificationService.initialize(); - this.pushService.on("connect", async (token) => { - this.pushCloudRegistered = await this.api.registerPushToken(token); - this.pushCloudChecked = await this.api.checkPushToken(); - //TODO: Retry if failed with max retry to not lock account - if (this.pushCloudRegistered && this.pushCloudChecked) { - logging_1.rootMainLogger.info("Push notification connection successfully established"); - this.emit("push connect"); - } - else { - logging_1.rootMainLogger.info("Push notification connection closed"); - this.emit("push close"); - } - }); - this.pushService.on("credential", (credentials) => { - this.savePushCredentials(credentials); - }); - this.pushService.on("message", (message) => this.onPushMessage(message)); - this.pushService.on("close", () => { - logging_1.rootMainLogger.info("Push notification connection closed"); - this.emit("push close"); - }); - await this.initMQTT(); - } - async initMQTT() { - this.mqttService = await service_2.MQTTService.init(); - this.mqttService.on("connect", () => { - logging_1.rootMainLogger.info("MQTT connection successfully established"); - this.emit("mqtt connect"); - }); - this.mqttService.on("close", () => { - logging_1.rootMainLogger.info("MQTT connection closed"); - this.emit("mqtt close"); - }); - this.mqttService.on("lock message", (message) => { - this.getDevice(message.data.data.deviceSn).then((device) => { - device.processMQTTNotification(message.data.data, this.config.eventDurationSeconds); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - if (!(error instanceof error_1.DeviceNotFoundError)) { - logging_1.rootMainLogger.error("Lock MQTT Message Error", { error: (0, utils_1.getError)(error) }); - } - }).finally(() => { - this.emit("mqtt lock message", message); - }); - }); - } - setLoggingLevel(category, level) { - if (typeof level === "number" && - Object.values(typescript_logging_1.LogLevel).includes(level) && - typeof category === "string" && - ["all", "main", "http", "p2p", "push", "mqtt"].includes(category.toLowerCase())) { - (0, logging_1.setLoggingLevel)(category, level); - } - } - getLoggingLevel(category) { - if (typeof category === "string" && - ["all", "main", "http", "p2p", "push", "mqtt"].includes(category.toLowerCase())) { - return (0, logging_1.getLoggingLevel)(category); - } - return -1; - } - setInternalLogger(logger) { - logging_1.InternalLogger.logger = logger; - } - getInternalLogger() { - return logging_1.InternalLogger.logger; - } - getPushService() { - return this.pushService; - } - addStation(station) { - const serial = station.getSerial(); - if (serial && !Object.keys(this.stations).includes(serial)) { - this.stations[serial] = station; - this.emit("station added", station); - } - else { - logging_1.rootMainLogger.debug(`Station with this serial ${station.getSerial()} exists already and couldn't be added again!`); - } - } - removeStation(station) { - const serial = station.getSerial(); - if (serial && Object.keys(this.stations).includes(serial)) { - delete this.stations[serial]; - station.removeAllListeners(); - if (station.isConnected()) - station.close(); - this.emit("station removed", station); - } - else { - logging_1.rootMainLogger.debug(`Station with this serial ${station.getSerial()} doesn't exists and couldn't be removed!`); - } - } - async updateStation(hub) { - if (this.stationsLoaded) - await this.stationsLoaded; - if (Object.keys(this.stations).includes(hub.station_sn)) { - this.stations[hub.station_sn].update(hub); - if (!this.stations[hub.station_sn].isConnected() && !this.stations[hub.station_sn].isEnergySavingDevice() && this.stations[hub.station_sn].isP2PConnectableDevice()) { - this.stations[hub.station_sn].setConnectionType(this.config.p2pConnectionSetup); - logging_1.rootMainLogger.debug(`Updating station cloud data - initiate station connection to get local data over p2p`, { stationSN: hub.station_sn }); - this.stations[hub.station_sn].connect(); - } - } - else { - logging_1.rootMainLogger.debug(`Station with this serial ${hub.station_sn} doesn't exists and couldn't be updated!`); - } - } - addDevice(device) { - const serial = device.getSerial(); - if (serial && !Object.keys(this.devices).includes(serial)) { - this.devices[serial] = device; - this.emit("device added", device); - if (device.isLock()) - this.mqttService.subscribeLock(device.getSerial()); - } - else { - logging_1.rootMainLogger.debug(`Device with this serial ${device.getSerial()} exists already and couldn't be added again!`); - } - } - removeDevice(device) { - const serial = device.getSerial(); - if (serial && Object.keys(this.devices).includes(serial)) { - delete this.devices[serial]; - device.removeAllListeners(); - this.emit("device removed", device); - } - else { - logging_1.rootMainLogger.debug(`Device with this serial ${device.getSerial()} doesn't exists and couldn't be removed!`); - } - } - async updateDevice(device) { - if (this.devicesLoaded) - await this.devicesLoaded; - if (Object.keys(this.devices).includes(device.device_sn)) - this.devices[device.device_sn].update(device); - else - logging_1.rootMainLogger.debug(`Device with this serial ${device.device_sn} doesn't exists and couldn't be updated!`); - } - async getDevices() { - if (this.devicesLoaded) - await this.devicesLoaded; - const arr = []; - Object.keys(this.devices).forEach((serialNumber) => { - arr.push(this.devices[serialNumber]); - }); - return arr; - } - async getDevicesFromStation(stationSN) { - if (this.devicesLoaded) - await this.devicesLoaded; - const arr = []; - Object.keys(this.devices).forEach((serialNumber) => { - if (this.devices[serialNumber].getStationSerial() === stationSN) - arr.push(this.devices[serialNumber]); - }); - return arr; - } - async getDevice(deviceSN) { - if (this.devicesLoaded) - await this.devicesLoaded; - if (Object.keys(this.devices).includes(deviceSN)) - return this.devices[deviceSN]; - throw new error_1.DeviceNotFoundError("Device doesn't exists", { context: { device: deviceSN } }); - } - async getStationDevice(stationSN, channel) { - if (this.devicesLoaded) - await this.devicesLoaded; - for (const device of Object.values(this.devices)) { - if ((device.getStationSerial() === stationSN && device.getChannel() === channel) || (device.getStationSerial() === stationSN && device.getSerial() === stationSN)) { - return device; - } - } - throw new error_1.DeviceNotFoundError("No device with passed channel found on station", { context: { station: stationSN, channel: channel } }); - } - async getStations() { - if (this.stationsLoaded) - await this.stationsLoaded; - const arr = []; - Object.keys(this.stations).forEach((serialNumber) => { - arr.push(this.stations[serialNumber]); - }); - return arr; - } - async getStation(stationSN) { - if (this.stationsLoaded) - await this.stationsLoaded; - if (Object.keys(this.stations).includes(stationSN)) - return this.stations[stationSN]; - throw new error_1.StationNotFoundError("Station doesn't exists", { context: { station: stationSN } }); - } - getApi() { - return this.api; - } - async connectToStation(stationSN, p2pConnectionType = types_2.P2PConnectionType.QUICKEST) { - const station = await this.getStation(stationSN); - if (station.isP2PConnectableDevice()) { - station.setConnectionType(p2pConnectionType); - logging_1.rootMainLogger.debug(`Explicit request for p2p connection to the station`, { stationSN: station.getSerial() }); - await station.connect(); - } - } - async isStationConnected(stationSN) { - const station = await this.getStation(stationSN); - return station.isConnected(); - } - async isStationEnergySavingDevice(stationSN) { - const station = await this.getStation(stationSN); - return station.isEnergySavingDevice(); - } - handleHouses(houses) { - logging_1.rootMainLogger.debug("Got houses", { houses: houses }); - //TODO: Finish implementation - this.houses = houses; - } - handleHubs(hubs) { - logging_1.rootMainLogger.debug("Got hubs", { hubs: hubs }); - const stationsSNs = Object.keys(this.stations); - const newStationsSNs = Object.keys(hubs); - const promises = []; - for (const hub of Object.values(hubs)) { - if (stationsSNs.includes(hub.station_sn)) { - this.updateStation(hub); - } - else { - if (this.stationsLoaded === undefined) - this.stationsLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "stations loaded"); - let ipAddress; - if (this.config.stationIPAddresses !== undefined) { - ipAddress = this.config.stationIPAddresses[hub.station_sn]; - } - const station = station_1.Station.getInstance(this.api, hub, ipAddress, 0, this.config.enableEmbeddedPKCS1Support); - promises.push(station.then((station) => { - try { - station.on("connect", (station) => this.onStationConnect(station)); - station.on("connection error", (station, error) => this.onStationConnectionError(station, error)); - station.on("close", (station) => this.onStationClose(station)); - station.on("raw device property changed", (deviceSN, params) => this.updateDeviceProperties(deviceSN, params)); - station.on("livestream start", (station, channel, metadata, videostream, audiostream) => this.onStartStationLivestream(station, channel, metadata, videostream, audiostream)); - station.on("livestream stop", (station, channel) => this.onStopStationLivestream(station, channel)); - station.on("livestream error", (station, channel, error) => this.onErrorStationLivestream(station, channel, error)); - station.on("download start", (station, channel, metadata, videoStream, audioStream) => this.onStationStartDownload(station, channel, metadata, videoStream, audioStream)); - station.on("download finish", (station, channel) => this.onStationFinishDownload(station, channel)); - station.on("command result", (station, result) => this.onStationCommandResult(station, result)); - station.on("guard mode", (station, guardMode) => this.onStationGuardMode(station, guardMode)); - station.on("current mode", (station, currentMode) => this.onStationCurrentMode(station, currentMode)); - station.on("rtsp livestream start", (station, channel) => this.onStartStationRTSPLivestream(station, channel)); - station.on("rtsp livestream stop", (station, channel) => this.onStopStationRTSPLivestream(station, channel)); - station.on("rtsp url", (station, channel, value) => this.onStationRtspUrl(station, channel, value)); - station.on("property changed", (station, name, value, ready) => this.onStationPropertyChanged(station, name, value, ready)); - station.on("raw property changed", (station, type, value) => this.onStationRawPropertyChanged(station, type, value)); - station.on("alarm event", (station, alarmEvent) => this.onStationAlarmEvent(station, alarmEvent)); - station.on("runtime state", (station, channel, batteryLevel, temperature) => this.onStationRuntimeState(station, channel, batteryLevel, temperature)); - station.on("charging state", (station, channel, chargeType, batteryLevel) => this.onStationChargingState(station, channel, chargeType, batteryLevel)); - station.on("wifi rssi", (station, channel, rssi) => this.onStationWifiRssi(station, channel, rssi)); - station.on("floodlight manual switch", (station, channel, enabled) => this.onFloodlightManualSwitch(station, channel, enabled)); - station.on("alarm delay event", (station, alarmDelayEvent, alarmDelay) => this.onStationAlarmDelayEvent(station, alarmDelayEvent, alarmDelay)); - station.on("talkback started", (station, channel, talkbackStream) => this.onStationTalkbackStart(station, channel, talkbackStream)); - station.on("talkback stopped", (station, channel) => this.onStationTalkbackStop(station, channel)); - station.on("talkback error", (station, channel, error) => this.onStationTalkbackError(station, channel, error)); - station.on("alarm armed event", (station) => this.onStationAlarmArmedEvent(station)); - station.on("alarm arm delay event", (station, armDelay) => this.onStationArmDelayEvent(station, armDelay)); - station.on("secondary command result", (station, result) => this.onStationSecondaryCommandResult(station, result)); - station.on("device shake alarm", (deviceSN, event) => this.onStationDeviceShakeAlarm(deviceSN, event)); - station.on("device 911 alarm", (deviceSN, event) => this.onStationDevice911Alarm(deviceSN, event)); - station.on("device jammed", (deviceSN) => this.onStationDeviceJammed(deviceSN)); - station.on("device low battery", (deviceSN) => this.onStationDeviceLowBattery(deviceSN)); - station.on("device wrong try-protect alarm", (deviceSN) => this.onStationDeviceWrongTryProtectAlarm(deviceSN)); - station.on("device pin verified", (deviceSN, successfull) => this.onStationDevicePinVerified(deviceSN, successfull)); - station.on("sd info ex", (station, sdStatus, sdCapacity, sdCapacityAvailable) => this.onStationSdInfoEx(station, sdStatus, sdCapacity, sdCapacityAvailable)); - station.on("image download", (station, file, image) => this.onStationImageDownload(station, file, image)); - station.on("database query latest", (station, returnCode, data) => this.onStationDatabaseQueryLatest(station, returnCode, data)); - station.on("database query local", (station, returnCode, data) => this.onStationDatabaseQueryLocal(station, returnCode, data)); - station.on("database count by date", (station, returnCode, data) => this.onStationDatabaseCountByDate(station, returnCode, data)); - station.on("database delete", (station, returnCode, failedIds) => this.onStationDatabaseDelete(station, returnCode, failedIds)); - station.on("sensor status", (station, channel, status) => this.onStationSensorStatus(station, channel, status)); - station.on("garage door status", (station, channel, doorId, status) => this.onStationGarageDoorStatus(station, channel, doorId, status)); - station.on("storage info hb3", (station, channel, storageInfo) => this.onStorageInfoHb3(station, channel, storageInfo)); - this.addStation(station); - station.initialize(); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("HandleHubs Error", { error: (0, utils_1.getError)(error), stationSN: station.getSerial() }); - } - return station; - })); - } - } - Promise.all(promises).then(() => { - this.loadingEmitter.emit("stations loaded"); - this.stationsLoaded = undefined; - }); - if (promises.length === 0) { - this.loadingEmitter.emit("stations loaded"); - this.stationsLoaded = undefined; - } - for (const stationSN of stationsSNs) { - if (!newStationsSNs.includes(stationSN)) { - this.getStation(stationSN).then((station) => { - this.removeStation(station); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error removing station", { error: (0, utils_1.getError)(error), stationSN: stationSN }); - }); - } - } - } - refreshP2PData(station) { - if (station.isStation() || (device_1.Device.isCamera(station.getDeviceType()) && !device_1.Device.isWiredDoorbell(station.getDeviceType()) || device_1.Device.isSmartSafe(station.getDeviceType()))) { - station.getCameraInfo(); - } - if (device_1.Device.isLock(station.getDeviceType())) { - station.getLockParameters(); - station.getLockStatus(); - } - if (station.isStation() || (station.hasProperty(types_1.PropertyName.StationSdStatus) && station.getPropertyValue(types_1.PropertyName.StationSdStatus) !== types_2.TFCardStatus.REMOVE)) { - station.getStorageInfoEx(); - } - } - onStationConnect(station) { - this.emit("station connect", station); - this.refreshP2PData(station); - if (this.refreshEufySecurityP2PTimeout[station.getSerial()] !== undefined) { - clearTimeout(this.refreshEufySecurityP2PTimeout[station.getSerial()]); - delete this.refreshEufySecurityP2PTimeout[station.getSerial()]; - } - this.refreshEufySecurityP2PTimeout[station.getSerial()] = setTimeout(() => { - this.refreshP2PData(station); - }, this.P2P_REFRESH_INTERVAL_MIN * 60 * 1000); - } - onStationConnectionError(station, error) { - this.emit("station connection error", station, error); - } - onStationClose(station) { - this.emit("station close", station); - for (const device_sn of this.cameraStationLivestreamTimeout.keys()) { - this.getDevice(device_sn).then((device) => { - if (device !== null && device.getStationSerial() === station.getSerial()) { - clearTimeout(this.cameraStationLivestreamTimeout.get(device_sn)); - this.cameraStationLivestreamTimeout.delete(device_sn); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station close Error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial() }); - }); - } - } - handleDevices(devices) { - logging_1.rootMainLogger.debug("Got devices", { devices: devices }); - const deviceSNs = Object.keys(this.devices); - const newDeviceSNs = Object.keys(devices); - const promises = []; - const deviceConfig = this.config.deviceConfig; - for (const device of Object.values(devices)) { - if (deviceSNs.includes(device.device_sn)) { - this.updateDevice(device); - } - else { - if (this.devicesLoaded === undefined) - this.devicesLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "devices loaded"); - let new_device; - if (device_1.Device.isIndoorCamera(device.device_type)) { - new_device = device_1.IndoorCamera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isSoloCameras(device.device_type)) { - new_device = device_1.SoloCamera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isLockWifiVideo(device.device_type)) { - new_device = device_1.DoorbellLock.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isBatteryDoorbell(device.device_type)) { - new_device = device_1.BatteryDoorbellCamera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isWiredDoorbell(device.device_type) || device_1.Device.isWiredDoorbellDual(device.device_type)) { - new_device = device_1.WiredDoorbellCamera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isFloodLight(device.device_type)) { - new_device = device_1.FloodlightCamera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isWallLightCam(device.device_type)) { - new_device = device_1.WallLightCam.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isGarageCamera(device.device_type)) { - new_device = device_1.GarageCamera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isSmartDrop(device.device_type)) { - new_device = device_1.SmartDrop.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isCamera(device.device_type)) { - new_device = device_1.Camera.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isLock(device.device_type)) { - new_device = device_1.Lock.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isMotionSensor(device.device_type)) { - new_device = device_1.MotionSensor.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isEntrySensor(device.device_type)) { - new_device = device_1.EntrySensor.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isKeyPad(device.device_type)) { - new_device = device_1.Keypad.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isSmartSafe(device.device_type)) { - new_device = device_1.SmartSafe.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isSmartTrack(device.device_type)) { - new_device = device_1.Tracker.getInstance(this.api, device, deviceConfig); - } - else if (device_1.Device.isLockKeypad(device.device_type)) { - new_device = device_1.LockKeypad.getInstance(this.api, device, deviceConfig); - } - else { - new_device = device_1.UnknownDevice.getInstance(this.api, device, deviceConfig); - } - promises.push(new_device.then((device) => { - try { - device.on("property changed", (device, name, value, ready) => this.onDevicePropertyChanged(device, name, value, ready)); - device.on("raw property changed", (device, type, value) => this.onDeviceRawPropertyChanged(device, type, value)); - device.on("crying detected", (device, state) => this.onDeviceCryingDetected(device, state)); - device.on("sound detected", (device, state) => this.onDeviceSoundDetected(device, state)); - device.on("pet detected", (device, state) => this.onDevicePetDetected(device, state)); - device.on("vehicle detected", (device, state) => this.onDeviceVehicleDetected(device, state)); - device.on("motion detected", (device, state) => this.onDeviceMotionDetected(device, state)); - device.on("person detected", (device, state, person) => this.onDevicePersonDetected(device, state, person)); - device.on("rings", (device, state) => this.onDeviceRings(device, state)); - device.on("locked", (device, state) => this.onDeviceLocked(device, state)); - device.on("open", (device, state) => this.onDeviceOpen(device, state)); - device.on("ready", (device) => this.onDeviceReady(device)); - device.on("package delivered", (device, state) => this.onDevicePackageDelivered(device, state)); - device.on("package stranded", (device, state) => this.onDevicePackageStranded(device, state)); - device.on("package taken", (device, state) => this.onDevicePackageTaken(device, state)); - device.on("someone loitering", (device, state) => this.onDeviceSomeoneLoitering(device, state)); - device.on("radar motion detected", (device, state) => this.onDeviceRadarMotionDetected(device, state)); - device.on("911 alarm", (device, state, detail) => this.onDevice911Alarm(device, state, detail)); - device.on("shake alarm", (device, state, detail) => this.onDeviceShakeAlarm(device, state, detail)); - device.on("wrong try-protect alarm", (device, state) => this.onDeviceWrongTryProtectAlarm(device, state)); - device.on("long time not close", (device, state) => this.onDeviceLongTimeNotClose(device, state)); - device.on("low battery", (device, state) => this.onDeviceLowBattery(device, state)); - device.on("jammed", (device, state) => this.onDeviceJammed(device, state)); - device.on("stranger person detected", (device, state) => this.onDeviceStrangerPersonDetected(device, state)); - device.on("dog detected", (device, state) => this.onDeviceDogDetected(device, state)); - device.on("dog lick detected", (device, state) => this.onDeviceDogLickDetected(device, state)); - device.on("dog poop detected", (device, state) => this.onDeviceDogPoopDetected(device, state)); - device.on("tampering", (device, state) => this.onDeviceTampering(device, state)); - device.on("low temperature", (device, state) => this.onDeviceLowTemperature(device, state)); - device.on("high temperature", (device, state) => this.onDeviceHighTemperature(device, state)); - device.on("pin incorrect", (device, state) => this.onDevicePinIncorrect(device, state)); - device.on("lid stuck", (device, state) => this.onDeviceLidStuck(device, state)); - device.on("battery fully charged", (device, state) => this.onDeviceBatteryFullyCharged(device, state)); - this.addDevice(device); - device.initialize(); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("HandleDevices Error", { error: (0, utils_1.getError)(error), deviceSN: device.getSerial() }); - } - return device; - })); - } - } - Promise.all(promises).then((devices) => { - devices.forEach((device) => { - this.getStation(device.getStationSerial()).then((station) => { - if (!station.isConnected() && station.isP2PConnectableDevice()) { - station.setConnectionType(this.config.p2pConnectionSetup); - logging_1.rootMainLogger.debug(`Initiate first station connection to get data over p2p`, { stationSN: station.getSerial() }); - station.connect(); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error trying to connect to station afte device loaded", { error: (0, utils_1.getError)(error), deviceSN: device.getSerial() }); - }); - }); - this.loadingEmitter.emit("devices loaded"); - this.devicesLoaded = undefined; - }); - if (promises.length === 0) { - this.loadingEmitter.emit("devices loaded"); - this.devicesLoaded = undefined; - } - for (const deviceSN of deviceSNs) { - if (!newDeviceSNs.includes(deviceSN)) { - this.getDevice(deviceSN).then((device) => { - this.removeDevice(device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error removing device", { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); - }); - } - } - } - async refreshCloudData() { - if (this.config.acceptInvitations) { - await this.processInvitations().catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error in processing invitations", { error: (0, utils_1.getError)(error) }); - }); - } - await this.api.refreshAllData().catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error during API data refreshing", { error: (0, utils_1.getError)(error) }); - }); - if (this.refreshEufySecurityCloudTimeout !== undefined) - clearTimeout(this.refreshEufySecurityCloudTimeout); - if (this.config.pollingIntervalMinutes > 0) - this.refreshEufySecurityCloudTimeout = setTimeout(() => { this.refreshCloudData(); }, this.config.pollingIntervalMinutes * 60 * 1000); - else - logging_1.rootMainLogger.info(`Automatic retrieval of data from the cloud has been deactivated (config pollingIntervalMinutes: ${this.config.pollingIntervalMinutes})`); - } - close() { - for (const device_sn of this.cameraStationLivestreamTimeout.keys()) { - this.stopStationLivestream(device_sn); - } - if (this.refreshEufySecurityCloudTimeout !== undefined) - clearTimeout(this.refreshEufySecurityCloudTimeout); - Object.keys(this.refreshEufySecurityP2PTimeout).forEach(station_sn => { - clearTimeout(this.refreshEufySecurityP2PTimeout[station_sn]); - delete this.refreshEufySecurityP2PTimeout[station_sn]; - }); - Object.keys(this.deviceSnoozeTimeout).forEach(device_sn => { - clearTimeout(this.deviceSnoozeTimeout[device_sn]); - delete this.deviceSnoozeTimeout[device_sn]; - }); - this.savePushPersistentIds(); - this.pushService.close(); - this.mqttService.close(); - Object.values(this.stations).forEach(station => { - station.close(); - }); - Object.values(this.devices).forEach(device => { - device.destroy(); - }); - if (this.connected) - this.emit("close"); - this.connected = false; - } - setCameraMaxLivestreamDuration(seconds) { - this.cameraMaxLivestreamSeconds = seconds; - } - getCameraMaxLivestreamDuration() { - return this.cameraMaxLivestreamSeconds; - } - async registerPushNotifications(credentials, persistentIds) { - if (credentials) - this.pushService.setCredentials(credentials); - if (persistentIds) - this.pushService.setPersistentIds(persistentIds); - this.pushService.open(); - } - async connect(options) { - await this.api.login(options) - .then(async () => { - if (options?.verifyCode) { - let trusted = false; - const trusted_devices = await this.api.listTrustDevice(); - trusted_devices.forEach(trusted_device => { - if (trusted_device.is_current_device === 1) { - trusted = true; - } - }); - if (!trusted) - return await this.api.addTrustDevice(options?.verifyCode); - } - }) - .catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Connect Error", { error: (0, utils_1.getError)(error), options: options }); - }); - } - getPushPersistentIds() { - return this.pushService.getPersistentIds(); - } - updateDeviceProperties(deviceSN, values) { - this.getDevice(deviceSN).then((device) => { - device.updateRawProperties(values); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Update device properties error", { error: (0, utils_1.getError)(error), deviceSN: deviceSN, values: values }); - }); - } - async onAPIClose() { - if (this.refreshEufySecurityCloudTimeout !== undefined) - clearTimeout(this.refreshEufySecurityCloudTimeout); - this.connected = false; - this.emit("close"); - if (this.retries < 3) { - this.retries++; - await this.connect(); - } - else { - logging_1.rootMainLogger.error(`Tried to re-authenticate to Eufy cloud, but failed in the process. Manual intervention is required!`); - } - } - async onAPIConnect() { - this.connected = true; - this.retries = 0; - this.saveCloudToken(); - await this.refreshCloudData(); - this.emit("connect"); - this.registerPushNotifications(this.persistentData.push_credentials, this.persistentData.push_persistentIds); - const loginData = this.api.getPersistentData(); - if (loginData) { - this.mqttService.connect(loginData.user_id, this.persistentData.openudid, this.api.getAPIBase(), loginData.email); - } - else { - logging_1.rootMainLogger.warn("No login data recevied to initialize MQTT connection..."); - } - } - onAPIConnectionError(error) { - this.emit("connection error", error); - } - async startStationLivestream(deviceSN) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceStartLivestream)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStartLivestream } }); - const camera = device; - if (!station.isLiveStreaming(camera)) { - station.startLivestream(camera); - if (this.cameraMaxLivestreamSeconds > 0) { - this.cameraStationLivestreamTimeout.set(deviceSN, setTimeout(() => { - logging_1.rootMainLogger.info(`Stopping the station stream for the device ${deviceSN}, because we have reached the configured maximum stream timeout (${this.cameraMaxLivestreamSeconds} seconds)`); - this.stopStationLivestream(deviceSN); - }, this.cameraMaxLivestreamSeconds * 1000)); - } - } - else { - logging_1.rootMainLogger.warn(`The station stream for the device ${deviceSN} cannot be started, because it is already streaming!`); - } - } - async stopStationLivestream(deviceSN) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceStopLivestream)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStopLivestream } }); - if (station.isConnected() && station.isLiveStreaming(device)) { - station.stopLivestream(device); - } - else { - logging_1.rootMainLogger.warn(`The station stream for the device ${deviceSN} cannot be stopped, because it isn't streaming!`); - } - const timeout = this.cameraStationLivestreamTimeout.get(deviceSN); - if (timeout) { - clearTimeout(timeout); - this.cameraStationLivestreamTimeout.delete(deviceSN); - } - } - writePersistentData() { - this.persistentData.login_hash = (0, utils_1.md5)(`${this.config.username}:${this.config.password}`); - if (this.api.isConnected()) { - this.persistentData.httpApi = this.api?.getPersistentData(); - this.persistentData.country = this.api?.getCountry(); - } - try { - if (this.config.persistentData) { - this.emit("persistent data", JSON.stringify(this.persistentData)); - } - else { - fse.writeFileSync(this.persistentFile, JSON.stringify(this.persistentData)); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("WritePersistentData Error", { error: (0, utils_1.getError)(error) }); - } - } - saveCloudToken() { - const token = this.api.getToken(); - const token_expiration = this.api.getTokenExpiration(); - if (!!token && !!token_expiration) { - logging_1.rootMainLogger.debug("Save cloud token and token expiration", { token: token, tokenExpiration: token_expiration }); - this.persistentData.cloud_token = token; - this.persistentData.cloud_token_expiration = token_expiration.getTime(); - this.writePersistentData(); - } - } - savePushCredentials(credentials) { - this.persistentData.push_credentials = credentials; - this.writePersistentData(); - } - savePushPersistentIds() { - this.persistentData.push_persistentIds = this.getPushPersistentIds(); - this.writePersistentData(); - } - getVersion() { - return _1.libVersion; - } - isPushConnected() { - return this.pushService.isConnected(); - } - isMQTTConnected() { - return this.mqttService.isConnected(); - } - isConnected() { - return this.connected; - } - async processInvitations() { - let refreshCloud = false; - const invites = await this.api.getInvites().catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error getting invites from cloud", { error: (0, utils_1.getError)(error) }); - return error; - }); - if (Object.keys(invites).length > 0) { - const confirmInvites = []; - for (const invite of Object.values(invites)) { - const devices = []; - invite.devices.forEach(device => { - devices.push(device.device_sn); - }); - if (devices.length > 0) { - confirmInvites.push({ - invite_id: invite.invite_id, - station_sn: invite.station_sn, - device_sns: devices - }); - } - } - if (confirmInvites.length > 0) { - const result = await this.api.confirmInvites(confirmInvites).catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error in confirmation of invitations", { error: (0, utils_1.getError)(error), confirmInvites: confirmInvites }); - return error; - }); - if (result) { - logging_1.rootMainLogger.info(`Accepted received invitations`, confirmInvites); - refreshCloud = true; - } - } - } - const houseInvites = await this.api.getHouseInviteList().catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error getting house invites from cloud", { error: (0, utils_1.getError)(error) }); - return error; - }); - if (Object.keys(houseInvites).length > 0) { - for (const invite of Object.values(houseInvites)) { - const result = await this.api.confirmHouseInvite(invite.house_id, invite.id).catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error in confirmation of house invitations", { error: (0, utils_1.getError)(error) }); - return error; - }); - if (result) { - logging_1.rootMainLogger.info(`Accepted received house invitation from ${invite.action_user_email}`, { invite: invite }); - refreshCloud = true; - } - } - } - if (refreshCloud) - this.refreshCloudData(); - } - onPushMessage(message) { - this.emit("push message", message); - try { - logging_1.rootMainLogger.debug("Received push message", { message: message }); - try { - if ((message.type === types_3.ServerPushEvent.INVITE_DEVICE || message.type === types_3.ServerPushEvent.HOUSE_INVITE) && this.config.acceptInvitations) { - if (this.isConnected()) - this.processInvitations(); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Error processing server push notification for device invitation`, { error: (0, utils_1.getError)(error), message: message }); - } - try { - if (message.type === types_3.ServerPushEvent.REMOVE_DEVICE || message.type === types_3.ServerPushEvent.REMOVE_HOMEBASE || message.type === types_3.ServerPushEvent.HOUSE_REMOVE) { - if (this.isConnected()) - this.refreshCloudData(); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Error processing server push notification for device/station/house removal`, { error: (0, utils_1.getError)(error), message: message }); - } - this.getStations().then((stations) => { - stations.forEach(station => { - try { - station.processPushNotification(message); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Error processing push notification for station`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), message: message }); - } - }); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Process push notification for stations", { error: (0, utils_1.getError)(error), message: message }); - }); - this.getDevices().then((devices) => { - devices.forEach(device => { - this.getStation(device.getStationSerial()).then((station) => { - try { - device.processPushNotification(station, message, this.config.eventDurationSeconds); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Error processing push notification for device`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), message: message }); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Process push notification for devices loading station", { error: (0, utils_1.getError)(error), message: message }); - }); - }); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Process push notification for devices", { error: (0, utils_1.getError)(error), message: message }); - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("OnPushMessage Generic Error", { error: (0, utils_1.getError)(error), message: message }); - } - } - async startStationDownload(deviceSN, path, cipherID) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceStartDownload)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStartDownload, path: path, cipherID: cipherID } }); - if (!station.isDownloading(device)) { - await station.startDownload(device, path, cipherID); - } - else { - logging_1.rootMainLogger.warn(`The station is already downloading a video for the device ${deviceSN}!`); - } - } - async cancelStationDownload(deviceSN) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceCancelDownload)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceCancelDownload } }); - if (station.isConnected() && station.isDownloading(device)) { - station.cancelDownload(device); - } - else { - logging_1.rootMainLogger.warn(`The station isn't downloading a video for the device ${deviceSN}!`); - } - } - getConfig() { - return this.config; - } - async setDeviceProperty(deviceSN, name, value) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - const metadata = device.getPropertyMetadata(name); - value = (0, utils_1.parseValue)(metadata, value); - switch (name) { - case types_1.PropertyName.DeviceEnabled: - station.enableDevice(device, value); - break; - case types_1.PropertyName.DeviceStatusLed: - station.setStatusLed(device, value); - break; - case types_1.PropertyName.DeviceAutoNightvision: - station.setAutoNightVision(device, value); - break; - case types_1.PropertyName.DeviceMotionDetection: - station.setMotionDetection(device, value); - break; - case types_1.PropertyName.DeviceSoundDetection: - station.setSoundDetection(device, value); - break; - case types_1.PropertyName.DevicePetDetection: - station.setPetDetection(device, value); - break; - case types_1.PropertyName.DeviceRTSPStream: - station.setRTSPStream(device, value); - break; - case types_1.PropertyName.DeviceAntitheftDetection: - station.setAntiTheftDetection(device, value); - break; - case types_1.PropertyName.DeviceLocked: - station.lockDevice(device, value); - break; - case types_1.PropertyName.DeviceWatermark: - station.setWatermark(device, value); - break; - case types_1.PropertyName.DeviceLight: - station.switchLight(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsEnable: - station.setFloodlightLightSettingsEnable(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsBrightnessManual: - station.setFloodlightLightSettingsBrightnessManual(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsBrightnessMotion: - station.setFloodlightLightSettingsBrightnessMotion(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsBrightnessSchedule: - station.setFloodlightLightSettingsBrightnessSchedule(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionTriggered: - station.setFloodlightLightSettingsMotionTriggered(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionTriggeredDistance: - station.setFloodlightLightSettingsMotionTriggeredDistance(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionTriggeredTimer: - station.setFloodlightLightSettingsMotionTriggeredTimer(device, value); - break; - case types_1.PropertyName.DeviceMicrophone: - station.setMicMute(device, value); - break; - case types_1.PropertyName.DeviceSpeaker: - station.enableSpeaker(device, value); - break; - case types_1.PropertyName.DeviceSpeakerVolume: - station.setSpeakerVolume(device, value); - break; - case types_1.PropertyName.DeviceAudioRecording: - station.setAudioRecording(device, value); - break; - case types_1.PropertyName.DevicePowerSource: - station.setPowerSource(device, value); - break; - case types_1.PropertyName.DevicePowerWorkingMode: - station.setPowerWorkingMode(device, value); - break; - case types_1.PropertyName.DeviceRecordingEndClipMotionStops: - station.setRecordingEndClipMotionStops(device, value); - break; - case types_1.PropertyName.DeviceRecordingClipLength: - station.setRecordingClipLength(device, value); - break; - case types_1.PropertyName.DeviceRecordingRetriggerInterval: - station.setRecordingRetriggerInterval(device, value); - break; - case types_1.PropertyName.DeviceVideoStreamingQuality: - station.setVideoStreamingQuality(device, value); - break; - case types_1.PropertyName.DeviceVideoRecordingQuality: - station.setVideoRecordingQuality(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivity: - station.setMotionDetectionSensitivity(device, value); - break; - case types_1.PropertyName.DeviceMotionTracking: - station.setMotionTracking(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionType: - station.setMotionDetectionType(device, value); - break; - case types_1.PropertyName.DeviceMotionZone: - station.setMotionZone(device, value); - break; - case types_1.PropertyName.DeviceVideoWDR: - station.setWDR(device, value); - break; - case types_1.PropertyName.DeviceRingtoneVolume: - station.setRingtoneVolume(device, value); - break; - case types_1.PropertyName.DeviceChimeIndoor: - station.enableIndoorChime(device, value); - break; - case types_1.PropertyName.DeviceChimeHomebase: - station.enableHomebaseChime(device, value); - break; - case types_1.PropertyName.DeviceChimeHomebaseRingtoneVolume: - station.setHomebaseChimeRingtoneVolume(device, value); - break; - case types_1.PropertyName.DeviceChimeHomebaseRingtoneType: - station.setHomebaseChimeRingtoneType(device, value); - break; - case types_1.PropertyName.DeviceNotificationType: - station.setNotificationType(device, value); - break; - case types_1.PropertyName.DeviceNotificationPerson: - if (device.isIndoorPanAndTiltCameraS350()) { - station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.HUMAN, value); - } - else if (device.isFloodLightT8425()) { - station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.HUMAN, value); - } - else { - station.setNotificationPerson(device, value); - } - break; - case types_1.PropertyName.DeviceNotificationPet: - if (device.isIndoorPanAndTiltCameraS350()) { - station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.PET, value); - } - else if (device.isFloodLightT8425()) { - station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.PET, value); - } - else { - station.setNotificationPet(device, value); - } - break; - case types_1.PropertyName.DeviceNotificationAllOtherMotion: - if (device.isIndoorPanAndTiltCameraS350()) { - station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.ALL_OTHER_MOTION, value); - } - else if (device.isFloodLightT8425()) { - station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.ALL_OTHER_MOTION, value); - } - else { - station.setNotificationAllOtherMotion(device, value); - } - break; - case types_1.PropertyName.DeviceNotificationAllSound: - if (device.isIndoorPanAndTiltCameraS350()) { - station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.ALL_SOUND, value); - } - else { - station.setNotificationAllSound(device, value); - } - break; - case types_1.PropertyName.DeviceNotificationCrying: - if (device.isIndoorPanAndTiltCameraS350()) { - station.setNotificationIndoor(device, types_1.IndoorS350NotificationTypes.CRYING, value); - } - else { - station.setNotificationCrying(device, value); - } - break; - case types_1.PropertyName.DeviceNotificationVehicle: - if (device.isFloodLightT8425()) { - station.setNotificationFloodlightT8425(device, types_1.FloodlightT8425NotificationTypes.VEHICLE, value); - } - else { - throw new error_2.InvalidPropertyError("Station has no writable property", { context: { station: station.getSerial(), propertyName: name, propertyValue: value } }); - } - break; - case types_1.PropertyName.DeviceNotificationMotion: - station.setNotificationMotion(device, value); - break; - case types_1.PropertyName.DeviceNotificationRing: - station.setNotificationRing(device, value); - break; - case types_1.PropertyName.DeviceChirpVolume: - station.setChirpVolume(device, value); - break; - case types_1.PropertyName.DeviceChirpTone: - station.setChirpTone(device, value); - break; - case types_1.PropertyName.DeviceVideoHDR: - station.setHDR(device, value); - break; - case types_1.PropertyName.DeviceVideoDistortionCorrection: - station.setDistortionCorrection(device, value); - break; - case types_1.PropertyName.DeviceVideoRingRecord: - station.setRingRecord(device, value); - break; - case types_1.PropertyName.DeviceRotationSpeed: - station.setPanAndTiltRotationSpeed(device, value); - break; - case types_1.PropertyName.DeviceNightvision: - station.setNightVision(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionRange: - station.setMotionDetectionRange(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionRangeStandardSensitivity: - station.setMotionDetectionRangeStandardSensitivity(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity: - station.setMotionDetectionRangeAdvancedLeftSensitivity(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity: - station.setMotionDetectionRangeAdvancedMiddleSensitivity(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity: - station.setMotionDetectionRangeAdvancedRightSensitivity(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionTestMode: - station.setMotionDetectionTestMode(device, value); - break; - case types_1.PropertyName.DeviceMotionTrackingSensitivity: - station.setMotionTrackingSensitivity(device, value); - break; - case types_1.PropertyName.DeviceMotionAutoCruise: - station.setMotionAutoCruise(device, value); - break; - case types_1.PropertyName.DeviceMotionOutOfViewDetection: - station.setMotionOutOfViewDetection(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsColorTemperatureManual: - station.setLightSettingsColorTemperatureManual(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsColorTemperatureMotion: - station.setLightSettingsColorTemperatureMotion(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsColorTemperatureSchedule: - station.setLightSettingsColorTemperatureSchedule(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionActivationMode: - station.setLightSettingsMotionActivationMode(device, value); - break; - case types_1.PropertyName.DeviceVideoNightvisionImageAdjustment: - station.setVideoNightvisionImageAdjustment(device, value); - break; - case types_1.PropertyName.DeviceVideoColorNightvision: - station.setVideoColorNightvision(device, value); - break; - case types_1.PropertyName.DeviceAutoCalibration: - station.setAutoCalibration(device, value); - break; - case types_1.PropertyName.DeviceAutoLock: - station.setAutoLock(device, value); - break; - case types_1.PropertyName.DeviceAutoLockSchedule: - station.setAutoLockSchedule(device, value); - break; - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: - station.setAutoLockScheduleStartTime(device, value); - break; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: - station.setAutoLockScheduleEndTime(device, value); - break; - case types_1.PropertyName.DeviceAutoLockTimer: - station.setAutoLockTimer(device, value); - break; - case types_1.PropertyName.DeviceOneTouchLocking: - station.setOneTouchLocking(device, value); - break; - case types_1.PropertyName.DeviceSound: - station.setSound(device, value); - break; - case types_1.PropertyName.DeviceNotification: - station.setNotification(device, value); - break; - case types_1.PropertyName.DeviceNotificationLocked: - station.setNotificationLocked(device, value); - break; - case types_1.PropertyName.DeviceNotificationUnlocked: - station.setNotificationUnlocked(device, value); - break; - case types_1.PropertyName.DeviceScramblePasscode: - station.setScramblePasscode(device, value); - break; - case types_1.PropertyName.DeviceWrongTryProtection: - station.setWrongTryProtection(device, value); - break; - case types_1.PropertyName.DeviceWrongTryAttempts: - station.setWrongTryAttempts(device, value); - break; - case types_1.PropertyName.DeviceWrongTryLockdownTime: - station.setWrongTryLockdownTime(device, value); - break; - case types_1.PropertyName.DeviceLoiteringDetection: - station.setLoiteringDetection(device, value); - break; - case types_1.PropertyName.DeviceLoiteringDetectionRange: - station.setLoiteringDetectionRange(device, value); - break; - case types_1.PropertyName.DeviceLoiteringDetectionLength: - station.setLoiteringDetectionLength(device, value); - break; - case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse: - station.setLoiteringCustomResponseAutoVoiceResponse(device, value); - break; - case types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification: - station.setLoiteringCustomResponseHomeBaseNotification(device, value); - break; - case types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification: - station.setLoiteringCustomResponsePhoneNotification(device, value); - break; - case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice: - station.setLoiteringCustomResponseAutoVoiceResponseVoice(device, value); - break; - case types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom: - station.setLoiteringCustomResponseTimeFrom(device, value); - break; - case types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo: - station.setLoiteringCustomResponseTimeTo(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityMode: - station.setMotionDetectionSensitivityMode(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityStandard: - station.setMotionDetectionSensitivityStandard(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedA: - station.setMotionDetectionSensitivityAdvancedA(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedB: - station.setMotionDetectionSensitivityAdvancedB(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedC: - station.setMotionDetectionSensitivityAdvancedC(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedD: - station.setMotionDetectionSensitivityAdvancedD(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedE: - station.setMotionDetectionSensitivityAdvancedE(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedF: - station.setMotionDetectionSensitivityAdvancedF(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedG: - station.setMotionDetectionSensitivityAdvancedG(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedH: - station.setMotionDetectionSensitivityAdvancedH(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuard: - station.setDeliveryGuard(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardPackageGuarding: - station.setDeliveryGuardPackageGuarding(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice: - station.setDeliveryGuardPackageGuardingVoiceResponseVoice(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom: - station.setDeliveryGuardPackageGuardingActivatedTimeFrom(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo: - station.setDeliveryGuardPackageGuardingActivatedTimeTo(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardUncollectedPackageAlert: - station.setDeliveryGuardUncollectedPackageAlert(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance: - station.setDeliveryGuardPackageLiveCheckAssistance(device, value); - break; - case types_1.PropertyName.DeviceDualCamWatchViewMode: - station.setDualCamWatchViewMode(device, value); - break; - case types_1.PropertyName.DeviceRingAutoResponse: - station.setRingAutoResponse(device, value); - break; - case types_1.PropertyName.DeviceRingAutoResponseVoiceResponse: - station.setRingAutoResponseVoiceResponse(device, value); - break; - case types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice: - station.setRingAutoResponseVoiceResponseVoice(device, value); - break; - case types_1.PropertyName.DeviceRingAutoResponseTimeFrom: - station.setRingAutoResponseTimeFrom(device, value); - break; - case types_1.PropertyName.DeviceRingAutoResponseTimeTo: - station.setRingAutoResponseTimeTo(device, value); - break; - case types_1.PropertyName.DeviceNotificationRadarDetector: - station.setNotificationRadarDetector(device, value); - break; - case types_1.PropertyName.DeviceSoundDetectionSensitivity: - station.setSoundDetectionSensitivity(device, value); - break; - case types_1.PropertyName.DeviceContinuousRecording: - station.setContinuousRecording(device, value); - break; - case types_1.PropertyName.DeviceContinuousRecordingType: - station.setContinuousRecordingType(device, value); - break; - case types_1.PropertyName.DeviceDefaultAngle: - station.enableDefaultAngle(device, value); - break; - case types_1.PropertyName.DeviceDefaultAngleIdleTime: - station.setDefaultAngleIdleTime(device, value); - break; - case types_1.PropertyName.DeviceNotificationIntervalTime: - station.setNotificationIntervalTime(device, value); - break; - case types_1.PropertyName.DeviceSoundDetectionRoundLook: - station.setSoundDetectionRoundLook(device, value); - break; - case types_1.PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck: - station.setDeliveryGuardUncollectedPackageAlertTimeToCheck(device, value); - break; - case types_1.PropertyName.DeviceLeftOpenAlarm: - case types_1.PropertyName.DeviceLeftOpenAlarmDuration: - case types_1.PropertyName.DeviceDualUnlock: - case types_1.PropertyName.DevicePowerSave: - case types_1.PropertyName.DeviceInteriorBrightness: - case types_1.PropertyName.DeviceInteriorBrightnessDuration: - case types_1.PropertyName.DeviceTamperAlarm: - case types_1.PropertyName.DeviceRemoteUnlock: - case types_1.PropertyName.DeviceRemoteUnlockMasterPIN: - case types_1.PropertyName.DeviceAlarmVolume: - case types_1.PropertyName.DevicePromptVolume: - case types_1.PropertyName.DeviceNotificationUnlockByKey: - case types_1.PropertyName.DeviceNotificationUnlockByPIN: - case types_1.PropertyName.DeviceNotificationUnlockByFingerprint: - case types_1.PropertyName.DeviceNotificationUnlockByApp: - case types_1.PropertyName.DeviceNotificationDualUnlock: - case types_1.PropertyName.DeviceNotificationDualLock: - case types_1.PropertyName.DeviceNotificationWrongTryProtect: - case types_1.PropertyName.DeviceNotificationJammed: - station.setSmartSafeParams(device, name, value); - break; - case types_1.PropertyName.DeviceVideoTypeStoreToNAS: - station.setVideoTypeStoreToNAS(device, value); - break; - case types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition: - station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.HUMAN_RECOGNITION, value); - break; - case types_1.PropertyName.DeviceMotionDetectionTypeHuman: - if (device.isWallLightCam()) { - station.setMotionDetectionTypeHuman(device, value); - } - else if (device.isOutdoorPanAndTiltCamera()) { - station.setMotionDetectionTypeHB3(device, types_1.T8170DetectionTypes.HUMAN_DETECTION, value); - } - else if (device.isSoloCameras()) { - station.setMotionDetectionTypeHB3(device, types_1.SoloCameraDetectionTypes.HUMAN_DETECTION, value); - } - else if (device.isIndoorPanAndTiltCameraS350()) { - station.setMotionDetectionTypeHB3(device, types_1.IndoorS350DetectionTypes.HUMAN_DETECTION, value); - } - else { - station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.HUMAN_DETECTION, value); - } - break; - case types_1.PropertyName.DeviceMotionDetectionTypePet: - if (device.isIndoorPanAndTiltCameraS350()) { - station.setMotionDetectionTypeHB3(device, types_1.IndoorS350DetectionTypes.PET_DETECTION, value); - } - else { - station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.PET_DETECTION, value); - } - break; - case types_1.PropertyName.DeviceMotionDetectionTypeVehicle: - if (device.isOutdoorPanAndTiltCamera()) { - station.setMotionDetectionTypeHB3(device, types_1.T8170DetectionTypes.VEHICLE_DETECTION, value); - } - else { - station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.VEHICLE_DETECTION, value); - } - break; - case types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions: - if (device.isWallLightCam()) { - station.setMotionDetectionTypeAllOtherMotions(device, value); - } - else if (device.isOutdoorPanAndTiltCamera()) { - station.setMotionDetectionTypeHB3(device, types_1.T8170DetectionTypes.ALL_OTHER_MOTION, value); - } - else if (device.isSoloCameras()) { - station.setMotionDetectionTypeHB3(device, types_1.SoloCameraDetectionTypes.ALL_OTHER_MOTION, value); - } - else if (device.isIndoorPanAndTiltCameraS350()) { - station.setMotionDetectionTypeHB3(device, types_1.IndoorS350DetectionTypes.ALL_OTHER_MOTION, value); - } - else { - station.setMotionDetectionTypeHB3(device, types_1.HB3DetectionTypes.ALL_OTHER_MOTION, value); - } - break; - case types_1.PropertyName.DeviceLightSettingsManualLightingActiveMode: - station.setLightSettingsManualLightingActiveMode(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsManualDailyLighting: - station.setLightSettingsManualDailyLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsManualColoredLighting: - station.setLightSettingsManualColoredLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsManualDynamicLighting: - station.setLightSettingsManualDynamicLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionLightingActiveMode: - station.setLightSettingsMotionLightingActiveMode(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionDailyLighting: - station.setLightSettingsMotionDailyLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionColoredLighting: - station.setLightSettingsMotionColoredLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsMotionDynamicLighting: - station.setLightSettingsMotionDynamicLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsScheduleLightingActiveMode: - station.setLightSettingsScheduleLightingActiveMode(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsScheduleDailyLighting: - station.setLightSettingsScheduleDailyLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsScheduleColoredLighting: - station.setLightSettingsScheduleColoredLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsScheduleDynamicLighting: - station.setLightSettingsScheduleDynamicLighting(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsColoredLightingColors: - station.setLightSettingsColoredLightingColors(device, value); - break; - case types_1.PropertyName.DeviceLightSettingsDynamicLightingThemes: - station.setLightSettingsDynamicLightingThemes(device, value); - break; - case types_1.PropertyName.DeviceDoorControlWarning: - station.setDoorControlWarning(device, value); - break; - case types_1.PropertyName.DeviceDoor1Open: - station.openDoor(device, value, 1); - break; - case types_1.PropertyName.DeviceDoor2Open: - station.openDoor(device, value, 2); - break; - case types_1.PropertyName.DeviceLeftBehindAlarm: { - const tracker = device; - const result = await tracker.setLeftBehindAlarm(value); - if (result) { - device.updateProperty(name, value); - } - break; - } - case types_1.PropertyName.DeviceFindPhone: { - const tracker = device; - const result = await tracker.setFindPhone(value); - if (result) { - device.updateProperty(name, value); - } - break; - } - case types_1.PropertyName.DeviceTrackerType: { - const tracker = device; - const result = await tracker.setTrackerType(value); - if (result) { - device.updateProperty(name, value); - } - break; - } - case types_1.PropertyName.DeviceImageMirrored: - station.setMirrorMode(device, value); - break; - case types_1.PropertyName.DeviceFlickerAdjustment: - station.setFlickerAdjustment(device, value); - break; - case types_1.PropertyName.DeviceSoundDetectionType: - station.setSoundDetectionType(device, value); - break; - case types_1.PropertyName.DeviceLeavingDetection: - station.setLeavingDetection(device, value); - break; - case types_1.PropertyName.DeviceLeavingReactionNotification: - station.setLeavingReactionNotification(device, value); - break; - case types_1.PropertyName.DeviceLeavingReactionStartTime: - station.setLeavingReactionStartTime(device, value); - break; - case types_1.PropertyName.DeviceLeavingReactionEndTime: - station.setLeavingReactionEndTime(device, value); - break; - case types_1.PropertyName.DeviceBeepVolume: - station.setBeepVolume(device, value); - break; - case types_1.PropertyName.DeviceNightvisionOptimization: - station.setNightvisionOptimization(device, value); - break; - case types_1.PropertyName.DeviceNightvisionOptimizationSide: - station.setNightvisionOptimizationSide(device, value); - break; - case types_1.PropertyName.DeviceOpenMethod: - station.setOpenMethod(device, value); - break; - case types_1.PropertyName.DeviceMotionActivatedPrompt: - station.setMotionActivatedPrompt(device, value); - break; - default: - if (!Object.values(types_1.PropertyName).includes(name)) - throw new error_1.ReadOnlyPropertyError("Property is read only", { context: { device: deviceSN, propertyName: name, propertyValue: value } }); - throw new error_2.InvalidPropertyError("Device has no writable property", { context: { device: deviceSN, propertyName: name, propertyValue: value } }); - } - } - async setStationProperty(stationSN, name, value) { - const station = await this.getStation(stationSN); - const metadata = station.getPropertyMetadata(name); - value = (0, utils_1.parseValue)(metadata, value); - switch (name) { - case types_1.PropertyName.StationGuardMode: - station.setGuardMode(value); - break; - case types_1.PropertyName.StationAlarmTone: - station.setStationAlarmTone(value); - break; - case types_1.PropertyName.StationAlarmVolume: - station.setStationAlarmRingtoneVolume(value); - break; - case types_1.PropertyName.StationPromptVolume: - station.setStationPromptVolume(value); - break; - case types_1.PropertyName.StationNotificationSwitchModeApp: - station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.APP, value); - break; - case types_1.PropertyName.StationNotificationSwitchModeGeofence: - station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.GEOFENCE, value); - break; - case types_1.PropertyName.StationNotificationSwitchModeSchedule: - station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.SCHEDULE, value); - break; - case types_1.PropertyName.StationNotificationSwitchModeKeypad: - station.setStationNotificationSwitchMode(types_1.NotificationSwitchMode.KEYPAD, value); - break; - case types_1.PropertyName.StationNotificationStartAlarmDelay: - station.setStationNotificationStartAlarmDelay(value); - break; - case types_1.PropertyName.StationTimeFormat: - station.setStationTimeFormat(value); - break; - case types_1.PropertyName.StationSwitchModeWithAccessCode: - station.setStationSwitchModeWithAccessCode(value); - break; - case types_1.PropertyName.StationAutoEndAlarm: - station.setStationAutoEndAlarm(value); - break; - case types_1.PropertyName.StationTurnOffAlarmWithButton: - station.setStationTurnOffAlarmWithButton(value); - break; - case types_1.PropertyName.StationCrossCameraTracking: - station.setCrossCameraTracking(value); - break; - case types_1.PropertyName.StationContinuousTrackingTime: - station.setContinuousTrackingTime(value); - break; - case types_1.PropertyName.StationTrackingAssistance: - station.setTrackingAssistance(value); - break; - case types_1.PropertyName.StationCrossTrackingCameraList: - station.setCrossTrackingCameraList(value); - break; - case types_1.PropertyName.StationCrossTrackingGroupList: - station.setCrossTrackingGroupList(value); - break; - default: - if (!Object.values(types_1.PropertyName).includes(name)) - throw new error_1.ReadOnlyPropertyError("Property is read only", { context: { station: stationSN, propertyName: name, propertyValue: value } }); - throw new error_2.InvalidPropertyError("Station has no writable property", { context: { station: stationSN, propertyName: name, propertyValue: value } }); - } - } - onStartStationLivestream(station, channel, metadata, videostream, audiostream) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station livestream start", station, device, metadata, videostream, audiostream); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station start livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, metadata: metadata }); - }); - } - onStopStationLivestream(station, channel) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station livestream stop", station, device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station stop livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onErrorStationLivestream(station, channel, origError) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - station.stopLivestream(device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, origError: (0, utils_1.getError)(origError) }); - }); - } - onStartStationRTSPLivestream(station, channel) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station rtsp livestream start", station, device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station start rtsp livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStopStationRTSPLivestream(station, channel) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station rtsp livestream stop", station, device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station stop rtsp livestream error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStationStartDownload(station, channel, metadata, videoStream, audioStream) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station download start", station, device, metadata, videoStream, audioStream); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station start download error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, metadata: metadata }); - }); - } - onStationFinishDownload(station, channel) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station download finish", station, device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station finish download error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStationCommandResult(station, result) { - this.emit("station command result", station, result); - if (result.return_code === 0) { - if (result.customData !== undefined && result.customData.onSuccess !== undefined) { - try { - result.customData.onSuccess(); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station command result - onSuccess callback error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); - } - } - this.getStationDevice(station.getSerial(), result.channel).then((device) => { - if ((result.customData !== undefined && result.customData.property !== undefined && !device.isLockWifiR10() && !device.isLockWifiR20() && !device.isSmartSafe() && !device.isLockWifiT8506() && !device.isLockWifiT8502() && !device.isLockWifiT8510P() && !device.isLockWifiT8520P()) || - (result.customData !== undefined && result.customData.property !== undefined && device.isSmartSafe() && result.command_type !== types_2.CommandType.CMD_SMARTSAFE_SETTINGS) || - (result.customData !== undefined && result.customData.property !== undefined && (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) && result.command_type !== types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE)) { - if (device.hasProperty(result.customData.property.name)) { - const metadata = device.getPropertyMetadata(result.customData.property.name); - if (typeof result.customData.property.value !== "object" || metadata.type === "object") { - device.updateProperty(result.customData.property.name, result.customData.property.value); - } - } - else if (station.hasProperty(result.customData.property.name)) { - const metadata = station.getPropertyMetadata(result.customData.property.name); - if (typeof result.customData.property.value !== "object" || metadata.type === "object") { - station.updateProperty(result.customData.property.name, result.customData.property.value); - } - } - } - else if (result.customData !== undefined && result.customData.command !== undefined && result.customData.command.name === types_1.CommandName.DeviceSnooze) { - const snoozeTime = result.customData.command.value !== undefined && result.customData.command.value.snooze_time !== undefined ? result.customData.command.value.snooze_time : 0; - if (snoozeTime > 0) { - device.updateProperty(types_1.PropertyName.DeviceSnooze, true); - device.updateProperty(types_1.PropertyName.DeviceSnoozeTime, snoozeTime); - } - this.api.refreshAllData().then(() => { - const snoozeStartTime = device.getPropertyValue(types_1.PropertyName.DeviceSnoozeStartTime); - const currentTime = Math.trunc(new Date().getTime() / 1000); - let timeoutMS; - if (snoozeStartTime !== undefined && snoozeStartTime !== 0) { - timeoutMS = (snoozeStartTime + snoozeTime - currentTime) * 1000; - } - else { - timeoutMS = snoozeTime * 1000; - } - this.deviceSnoozeTimeout[device.getSerial()] = setTimeout(() => { - device.updateProperty(types_1.PropertyName.DeviceSnooze, false); - device.updateProperty(types_1.PropertyName.DeviceSnoozeTime, 0); - device.updateProperty(types_1.PropertyName.DeviceSnoozeStartTime, 0); - if (device.hasProperty(types_1.PropertyName.DeviceSnoozeHomebase)) { - device.updateProperty(types_1.PropertyName.DeviceSnoozeHomebase, false); - } - if (device.hasProperty(types_1.PropertyName.DeviceSnoozeMotion)) { - device.updateProperty(types_1.PropertyName.DeviceSnoozeMotion, false); - } - if (device.hasProperty(types_1.PropertyName.DeviceSnoozeChime)) { - device.updateProperty(types_1.PropertyName.DeviceSnoozeChime, false); - } - delete this.deviceSnoozeTimeout[device.getSerial()]; - }, timeoutMS); - }).catch(err => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error("Error during API data refreshing", { error: (0, utils_1.getError)(error) }); - }); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - if (error instanceof error_1.DeviceNotFoundError) { - if (result.customData !== undefined && result.customData.property !== undefined) { - station.updateProperty(result.customData.property.name, result.customData.property.value); - } - } - else { - logging_1.rootMainLogger.error(`Station command result error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); - } - }); - if (station.isIntegratedDevice() && result.command_type === types_2.CommandType.CMD_SET_ARMING && station.isConnected() && station.getDeviceType() !== types_1.DeviceType.DOORBELL) { - station.getCameraInfo(); - } - } - else { - if (result.customData !== undefined && result.customData.onFailure !== undefined) { - try { - result.customData.onFailure(); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station command result - onFailure callback error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); - } - } - } - if (result.customData !== undefined && result.customData.command !== undefined) { - const customValue = result.customData.command.value; - switch (result.customData.command.name) { - case types_1.CommandName.DeviceAddUser: - this.getStationDevice(station.getSerial(), result.channel).then((device) => { - switch (result.return_code) { - case 0: - this.emit("user added", device, customValue.username, customValue.schedule); - break; - case 4: - this.emit("user error", device, customValue.username, new error_1.AddUserError("Passcode already used by another user, please choose a different one", { context: { device: device.getSerial(), username: customValue.username, schedule: customValue.schedule } })); - break; - default: - this.emit("user error", device, customValue.username, new error_1.AddUserError("Error creating user", { context: { device: device.getSerial(), username: customValue.username, schedule: customValue.schedule, returnode: result.return_code } })); - break; - } - }); - break; - case types_1.CommandName.DeviceDeleteUser: - this.getStationDevice(station.getSerial(), result.channel).then((device) => { - switch (result.return_code) { - case 0: - this.api.deleteUser(device.getSerial(), customValue.shortUserId, device.getStationSerial()).then((result) => { - if (result) { - this.emit("user deleted", device, customValue.username); - } - else { - this.emit("user error", device, customValue.username, new error_1.DeleteUserError("Error in deleting user through cloud api call", { context: { device: device.getSerial(), username: customValue.username, shortUserId: customValue.short_user_id } })); - } - }); - break; - default: - this.emit("user error", device, customValue.username, new error_1.DeleteUserError("Error deleting user", { context: { device: device.getSerial(), username: customValue.username, shortUserId: customValue.short_user_id, returnCode: result.return_code } })); - break; - } - }); - break; - case types_1.CommandName.DeviceUpdateUserPasscode: - this.getStationDevice(station.getSerial(), result.channel).then((device) => { - switch (result.return_code) { - case 0: - this.emit("user passcode updated", device, customValue.username); - break; - default: - this.emit("user error", device, customValue.username, new error_1.UpdateUserPasscodeError("Error updating user passcode", { context: { device: device.getSerial(), username: customValue.username, returnCode: result.return_code } })); - break; - } - }); - break; - case types_1.CommandName.DeviceUpdateUserSchedule: - this.getStationDevice(station.getSerial(), result.channel).then((device) => { - switch (result.return_code) { - case 0: - this.emit("user schedule updated", device, customValue.username, customValue.schedule); - break; - default: - this.emit("user error", device, customValue.username, new error_1.UpdateUserScheduleError("Error updating user schedule", { context: { device: device.getSerial(), username: customValue.username, schedule: customValue.schedule, returnCode: result.return_code } })); - break; - } - }); - break; - } - } - } - onStationSecondaryCommandResult(station, result) { - if (result.return_code === 0) { - this.getStationDevice(station.getSerial(), result.channel).then((device) => { - if (result.customData !== undefined && result.customData.property !== undefined) { - if (device.hasProperty(result.customData.property.name)) - device.updateProperty(result.customData.property.name, result.customData.property.value); - else if (station.hasProperty(result.customData.property.name)) { - station.updateProperty(result.customData.property.name, result.customData.property.value); - } - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - if (error instanceof error_1.DeviceNotFoundError) { - if (result.customData !== undefined && result.customData.property !== undefined) { - station.updateProperty(result.customData.property.name, result.customData.property.value); - } - } - else { - logging_1.rootMainLogger.error(`Station secondary command result error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), result: result }); - } - }); - } - } - onStationRtspUrl(station, channel, value) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station rtsp url", station, device, value); - device.setCustomPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl, value); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station rtsp url error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, url: value }); - }); - } - onStationGuardMode(station, guardMode) { - this.emit("station guard mode", station, guardMode); - } - onStationCurrentMode(station, currentMode) { - this.emit("station current mode", station, currentMode); - } - onStationPropertyChanged(station, name, value, ready) { - if (ready && !name.startsWith("hidden-")) { - this.emit("station property changed", station, name, value); - } - } - onStationRawPropertyChanged(station, type, value) { - this.emit("station raw property changed", station, type, value); - } - onStationAlarmEvent(station, alarmEvent) { - this.emit("station alarm event", station, alarmEvent); - } - onStationAlarmDelayEvent(station, alarmDelayEvent, alarmDelay) { - this.emit("station alarm delay event", station, alarmDelayEvent, alarmDelay); - } - onStationArmDelayEvent(station, armDelay) { - this.emit("station alarm arm delay event", station, armDelay); - } - onStationAlarmArmedEvent(station) { - this.emit("station alarm armed", station); - } - onDevicePropertyChanged(device, name, value, ready) { - try { - if (ready && !name.startsWith("hidden-")) { - this.emit("device property changed", device, name, value); - } - if (name === types_1.PropertyName.DeviceRTSPStream && value === true && (device.getPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl) === undefined || (device.getPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl) !== undefined && device.getPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl) === ""))) { - this.getStation(device.getStationSerial()).then((station) => { - station.setRTSPStream(device, true); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Device property changed error - station enable rtsp`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial(), propertyName: name, propertyValue: value, ready: ready }); - }); - } - else if (name === types_1.PropertyName.DeviceRTSPStream && value === false) { - device.setCustomPropertyValue(types_1.PropertyName.DeviceRTSPStreamUrl, ""); - } - else if (name === types_1.PropertyName.DevicePictureUrl && value !== "") { - if (!(0, utils_1.isValidUrl)(value)) { - this.getStation(device.getStationSerial()).then((station) => { - if (station.hasCommand(types_1.CommandName.StationDownloadImage)) { - station.downloadImage(value); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Device property changed error - station download image`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial(), propertyName: name, propertyValue: value, ready: ready }); - }); - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Device property changed error`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial(), propertyName: name, propertyValue: value, ready: ready }); - } - } - onDeviceRawPropertyChanged(device, type, value) { - this.emit("device raw property changed", device, type, value); - } - onDeviceCryingDetected(device, state) { - this.emit("device crying detected", device, state); - } - onDeviceSoundDetected(device, state) { - this.emit("device sound detected", device, state); - } - onDevicePetDetected(device, state) { - this.emit("device pet detected", device, state); - } - onDeviceVehicleDetected(device, state) { - this.emit("device vehicle detected", device, state); - } - onDeviceMotionDetected(device, state) { - this.emit("device motion detected", device, state); - } - onDevicePersonDetected(device, state, person) { - this.emit("device person detected", device, state, person); - } - onDeviceRings(device, state) { - this.emit("device rings", device, state); - } - onDeviceLocked(device, state) { - this.emit("device locked", device, state); - } - onDeviceOpen(device, state) { - this.emit("device open", device, state); - } - onDevicePackageDelivered(device, state) { - this.emit("device package delivered", device, state); - } - onDevicePackageStranded(device, state) { - this.emit("device package stranded", device, state); - } - onDevicePackageTaken(device, state) { - this.emit("device package taken", device, state); - } - onDeviceSomeoneLoitering(device, state) { - this.emit("device someone loitering", device, state); - } - onDeviceRadarMotionDetected(device, state) { - this.emit("device radar motion detected", device, state); - } - onDevice911Alarm(device, state, detail) { - this.emit("device 911 alarm", device, state, detail); - } - onDeviceShakeAlarm(device, state, detail) { - this.emit("device shake alarm", device, state, detail); - } - onDeviceWrongTryProtectAlarm(device, state) { - this.emit("device wrong try-protect alarm", device, state); - } - onDeviceLongTimeNotClose(device, state) { - this.emit("device long time not close", device, state); - } - onDeviceLowBattery(device, state) { - this.emit("device low battery", device, state); - } - onDeviceJammed(device, state) { - this.emit("device jammed", device, state); - } - onDeviceStrangerPersonDetected(device, state) { - this.emit("device stranger person detected", device, state); - } - onDeviceDogDetected(device, state) { - this.emit("device dog detected", device, state); - } - onDeviceDogLickDetected(device, state) { - this.emit("device dog lick detected", device, state); - } - onDeviceDogPoopDetected(device, state) { - this.emit("device dog poop detected", device, state); - } - onDeviceReady(device) { - try { - if (device.getPropertyValue(types_1.PropertyName.DeviceRTSPStream) !== undefined && device.getPropertyValue(types_1.PropertyName.DeviceRTSPStream) === true) { - this.getStation(device.getStationSerial()).then((station) => { - station.setRTSPStream(device, true); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Device ready error - station enable rtsp`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial() }); - }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Device ready error`, { error: (0, utils_1.getError)(error), deviceSN: device.getSerial(), stationSN: device.getStationSerial() }); - } - } - onStationRuntimeState(station, channel, batteryLevel, temperature) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - if (device.hasProperty(types_1.PropertyName.DeviceBattery)) { - const metadataBattery = device.getPropertyMetadata(types_1.PropertyName.DeviceBattery); - device.updateRawProperty(metadataBattery.key, batteryLevel.toString(), "p2p"); - } - if (device.hasProperty(types_1.PropertyName.DeviceBatteryTemp)) { - const metadataBatteryTemperature = device.getPropertyMetadata(types_1.PropertyName.DeviceBatteryTemp); - device.updateRawProperty(metadataBatteryTemperature.key, temperature.toString(), "p2p"); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station runtime state error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, batteryLevel: batteryLevel, temperature: temperature }); - }); - } - onStationChargingState(station, channel, chargeType, batteryLevel) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - if (device.hasProperty(types_1.PropertyName.DeviceBattery)) { - const metadataBattery = device.getPropertyMetadata(types_1.PropertyName.DeviceBattery); - if ((0, utils_3.isCharging)(chargeType) && batteryLevel > 0) - device.updateRawProperty(metadataBattery.key, batteryLevel.toString(), "p2p"); - } - if (device.hasProperty(types_1.PropertyName.DeviceChargingStatus)) { - const metadataChargingStatus = device.getPropertyMetadata(types_1.PropertyName.DeviceChargingStatus); - device.updateRawProperty(metadataChargingStatus.key, chargeType.toString(), "p2p"); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station charging state error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, chargeType: chargeType, charging: (0, utils_3.isCharging)(chargeType), batteryLevel: batteryLevel }); - }); - } - onStationWifiRssi(station, channel, rssi) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - if (device.hasProperty(types_1.PropertyName.DeviceWifiRSSI)) { - const metadataWifiRssi = device.getPropertyMetadata(types_1.PropertyName.DeviceWifiRSSI); - device.updateRawProperty(metadataWifiRssi.key, rssi.toString(), "p2p"); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station wifi rssi error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, rssi: rssi }); - }); - } - onCaptchaRequest(id, captcha) { - this.emit("captcha request", id, captcha); - } - onFloodlightManualSwitch(station, channel, enabled) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - if (device.hasProperty(types_1.PropertyName.DeviceLight)) { - const metadataLight = device.getPropertyMetadata(types_1.PropertyName.DeviceLight); - device.updateRawProperty(metadataLight.key, enabled === true ? "1" : "0", "p2p"); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station floodlight manual switch error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, enabled: enabled }); - }); - } - onAuthTokenInvalidated() { - this.persistentData.cloud_token = undefined; - this.persistentData.cloud_token_expiration = undefined; - this.writePersistentData(); - } - onTfaRequest() { - this.emit("tfa request"); - } - onStationTalkbackStart(station, channel, talkbackStream) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station talkback start", station, device, talkbackStream); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station talkback start error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStationTalkbackStop(station, channel) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - this.emit("station talkback stop", station, device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station talkback stop error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStationTalkbackError(station, channel, origError) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - station.stopTalkback(device); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station talkback error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel, origError: (0, utils_1.getError)(origError) }); - }); - } - async startStationTalkback(deviceSN) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceStartTalkback)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStartTalkback } }); - if (station.isLiveStreaming(device)) { - if (!station.isTalkbackOngoing(device)) { - station.startTalkback(device); - } - else { - logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be started, because it is ongoing!`); - } - } - else { - logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be started, because it isn't live streaming!`); - } - } - async stopStationTalkback(deviceSN) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceStopTalkback)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceStopTalkback } }); - if (station.isLiveStreaming(device)) { - if (station.isTalkbackOngoing(device)) { - station.stopTalkback(device); - } - else { - logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be stopped, because it isn't ongoing!`); - } - } - else { - logging_1.rootMainLogger.warn(`The station talkback for the device ${deviceSN} cannot be stopped, because it isn't live streaming!`); - } - } - onStationDeviceShakeAlarm(deviceSN, event) { - this.getDevice(deviceSN).then((device) => { - if (device.isSmartSafe()) - device.shakeEvent(event, this.config.eventDurationSeconds); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationDeviceShakeAlarm error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, event: types_2.SmartSafeShakeAlarmEvent[event] }); - }); - } - onStationDevice911Alarm(deviceSN, event) { - this.getDevice(deviceSN).then((device) => { - if (device.isSmartSafe()) - device.alarm911Event(event, this.config.eventDurationSeconds); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationDevice911Alarm error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, event: types_2.SmartSafeAlarm911Event[event] }); - }); - } - onStationDeviceJammed(deviceSN) { - this.getDevice(deviceSN).then((device) => { - if (device.isSmartSafe()) - device.jammedEvent(this.config.eventDurationSeconds); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationDeviceJammed error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); - }); - } - onStationDeviceLowBattery(deviceSN) { - this.getDevice(deviceSN).then((device) => { - if (device.isSmartSafe()) - device.lowBatteryEvent(this.config.eventDurationSeconds); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationDeviceLowBattery error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); - }); - } - onStationDeviceWrongTryProtectAlarm(deviceSN) { - this.getDevice(deviceSN).then((device) => { - if (device.isSmartSafe()) - device.wrongTryProtectAlarmEvent(this.config.eventDurationSeconds); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationDeviceWrongTryProtectAlarm error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); - }); - } - async addUser(deviceSN, username, passcode, schedule) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - try { - if (!device.hasCommand(types_1.CommandName.DeviceAddUser)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceAddUser, username: username, passcode: "[redacted]", schedule: schedule } }); - const addUserResponse = await this.api.addUser(deviceSN, username, device.getStationSerial()); - if (addUserResponse !== null) { - station.addUser(device, username, addUserResponse.short_user_id, passcode, schedule); - } - else { - this.emit("user error", device, username, new error_1.AddUserError("Error on creating user through cloud api call", { context: { deivce: deviceSN, username: username, passcode: "[redacted]", schedule: schedule } })); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`addUser error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username, schedule: schedule }); - this.emit("user error", device, username, new error_1.AddUserError("Generic error", { cause: error, context: { device: deviceSN, username: username, passcode: "[redacted]", schedule: schedule } })); - } - } - async deleteUser(deviceSN, username) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceDeleteUser)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceDeleteUser, username: username } }); - try { - const users = await this.api.getUsers(deviceSN, device.getStationSerial()); - if (users !== null) { - let found = false; - for (const user of users) { - if (user.user_name === username) { - station.deleteUser(device, user.user_name, user.short_user_id); - found = true; - break; - } - } - if (!found) { - this.emit("user error", device, username, new error_1.DeleteUserError("User not found", { context: { device: deviceSN, username: username } })); - } - } - else { - this.emit("user error", device, username, new error_1.DeleteUserError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username } })); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`deleteUser error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username }); - this.emit("user error", device, username, new error_1.DeleteUserError("Generic error", { cause: error, context: { device: deviceSN, username: username } })); - } - } - async updateUser(deviceSN, username, newUsername) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceUpdateUsername)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceUpdateUsername, usernmae: username, newUsername: newUsername } }); - try { - const users = await this.api.getUsers(deviceSN, device.getStationSerial()); - if (users !== null) { - let found = false; - for (const user of users) { - if (user.user_name === username) { - if ((device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) && user.password_list.length > 0) { - for (const entry of user.password_list) { - if (entry.password_type === types_1.UserPasswordType.PIN) { - let schedule = entry.schedule; - if (schedule !== undefined && typeof schedule == "string") { - schedule = JSON.parse(schedule); - } - if (schedule !== undefined && schedule.endDay !== undefined && schedule.endTime !== undefined && schedule.startDay !== undefined && schedule.startTime !== undefined && schedule.week !== undefined) { - station.updateUserSchedule(device, newUsername, user.short_user_id, (0, utils_2.hexStringScheduleToSchedule)(schedule.startDay, schedule.startTime, schedule.endDay, schedule.endTime, schedule.week)); - } - } - } - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - for (const entry of user.password_list) { - if (entry.password_type === types_1.UserPasswordType.PIN) { - station.updateUsername(device, newUsername, entry.password_id); - } - } - } - const result = await this.api.updateUser(deviceSN, device.getStationSerial(), user.short_user_id, newUsername); - if (result) { - this.emit("user username updated", device, username); - } - else { - this.emit("user error", device, username, new error_1.UpdateUserUsernameError("Error in changing username through cloud api call", { context: { device: deviceSN, username: username, newUsername: newUsername } })); - } - found = true; - break; - } - } - if (!found) { - this.emit("user error", device, username, new error_1.UpdateUserUsernameError("User not found", { context: { device: deviceSN, username: username, newUsername: newUsername } })); - } - } - else { - this.emit("user error", device, username, new error_1.UpdateUserUsernameError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username, newUsername: newUsername } })); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`updateUser error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username, newUsername: newUsername }); - this.emit("user error", device, username, new error_1.UpdateUserUsernameError("Generic error", { cause: error, context: { device: deviceSN, username: username, newUsername: newUsername } })); - } - } - async updateUserPasscode(deviceSN, username, passcode) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceUpdateUserPasscode)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceUpdateUserPasscode, username: username, passcode: "[redacted]" } }); - try { - const users = await this.api.getUsers(deviceSN, device.getStationSerial()); - if (users !== null) { - let found = false; - for (const user of users) { - if (user.user_name === username) { - for (const entry of user.password_list) { - if (entry.password_type === types_1.UserPasswordType.PIN) { - station.updateUserPasscode(device, user.user_name, entry.password_id, passcode); - found = true; - } - } - } - } - if (!found) { - this.emit("user error", device, username, new error_1.UpdateUserPasscodeError("User not found", { context: { device: deviceSN, username: username, passcode: "[redacted]" } })); - } - } - else { - this.emit("user error", device, username, new error_1.UpdateUserPasscodeError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username, passcode: "[redacted]" } })); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`updateUserPasscode error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username }); - this.emit("user error", device, username, new error_1.UpdateUserPasscodeError("Generic error", { cause: error, context: { device: deviceSN, username: username, passcode: "[redacted]" } })); - } - } - async updateUserSchedule(deviceSN, username, schedule) { - const device = await this.getDevice(deviceSN); - const station = await this.getStation(device.getStationSerial()); - if (!device.hasCommand(types_1.CommandName.DeviceUpdateUserSchedule)) - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: deviceSN, commandName: types_1.CommandName.DeviceUpdateUserSchedule, usernmae: username, schedule: schedule } }); - try { - const users = await this.api.getUsers(deviceSN, device.getStationSerial()); - if (users !== null) { - let found = false; - for (const user of users) { - if (user.user_name === username) { - station.updateUserSchedule(device, user.user_name, user.short_user_id, schedule); - found = true; - } - } - if (!found) { - this.emit("user error", device, username, new error_1.UpdateUserScheduleError("User not found", { context: { device: deviceSN, username: username, schedule: schedule } })); - } - } - else { - this.emit("user error", device, username, new error_1.UpdateUserScheduleError("Error on getting user list through cloud api call", { context: { device: deviceSN, username: username, schedule: schedule } })); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`updateUserSchedule error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, username: username, schedule: schedule }); - this.emit("user error", device, username, new error_1.UpdateUserScheduleError("Generic error", { cause: error, context: { device: deviceSN, username: username, schedule: schedule } })); - } - } - onStationDevicePinVerified(deviceSN, successfull) { - this.getDevice(deviceSN).then((device) => { - this.emit("device pin verified", device, successfull); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationDevicePinVerified error`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN, successfull: successfull }); - }); - } - onStationSdInfoEx(station, sdStatus, sdCapacity, sdCapacityAvailable) { - if (station.hasProperty(types_1.PropertyName.StationSdStatus)) { - station.updateProperty(types_1.PropertyName.StationSdStatus, sdStatus); - } - if (station.hasProperty(types_1.PropertyName.StationSdCapacity)) { - station.updateProperty(types_1.PropertyName.StationSdCapacity, sdCapacity); - } - if (station.hasProperty(types_1.PropertyName.StationSdCapacityAvailable)) { - station.updateProperty(types_1.PropertyName.StationSdCapacityAvailable, sdCapacityAvailable); - } - } - _emitStationImageDownload(station, file, picture) { - this.emit("station image download", station, file, picture); - this.getDevicesFromStation(station.getSerial()).then((devices) => { - for (const device of devices) { - if (device.getPropertyValue(types_1.PropertyName.DevicePictureUrl) === file) { - logging_1.rootMainLogger.debug(`onStationImageDownload - Set picture for device ${device.getSerial()} file: ${file} picture_ext: ${picture.type.ext} picture_mime: ${picture.type.mime}`); - device.updateProperty(types_1.PropertyName.DevicePicture, picture); - break; - } - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`onStationImageDownload - Set picture error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), file: file }); - }); - } - onStationImageDownload(station, file, image) { - import("image-type").then(({ default: imageType }) => { - imageType(image).then((type) => { - const picture = { - data: image, - type: type !== null && type !== undefined ? type : { ext: "unknown", mime: "application/octet-stream" } - }; - this._emitStationImageDownload(station, file, picture); - }).catch(() => { - this._emitStationImageDownload(station, file, { - data: image, - type: { ext: "unknown", mime: "application/octet-stream" } - }); - }); - }).catch(() => { - this._emitStationImageDownload(station, file, { - data: image, - type: { ext: "unknown", mime: "application/octet-stream" } - }); - }); - } - onStationDatabaseQueryLatest(station, returnCode, data) { - if (returnCode === types_2.DatabaseReturnCode.SUCCESSFUL) { - for (const element of data) { - if ((element.device_sn !== "" && !station.isStation()) || (station.isStation() && element.device_sn !== station.getSerial())) { - this.getDevice(element.device_sn).then((device) => { - const raw = device.getRawDevice(); - if ("crop_local_path" in element) { - raw.cover_path = element.crop_local_path; - } - else if ("crop_cloud_path" in element) { - raw.cover_path = element.crop_cloud_path; - } - device.update(raw); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - if (!(error instanceof error_1.DeviceNotFoundError)) { - logging_1.rootMainLogger.error("onStationDatabaseQueryLatest Error", { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), returnCode: returnCode }); - } - }); - } - } - } - this.emit("station database query latest", station, returnCode, data); - } - onStationDatabaseQueryLocal(station, returnCode, data) { - this.emit("station database query local", station, returnCode, data); - } - onStationDatabaseCountByDate(station, returnCode, data) { - this.emit("station database count by date", station, returnCode, data); - } - onStationDatabaseDelete(station, returnCode, failedIds) { - this.emit("station database delete", station, returnCode, failedIds); - } - onStationSensorStatus(station, channel, status) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - if (device.hasProperty(types_1.PropertyName.DeviceSensorOpen)) { - const metadataSensorOpen = device.getPropertyMetadata(types_1.PropertyName.DeviceSensorOpen); - device.updateRawProperty(metadataSensorOpen.key, status.toString(), "p2p"); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station sensor status error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStationGarageDoorStatus(station, channel, doorId, status) { - this.getStationDevice(station.getSerial(), channel).then((device) => { - device.updateRawProperty(types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, status.toString(), "p2p"); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootMainLogger.error(`Station garage door status error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), channel: channel }); - }); - } - onStorageInfoHb3(station, channel, storageInfo) { - if (station.hasProperty(types_1.PropertyName.StationStorageInfoEmmc)) { - station.updateProperty(types_1.PropertyName.StationStorageInfoEmmc, storageInfo.emmc_info); - } - if (station.hasProperty(types_1.PropertyName.StationStorageInfoHdd)) { - station.updateProperty(types_1.PropertyName.StationStorageInfoHdd, storageInfo.hdd_info); - } - } - onDeviceTampering(device, state) { - this.emit("device tampering", device, state); - } - onDeviceLowTemperature(device, state) { - this.emit("device low temperature", device, state); - } - onDeviceHighTemperature(device, state) { - this.emit("device high temperature", device, state); - } - onDevicePinIncorrect(device, state) { - this.emit("device pin incorrect", device, state); - } - onDeviceLidStuck(device, state) { - this.emit("device lid stuck", device, state); - } - onDeviceBatteryFullyCharged(device, state) { - this.emit("device battery fully charged", device, state); - } -} -exports.EufySecurity = EufySecurity; -//# sourceMappingURL=eufysecurity.js.map \ No newline at end of file diff --git a/build/eufysecurity.js.map b/build/eufysecurity.js.map deleted file mode 100644 index bcdd251c..00000000 --- a/build/eufysecurity.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"eufysecurity.js","sourceRoot":"","sources":["../src/eufysecurity.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/api.d.ts b/build/http/api.d.ts deleted file mode 100644 index a153388f..00000000 --- a/build/http/api.d.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { TrustDevice, Cipher, EventRecordResponse, ConfirmInvite, SensorHistoryEntry, ApiResponse, HouseDetail, DeviceListResponse, StationListResponse, HouseInviteListResponse, HouseListResponse, PassportProfileResponse, User, AddUserResponse } from "./models"; -import { HTTPApiEvents, Ciphers, FullDevices, Hubs, Voices, Invites, HTTPApiRequest, HTTPApiPersistentData, LoginOptions, Schedule } from "./interfaces"; -import { EventFilterType, PublicKeyType, VerfyCodeTypes } from "./types"; -export declare class HTTPApi extends TypedEmitter { - private static apiDomainBase; - private readonly SERVER_PUBLIC_KEY; - private apiBase; - private username; - private password; - private ecdh; - private token; - private tokenExpiration; - private renewAuthTokenJob?; - private connected; - private requestEufyCloud; - private throttle; - private devices; - private hubs; - private houses; - private persistentData; - private headers; - private constructor(); - static getApiBaseFromCloud(country: string): Promise; - private loadLibraries; - static initialize(country: string, username: string, password: string, persistentData?: HTTPApiPersistentData): Promise; - private clearScheduleRenewAuthToken; - private scheduleRenewAuthToken; - private invalidateToken; - setPhoneModel(model: string): void; - getPhoneModel(): string; - getCountry(): string; - setLanguage(language: string): void; - getLanguage(): string; - login(options?: LoginOptions): Promise; - sendVerifyCode(type?: VerfyCodeTypes): Promise; - listTrustDevice(): Promise>; - addTrustDevice(verifyCode: string): Promise; - getStationList(): Promise>; - getDeviceList(): Promise>; - refreshHouseData(): Promise; - refreshStationData(): Promise; - refreshDeviceData(): Promise; - refreshAllData(): Promise; - request(request: HTTPApiRequest, withoutUrlPrefix?: boolean): Promise; - checkPushToken(): Promise; - registerPushToken(token: string): Promise; - setParameters(stationSN: string, deviceSN: string, params: { - paramType: number; - paramValue: any; - }[]): Promise; - getCiphers(/*stationSN: string, */ cipherIDs: Array, userID: string): Promise; - getVoices(deviceSN: string): Promise; - getCipher(/*stationSN: string, */ cipherID: number, userID: string): Promise; - getDevices(): FullDevices; - getHubs(): Hubs; - getToken(): string | null; - getTokenExpiration(): Date | null; - setToken(token: string): void; - setTokenExpiration(tokenExpiration: Date): void; - getAPIBase(): string; - setOpenUDID(openudid: string): void; - setSerialNumber(serialnumber: string): void; - private _getEvents; - getVideoEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise>; - getAlarmEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise>; - getHistoryEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise>; - getAllVideoEvents(filter?: EventFilterType, maxResults?: number): Promise>; - getAllAlarmEvents(filter?: EventFilterType, maxResults?: number): Promise>; - getAllHistoryEvents(filter?: EventFilterType, maxResults?: number): Promise>; - isConnected(): boolean; - getInvites(): Promise; - confirmInvites(confirmInvites: Array): Promise; - getPublicKey(deviceSN: string, type: PublicKeyType): Promise; - decryptAPIData(data?: string, json?: boolean): any; - getSensorHistory(stationSN: string, deviceSN: string): Promise>; - getHouseDetail(houseID: string): Promise; - getHouseList(): Promise>; - getHouseInviteList(isInviter?: number): Promise>; - confirmHouseInvite(houseID: string, inviteID: number): Promise; - getPersistentData(): HTTPApiPersistentData | undefined; - getPassportProfile(): Promise; - addUser(deviceSN: string, nickname: string, stationSN?: string): Promise; - deleteUser(deviceSN: string, shortUserId: string, stationSN?: string): Promise; - getUsers(deviceSN: string, stationSN: string): Promise | null>; - getUser(deviceSN: string, stationSN: string, shortUserId: string): Promise; - updateUser(deviceSN: string, stationSN: string, shortUserId: string, nickname: string): Promise; - getImage(deviceSN: string, url: string): Promise; - updateUserPassword(deviceSN: string, shortUserId: string, passwordId: string, schedule: Schedule, stationSN?: string): Promise; -} diff --git a/build/http/api.js b/build/http/api.js deleted file mode 100644 index 3e46e824..00000000 --- a/build/http/api.js +++ /dev/null @@ -1,1578 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HTTPApi = void 0; -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const i18n_iso_countries_1 = require("i18n-iso-countries"); -const i18n_iso_languages_1 = require("@cospired/i18n-iso-languages"); -const crypto_1 = require("crypto"); -const schedule = __importStar(require("node-schedule")); -const types_1 = require("./types"); -const parameter_1 = require("./parameter"); -const utils_1 = require("./utils"); -const error_1 = require("./../error"); -const utils_2 = require("./../utils"); -const error_2 = require("./error"); -const utils_3 = require("../p2p/utils"); -const logging_1 = require("../logging"); -class HTTPApi extends tiny_typed_emitter_1.TypedEmitter { - static apiDomainBase = "https://extend.eufylife.com"; - SERVER_PUBLIC_KEY = "04c5c00c4f8d1197cc7c3167c52bf7acb054d722f0ef08dcd7e0883236e0d72a3868d9750cb47fa4619248f3d83f0f662671dadc6e2d31c2f41db0161651c7c076"; - apiBase; - username; - password; - ecdh = (0, crypto_1.createECDH)("prime256v1"); - token = null; - tokenExpiration = null; - renewAuthTokenJob; - connected = false; - requestEufyCloud; - throttle; - devices = {}; - hubs = {}; - houses = {}; - persistentData = { - user_id: "", - email: "", - nick_name: "", - device_public_keys: {}, - clientPrivateKey: "", - serverPublicKey: this.SERVER_PUBLIC_KEY - }; - headers = { - "User-Agent": undefined, - App_version: "v4.6.0_1630", - Os_type: "android", - Os_version: "31", - Phone_model: "ONEPLUS A3003", - Country: "DE", - Language: "en", - Openudid: "5e4621b0152c0d00", - //uid: "", - Net_type: "wifi", - Mnc: "02", - Mcc: "262", - Sn: "75814221ee75", - Model_type: "PHONE", - Timezone: "GMT+01:00", - "Cache-Control": "no-cache", - }; - constructor(apiBase, country, username, password, persistentData) { - super(); - this.username = username; - this.password = password; - this.apiBase = apiBase; - logging_1.rootHTTPLogger.debug(`Loaded API`, { apieBase: apiBase, country: country, username: username, persistentData: persistentData }); - this.headers.timezone = (0, utils_1.getTimezoneGMTString)(); - this.headers.country = country.toUpperCase(); - if (persistentData) { - this.persistentData = persistentData; - } - if (this.persistentData.clientPrivateKey === undefined || this.persistentData.clientPrivateKey === "") { - this.ecdh.generateKeys(); - this.persistentData.clientPrivateKey = this.ecdh.getPrivateKey().toString("hex"); - } - else { - try { - this.ecdh.setPrivateKey(Buffer.from(this.persistentData.clientPrivateKey, "hex")); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Invalid client private key, generate new client private key...`, { error: (0, utils_2.getError)(error) }); - this.ecdh.generateKeys(); - this.persistentData.clientPrivateKey = this.ecdh.getPrivateKey().toString("hex"); - } - } - if (this.persistentData.serverPublicKey === undefined || this.persistentData.serverPublicKey === "") { - this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; - } - else { - try { - this.ecdh.computeSecret(Buffer.from(this.persistentData.serverPublicKey, "hex")); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Invalid server public key, fallback to default server public key...`, { error: (0, utils_2.getError)(error) }); - this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; - } - } - } - static async getApiBaseFromCloud(country) { - const { default: got } = await import("got"); - const response = await got(`domain/${country}`, { - prefixUrl: this.apiDomainBase, - method: "GET", - responseType: "json", - retry: { - limit: 1, - methods: ["GET"] - } - }); - const result = response.body; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - return `https://${result.data.domain}`; - } - throw new error_2.ApiBaseLoadError("Error identifying API base from cloud", { context: { code: result.code, message: result.msg } }); - } - async loadLibraries() { - const { default: pThrottle } = await import("p-throttle"); - const { default: got } = await import("got"); - this.throttle = pThrottle({ - limit: 5, - interval: 1000, - }); - this.requestEufyCloud = got.extend({ - prefixUrl: this.apiBase, - headers: this.headers, - responseType: "json", - //throwHttpErrors: false, - retry: { - limit: 3, - methods: ["GET", "POST"], - statusCodes: [ - 404, - 408, - 413, - 423, - 429, - 500, - 502, - 503, - 504, - 521, - 522, - 524 - ], - calculateDelay: ({ computedValue }) => { - return computedValue * 3; - } - }, - hooks: { - afterResponse: [ - async (response, retryWithMergedOptions) => { - // Unauthorized - if (response.statusCode === 401) { - const oldToken = this.token; - logging_1.rootHTTPLogger.debug("Invalidate token an get a new one...", { requestUrl: response.requestUrl, statusCode: response.statusCode, statusMessage: response.statusMessage }); - this.invalidateToken(); - await this.login({ force: true }); - if (oldToken !== this.token && this.token) { - // Refresh the access token - const updatedOptions = { - headers: { - "X-Auth-Token": this.token - } - }; - // Update the defaults - this.requestEufyCloud.defaults.options.merge(updatedOptions); - // Make a new retry - return retryWithMergedOptions(updatedOptions); - } - } - // No changes otherwise - return response; - } - ], - beforeRetry: [ - (error) => { - // This will be called on `retryWithMergedOptions(...)` - const statusCode = error.response?.statusCode || 0; - const { method, url, prefixUrl } = error.options; - const shortUrl = (0, utils_2.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); - const body = error.response?.body ? error.response?.body : error.message; - logging_1.rootHTTPLogger.debug(`Retrying [${error.request?.retryCount !== undefined ? error.request?.retryCount + 1 : 1}]: ${error.code} (${error.request?.requestUrl})\n${statusCode} ${method} ${shortUrl}\n${body}`); - // Retrying [1]: ERR_NON_2XX_3XX_RESPONSE - } - ], - beforeError: [ - error => { - const { response, options } = error; - const statusCode = response?.statusCode || 0; - const { method, url, prefixUrl } = options; - const shortUrl = (0, utils_2.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); - const body = response?.body ? response.body : error.message; - if (response?.body) { - error.name = "EufyApiError"; - error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; - } - return error; - } - ], - beforeRequest: [ - async (_options) => { - await this.throttle(async () => { return; })(); - } - ] - }, - mutableDefaults: true - }); - } - static async initialize(country, username, password, persistentData) { - if ((0, i18n_iso_countries_1.isValid)(country) && country.length === 2) { - const apiBase = await this.getApiBaseFromCloud(country); - const api = new HTTPApi(apiBase, country, username, password, persistentData); - await api.loadLibraries(); - return api; - } - throw new error_1.InvalidCountryCodeError("Invalid ISO 3166-1 Alpha-2 country code", { context: { countryCode: country } }); - } - clearScheduleRenewAuthToken() { - if (this.renewAuthTokenJob !== undefined) { - this.renewAuthTokenJob.cancel(); - } - } - scheduleRenewAuthToken() { - this.clearScheduleRenewAuthToken(); - if (this.tokenExpiration !== null) { - const scheduleDate = new Date(this.tokenExpiration.getTime() - (1000 * 60 * 60 * 24)); - if (this.renewAuthTokenJob === undefined) { - this.renewAuthTokenJob = schedule.scheduleJob("renewAuthToken", scheduleDate, async () => { - logging_1.rootHTTPLogger.info("Authentication token is soon expiring, fetching a new one..."); - await this.login({ force: true }); - }); - } - else { - this.renewAuthTokenJob.schedule(scheduleDate); - } - } - } - invalidateToken() { - this.connected = false; - this.token = null; - this.requestEufyCloud.defaults.options.merge({ - headers: { - "X-Auth-Token": undefined - } - }); - this.tokenExpiration = null; - this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; - this.clearScheduleRenewAuthToken(); - this.emit("auth token invalidated"); - } - setPhoneModel(model) { - this.headers.phone_model = model.toUpperCase(); - this.requestEufyCloud.defaults.options.merge({ - headers: this.headers - }); - } - getPhoneModel() { - return this.headers.phone_model; - } - getCountry() { - return this.headers.country; - } - setLanguage(language) { - if ((0, i18n_iso_languages_1.isValid)(language) && language.length === 2) { - this.headers.language = language; - this.requestEufyCloud.defaults.options.merge({ - headers: this.headers - }); - } - else - throw new error_1.InvalidLanguageCodeError("Invalid ISO 639 language code", { context: { languageCode: language } }); - } - getLanguage() { - return this.headers.language; - } - async login(options) { - options = (0, utils_2.mergeDeep)(options, { - force: false - }); - logging_1.rootHTTPLogger.debug("Login and get an access token", { token: this.token, tokenExpiration: this.tokenExpiration, options: options }); - if (!this.token || (this.tokenExpiration && (new Date()).getTime() >= this.tokenExpiration.getTime()) || options.verifyCode || options.captcha || options.force) { - try { - const data = { - ab: this.headers.country, - client_secret_info: { - public_key: this.ecdh.getPublicKey("hex") - }, - enc: 0, - email: this.username, - password: (0, utils_1.encryptAPIData)(this.password, this.ecdh.computeSecret(Buffer.from(this.SERVER_PUBLIC_KEY, "hex"))), - time_zone: new Date().getTimezoneOffset() !== 0 ? -new Date().getTimezoneOffset() * 60 * 1000 : 0, - transaction: `${new Date().getTime()}` - }; - if (options.verifyCode) { - data.verify_code = options.verifyCode; - } - else if (options.captcha) { - data.captcha_id = options.captcha.captchaId; - data.answer = options.captcha.captchaCode; - } - const response = await this.request({ - method: "post", - endpoint: "v2/passport/login_sec", - data: data - }); - if (response.status == 200) { - const result = response.data; - if (result.data !== undefined) { - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - const dataresult = result.data; - if (dataresult.server_secret_info?.public_key) - this.persistentData.serverPublicKey = dataresult.server_secret_info.public_key; - this.persistentData.user_id = dataresult.user_id; - this.persistentData.email = this.decryptAPIData(dataresult.email, false); - this.persistentData.nick_name = dataresult.nick_name; - this.setToken(dataresult.auth_token); - this.tokenExpiration = new Date(dataresult.token_expires_at * 1000); - this.headers = { - ...this.headers, - gtoken: (0, utils_2.md5)(dataresult.user_id) - }; - logging_1.rootHTTPLogger.debug("Login - Token data", { token: this.token, tokenExpiration: this.tokenExpiration, serverPublicKey: this.persistentData.serverPublicKey }); - if (!this.connected) { - this.connected = true; - this.emit("connect"); - } - this.scheduleRenewAuthToken(); - } - else if (result.code == types_1.ResponseErrorCode.CODE_NEED_VERIFY_CODE) { - logging_1.rootHTTPLogger.debug(`Login - Send verification code...`); - const dataresult = result.data; - this.setToken(dataresult.auth_token); - this.tokenExpiration = new Date(dataresult.token_expires_at * 1000); - logging_1.rootHTTPLogger.debug("Token data", { token: this.token, tokenExpiration: this.tokenExpiration }); - await this.sendVerifyCode(types_1.VerfyCodeTypes.TYPE_EMAIL); - logging_1.rootHTTPLogger.info("Please send required verification code to proceed with authentication"); - this.emit("tfa request"); - } - else if (result.code == types_1.ResponseErrorCode.LOGIN_NEED_CAPTCHA || result.code == types_1.ResponseErrorCode.LOGIN_CAPTCHA_ERROR) { - const dataresult = result.data; - logging_1.rootHTTPLogger.debug("Login - Captcha verification received", { captchaId: dataresult.captcha_id, item: dataresult.item }); - logging_1.rootHTTPLogger.info("Please send requested captcha to proceed with authentication"); - this.emit("captcha request", dataresult.captcha_id, dataresult.item); - } - else { - logging_1.rootHTTPLogger.error("Login - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - this.emit("connection error", new error_2.ApiResponseCodeError("API response code not ok", { context: { code: result.code, message: result.msg } })); - } - } - else { - logging_1.rootHTTPLogger.error("Login - Response data is missing", { code: result.code, msg: result.msg, data: result.data }); - this.emit("connection error", new error_2.ApiInvalidResponseError("API response data is missing", { context: { code: result.code, message: result.msg, data: result.data } })); - } - } - else { - logging_1.rootHTTPLogger.error("Login - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - this.emit("connection error", new error_2.ApiHTTPResponseCodeError("API HTTP response code not ok", { context: { status: response.status, statusText: response.statusText } })); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Login - Generic Error:", { error: (0, utils_2.getError)(error) }); - this.emit("connection error", new error_2.ApiGenericError("Generic API error", { cause: error })); - } - } - else if (!this.connected) { - try { - const profile = await this.getPassportProfile(); - if (profile !== null) { - if (!this.connected) { - this.connected = true; - this.emit("connect"); - this.scheduleRenewAuthToken(); - } - } - else { - this.emit("connection error", new error_2.ApiInvalidResponseError(`Invalid passport profile response`)); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Login - getPassportProfile Error", { error: (0, utils_2.getError)(error) }); - this.emit("connection error", new error_2.ApiGenericError("API get passport profile error", { cause: error })); - } - } - } - async sendVerifyCode(type) { - try { - if (!type) - type = types_1.VerfyCodeTypes.TYPE_EMAIL; - const response = await this.request({ - method: "post", - endpoint: "v1/sms/send/verify_code", - data: { - message_type: type, - transaction: `${new Date().getTime()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - logging_1.rootHTTPLogger.info(`Requested verification code for 2FA`); - return true; - } - else { - logging_1.rootHTTPLogger.error("Send verify code - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Send verify code - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Send verify code - Generic Error", { error: (0, utils_2.getError)(error) }); - } - return false; - } - async listTrustDevice() { - if (this.connected) { - try { - const response = await this.request({ - method: "get", - endpoint: "v1/app/trust_device/list" - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data && result.data.list) { - return result.data.list; - } - } - else { - logging_1.rootHTTPLogger.error("List trust device - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("List trust device - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("List trust device - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return []; - } - async addTrustDevice(verifyCode) { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/trust_device/add", - data: { - verify_code: verifyCode, - transaction: `${new Date().getTime()}` - } - }); - logging_1.rootHTTPLogger.debug("Add trust device - Response trust device", { verifyCode: verifyCode, data: response.data }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - logging_1.rootHTTPLogger.info(`2FA authentication successfully done. Device trusted.`); - const trusted_devices = await this.listTrustDevice(); - trusted_devices.forEach((trusted_device) => { - if (trusted_device.is_current_device === 1) { - logging_1.rootHTTPLogger.debug("Add trust device - This device is trusted. Token expiration extended:", { trustDevice: { phoneModel: trusted_device.phone_model, openUdid: trusted_device.open_udid }, tokenExpiration: this.tokenExpiration }); - } - }); - return true; - } - else { - logging_1.rootHTTPLogger.error("Add trust device - Response code not ok", { code: result.code, msg: result.msg, verifyCode: verifyCode, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Add trust device - Status return code not 200", { status: response.status, statusText: response.statusText, verifyCode: verifyCode, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Add trust device - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return false; - } - async getStationList() { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v2/house/station_list", - data: { - device_sn: "", - num: 1000, - orderby: "", - page: 0, - station_sn: "", - time_zone: new Date().getTimezoneOffset() !== 0 ? -new Date().getTimezoneOffset() * 60 * 1000 : 0, - transaction: `${new Date().getTime()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - if (result.data) { - const stationList = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug("Decrypted station list data", stationList); - return stationList; - } - } - else { - logging_1.rootHTTPLogger.error("Station list - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Station list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station list - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return []; - } - async getDeviceList() { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v2/house/device_list", - data: { - device_sn: "", - num: 1000, - orderby: "", - page: 0, - station_sn: "", - time_zone: new Date().getTimezoneOffset() !== 0 ? -new Date().getTimezoneOffset() * 60 * 1000 : 0, - transaction: `${new Date().getTime()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - if (result.data) { - const deviceList = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug("Decrypted device list data", deviceList); - return deviceList; - } - } - else { - logging_1.rootHTTPLogger.error("Device list - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Device list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Device list - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return []; - } - async refreshHouseData() { - //Get Houses - const houses = await this.getHouseList(); - if (houses && houses.length > 0) { - houses.forEach(element => { - this.houses[element.house_id] = element; - }); - } - else { - logging_1.rootHTTPLogger.info("No houses found."); - } - this.emit("houses", this.houses); - } - async refreshStationData() { - //Get Stations - const stations = await this.getStationList(); - if (stations && stations.length > 0) { - stations.forEach(element => { - this.hubs[element.station_sn] = element; - }); - } - else { - logging_1.rootHTTPLogger.info("No stations found."); - } - this.emit("hubs", this.hubs); - } - async refreshDeviceData() { - //Get Devices - const devices = await this.getDeviceList(); - if (devices && devices.length > 0) { - devices.forEach(element => { - this.devices[element.device_sn] = element; - }); - } - else { - logging_1.rootHTTPLogger.info("No devices found."); - } - this.emit("devices", this.devices); - } - async refreshAllData() { - //Get the latest info - //Get Houses - await this.refreshHouseData(); - //Get Stations - await this.refreshStationData(); - //Get Devices - await this.refreshDeviceData(); - } - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - async request(request, withoutUrlPrefix = false) { - logging_1.rootHTTPLogger.debug("Api request", { method: request.method, endpoint: request.endpoint, responseType: request.responseType, token: this.token, data: request.data }); - try { - let options; - switch (request.responseType) { - case undefined: - case "json": - options = { - method: request.method, - json: request.data, - responseType: "json", - }; - break; - case "text": - options = { - method: request.method, - json: request.data, - responseType: request.responseType, - }; - break; - case "buffer": - options = { - method: request.method, - json: request.data, - responseType: request.responseType, - }; - break; - } - if (withoutUrlPrefix) - options.prefixUrl = ""; - const internalResponse = await this.requestEufyCloud(request.endpoint, options); - const response = { - status: internalResponse.statusCode, - statusText: internalResponse.statusMessage ? internalResponse.statusMessage : "", - headers: internalResponse.headers, - data: internalResponse.body, - }; - logging_1.rootHTTPLogger.debug("Api request - Response", { token: this.token, request: request, response: response.data }); - return response; - } - catch (err) { - const error = (0, error_1.ensureError)(err); - if (error instanceof (await import("got")).HTTPError) { - if (error.response.statusCode === 401) { - this.invalidateToken(); - logging_1.rootHTTPLogger.error("Status return code 401, invalidate token", { status: error.response.statusCode, statusText: error.response.statusMessage }); - this.emit("close"); - } - } - throw new error_2.ApiRequestError("API request error", { cause: error, context: { method: request.method, endpoint: request.endpoint, responseType: request.responseType, token: this.token, data: request.data } }); - } - } - async checkPushToken() { - //Check push notification token - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/review/app_push_check", - data: { - app_type: "eufySecurity", - transaction: `${new Date().getTime()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - logging_1.rootHTTPLogger.debug(`Check push token - Push token OK`); - return true; - } - else { - logging_1.rootHTTPLogger.error("Check push token - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Check push token - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Check push token - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return false; - } - async registerPushToken(token) { - //Register push notification token - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/apppush/register_push_token", - data: { - is_notification_enable: true, - token: token, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - logging_1.rootHTTPLogger.debug(`Register push token - Push token registered successfully`); - return true; - } - else { - logging_1.rootHTTPLogger.error("Register push token - Response code not ok", { code: result.code, msg: result.msg, data: response.data, token: token }); - } - } - else { - logging_1.rootHTTPLogger.error("Register push token - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, token: token }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Register push token - Generic Error", { error: (0, utils_2.getError)(error), token: token }); - } - } - return false; - } - async setParameters(stationSN, deviceSN, params) { - if (this.connected) { - const tmp_params = []; - params.forEach(param => { - tmp_params.push({ param_type: param.paramType, param_value: parameter_1.ParameterHelper.writeValue(param.paramType, param.paramValue) }); - }); - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/upload_devs_params", - data: { - device_sn: deviceSN, - station_sn: stationSN, - params: tmp_params, - transaction: `${new Date().getTime().toString()}` - } - }); - logging_1.rootHTTPLogger.debug("Set parameter - Response:", { stationSN: stationSN, deviceSN: deviceSN, params: tmp_params, response: response.data }); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - const dataresult = result.data; - logging_1.rootHTTPLogger.debug("Set parameter - New parameters set", { params: tmp_params, response: dataresult }); - return true; - } - else { - logging_1.rootHTTPLogger.error("Set parameter - Response code not ok", { code: result.code, msg: result.msg, data: response.data, stationSN: stationSN, deviceSN: deviceSN, params: params }); - } - } - else { - logging_1.rootHTTPLogger.error("Set parameter - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, stationSN: stationSN, deviceSN: deviceSN, params: params }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Set parameter - Generic Error", { error: (0, utils_2.getError)(error), stationSN: stationSN, deviceSN: deviceSN, params: params }); - } - } - return false; - } - async getCiphers(/*stationSN: string, */ cipherIDs, userID) { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v2/app/cipher/get_ciphers", - data: { - cipher_ids: cipherIDs, - user_id: userID, - //sn: stationSN - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const ciphers = {}; - const decrypted = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug("Get ciphers - Decrypted ciphers data", { ciphers: decrypted }); - if (Array.isArray(decrypted)) { - decrypted.forEach((cipher) => { - ciphers[cipher.cipher_id] = cipher; - }); - } - return ciphers; - } - } - else { - logging_1.rootHTTPLogger.error("Get ciphers - Response code not ok", { code: result.code, msg: result.msg, data: response.data, cipherIDs: cipherIDs, userID: userID }); - } - } - else { - logging_1.rootHTTPLogger.error("Get ciphers - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, cipherIDs: cipherIDs, userID: userID }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get ciphers - Generic Error", { error: (0, utils_2.getError)(error), cipherIDs: cipherIDs, userID: userID }); - } - } - return {}; - } - async getVoices(deviceSN) { - if (this.connected) { - try { - const response = await this.request({ - method: "get", - endpoint: `v1/voice/response/lists/${deviceSN}` - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const voices = {}; - result.data.forEach((voice) => { - voices[voice.voice_id] = voice; - }); - return voices; - } - } - else { - logging_1.rootHTTPLogger.error("Get Voices - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN }); - } - } - else { - logging_1.rootHTTPLogger.error("Get Voices - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get Voices - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN }); - } - } - return {}; - } - async getCipher(/*stationSN: string, */ cipherID, userID) { - return (await this.getCiphers(/*stationSN, */ [cipherID], userID))[cipherID]; - } - getDevices() { - return this.devices; - } - getHubs() { - return this.hubs; - } - getToken() { - return this.token; - } - getTokenExpiration() { - return this.tokenExpiration; - } - setToken(token) { - this.token = token; - this.requestEufyCloud.defaults.options.merge({ - headers: { - "X-Auth-Token": token - } - }); - } - setTokenExpiration(tokenExpiration) { - this.tokenExpiration = tokenExpiration; - } - getAPIBase() { - return typeof this.requestEufyCloud.defaults.options.prefixUrl === "string" ? this.requestEufyCloud.defaults.options.prefixUrl : this.requestEufyCloud.defaults.options.prefixUrl.toString(); - } - setOpenUDID(openudid) { - this.headers.openudid = openudid; - this.requestEufyCloud.defaults.options.merge({ - headers: this.headers - }); - } - setSerialNumber(serialnumber) { - this.headers.sn = serialnumber; - this.requestEufyCloud.defaults.options.merge({ - headers: this.headers - }); - } - async _getEvents(functionName, endpoint, startTime, endTime, filter, maxResults) { - const records = []; - if (this.connected) { - try { - if (filter === undefined) - filter = { deviceSN: "", stationSN: "", storageType: types_1.StorageType.NONE }; - if (maxResults === undefined) - maxResults = 1000; - const response = await this.request({ - method: "post", - endpoint: endpoint, - data: { - device_sn: filter.deviceSN !== undefined ? filter.deviceSN : "", - end_time: Math.trunc(endTime.getTime() / 1000), - exclude_guest: false, - house_id: "HOUSEID_ALL_DEVICE", - id: 0, - id_type: 1, - is_favorite: false, - num: maxResults, - pullup: true, - shared: true, - start_time: Math.trunc(startTime.getTime() / 1000), - station_sn: filter.stationSN !== undefined ? filter.stationSN : "", - storage: filter.storageType !== undefined ? filter.storageType : types_1.StorageType.NONE, - transaction: `${new Date().getTime().toString()}` - } - }); - logging_1.rootHTTPLogger.debug(`${functionName} - Response:`, response.data); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - if (result.data) { - const dataresult = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug(`${functionName} - Decrypted data:`, dataresult); - if (dataresult) { - dataresult.forEach(record => { - logging_1.rootHTTPLogger.debug(`${functionName} - Record:`, record); - records.push(record); - }); - } - } - else { - logging_1.rootHTTPLogger.error(`${functionName} - Response data is missing`, { code: result.code, msg: result.msg, data: response.data, endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); - } - } - else { - logging_1.rootHTTPLogger.error(`${functionName} - Response code not ok`, { code: result.code, msg: result.msg, data: response.data, endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); - } - } - else { - logging_1.rootHTTPLogger.error(`${functionName} - Status return code not 200`, { status: response.status, statusText: response.statusText, data: response.data, endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`${functionName} - Generic Error`, { error: (0, utils_2.getError)(error), endpoint: endpoint, startTime: startTime, endTime: endTime, filter: filter, maxResults: maxResults }); - } - } - return records; - } - async getVideoEvents(startTime, endTime, filter, maxResults) { - return this._getEvents("getVideoEvents", "v2/event/app/get_all_video_record", startTime, endTime, filter, maxResults); - } - async getAlarmEvents(startTime, endTime, filter, maxResults) { - return this._getEvents("getAlarmEvents", "v2/event/app/get_all_alarm_record", startTime, endTime, filter, maxResults); - } - async getHistoryEvents(startTime, endTime, filter, maxResults) { - return this._getEvents("getHistoryEvents", "v2/event/app/get_all_history_record", startTime, endTime, filter, maxResults); - } - async getAllVideoEvents(filter, maxResults) { - const fifteenYearsInMilliseconds = 15 * 365 * 24 * 60 * 60 * 1000; - return this.getVideoEvents(new Date(new Date().getTime() - fifteenYearsInMilliseconds), new Date(), filter, maxResults); - } - async getAllAlarmEvents(filter, maxResults) { - const fifteenYearsInMilliseconds = 15 * 365 * 24 * 60 * 60 * 1000; - return this.getAlarmEvents(new Date(new Date().getTime() - fifteenYearsInMilliseconds), new Date(), filter, maxResults); - } - async getAllHistoryEvents(filter, maxResults) { - const fifteenYearsInMilliseconds = 15 * 365 * 24 * 60 * 60 * 1000; - return this.getHistoryEvents(new Date(new Date().getTime() - fifteenYearsInMilliseconds), new Date(), filter, maxResults); - } - isConnected() { - return this.connected; - } - async getInvites() { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v2/family/get_invites", - data: { - num: 100, - orderby: "", - own: false, - page: 0, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const invites = {}; - const decrypted = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug("Get invites - Decrypted invites data", { invites: decrypted }); - if (Array.isArray(decrypted)) { - decrypted.forEach((invite) => { - invites[invite.invite_id] = invite; - let data = (0, utils_2.parseJSON)(invites[invite.invite_id].devices, logging_1.rootHTTPLogger); - if (data === undefined) - data = []; - invites[invite.invite_id].devices = data; - }); - } - return invites; - } - } - else { - logging_1.rootHTTPLogger.error("Get invites - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Get invites - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get invites - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return {}; - } - async confirmInvites(confirmInvites) { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/family/confirm_invite", - data: { - invites: confirmInvites, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - return true; - } - else { - logging_1.rootHTTPLogger.error("Confirm invites - Response code not ok", { code: result.code, msg: result.msg, data: response.data, confirmInvites: confirmInvites }); - } - } - else { - logging_1.rootHTTPLogger.error("Confirm invites - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, confirmInvites: confirmInvites }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Confirm invites - Generic Error", { error: (0, utils_2.getError)(error), confirmInvites: confirmInvites }); - } - } - return false; - } - async getPublicKey(deviceSN, type) { - if (this.connected) { - try { - if (this.persistentData.device_public_keys[deviceSN] !== undefined && type === types_1.PublicKeyType.LOCK) { - logging_1.rootHTTPLogger.debug("return cached public key", this.persistentData.device_public_keys[deviceSN]); - return this.persistentData.device_public_keys[deviceSN]; - } - else { - const response = await this.request({ - method: "get", - endpoint: `v1/app/public_key/query?device_sn=${deviceSN}&type=${type}` - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - if (type === types_1.PublicKeyType.LOCK) - this.persistentData.device_public_keys[deviceSN] = result.data.public_key; - return result.data.public_key; - } - } - else { - logging_1.rootHTTPLogger.error("Get public key - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, type: type }); - } - } - else { - logging_1.rootHTTPLogger.error("Get public key - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, type: type }); - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get public key - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, type: type }); - } - } - return ""; - } - decryptAPIData(data, json = true) { - if (data) { - let decryptedData; - try { - decryptedData = (0, utils_1.decryptAPIData)(data, this.ecdh.computeSecret(Buffer.from(this.persistentData.serverPublicKey, "hex"))); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Data decryption error, invalidating session data and reconnecting...", { error: (0, utils_2.getError)(error), serverPublicKey: this.persistentData.serverPublicKey }); - this.persistentData.serverPublicKey = this.SERVER_PUBLIC_KEY; - this.invalidateToken(); - this.emit("close"); - } - if (decryptedData) { - const str = (0, utils_3.getNullTerminatedString)(decryptedData, "utf-8"); - if (json) - return (0, utils_2.parseJSON)(str, logging_1.rootHTTPLogger); - return str; - } - if (json) - return {}; - } - return undefined; - } - async getSensorHistory(stationSN, deviceSN) { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/get_sensor_history", - data: { - devicse_sn: deviceSN, - max_time: 0, //TODO: Finish implementation - num: 500, //TODO: Finish implementation - page: 0, //TODO: Finish implementation - station_sn: stationSN, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const entries = result.data; - return entries; - } - } - else { - logging_1.rootHTTPLogger.error("Get sensor history - Response code not ok", { code: result.code, msg: result.msg, data: response.data, stationSN: stationSN, deviceSN: deviceSN }); - } - } - else { - logging_1.rootHTTPLogger.error("Get sensor history - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, stationSN: stationSN, deviceSN: deviceSN }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get sensor history - Generic Error", { error: (0, utils_2.getError)(error), stationSN: stationSN, deviceSN: deviceSN }); - } - } - return []; - } - async getHouseDetail(houseID) { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v2/house/detail", - data: { - house_id: houseID, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const houseDetail = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug("Get house detail - Decrypted house detail data", { details: houseDetail }); - return houseDetail; - } - } - else { - logging_1.rootHTTPLogger.error("Get house detail - Response code not ok", { code: result.code, msg: result.msg, data: response.data, houseID: houseID }); - } - } - else { - logging_1.rootHTTPLogger.error("Get house detail - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, houseID: houseID }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get house detail - Generic Error", { error: (0, utils_2.getError)(error), houseID: houseID }); - } - } - return null; - } - async getHouseList() { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/house/list", - data: { - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - logging_1.rootHTTPLogger.debug("Get house list - houses", { houses: result.data }); - return result.data; - } - } - else { - logging_1.rootHTTPLogger.error("Get house list - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Get house list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get house list - Generic Error", { error: (0, utils_2.getError)(error) }); - } - } - return []; - } - async getHouseInviteList(isInviter = 1) { - //TODO: Understand the other values of isInviter and document it - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/house/invite_list", - data: { - is_inviter: isInviter, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - //const houseInviteList = this.decryptAPIData(result.data) as Array; // No more encrypted!? - //rootHTTPLogger.debug("Get house invite list - Decrypted house invite list data", houseInviteList); - const houseInviteList = result.data; - logging_1.rootHTTPLogger.debug("Get house invite list - House invite list data", houseInviteList); - return houseInviteList; - } - } - else { - logging_1.rootHTTPLogger.error("Get house invite list - Response code not ok", { code: result.code, msg: result.msg, data: response.data, isInviter: isInviter }); - } - } - else { - logging_1.rootHTTPLogger.error("Get house invite list - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, isInviter: isInviter }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get house invite list - Generic Error", { error: (0, utils_2.getError)(error), isInviter: isInviter }); - } - } - return []; - } - async confirmHouseInvite(houseID, inviteID) { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/house/confirm_invite", - data: { - house_id: houseID, - invite_id: inviteID, - is_inviter: 1, // 1 = true, 0 = false - //user_id: "", - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - return true; - } - else { - logging_1.rootHTTPLogger.error("Confirm house invite - Response code not ok", { code: result.code, msg: result.msg, data: response.data, houseID: houseID, inviteID: inviteID }); - } - } - else { - logging_1.rootHTTPLogger.error("Confirm house invite - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, houseID: houseID, inviteID: inviteID }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Confirm house invite - Generic Error", { error: (0, utils_2.getError)(error), houseID: houseID, inviteID: inviteID }); - } - } - return false; - } - getPersistentData() { - return this.persistentData; - } - async getPassportProfile() { - try { - const response = await this.request({ - method: "get", - endpoint: "v2/passport/profile" - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const profile = this.decryptAPIData(result.data); - logging_1.rootHTTPLogger.debug("Get passport profile - Decrypted passport profile data", { profile: profile }); - this.persistentData.user_id = profile.user_id; - this.persistentData.nick_name = profile.nick_name; - this.persistentData.email = profile.email; - return profile; - } - } - else { - logging_1.rootHTTPLogger.error("Get passport profile - Response code not ok", { code: result.code, msg: result.msg, data: response.data }); - } - } - else { - logging_1.rootHTTPLogger.error("Get passport profile - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get passport profile - Generic Error", { error: (0, utils_2.getError)(error) }); - } - return null; - } - async addUser(deviceSN, nickname, stationSN = "") { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/device/local_user/add", - data: { - device_sn: deviceSN, - nick_name: nickname, - station_sn: stationSN === deviceSN ? "" : stationSN, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) - return result.data; - } - else { - logging_1.rootHTTPLogger.error("Add user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, nickname: nickname, stationSN: stationSN }); - } - } - else { - logging_1.rootHTTPLogger.error("Add user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, nickname: nickname, stationSN: stationSN }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Add user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, nickname: nickname, stationSN: stationSN }); - } - } - return null; - } - async deleteUser(deviceSN, shortUserId, stationSN = "") { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/device/user/delete", - data: { - device_sn: deviceSN, - short_user_ids: [shortUserId], - station_sn: stationSN === deviceSN ? "" : stationSN, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - return true; - } - else { - logging_1.rootHTTPLogger.error("Delete user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, stationSN: stationSN }); - } - } - else { - logging_1.rootHTTPLogger.error("Delete user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, stationSN: stationSN }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Delete user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, shortUserId: shortUserId, stationSN: stationSN }); - } - } - return false; - } - async getUsers(deviceSN, stationSN) { - try { - const response = await this.request({ - method: "get", - endpoint: `v1/app/device/user/list?device_sn=${deviceSN}&station_sn=${stationSN}` - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - if (result.data) { - const usersResponse = result.data; - return usersResponse.user_list; - } - } - else { - logging_1.rootHTTPLogger.error("Get users - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, stationSN: stationSN }); - } - } - else { - logging_1.rootHTTPLogger.error("Get users - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, stationSN: stationSN }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get users - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, stationSN: stationSN }); - } - return null; - } - async getUser(deviceSN, stationSN, shortUserId) { - try { - const users = await this.getUsers(deviceSN, stationSN); - if (users !== null) { - for (const user of users) { - if (user.short_user_id === shortUserId) { - return user; - } - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId }); - } - return null; - } - async updateUser(deviceSN, stationSN, shortUserId, nickname) { - if (this.connected) { - try { - const user = await this.getUser(deviceSN, stationSN, shortUserId); - if (user !== null) { - const response = await this.request({ - method: "post", - endpoint: "v1/app/device/local_user/update", - data: { - device_sn: deviceSN, - nick_name: nickname, - password_list: user.password_list, - short_user_id: shortUserId, - station_sn: stationSN === deviceSN ? "" : stationSN, - user_type: user.user_type, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - return true; - } - else { - logging_1.rootHTTPLogger.error("Update user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId, nickname: nickname }); - } - } - else { - logging_1.rootHTTPLogger.error("Update user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId, nickname: nickname }); - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Update user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, stationSN: stationSN, shortUserId: shortUserId, nickname: nickname }); - } - } - return false; - } - async getImage(deviceSN, url) { - if (this.connected) { - try { - const device = this.devices[deviceSN]; - if (device) { - const station = this.hubs[device.station_sn]; - if (station) { - const response = await this.request({ - method: "GET", - endpoint: url, - responseType: "buffer" - }, true); - if (response.status == 200) { - return (0, utils_1.decodeImage)(station.p2p_did, response.data); - } - else { - logging_1.rootHTTPLogger.error("Get Image - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, url: url }); - } - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Get Image - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, url: url }); - } - } - return Buffer.alloc(0); - } - async updateUserPassword(deviceSN, shortUserId, passwordId, schedule, stationSN = "") { - if (this.connected) { - try { - const response = await this.request({ - method: "post", - endpoint: "v1/app/device/password/save_or_update", - data: { - device_sn: deviceSN, - password_list: [{ - password_id: passwordId, - password_type: types_1.UserPasswordType.PIN, - schedule: JSON.stringify({ - endDay: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", - endTime: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", - startDay: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", - startTime: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", - week: schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", - }) - }], - short_user_id: shortUserId, - station_sn: stationSN === deviceSN ? "" : stationSN, - transaction: `${new Date().getTime().toString()}` - } - }); - if (response.status == 200) { - const result = response.data; - if (result.code == types_1.ResponseErrorCode.CODE_WHATEVER_ERROR) { - return true; - } - else { - logging_1.rootHTTPLogger.error("Add user - Response code not ok", { code: result.code, msg: result.msg, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, schedule: schedule, stationSN: stationSN }); - } - } - else { - logging_1.rootHTTPLogger.error("Add user - Status return code not 200", { status: response.status, statusText: response.statusText, data: response.data, deviceSN: deviceSN, shortUserId: shortUserId, schedule: schedule, stationSN: stationSN }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Add user - Generic Error", { error: (0, utils_2.getError)(error), deviceSN: deviceSN, shortUserId: shortUserId, schedule: schedule, stationSN: stationSN }); - } - } - return false; - } -} -exports.HTTPApi = HTTPApi; -//# sourceMappingURL=api.js.map \ No newline at end of file diff --git a/build/http/api.js.map b/build/http/api.js.map deleted file mode 100644 index 569cd51b..00000000 --- a/build/http/api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/http/api.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/cache.d.ts b/build/http/cache.d.ts deleted file mode 100644 index d5c4cc6b..00000000 --- a/build/http/cache.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export declare class Cache extends Map { - private ttl; - private schedules; - constructor(ttl?: number); - delete(key: any): boolean; - set(key: any, value: any, ttl?: number): this; - get(key: any): any; -} diff --git a/build/http/cache.js b/build/http/cache.js deleted file mode 100644 index df02587f..00000000 --- a/build/http/cache.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Cache = void 0; -class Cache extends Map { - ttl = 60000; - schedules = new Map(); - constructor(ttl) { - super(); - if (ttl !== undefined) - this.ttl = ttl; - } - delete(key) { - const result = super.delete(key); - clearTimeout(this.schedules.get(key)); - this.schedules.delete(key); - return result; - } - set(key, value, ttl = this.ttl) { - super.set(key, value); - if (this.schedules.has(key)) { - clearTimeout(this.schedules.get(key)); - } - const schedule = setTimeout(() => { - this.delete(key); - }, ttl); - this.schedules.set(key, schedule); - return this; - } - get(key) { - return super.get(key); - } -} -exports.Cache = Cache; -//# sourceMappingURL=cache.js.map \ No newline at end of file diff --git a/build/http/cache.js.map b/build/http/cache.js.map deleted file mode 100644 index 27f76e45..00000000 --- a/build/http/cache.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/http/cache.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAM,SAAQ,GAAG;IAElB,GAAG,GAAG,KAAK,CAAC;IACZ,SAAS,GAAI,IAAI,GAAG,EAAE,CAAC;IAE/B,YAAY,GAAY;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,GAAG,KAAK,SAAS;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,GAAQ;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,GAAG,CAAC,GAAQ,EAAE,KAAU,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG;QAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,GAAG,CAAC,GAAQ;QACf,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACJ;AAlCD,sBAkCC"} \ No newline at end of file diff --git a/build/http/const.d.ts b/build/http/const.d.ts deleted file mode 100644 index e4947493..00000000 --- a/build/http/const.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { EufyTimezone } from "./utils"; -export declare const PhoneModels: Array; -export declare const timeZoneData: Array; diff --git a/build/http/const.js b/build/http/const.js deleted file mode 100644 index acdc1d94..00000000 --- a/build/http/const.js +++ /dev/null @@ -1,8546 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.timeZoneData = exports.PhoneModels = void 0; -exports.PhoneModels = [ - "ARCHOS 101 CHILDPAD", - "1100", - "1105", - "1107", - "1201", - "1206", - "15", - "15 Lite", - "15 Plus", - "16", - "16 X", - "16s", - "16s Pro", - "16T", - "16th", - "16th Plus", - "2013023", - "21051182C", - "21051182G", - "21061110AG", - "21061119AG", - "21061119AL", - "21061119DG", - "2106118C", - "2107113SG", - "2107113SI", - "2107113SR", - "2107119DC", - "21081111RG", - "21091116AC", - "21091116AI", - "21091116C", - "21091116I", - "21091116UC", - "21091116UG", - "21091116UI", - "2109119BC", - "2109119DG", - "2109119DI", - "21121119SC", - "21121119SG", - "21121119VL", - "21121210C", - "2112123AC", - "22011119UY", - "2201116SC", - "2201116SG", - "2201116SI", - "2201116SR", - "2201116TG", - "2201117SG", - "2201117SI", - "2201117SL", - "2201117SY", - "2201117TG", - "2201117TI", - "2201117TL", - "2201117TY", - "22011211C", - "2201122C", - "2201122G", - "2201123C", - "2201123G", - "22021211RC", - "220233L2C", - "220233L2G", - "220233L2I", - "22031116BG", - "2203121C", - "2203129G", - "220333QAG", - "220333QBI", - "220333QL", - "220333QNY", - "22041211AC", - "22041216C", - "22041216I", - "22041216UC", - "22041219C", - "22041219G", - "22041219I", - "22041219NY", - "22061218C", - "2206122SC", - "2206123SC", - "2207117BPG", - "22071212AG", - "2207122MC", - "220733SFG", - "220733SG", - "220733SI", - "220733SL", - "220743FI", - "22081212C", - "22081212UG", - "22081281AC", - "22081283G", - "22087RA4DI", - "3000", - "3001", - "3005", - "3006", - "3007", - "3008", - "401SO", - "402SO", - "403SC", - "404SC", - "501LV", - "501SO", - "502SO", - "601LV", - "601SO", - "602LV", - "602SO", - "701LV", - "701SO", - "702LV", - "702SO", - "801LV", - "801SO", - "802SO", - "9.4'' FFF", - "901SO", - "902SO", - "A0001", - "A001OP", - "A001SO", - "A001XM", - "A002OP", - "A002SO", - "A1_07", - "A101LV", - "A101OP", - "A101SO", - "A102OP", - "A102SO", - "A103SO", - "A11", - "A11f", - "A11t", - "A11w", - "A1601", - "A1601fw", - "A1603", - "A201OP", - "A201SO", - "A202SO", - "A203SO", - "A204SO", - "A2107A-H", - "A30t", - "A31", - "A31c", - "A31t", - "A31u", - "A33", - "A33f", - "A33fw", - "A33t", - "A33w", - "A37f", - "A37fw", - "A50TI", - "A51", - "A51f", - "A51kc", - "A51w", - "A53f", - "A53fw", - "A53w", - "A66t", - "A68e", - "A7700", - "A80RG11", - "AC101XPro4G", - "AC2001", - "AC2003", - "AC45BHE", - "AC50BHE", - "AC50DHE", - "ACT101WF", - "ALBA 10 TABLET", - "Alba 10", - "ALBA 4", - "Alba 4 Android", - "Alba 4.0 Smartphone", - "ALBA 5", - "Alba 7", - "ALBA 7 TABLET", - "Alba 7", - "ALBA 8 TABLET", - "Alba 8", - "angelica", - "angelican", - "AQUOS 50S1", - "AQUOS 50U3A", - "AQUOS 58U1", - "AQUOS 60LX765A", - "AQUOS 60UE20A", - "AQUOS 65UR30A", - "AQUOS 70UD30A", - "AQUOS 70UG30A", - "AQUOS 70XU30A", - "archer", - "Archos 101 Cobalt", - "Archos 101 Copper", - "Archos 101 DB", - "Archos 101 Helium", - "Archos 101 Helium Lite", - "ARCHOS 101 Magnus", - "Archos 101 Neon", - "Archos 101 Oxygen", - "Archos 101 Oxygen 4G", - "Archos 101 Platinium 3G", - "ARCHOS 101 PLATINUM", - "Archos 101 Platinum 3G", - "ARCHOS 101 Titanium", - "Archos 101 Xenon", - "Archos 101 Xenon Lite", - "Archos 101 Xenon v2", - "ARCHOS 101 XS 2", - "Archos 101b Copper", - "Archos 101b Helium", - "Archos 101b Neon", - "Archos 101b Oxygen", - "Archos 101b Platinium", - "Archos 101b Xenon", - "Archos 101b Xenon v2", - "Archos 101b Xenon v3", - "ARCHOS 101b XS2", - "Archos 101c Copper", - "Archos 101c Helium", - "Archos 101c Neon", - "Archos 101c Platinum", - "Archos 101c Xenon", - "Archos 101d Neon", - "Archos 101d Platinum v2", - "Archos 101d Platinum v3", - "Archos 101e Neon", - "ARCHOS 101G10", - "ARCHOS 101G9", - "Archos 101XS3", - "Archos 116 Neon", - "Archos 121 Neon", - "Archos 133 Oxygen", - "Archos 156 Oxygen", - "Archos 35b Titanium", - "Archos 40 Helium", - "Archos 40 Neon", - "Archos 40 Power", - "Archos 40 Titanium", - "Archos 40b Titanium Surround", - "Archos 40c Titanium", - "ARCHOS 40C TIv2", - "ARCHOS 40d Titanium", - "Archos 45 Helium 4G", - "Archos 45 Neon", - "Archos 45 Platinum", - "Archos 45 Titanium", - "ARCHOS 45b Helium", - "Archos 45b Neon", - "Archos 45b Platinum", - "Archos 45c Helium", - "Archos 45c Platinum", - "Archos 45c Titanium", - "Archos 45d Platinum", - "Archos 50 Cobalt", - "Archos 50 Diamond", - "Archos 50 Helium 4G", - "Archos 50 Helium Plus", - "Archos 50 Neon", - "Archos 50 Oxygen", - "Archos 50 Oxygen Plus", - "Archos 50 Platinum", - "Archos 50 Platinum 4G", - "Archos 50 Power", - "Archos 50 Saphir", - "Archos 50 Titanium", - "Archos 50B Cobalt", - "Archos 50b Helium 4G", - "Archos 50b Neon", - "Archos 50b Oxygen", - "Archos 50b Platinum", - "Archos 50c Helium", - "ARCHOS 50c Neon", - "Archos 50c Oxygen", - "Archos 50c Platinum", - "Archos 50d Neon", - "Archos 50d Oxygen", - "Archos 50e Helium", - "Archos 50e Neon", - "Archos 50f Helium", - "Archos 50f Neon", - "Archos 52 Platinum", - "Archos 53 Platinum", - "Archos 53 Titanium", - "Archos 55 Cobalt Plus", - "Archos 55 Diamond 2 Plus", - "Archos 55 Diamond Plus", - "Archos 55 diamond Selfie", - "Archos 55 Helium", - "Archos 55 Helium Plus", - "Archos 55 Platinum", - "Archos 55B Cobalt", - "Archos 55B Platinum", - "Archos 59 Titanium", - "Archos 59 Xenon", - "Archos 60 Platinum", - "Archos 62 Xenon", - "Archos 64 Xenon", - "Archos 70 Carbon", - "ARCHOS 70 Cobalt", - "Archos 70 Copper", - "Archos 70 Helium", - "Archos 70 Neon", - "Archos 70 Neon Plus", - "Archos 70 Oxygen", - "Archos 70 Platinum", - "Archos 70 Platinum 3G", - "Archos 70 Platinum v2", - "Archos 70 Platinum v3", - "ARCHOS 70 Titanium", - "Archos 70 Xenon", - "Archos 70 Xenon Color", - "Archos 70b Cobalt", - "Archos 70b Copper", - "Archos 70b Helium", - "Archos 70b Neon", - "ARCHOS 70b TITANIUM", - "Archos 70b Xenon", - "Archos 70c Cobalt", - "Archos 70c Neon", - "Archos 70c Titanium", - "Archos 70c Xenon", - "Archos 70d Titanium", - "ARCHOS 70it2", - "ARCHOS 70it2G8", - "Archos 79 Cobalt", - "Archos 79 Neon", - "ARCHOS 79 Platinum", - "Archos 79 Xenon", - "Archos 79b Neon", - "Archos 79c Neon", - "ARCHOS 80 Carbon", - "ARCHOS 80 CHILDPAD", - "ARCHOS 80 COBALT", - "Archos 80 Helium 4G", - "Archos 80 Oxygen", - "ARCHOS 80 Platinum", - "Archos 80 Platinum v2", - "ARCHOS 80 TITANIUM", - "Archos 80 Xenon", - "Archos 80b Helium", - "Archos 80b Helium v2", - "ARCHOS 80b PLATINUM", - "Archos 80b Xenon", - "Archos 80c Platinum", - "Archos 80c Xenon", - "Archos 80d Xenon", - "ARCHOS 80G9", - "ARCHOS 80XSK", - "Archos 90 Copper", - "Archos 90 Neon", - "Archos 90b Copper", - "Archos 90b Neon", - "Archos 96 Xenon", - "ARCHOS 97 CARBON", - "Archos 97 Cobalt", - "ARCHOS 97 Platinum", - "ARCHOS 97 TITANIUMHD", - "ARCHOS 97 XENON", - "ARCHOS 97b PLATINUM", - "ARCHOS 97B TITANIUM", - "Archos 97c Platinum", - "Archos Access 101 3G", - "Archos Access 101 3G V2", - "Archos Access 101 3G v3", - "Archos Access 101 Wifi", - "Archos Access 101 Wifi v2", - "Archos Access 40 3G", - "Archos Access 40 4G", - "Archos Access 45 4G", - "Archos Access 50 3G", - "Archos Access 50 4G", - "Archos Access 50 Color 3G", - "Archos Access 50 Color 4G", - "Archos Access 50S 4G", - "Archos Access 55 3G", - "Archos Access 57 3G", - "Archos Access 57 4G", - "Archos Access 70 3G", - "Archos Access 70 Wifi", - "Archos Chefpad", - "Archos Core 101 3G", - "Archos Core 101 3G v5", - "Archos Core 101 4G", - "Archos Core 3g v4", - "Archos Core 50 4G", - "Archos Core 50P", - "Archos Core 55 4G", - "Archos Core 55P", - "Archos Core 55S", - "Archos Core 55S Ultra", - "Archos Core 57S", - "Archos Core 57S Ultra", - "Archos Core 60S", - "Archos Core 62S", - "Archos Core 70 3G", - "Archos Core 80 Wifi", - "Archos Diamond Plus", - "Archos Diamond S", - "ARCHOS FAMILYPAD 2", - "ARCHOS GAMEPAD", - "ARCHOS GAMEPAD2", - "Archos Hello 10", - "Archos Hello 5", - "Archos Hello 7", - "ARCHOS LUDOG10", - "Archos Oxygen 101S", - "Archos Oxygen 101S ARDOIZ", - "Archos Oxygen 57", - "Archos Oxygen 63", - "Archos Oxygen 68XL", - "Archos Phone", - "Archos Saphir 50X", - "Archos Sense 101 X", - "Archos Sense 47 X", - "Archos Sense 50 DC", - "Archos Sense 50X", - "Archos Sense 55 DC", - "Archos Sense 55 S", - "Archos Smart Home Tablet", - "Archos T 101 4G", - "Archos T 101X 4G", - "Archos T 80 W", - "Archos T101 HD", - "Archos T101 HD PLUS", - "Archos T101 HD WIFI", - "ARCHOS T96 3G", - "ARCHOS T96 3G_EEA", - "ARCHOS T96 WIFI_EEA", - "ARCHOS T96 WIFI_EEA_V2", - "atom", - "ATV R1", - "ATV R2", - "BBA100-1", - "BBA100-2", - "BBB100-1", - "BBB100-2", - "BBB100-3", - "BBB100-4", - "BBB100-5", - "BBB100-6", - "BBB100-7", - "BBC100-1", - "BBD100-1", - "BBD100-2", - "BBD100-6", - "BBE100-1", - "BBE100-2", - "BBE100-4", - "BBE100-5", - "BBF100-1", - "BBF100-2", - "BBF100-4", - "BBF100-6", - "BBF100-8", - "BBF100-9", - "BBG100-1", - "BBH100-1", - "BE2011", - "BE2012", - "BE2013", - "BE2015", - "BE2025", - "BE2026", - "BE2028", - "BE2029", - "begonia", - "Behold II", - "bomb", - "C00", - "C1504", - "C1505", - "C1604", - "C1605", - "C1904", - "C1905", - "C2004", - "C2005", - "C2104", - "C2105", - "C2304", - "C2305", - "C5302", - "C5303", - "C5306", - "C5502", - "C5503", - "C6502", - "C6503", - "C6506", - "C6602", - "C6603", - "C6606", - "C6616", - "C6802", - "C6806", - "C6833", - "C6843", - "C6902", - "C6903", - "C6906", - "C6916", - "C6943", - "Cable", - "cattail", - "Cmi", - "CPH1605", - "CPH1605fw", - "CPH1607", - "CPH1607fw", - "CPH1609", - "CPH1609fw", - "CPH1611", - "CPH1613", - "CPH1613fw", - "CPH1701", - "CPH1701fw", - "CPH1705", - "CPH1705fw", - "CPH1707", - "CPH1707fw", - "CPH1715", - "CPH1717", - "CPH1719", - "CPH1721", - "CPH1723", - "CPH1725", - "CPH1727", - "CPH1729", - "CPH1801", - "CPH1803", - "CPH1805", - "CPH1807", - "CPH1808", - "CPH1809", - "CPH1819", - "CPH1821", - "CPH1823", - "CPH1825", - "CPH1827", - "CPH1831", - "CPH1833", - "CPH1835", - "CPH1837", - "CPH1851", - "CPH1853", - "CPH1859", - "CPH1861", - "CPH1871", - "CPH1875", - "CPH1877", - "CPH1879", - "CPH1881", - "CPH1893", - "CPH1901", - "CPH1903", - "CPH1905", - "CPH1907", - "CPH1909", - "CPH1911", - "CPH1913", - "CPH1915", - "CPH1917", - "CPH1919", - "CPH1919RU", - "CPH1920", - "CPH1921", - "CPH1923", - "CPH1931", - "CPH1933", - "CPH1937", - "CPH1938", - "CPH1941", - "CPH1943", - "CPH1945", - "CPH1951", - "CPH1955", - "CPH1969", - "CPH1979", - "CPH1983", - "CPH1987", - "CPH1989", - "CPH2001", - "CPH2005", - "CPH2009", - "CPH2013", - "CPH2015", - "CPH2021", - "CPH2023", - "CPH2025", - "CPH2031", - "CPH2035", - "CPH2036", - "CPH2037", - "CPH2043", - "CPH2059", - "CPH2061", - "CPH2065", - "CPH2067", - "CPH2069", - "CPH2071", - "CPH2073", - "CPH2077", - "CPH2081", - "CPH2083", - "CPH2089", - "CPH2091", - "CPH2095", - "CPH2109", - "CPH2113", - "CPH2119", - "CPH2121", - "CPH2123", - "CPH2125", - "CPH2127", - "CPH2131", - "CPH2133", - "CPH2135", - "CPH2137", - "CPH2139", - "CPH2145", - "CPH2159", - "CPH2161", - "CPH2173", - "CPH2179", - "CPH2185", - "CPH21859", - "CPH2195", - "CPH2197", - "CPH2199", - "CPH2201", - "CPH2203", - "CPH2205", - "CPH2207", - "CPH2209", - "CPH2211", - "CPH2213", - "CPH2217", - "CPH2219", - "CPH2223", - "CPH2235", - "CPH2237", - "CPH2239", - "CPH2241", - "CPH2247", - "CPH2249", - "CPH2251", - "CPH2263", - "CPH2269", - "CPH2271", - "CPH2273", - "CPH2275", - "CPH2285", - "CPH2293", - "CPH2303", - "CPH2305", - "CPH2307", - "CPH2309", - "CPH2321", - "CPH2325", - "CPH2339", - "CPH2341", - "CPH2343", - "CPH2353", - "CPH2357", - "CPH2359", - "CPH2363", - "CPH2365", - "CPH2371", - "CPH2381", - "CPH2385", - "CPH2387", - "CPH2399", - "CPH2401", - "CPH2407", - "CPH2409", - "CPH2411", - "CPH2413", - "CPH2415", - "CPH2417", - "CPH2419", - "CPH2421", - "CPH2423", - "CPH2459", - "curtana", - "D00", - "D2004", - "D2005", - "D2104", - "D2105", - "D2114", - "D2202", - "D2203", - "D2206", - "D2212", - "D2243", - "D2302", - "D2303", - "D2305", - "D2306", - "D2403", - "D2406", - "D2502", - "D2533", - "d-42A", - "D5102", - "D5103", - "D5106", - "D5303", - "D5306", - "D5316", - "D5316N", - "D5322", - "D5503", - "D5788", - "D5803", - "D5833", - "D6502", - "D6503", - "D6543", - "D6563", - "D6603", - "D6616", - "D6633", - "D6643", - "D6646", - "D6653", - "D6683", - "D6708", - "dandelion", - "DE2117", - "DE2118", - "DN2101", - "DN2103", - "DVN2KA01", - "E2003", - "E2006", - "E2033", - "E2043", - "E2053", - "E2104", - "E2105", - "E2115", - "E2124", - "E2303", - "E2306", - "E2312", - "E2333", - "E2353", - "E2363", - "E5303", - "E5306", - "E5333", - "E5343", - "E5353", - "E5363", - "E5506", - "E5533", - "E5553", - "E5563", - "E5603", - "E5606", - "E5633", - "E5643", - "E5653", - "E5663", - "E5803", - "E5823", - "E6508", - "E6533", - "E6553", - "E6603", - "E6633", - "E6653", - "E6683", - "E6833", - "E6853", - "E6883", - "EB2101", - "EB2103", - "EK-GC100", - "EK-GC110", - "EK-GC120", - "EK-GC200", - "EK-GN100", - "EK-GN120", - "EK-GN120A", - "EK-KC100K", - "EK-KC100S", - "EK-KC120K", - "EK-KC120L", - "EK-KC120S", - "equuleus", - "EveryPad", - "EveryPad2", - "EveryPad3", - "F1f", - "F1fw", - "F1w", - "F3111", - "F3112", - "F3113", - "F3115", - "F3116", - "F3211", - "F3212", - "F3213", - "F3215", - "F3216", - "F3311", - "F3313", - "F5121", - "F5122", - "F5321", - "F8131", - "F8132", - "F8331", - "F8332", - "FP2", - "FP3", - "FP4", - "G1109", - "G1209", - "G2199", - "G2299", - "G3112", - "G3116", - "G3121", - "G3123", - "G3125", - "G3212", - "G3221", - "G3223", - "G3226", - "G3311", - "G3312", - "G3313", - "G3412", - "G3416", - "G3421", - "G3423", - "G3426", - "G8141", - "G8142", - "G8188", - "G8231", - "G8232", - "G8341", - "G8342", - "G8343", - "G8441", - "galahad", - "Galaxy Nexus", - "Galaxy X", - "Gear Live", - "GINKGO", - "GM1900", - "GM1901", - "GM1903", - "GM1905", - "GM1910", - "GM1911", - "GM1913", - "GM1915", - "GM1917", - "GM1920", - "GM1925", - "GN2200", - "gprimelteacg", - "Gravity", - "GravityQuad", - "GT-B5330", - "GT-B5330B", - "GT-B5330L", - "GT-B5510", - "GT-B5510B", - "GT-B5510L", - "GT-B5512", - "GT-B5512B", - "GT-B7510", - "GT-B7510B", - "GT-B7510L", - "GT-B7810", - "GT-B9062", - "GT-B9150", - "GT-B9388", - "GT-I5500", - "GT-I5503", - "GT-I5508", - "GT-I5510", - "GT-I5510M", - "GT-I5510T", - "GT-I5700", - "GT-I5700L", - "GT-I5700R", - "GT-I5800", - "GT-I5800D", - "GT-I5800L", - "GT-I5801", - "GT-I8150", - "GT-I8150B", - "GT-I8150T", - "GT-I8160", - "GT-I8160L", - "GT-I8160P", - "GT-I8190", - "GT-I8190L", - "GT-I8190N", - "GT-I8190T", - "GT-I8200", - "GT-I8200L", - "GT-I8200N", - "GT-I8200Q", - "GT-I8250", - "GT-I8258", - "GT-I8260", - "GT-I8260E", - "GT-I8260L", - "GT-I8262", - "GT-I8262B", - "GT-I8262D", - "GT-I8268", - "GT-I8530", - "GT-I8550E", - "GT-I8550L", - "GT-I8552", - "GT-I8552B", - "GT-I8558", - "GT-I8580", - "GT-I8730", - "GT-I8730T", - "GT-I9000", - "GT-I9000B", - "GT-I9000M", - "GT-I9000T", - "GT-I9001", - "GT-I9003", - "GT-I9003L", - "GT-I9008L", - "GT-I9010", - "GT-I9018", - "GT-I9050", - "GT-I9060", - "GT-I9060C", - "GT-I9060I", - "GT-I9060L", - "GT-I9060M", - "GT-I9063T", - "GT-I9070", - "GT-I9070P", - "GT-I9080E", - "GT-I9080L", - "GT-I9082", - "GT-I9082C", - "GT-I9082i", - "GT-I9082L", - "GT-I9100", - "GT-I9100G", - "GT-I9100M", - "GT-I9100P", - "GT-I9100T", - "GT-I9103", - "GT-I9105", - "GT-I9105P", - "GT-I9108", - "GT-I9118", - "GT-I9128", - "GT-I9128E", - "GT-I9128I", - "GT-I9128V", - "GT-I9150", - "GT-I9152", - "GT-I9152P", - "GT-I9158", - "GT-I9158P", - "GT-I9158V", - "GT-I9168", - "GT-I9168I", - "GT-I9190", - "GT-I9192", - "GT-I9192I", - "GT-I9195", - "GT-I9195I", - "GT-I9195L", - "GT-I9195T", - "GT-I9195X", - "GT-I9197", - "GT-I9200", - "GT-I9205", - "GT-I9208", - "GT-I9210", - "GT-I9210T", - "GT-I9220", - "GT-I9228", - "GT-I9230", - "GT-I9235", - "GT-I9260", - "GT-I9268", - "GT-I9295", - "GT-I9300", - "GT-I9300I", - "GT-I9300T", - "GT-I9301I", - "GT-I9301Q", - "GT-I9305", - "GT-I9305N", - "GT-I9305T", - "GT-I9308", - "GT-I9308I", - "GT-I9500", - "GT-I9502", - "GT-I9505", - "GT-I9505G", - "GT-I9505X", - "GT-I9506", - "GT-I9507", - "GT-I9507V", - "GT-I9508", - "GT-I9508C", - "GT-I9508V", - "GT-I9515", - "GT-I9515L", - "GT-N5100", - "GT-N5105", - "GT-N5110", - "GT-N5120", - "GT-N7000", - "GT-N7000B", - "GT-N7005", - "GT-N7100", - "GT-N7100T", - "GT-N7102", - "GT-N7102i", - "GT-N7105", - "GT-N7105T", - "GT-N7108", - "GT-N7108D", - "GT-N8000", - "GT-N8005", - "GT-N8010", - "GT-N8013", - "GT-N8020", - "GT-P1000", - "GT-P1000L", - "GT-P1000M", - "GT-P1000N", - "GT-P1000R", - "GT-P1000T", - "GT-P1010", - "GT-P1013", - "GT-P3100", - "GT-P3100B", - "GT-P3105", - "GT-P3108", - "GT-P3110", - "GT-P3113", - "GT-P5100", - "GT-P5110", - "GT-P5113", - "GT-P5200", - "GT-P5210", - "GT-P5210XD1", - "GT-P5220", - "GT-P6200", - "GT-P6200L", - "GT-P6201", - "GT-P6210", - "GT-P6211", - "GT-P6800", - "GT-P6810", - "GT-P7100", - "GT-P7300", - "GT-P7300B", - "GT-P7310", - "GT-P7320", - "GT-P7320T", - "GT-P7500", - "GT-P7500D", - "GT-P7500M", - "GT-P7500R", - "GT-P7500V", - "GT-P7501", - "GT-P7503", - "GT-P7510", - "GT-P7511", - "GT-S5280", - "GT-S5282", - "GT-S5283B", - "GT-S5300", - "GT-S5300B", - "GT-S5300L", - "GT-S5301", - "GT-S5301B", - "GT-S5301L", - "GT-S5302", - "GT-S5302B", - "GT-S5303", - "GT-S5303B", - "GT-S5310", - "GT-S5310B", - "GT-S5310C", - "GT-S5310E", - "GT-S5310G", - "GT-S5310I", - "GT-S5310L", - "GT-S5310M", - "GT-S5310N", - "GT-S5310T", - "GT-S5312", - "GT-S5312B", - "GT-S5312C", - "GT-S5312L", - "GT-S5312M", - "GT-S5360", - "GT-S5360B", - "GT-S5360L", - "GT-S5360T", - "GT-S5363", - "GT-S5367", - "GT-S5368", - "GT-S5369", - "GT-S5570", - "GT-S5570B", - "GT-S5570I", - "GT-S5570L", - "GT-S5578", - "GT-S5660", - "GT-S5660B", - "GT-S5660L", - "GT-S5660M", - "GT-S5660V", - "GT-S5670", - "GT-S5670B", - "GT-S5670L", - "GT-S5690", - "GT-S5690L", - "GT-S5690M", - "GT-S5690R", - "GT-S5698", - "GT-S5820", - "GT-S5830", - "GT-S5830B", - "GT-S5830C", - "GT-S5830D", - "GT-S5830F", - "GT-S5830G", - "GT-S5830i", - "GT-S5830L", - "GT-S5830M", - "GT-S5830T", - "GT-S5830V", - "GT-S5831i", - "GT-S5838", - "GT-S5839i", - "GT-S6010", - "GT-S6010L", - "GT-S6012", - "GT-S6012B", - "GT-S6102", - "GT-S6102B", - "GT-S6102E", - "GT-S6108", - "GT-S6293T", - "GT-S6310", - "GT-S6310B", - "GT-S6310L", - "GT-S6310N", - "GT-S6310T", - "GT-S6312", - "GT-S6313T", - "GT-S6352", - "GT-S6358", - "GT-S6500", - "GT-S6500D", - "GT-S6500L", - "GT-S6500T", - "GT-S6790", - "GT-S6790E", - "GT-S6790L", - "GT-S6790N", - "GT-S6792L", - "GT-S6800", - "GT-S6802", - "GT-S6802B", - "GT-S6810", - "GT-S6810B", - "GT-S6810E", - "GT-S6810L", - "GT-S6810M", - "GT-S6810P", - "GT-S6812", - "GT-S6812B", - "GT-S6812C", - "GT-S6812i", - "GT-S6818", - "GT-S6818V", - "GT-S7262", - "GT-S7270", - "GT-S7270L", - "GT-S7272", - "GT-S7272C", - "GT-S7273T", - "GT-S7275", - "GT-S7275B", - "GT-S7275R", - "GT-S7275T", - "GT-S7275Y", - "GT-S7278", - "GT-S7278U", - "GT-S7390", - "GT-S7390E", - "GT-S7390G", - "GT-S7390L", - "GT-S7392", - "GT-S7392L", - "GT-S7500", - "GT-S7500L", - "GT-S7500T", - "GT-S7500W", - "GT-S7508", - "GT-S7560", - "GT-S7560M", - "GT-S7562", - "GT-S7562C", - "GT-S7562i", - "GT-S7562L", - "GT-S7566", - "GT-S7568", - "GT-S7568I", - "GT-S7572", - "GT-S7580", - "GT-S7580E", - "GT-S7580L", - "GT-S7582", - "GT-S7582L", - "GT-S7583T", - "GT-S7710", - "GT-S7710L", - "GT-S7898", - "GT-S7898I", - "H3113", - "H3123", - "H3133", - "H3213", - "H3223", - "H3311", - "H3321", - "H3413", - "H4113", - "H4133", - "H4213", - "H4233", - "H4311", - "H4331", - "H4413", - "H4493", - "H8116", - "H8166", - "H8216", - "H8266", - "H8276", - "H8296", - "H8314", - "H8324", - "H8416", - "H9436", - "H9493", - "HD1900", - "HD1901", - "HD1903", - "HD1905", - "HD1907", - "HD1910", - "HD1911", - "HD1913", - "HD1925", - "Hope", - "I1927", - "I1928", - "I2009", - "I2011", - "I2012", - "I2017", - "I2018", - "I2019", - "I2022", - "I2126", - "I2127", - "I2201", - "I2202", - "I2203", - "I2206", - "I2208", - "I3113", - "I3123", - "I3213", - "I3223", - "I3312", - "I4113", - "I4193", - "I4213", - "I4293", - "I4312", - "I4332", - "IdeaPadA10", - "IdeaTab A2107A-F", - "IdeaTab A2107A-H", - "IdeaTab A3000-F", - "IdeaTab A3000-H", - "IdeaTab K2110A-F", - "IdeaTab S2007A-F", - "IdeaTab S2007A-H", - "IdeaTab S2010A-D", - "IdeaTab S2010A-F", - "IdeaTab S2010A-H", - "IdeaTab S6000-F", - "IdeaTab S6000-H", - "IdeaTabA1000-F", - "IdeaTabA1000-G", - "IdeaTabA1000L-F", - "IdeaTabA1010-T", - "IdeaTabA1020-T", - "IdeaTabA2109A", - "IdeaTabA2207A-H", - "IdeaTabA5000-E", - "IdeaTabS2109A-F", - "IdeaTabS2110AF", - "IdeaTabS2110AH", - "IdeaTabV2007A", - "IdeaTabV2010A", - "IdeaTabV2010A-W", - "ideatv K72", - "ideatv K82", - "ideatv K91", - "ideatv S31", - "ideatv S52", - "ideatv S61", - "ido", - "IN2010", - "IN2011", - "IN2013", - "IN2015", - "IN2017", - "IN2019", - "IN2020", - "IN2021", - "IN2023", - "IN2025", - "Intel Braswell Chromebook", - "ISW11SC", - "IV2201", - "J3173", - "J3273", - "J8110", - "J8170", - "J8210", - "J8270", - "J9110", - "J9150", - "J9180", - "J9210", - "J9260", - "K1", - "K350t", - "KB2000", - "KB2001", - "KB2003", - "KB2005", - "KB2007", - "KODAK Tablet 10", - "KODAK Tablet 7", - "KUNO 4+", - "KUNO4", - "L10041", - "L18011", - "L35h", - "L36h", - "L39h", - "L39t", - "L39u", - "laurus", - "Lava A51", - "LE2100", - "LE2101", - "LE2110", - "LE2111", - "LE2113", - "LE2115", - "LE2117", - "LE2120", - "LE2121", - "LE2123", - "LE2125", - "LE2127", - "Lenovo 2 A7-30HC", - "Lenovo 2 A7-30TC", - "Lenovo 2 A8-50F", - "Lenovo 2 A8-50LC", - "Lenovo A1000", - "Lenovo A1000m", - "Lenovo A1010a20", - "Lenovo A1-32AB0", - "Lenovo A1900", - "Lenovo A2010-a", - "Lenovo A2010l36", - "Lenovo A2016a40", - "Lenovo A2016b30", - "Lenovo A2016b31", - "Lenovo A2020a40", - "Lenovo A208t", - "Lenovo A218t", - "Lenovo A228t", - "Lenovo A238t", - "Lenovo A2580", - "Lenovo A269", - "Lenovo A269i", - "Lenovo A278t", - "Lenovo A2800-d", - "Lenovo A2860", - "Lenovo A288t", - "Lenovo A298t", - "Lenovo A300", - "Lenovo A3000-H", - "Lenovo A300t", - "Lenovo A305e", - "Lenovo A308t", - "Lenovo A316", - "Lenovo A316i", - "Lenovo A318t", - "Lenovo A319", - "Lenovo A320t", - "Lenovo A326", - "Lenovo A328", - "Lenovo A328t", - "Lenovo A3300-HV", - "Lenovo A3300-T", - "Lenovo A330e", - "Lenovo A338t", - "Lenovo A3500", - "Lenovo A3500-F", - "Lenovo A3500-FL", - "Lenovo A3500-H", - "Lenovo A3500-HV", - "Lenovo A355e", - "Lenovo A3580", - "Lenovo A358t", - "Lenovo A360", - "Lenovo A3600-d", - "Lenovo A3600u", - "Lenovo A360e", - "Lenovo A360t", - "Lenovo A366t", - "Lenovo A368t", - "Lenovo A369", - "Lenovo A369i", - "Lenovo A370", - "Lenovo A376", - "Lenovo A378t", - "Lenovo A3800-d", - "Lenovo A380t", - "Lenovo A3860", - "Lenovo A388t", - "Lenovo A390", - "Lenovo A390_ROW", - "Lenovo A3900", - "Lenovo A390e", - "Lenovo A390t", - "Lenovo A3910t30", - "Lenovo A396", - "Lenovo A396_TY", - "Lenovo A398t", - "Lenovo A398t+", - "Lenovo A399", - "Lenovo A500", - "Lenovo A500+", - "Lenovo A5000", - "Lenovo A5100", - "Lenovo A516", - "Lenovo A520", - "Lenovo A520GRAY", - "Lenovo A526", - "Lenovo A529", - "Lenovo A530", - "Lenovo A536", - "Lenovo A5500", - "Lenovo A5500-F", - "Lenovo A5500-H", - "Lenovo A5500-HV", - "Lenovo A560", - "Lenovo A580", - "Lenovo A5800-D", - "Lenovo A60", - "Lenovo A60+", - "Lenovo A6000", - "Lenovo A6000-l", - "Lenovo A6010", - "Lenovo A6020a40", - "Lenovo A6020a41", - "Lenovo A6020a46", - "Lenovo A6020l36", - "Lenovo A6020l37", - "Lenovo A606", - "Lenovo A616", - "Lenovo A628t", - "Lenovo A630", - "Lenovo A65", - "Lenovo A656", - "Lenovo A658t", - "Lenovo A660", - "Lenovo A6600a40", - "Lenovo A6600d40", - "Lenovo A668t", - "Lenovo A670t", - "Lenovo A678t", - "Lenovo A680", - "Lenovo A680_ROW", - "Lenovo A6800", - "Lenovo A688t", - "Lenovo A68e", - "Lenovo A690", - "Lenovo A698t", - "Lenovo A7000-a", - "Lenovo A700e", - "Lenovo A7010a48", - "Lenovo A7020a40", - "Lenovo A7020a48", - "Lenovo A706", - "Lenovo A706_ROW", - "Lenovo A708t", - "Lenovo A710e", - "Lenovo A720e", - "Lenovo A750", - "Lenovo A750e", - "Lenovo A760", - "Lenovo A7600", - "Lenovo A7600-F", - "Lenovo A7600-H", - "Lenovo A7600-HV", - "Lenovo A7600-m", - "Lenovo A7-60HC", - "Lenovo A765e", - "Lenovo A766", - "Lenovo A768t", - "Lenovo A7700", - "Lenovo A770e", - "Lenovo A780", - "Lenovo A788t", - "Lenovo A789", - "Lenovo A798t", - "Lenovo A800", - "Lenovo A805e", - "Lenovo A806", - "Lenovo A808t", - "Lenovo A808t-i", - "Lenovo A816", - "Lenovo A820", - "Lenovo A820e", - "Lenovo A820t", - "Lenovo A828t", - "Lenovo A830", - "Lenovo A850", - "Lenovo A850+", - "Lenovo A858", - "Lenovo A858t", - "Lenovo A859", - "Lenovo A860e", - "Lenovo A880", - "Lenovo A889", - "Lenovo A890e", - "Lenovo A916", - "Lenovo A936", - "Lenovo A938t", - "Lenovo B6000-F", - "Lenovo B6000-H", - "Lenovo B6000-HV", - "Lenovo B8000-F", - "Lenovo B8000-H", - "Lenovo B8080-F", - "Lenovo B8080-H", - "Lenovo B8080-HV", - "Lenovo Intel Braswell Chromebook", - "Lenovo K", - "Lenovo K10a40", - "Lenovo K10e70", - "Lenovo K12 Note", - "Lenovo K13 Note", - "Lenovo K13 Pro", - "Lenovo K2", - "Lenovo K30-E", - "Lenovo K30-T", - "Lenovo K30-TM", - "Lenovo K30-W", - "Lenovo K320t", - "Lenovo K32c30", - "Lenovo K32c36", - "Lenovo K33a42", - "Lenovo K33a48", - "Lenovo K33b36", - "Lenovo K33b37", - "Lenovo K50a40", - "Lenovo K50-t3s", - "Lenovo K50-T5", - "Lenovo K51c78", - "Lenovo K520", - "Lenovo K52e78", - "Lenovo K52t38", - "Lenovo K52t58", - "Lenovo K53a48", - "Lenovo K53b36", - "Lenovo K53b37", - "Lenovo K8", - "Lenovo K8 Note", - "Lenovo K8 Plus", - "Lenovo K800", - "Lenovo K80M", - "Lenovo K860", - "Lenovo K860i", - "Lenovo K900", - "Lenovo K900_ROW", - "Lenovo K910", - "Lenovo K910e", - "Lenovo K910L", - "Lenovo K920", - "Lenovo L10041", - "Lenovo L18021", - "Lenovo L18081", - "Lenovo L19041", - "Lenovo L19111", - "Lenovo L38011", - "Lenovo L38012", - "Lenovo L38021", - "Lenovo L38031", - "Lenovo L38041", - "Lenovo L38043", - "Lenovo L38082", - "Lenovo L38083", - "Lenovo L38111", - "Lenovo L58041", - "Lenovo L70081", - "Lenovo L71091", - "Lenovo L78011", - "Lenovo L78031", - "Lenovo L78032", - "Lenovo L78051", - "Lenovo L78071", - "Lenovo L78121", - "Lenovo L79031", - "Lenovo L79041", - "Lenovo N300", - "Lenovo N308", - "Lenovo P1a41", - "Lenovo P1a42", - "Lenovo P1c58", - "Lenovo P1c72", - "Lenovo P2a42", - "Lenovo P2c72", - "Lenovo P70", - "Lenovo P700", - "Lenovo P700i", - "Lenovo P70-A", - "Lenovo P70-t", - "Lenovo P770", - "Lenovo P780", - "Lenovo P780_ROW", - "Lenovo P90", - "Lenovo PB1-750M", - "Lenovo PB1-770M", - "Lenovo PB1-770N", - "Lenovo PB1-770P", - "Lenovo PB2-650M", - "Lenovo PB2-650N", - "Lenovo PB2-650Y", - "Lenovo PB2-670M", - "Lenovo PB2-670M1", - "Lenovo PB2-670N", - "Lenovo PB2-670Y", - "Lenovo PB2-690M", - "Lenovo PB2-690N", - "Lenovo PB2-690Y", - "Lenovo PB-6505M", - "Lenovo PB-6505MC", - "Lenovo PB-6505NC", - "Lenovo PB-6505Y", - "Lenovo S1a40", - "Lenovo S1La40", - "Lenovo S2-38AH0", - "Lenovo S2-38AT0", - "Lenovo S5000-F", - "Lenovo S5000-H", - "Lenovo S560", - "Lenovo S580", - "Lenovo S6000L-F", - "Lenovo S60-a", - "Lenovo S60-t", - "Lenovo S60-w", - "Lenovo S650", - "Lenovo S658t", - "Lenovo S660", - "Lenovo S668t", - "Lenovo S680", - "Lenovo S686", - "Lenovo S696", - "Lenovo S720", - "Lenovo S750", - "Lenovo S760", - "Lenovo S810t", - "Lenovo S820", - "Lenovo S820_ROW", - "Lenovo S820e", - "Lenovo S850", - "Lenovo S850e", - "Lenovo S8-50LC", - "Lenovo S850t", - "Lenovo S856", - "Lenovo S858t", - "Lenovo S860", - "Lenovo S860e", - "Lenovo S868t", - "Lenovo S870e", - "Lenovo S880", - "Lenovo S880i", - "Lenovo S890", - "Lenovo S898t", - "Lenovo S898t+", - "Lenovo S899t", - "Lenovo S90-A", - "Lenovo S90-e", - "Lenovo S90-L", - "Lenovo S90-t", - "Lenovo S90-u", - "Lenovo S920", - "Lenovo S920_ROW", - "Lenovo S930", - "Lenovo S938t", - "Lenovo S939", - "Lenovo S960", - "Lenovo S968t", - "Lenovo TAB 2 A10-70F", - "Lenovo TAB 2 A10-70L", - "Lenovo TAB 2 A10-70LC", - "Lenovo TAB 2 A7-30D", - "Lenovo TAB 2 A7-30DC", - "Lenovo TAB 2 A7-30F", - "Lenovo TAB 2 A7-30GC", - "Lenovo TAB 2 A7-30H", - "Lenovo TAB 2 A7-30HC", - "Lenovo TAB 2 A8-50F", - "Lenovo TAB 2 A8-50L", - "Lenovo TAB 2 A8-50LC", - "Lenovo TAB S8-50F", - "Lenovo TAB S8-50L", - "Lenovo TAB S8-50LC", - "Lenovo TB125FU", - "Lenovo TB128FU", - "Lenovo TB128XU", - "Lenovo TB223FC", - "Lenovo TB226XC", - "Lenovo TB2-X30F", - "Lenovo TB2-X30F_HFT", - "Lenovo TB2-X30F_JLC", - "Lenovo TB2-X30F_SCP", - "Lenovo TB2-X30F_UK", - "Lenovo TB2-X30F_YZA", - "Lenovo TB2-X30L", - "Lenovo TB2-X30M", - "Lenovo TB2-X30M_PRC_YZ_A", - "Lenovo TB3-710F", - "Lenovo TB3-710I", - "Lenovo TB3-730F", - "Lenovo TB3-730M", - "Lenovo TB3-730X", - "Lenovo TB3-850F", - "Lenovo TB3-850M", - "Lenovo TB3-X70F", - "Lenovo TB3-X70I", - "Lenovo TB3-X70L", - "Lenovo TB3-X70N", - "Lenovo TB-7104F", - "Lenovo TB-7104I", - "Lenovo TB-7304F", - "Lenovo TB-7304I", - "Lenovo TB-7304N", - "Lenovo TB-7304X", - "Lenovo TB-7305F", - "Lenovo TB-7305I", - "Lenovo TB-7305X", - "Lenovo TB-7306F", - "Lenovo TB-7306V", - "Lenovo TB-7306X", - "Lenovo TB-7504F", - "Lenovo TB-7504N", - "Lenovo TB-7504X", - "Lenovo TB-7703F", - "Lenovo TB-7703N", - "Lenovo TB-7703X", - "Lenovo TB-8304F", - "Lenovo TB-8304F1", - "Lenovo TB-8504F", - "Lenovo TB-8504L", - "Lenovo TB-8504N", - "Lenovo TB-8504X", - "Lenovo TB-8505F", - "Lenovo TB-8505FS", - "Lenovo TB-8505N", - "Lenovo TB-8505X", - "Lenovo TB-8505XC", - "Lenovo TB-8505XS", - "Lenovo TB-8506F", - "Lenovo TB-8506FS", - "Lenovo TB-8506X", - "Lenovo TB-8506XS", - "Lenovo TB-8604F", - "Lenovo TB-8703F", - "Lenovo TB-8703N", - "Lenovo TB-8703R", - "Lenovo TB-8703X", - "Lenovo TB-8704F", - "Lenovo TB-8704N", - "Lenovo TB-8704X", - "Lenovo TB-8705F", - "Lenovo TB-8705N", - "Lenovo TB-8705X", - "Lenovo TB-8803F", - "Lenovo TB-8804F", - "Lenovo TB-8X04F", - "Lenovo TB-J606F", - "Lenovo TB-J606L", - "Lenovo TB-J606N", - "Lenovo TB-J607F", - "Lenovo TB-J607Z", - "Lenovo TB-J616F", - "Lenovo TB-J616N", - "Lenovo TB-J616X", - "Lenovo TB-J6C6F", - "Lenovo TB-J6C6N", - "Lenovo TB-J706F", - "Lenovo TB-J706L", - "Lenovo TB-J706N", - "Lenovo TB-J716F", - "Lenovo TB-Q706F", - "Lenovo TB-Q706Z", - "Lenovo TB-X103F", - "Lenovo TB-X104F", - "Lenovo TB-X104F1", - "Lenovo TB-X104L", - "Lenovo TB-X104N", - "Lenovo TB-X104X", - "Lenovo TB-X304F", - "Lenovo TB-X304L", - "Lenovo TB-X304N", - "Lenovo TB-X304X", - "Lenovo TB-X306F", - "Lenovo TB-X306FA", - "Lenovo TB-X306FC_PRC", - "Lenovo TB-X306NC_PRC", - "Lenovo TB-X306V", - "Lenovo TB-X306X", - "Lenovo TB-X306XA", - "Lenovo TB-X504F", - "Lenovo TB-X505F", - "Lenovo TB-X505L", - "Lenovo TB-X505N", - "Lenovo TB-X505X", - "Lenovo TB-X605F", - "Lenovo TB-X605FC", - "Lenovo TB-X605L", - "Lenovo TB-X605LC", - "Lenovo TB-X605M", - "Lenovo TB-X606F", - "Lenovo TB-X606FA", - "Lenovo TB-X606M", - "Lenovo TB-X606V", - "Lenovo TB-X606X", - "Lenovo TB-X606XA", - "Lenovo TB-X607Z", - "Lenovo TB-X616F", - "Lenovo TB-X616M", - "Lenovo TB-X6C6F", - "Lenovo TB-X6C6L", - "Lenovo TB-X6C6NBF", - "Lenovo TB-X6C6NBL", - "Lenovo TB-X6C6NBX", - "Lenovo TB-X6C6X", - "Lenovo TB-X6E6F", - "Lenovo TB-X6E6FC", - "Lenovo TB-X6E6N", - "Lenovo TB-X704F", - "Lenovo TB-X704L", - "Lenovo TB-X704N", - "Lenovo TB-X704Y", - "Lenovo TB-X705F", - "Lenovo TB-X705L", - "Lenovo TB-X705M", - "Lenovo TB-X804F", - "Lenovo ThinkPad 11e 3rd Gen Chromebook", - "Lenovo ThinkPad 11e 4th Gen Chromebook", - "Lenovo Thinkpad 11e Chromebook (4th Gen)/Lenovo Thinkpad Yoga 11e Chromebook (4th Gen)", - "Lenovo ThinkPad 13", - "Lenovo X2-AP", - "Lenovo X2-CU", - "Lenovo X2-EU", - "Lenovo X2Pt5", - "Lenovo X2-TO", - "Lenovo X2-TR", - "Lenovo X3a40", - "Lenovo X3c50", - "Lenovo X3c70", - "Lenovo YB1-X90F", - "Lenovo YB1-X90L", - "Lenovo YB-Q501F", - "Lenovo YB-Q501L", - "Lenovo YT3-850F", - "Lenovo YT3-850L", - "Lenovo YT3-850M", - "Lenovo YT3-X50F", - "Lenovo YT3-X50L", - "Lenovo YT3-X50M", - "Lenovo YT3-X90F", - "Lenovo YT3-X90L", - "Lenovo YT3-X90X", - "Lenovo YT3-X90Y", - "Lenovo YT3-X90Z", - "Lenovo YT-J706F", - "Lenovo YT-J706X", - "Lenovo YT-K606F", - "Lenovo YT-X703F", - "Lenovo YT-X703L", - "Lenovo YT-X703X", - "Lenovo YT-X705F", - "Lenovo YT-X705L", - "Lenovo YT-X705M", - "Lenovo YT-X705X", - "Lenovo Z2", - "Lenovo Z2w", - "Lenovo Z90", - "Lenovo Z90-3", - "Lenovo Z90-7", - "Lenovo Z90a40", - "Lenovo_A2105", - "LenovoA1000L-F", - "LenovoA3300-GV", - "LenovoA3300-H", - "LenovoA3300-HV", - "LenovoA588t", - "LenovoTV 32A3", - "LenovoTV 40S9", - "LenovoTV 49E82", - "LenovoTV 50S52", - "LenovoTV 55E82", - "LenovoTV 58S9", - "LIFETAB_E10310", - "LIFETAB_E7310", - "LIFETAB_E7312", - "LIFETAB_S9512", - "lithium", - "Lmi", - "LNV-Lenovo A305e", - "LNV-Lenovo A370e", - "LNV-Lenovo A375e", - "LNV-Lenovo A380e", - "LNV-Lenovo A385e", - "LNV-Lenovo A395e", - "LNV-Lenovo A505e", - "LNV-Lenovo A560", - "LNV-Lenovo A600e", - "LNV-Lenovo A630e", - "LNV-Lenovo A690e", - "LNV-Lenovo A780e", - "LNV-Lenovo A785e", - "LNV-Lenovo A790e", - "LNV-Lenovo K910e", - "LNV-Lenovo S870e", - "LNV-Lenovo_A560e", - "Logic Fieldbook G1", - "Logic Instrument Fieldbook F1B", - "lotus", - "LT18i", - "LT22i", - "LT25i", - "LT26i", - "LT26ii", - "LT26w", - "LT28h", - "LT28i", - "LT29i", - "LT30a", - "LT30p", - "M123", - "M15", - "M1813", - "M1816", - "M1822", - "M1852", - "M1908C3JGG", - "M2002J9E", - "M2002J9G", - "M2002J9S", - "M2003J15SC", - "M2003J15SG", - "M2003J15SI", - "M2003J15SS", - "M2004J19C", - "M2004J19G", - "M2004J19I", - "M2004J7AC", - "M2004J7BC", - "M2006C3LC", - "M2006C3LG", - "M2006C3LI", - "M2006C3LVG", - "M2006C3MG", - "M2006C3MII", - "M2006C3MNG", - "M2006J10C", - "M2007J17C", - "M2007J17G", - "M2007J17I", - "M2007J1SC", - "M2007J22C", - "M2007J22G", - "M2007J3SC", - "M2007J3SG", - "M2007J3SI", - "M2007J3SP", - "M2007J3SY", - "M2010J19SC", - "M2010J19SG", - "M2010J19SI", - "M2010J19SL", - "M2010J19SY", - "M2011J18C", - "M2011K2C", - "M2011K2G", - "M2012K10C", - "M2012K11AC", - "M2012K11AI", - "M2012K11C", - "M2012K11G", - "M2012K11I", - "M2101K6G", - "M2101K6I", - "M2101K6P", - "M2101K7AG", - "M2101K7AI", - "M2101K7BG", - "M2101K7BI", - "M2101K7BL", - "M2101K7BNY", - "M2101K9AG", - "M2101K9AI", - "M2101K9C", - "M2101K9G", - "M2102J2SC", - "M2102K1AC", - "M2102K1C", - "M2102K1G", - "M2103K19C", - "M2103K19G", - "M2103K19I", - "M2103K19Y", - "M2104K10AC", - "M2105K81AC", - "M2105K81C", - "M35h", - "M35t", - "M51w", - "M6", - "M6 Note", - "M6T", - "M712C", - "MD_LIFETAB_P9516", - "MEDION E4002", - "meizu 16Xs", - "meizu 17", - "meizu 17 Pro", - "MEIZU 18", - "MEIZU 18 Pro", - "MEIZU 18s", - "MEIZU 18s Pro", - "MEIZU 18X", - "Meizu 6T", - "meizu C9", - "meizu C9 pro", - "MEIZU E3", - "meizu M10", - "MEIZU M6", - "Meizu M6s", - "meizu M8", - "meizu M8 lite", - "Meizu M8c", - "Meizu mblu S6", - "meizu note8", - "meizu note9", - "Meizu S6", - "meizu X8", - "Meri", - "Mi 10", - "Mi 10 Pro", - "MI 2", - "MI 2A", - "MI 2S", - "MI 3", - "MI 3W", - "MI 4C", - "Mi 4i", - "MI 4LTE", - "MI 4S", - "MI 4W", - "MI 5", - "MI 5C", - "MI 5s", - "MI 5s Plus", - "MI 5X", - "MI 6", - "MI 6X", - "MI 8", - "MI 8 Explorer Edition", - "MI 8 Lite", - "MI 8 Pro", - "MI 8 SE", - "MI 8 UD", - "MI 9", - "Mi 9 Lite", - "MI 9 SE", - "Mi 9T", - "Mi 9T Pro", - "MI A1", - "Mi A2", - "Mi A2 Lite", - "Mi A3", - "MI CC 9", - "MI CC 9e", - "MI CC9 Pro", - "MI MAX", - "MI MAX 2", - "MI MAX 3", - "Mi MIX 2", - "Mi MIX 2S", - "Mi MIX 3", - "Mi MIX 3 5G", - "Mi Note 10", - "Mi Note 10 Lite", - "Mi Note 2", - "Mi Note 3", - "MI NOTE LTE", - "MI NOTE Pro", - "MI PAD", - "MI PAD 2", - "MI PAD 3", - "MI PAD 4", - "MI PLAY", - "Mi-4c", - "Mi9 Pro 5G", - "MiBOX_PRO", - "MIBOX3", - "MiProjA1", - "MiProjL1", - "MiProjM05", - "MiTV3S", - "MiTV4", - "MiTV-AESP0", - "MiTV-AXFR0", - "MIX", - "MIX 2", - "MIX 2S", - "MIX 3", - "MT2110", - "MT2111", - "MT25i", - "MT27i", - "N1", - "N1374DL", - "N150DL", - "N151DL", - "N152DL", - "N1T", - "N1W", - "N5110", - "N5111", - "N5116", - "N5117", - "N5206", - "N5207", - "N5209", - "NE2210", - "NE2211", - "NE2213", - "NE2215", - "NE2217", - "Nebula", - "NEC PC-TS508FAM", - "Nexus 10", - "Nexus S", - "Nexus S 4G", - "Nokia 1", - "Nokia 1 Plus", - "Nokia 1.3", - "Nokia 1.4", - "Nokia 2", - "Nokia 2 V", - "Nokia 2 V Tella", - "Nokia 2.1", - "Nokia 2.2", - "Nokia 2.3", - "Nokia 2.4", - "Nokia 3 V", - "Nokia 3.1", - "Nokia 3.1 A", - "Nokia 3.1 C", - "Nokia 3.1 Plus", - "Nokia 3.2", - "Nokia 3.4", - "Nokia 4.2", - "Nokia 5.1", - "Nokia 5.1 Plus", - "Nokia 5.3", - "Nokia 5.4", - "Nokia 6.1", - "Nokia 6.1 Plus", - "Nokia 6.2", - "Nokia 7 plus", - "Nokia 7.1", - "Nokia 7.2", - "Nokia 8 Sirocco", - "Nokia 8 V 5G UW", - "Nokia 8.1", - "Nokia 8.3 5G", - "Nokia 9", - "Nokia C01 Plus", - "Nokia C1", - "Nokia C1 2nd Edition", - "Nokia C1 Plus", - "Nokia C10", - "Nokia C100", - "Nokia C2", - "Nokia C2 2nd Edition", - "Nokia C2 Tennen", - "Nokia C20", - "Nokia C20 Plus", - "Nokia C200", - "Nokia C21", - "Nokia C21 Plus", - "Nokia C3", - "Nokia C30", - "Nokia C31", - "Nokia C5 Endi", - "Nokia G10", - "Nokia G100", - "Nokia G11", - "Nokia G11 Plus", - "Nokia G20", - "Nokia G21", - "Nokia G400 5G", - "Nokia G50", - "Nokia G60 5G", - "Nokia Streaming Box 8000", - "Nokia T10", - "Nokia T20", - "Nokia X10", - "Nokia X100", - "Nokia X20", - "Nokia X30 5G", - "Nokia X5", - "Nokia X6", - "Nokia X7", - "Nokia X71", - "Nokia XR20", - "Note9", - "NX401", - "NX501", - "NX503A", - "ONC", - "One", - "ONE A2003", - "ONE E1003", - "ONEPLUS A3000", - "ONEPLUS A5000", - "ONEPLUS A5010", - "ONEPLUS A6000", - "ONEPLUS A6003", - "ONEPLUS A6010", - "ONEPLUS A6013", - "Oneplus_Dosa_IN", - "OPD2101", - "OPG01", - "OPG02", - "OPG03", - "OPG04", - "OPPO A33m", - "OPPO A35", - "OPPO A37", - "OPPO A37m", - "OPPO A37t", - "OPPO A37tm", - "OPPO A39", - "OPPO A39m", - "OPPO A39t", - "OPPO A39tm", - "OPPO A53", - "OPPO A53m", - "OPPO A57", - "OPPO A57t", - "OPPO A59", - "OPPO A59m", - "OPPO A59s", - "OPPO A59st", - "OPPO A59t", - "OPPO A59tm", - "OPPO A73", - "OPPO A73t", - "OPPO A77", - "OPPO A77t", - "OPPO A79", - "OPPO A79k", - "OPPO A79kt", - "OPPO A79t", - "OPPO A83", - "OPPO A83t", - "OPPO CPH1605", - "OPPO R11", - "OPPO R11 Plus", - "OPPO R11 Plusk", - "OPPO R11 Pluskt", - "OPPO R11 Plust", - "OPPO R11s", - "OPPO R11s Plus", - "OPPO R11s Plust", - "OPPO R11st", - "OPPO R11t", - "OPPO R7", - "OPPO R7s", - "OPPO R7sPlus", - "OPPO R9", - "OPPO R9 Plus A", - "OPPO R9 Plusm A", - "OPPO R9 Plust A", - "OPPO R9 Plustm A", - "OPPO R9k", - "OPPO R9km", - "OPPO R9m", - "OPPO R9s", - "OPPO R9s Plus", - "OPPO R9s Plust", - "OPPO R9sk", - "OPPO R9skt", - "OPPO R9sPlus", - "OPPO R9st", - "OPPO R9t", - "OPPO R9tm", - "PA2170", - "PAAM00", - "PAAT00", - "PACM00", - "PACT00", - "PADM00", - "PADT00", - "PAFM00", - "PAFT00", - "PAHM00", - "PBAM00", - "PBAT00", - "PBBM00", - "PBBM30", - "PBBT00", - "PBBT30", - "PBCM10", - "PBCM30", - "PBCT10", - "PBDM00", - "PBDT00", - "PBEM00", - "PBET00", - "PBFM00", - "PBFT00", - "PCAM00", - "PCAM10", - "PCAT00", - "PCAT10", - "PCCM00", - "PCCT00", - "PCDM10", - "PCDT00", - "PCDT10", - "PCEM00", - "PCET00", - "PCGM00", - "PCGT00", - "PCHM00", - "PCHM10", - "PCHM30", - "PCHT10", - "PCHT30", - "PCKM00", - "PCKM80", - "PCLM10", - "PCLM50", - "PCNM00", - "PCPM00", - "PCRM00", - "PCRT01", - "PC-TE507FAW", - "PC-TE507JAW", - "PC-TS508FAM", - "PDAM10", - "PDAT10", - "PDCM00", - "PDEM10", - "PDEM30", - "PDET10", - "PDHM00", - "PDKM00", - "PDKT00", - "PDNM00", - "PDNT00", - "PDPM00", - "PDPT00", - "PDRM00", - "PDSM00", - "PDST00", - "PDVM00", - "PDYM20", - "PDYT20", - "PEAM00", - "PEAT00", - "PECM20", - "PECM30", - "PECT30", - "PEDM00", - "PEEM00", - "PEFM00", - "PEGM00", - "PEGM10", - "PEGT10", - "PEHM00", - "PEHT00", - "PELM00", - "PEMM00", - "PEMM20", - "PEMT00", - "PEMT20", - "PENM00", - "PEPM00", - "PEQM00", - "PERM00", - "PEUM00", - "PEXM00", - "PEYM00", - "PEZM00", - "PFCM00", - "PFDM00", - "PFFM10", - "PFFM20", - "PFGM00", - "PFJM10", - "PFTM10", - "PFTM20", - "PFUM10", - "PFZM10", - "PGAM10", - "PGBM10", - "PGCM10", - "PGKM10", - "PGZ110", - "Phone", - "Phone 2", - "pine", - "Platina", - "POCOPHONE F1", - "PRO 7", - "PRO 7 Plus", - "PRO 7-H", - "PRO 7-S", - "Pyxis", - "QILIVE 101", - "Qilive 40", - "Qilive 45", - "Qilive 45 - 4G", - "Qilive 50", - "Qilive 50 QC", - "Qilive 53", - "Qilive 7", - "Qilive 70v2", - "Qilive 79", - "QiLive 8", - "QiLive 8QC", - "QiLive 97", - "QiLive 97R", - "Qilive 97R-2", - "Quechua Phone 5", - "R1001", - "R1011", - "R2001", - "R2010", - "R2017", - "R4", - "R6006", - "R6007", - "R7", - "R7005", - "R7007", - "R7c", - "R7f", - "R7g", - "R7kc", - "R7kf", - "R7kt", - "R7Plus", - "R7plusf", - "R7Plusm", - "R7Plust", - "R7s", - "R7sf", - "R7sm", - "R7st", - "R7t", - "R8000", - "R8001", - "R8006", - "R8007", - "R800a", - "R800i", - "R809T", - "R8106", - "R8107", - "R8109", - "R815", - "R815T", - "R815W", - "R819", - "R819T", - "R820", - "R8200", - "R8201", - "R8205", - "R8206", - "R8207", - "R821", - "R821T", - "R823T", - "R827", - "R827T", - "R829", - "R829T", - "R830", - "R830S", - "R831", - "R831K", - "R831L", - "R831S", - "R831T", - "R833T", - "R850", - "Redmi 3", - "Redmi 3S", - "Redmi 4", - "Redmi 4A", - "Redmi 4X", - "Redmi 5", - "Redmi 5 Plus", - "Redmi 5A", - "Redmi 6", - "Redmi 6 Pro", - "Redmi 6A", - "Redmi 7", - "Redmi 7A", - "Redmi 8", - "Redmi 8A", - "Redmi 8A Dual", - "Redmi 8A Pro", - "Redmi Go", - "Redmi K20", - "Redmi K20 Pro", - "Redmi K20 Pro Premium Edition", - "Redmi K30", - "Redmi K30 5G", - "Redmi K30 Pro", - "Redmi K30 Pro 5G", - "Redmi K30 Pro 5G Zoom Edition", - "Redmi K30 Pro Zoom Edition", - "Redmi K30i 5G", - "Redmi Note 2", - "Redmi Note 3", - "Redmi Note 4", - "Redmi Note 4X", - "Redmi Note 5", - "Redmi Note 5 Pro", - "Redmi Note 5A", - "Redmi Note 6 Pro", - "Redmi Note 7", - "Redmi Note 7 Pro", - "Redmi Note 8", - "Redmi Note 8 Pro", - "Redmi Note 8T", - "Redmi Note 9 Pro", - "Redmi Note 9 Pro Max", - "Redmi Note 9S", - "Redmi Pro", - "Redmi S2", - "Redmi Y1", - "Redmi Y3", - "RMX1803", - "RMX1805", - "RMX1807", - "RMX1809", - "RMX1811", - "RMX1821", - "RMX1822", - "RMX1825", - "RMX1827", - "RMX1831", - "RMX1833", - "RMX1851", - "RMX1853", - "RMX1901", - "RMX1911", - "RMX1941", - "RMX1942", - "RMX1943", - "RMX1945", - "RMX2051", - "S2", - "S2005A-H", - "SAMSUNG-EK-GC100", - "samsung-printer-tablet", - "SAMSUNG-SGH-I257", - "SAMSUNG-SGH-I317", - "SAMSUNG-SGH-I337", - "SAMSUNG-SGH-I337Z", - "SAMSUNG-SGH-I407", - "SAMSUNG-SGH-I437", - "SAMSUNG-SGH-I437P", - "SAMSUNG-SGH-I437Z", - "SAMSUNG-SGH-I467", - "SAMSUNG-SGH-I497", - "SAMSUNG-SGH-I527", - "SAMSUNG-SGH-I537", - "SAMSUNG-SGH-I547", - "SAMSUNG-SGH-I577", - "SAMSUNG-SGH-I717", - "SAMSUNG-SGH-I727", - "SAMSUNG-SGH-I747", - "SAMSUNG-SGH-I747Z", - "SAMSUNG-SGH-I777", - "SAMSUNG-SGH-I827", - "SAMSUNG-SGH-I847", - "SAMSUNG-SGH-I896", - "SAMSUNG-SGH-I897", - "SAMSUNG-SGH-I927R", - "SAMSUNG-SGH-I957", - "SAMSUNG-SGH-I957D", - "SAMSUNG-SGH-I957M", - "SAMSUNG-SGH-I957R", - "SAMSUNG-SGH-I997", - "SAMSUNG-SGH-I997R", - "SAMSUNG-SM-C105A", - "SAMSUNG-SM-G360AZ", - "SAMSUNG-SM-G530A", - "SAMSUNG-SM-G530AZ", - "SAMSUNG-SM-G730A", - "SAMSUNG-SM-G750A", - "SAMSUNG-SM-G800A", - "SAMSUNG-SM-G850A", - "SAMSUNG-SM-G870A", - "SAMSUNG-SM-G890A", - "SAMSUNG-SM-G891A", - "SAMSUNG-SM-G900A", - "SAMSUNG-SM-G900AZ", - "SAMSUNG-SM-G920A", - "SAMSUNG-SM-G920AZ", - "SAMSUNG-SM-G925A", - "SAMSUNG-SM-G928A", - "SAMSUNG-SM-G930A", - "SAMSUNG-SM-G930AZ", - "SAMSUNG-SM-G935A", - "SAMSUNG-SM-J120A", - "SAMSUNG-SM-J120AZ", - "SAMSUNG-SM-J320A", - "SAMSUNG-SM-J320AZ", - "SAMSUNG-SM-J321AZ", - "SAMSUNG-SM-J326AZ", - "SAMSUNG-SM-J327A", - "SAMSUNG-SM-J327AZ", - "SAMSUNG-SM-J727A", - "SAMSUNG-SM-J727AZ", - "SAMSUNG-SM-N900A", - "SAMSUNG-SM-N910A", - "SAMSUNG-SM-N915A", - "SAMSUNG-SM-N920A", - "SAMSUNG-SM-N930A", - "SAMSUNG-SM-P907A", - "SAMSUNG-SM-T217A", - "SAMSUNG-SM-T337A", - "SAMSUNG-SM-T377A", - "SAMSUNG-SM-T537A", - "SAMSUNG-SM-T677A", - "SAMSUNG-SM-T707A", - "SAMSUNG-SM-T807A", - "SAMSUNG-SM-T817A", - "SAMSUNG-SM-T818A", - "santoni", - "SC-01C", - "SC-01D", - "SC-01E", - "SC-01F", - "SC-01G", - "SC-01H", - "SC-01J", - "SC-01K", - "SC-01L", - "SC-01M", - "SC-02B", - "SC-02C", - "SC-02D", - "SC-02E", - "SC-02F", - "SC-02G", - "SC-02H", - "SC-02J", - "SC-02K", - "SC-02L", - "SC-02M", - "SC-03D", - "SC-03E", - "SC-03G", - "SC-03J", - "SC-03K", - "SC-03L", - "SC-04E", - "SC-04F", - "SC-04G", - "SC-04J", - "SC-04L", - "SC-05D", - "SC-05G", - "SC-05L", - "SC-06D", - "SC-41A", - "SC-42A", - "SC-51A", - "SC51Aa", - "SC-51B", - "SC-51C", - "SC-52A", - "SC-52B", - "SC-52C", - "SC-53A", - "SC-53B", - "SC-53C", - "SC-54A", - "SC-54B", - "SC-54C", - "SC-55B", - "SC-55C", - "SC-56B", - "SC-56C", - "SCG01", - "SCG02", - "SCG03", - "SCG04", - "SCG06", - "SCG07", - "SCG08", - "SCG09", - "SCG10", - "SCG11", - "SCG12", - "SCG13", - "SCG14", - "SCG15", - "SCG16", - "SCG17", - "SCG18", - "SCH-I100", - "SCH-I110", - "SCH-I200", - "SCH-I200PP", - "SCH-I339", - "SCH-I400", - "SCH-I405", - "SCH-I405U", - "SCH-I415", - "SCH-I425", - "SCH-I435", - "SCH-I435L", - "SCH-I500", - "SCH-I509", - "SCH-I509U", - "SCH-I519", - "SCH-I535", - "SCH-I535PP", - "SCH-I545", - "SCH-I545L", - "SCH-I545PP", - "SCH-I559", - "SCH-i569", - "SCH-i579", - "SCH-I589", - "SCH-I605", - "SCH-I619", - "SCH-I629", - "SCH-I639", - "SCH-I659", - "SCH-I679", - "SCH-I699", - "SCH-I705", - "SCH-I739", - "SCH-I759", - "SCH-I779", - "SCH-I800", - "SCH-i809", - "SCH-I815", - "SCH-I829", - "SCH-I869", - "SCH-I879", - "SCH-I879E", - "SCH-i889", - "SCH-I905", - "SCH-i909", - "SCH-I915", - "SCH-i919", - "SCH-I919U", - "SCH-I925", - "SCH-I925U", - "SCH-i929", - "SCH-I939", - "SCH-I939D", - "SCH-I959", - "SCH-L710", - "SCH-M828C", - "SCH-N719", - "SCH-P709", - "SCH-P729", - "SCH-P739", - "SCH-R530C", - "SCH-R530M", - "SCH-R530U", - "SCH-R530X", - "SCH-R680", - "SCH-R730", - "SCH-R740C", - "SCH-R760", - "SCH-R760X", - "SCH-R820", - "SCH-R830", - "SCH-R830C", - "SCH-R890", - "SCH-R910", - "SCH-R915", - "SCH-R920", - "SCH-R930", - "SCH-R940", - "SCH-R950", - "SCH-R960", - "SCH-R970", - "SCH-R970C", - "SCH-R970X", - "SCH-S720C", - "SCH-S735C", - "SCH-S738C", - "SCH-S950C", - "SCH-S960L", - "SCH-S968C", - "SCH-W2013", - "SCH-W789", - "SCH-W899", - "SCH-W9913", - "SCH-W999", - "SCL21", - "SCL22", - "SCL23", - "SCL24", - "SCT21", - "SCV31", - "SCV32", - "SCV33", - "SCV34", - "SCV35", - "SCV36", - "SCV37", - "SCV38", - "SCV39", - "SCV40", - "SCV41", - "SCV42", - "SCV43", - "SCV43-j", - "SCV43-u", - "SCV44", - "SCV45", - "SCV46", - "SCV46-j", - "SCV46-u", - "SCV47", - "SCV48", - "SCV49", - "Selecline 10", - "SGH-I257M", - "SGH-I317M", - "SGH-I337M", - "SGH-I467M", - "SGH-I497", - "SGH-I527M", - "SGH-I537", - "SGH-I547C", - "SGH-I717", - "SGH-I717D", - "SGH-I717M", - "SGH-I717R", - "SGH-I727", - "SGH-I727R", - "SGH-I747M", - "SGH-I748", - "SGH-I757M", - "SGH-I827D", - "SGH-I896", - "SGH-I957D", - "SGH-I957M", - "SGH-I957R", - "SGH-I987", - "SGH-M819N", - "SGH-M919", - "SGH-M919N", - "SGH-M919V", - "SGH-N037", - "SGH-N075T", - "SGH-S730G", - "SGH-S959G", - "SGH-S970G", - "SGH-T399", - "SGH-T399N", - "SGH-T499", - "SGH-T499V", - "SGH-T499Y", - "SGH-T589", - "SGH-T589R", - "SGH-T589W", - "SGH-T599", - "SGH-T599N", - "SGH-T599V", - "SGH-T679", - "SGH-T679M", - "SGH-T699", - "SGH-T769", - "SGH-T779", - "SGH-T839", - "SGH-T849", - "SGH-T859", - "SGH-T869", - "SGH-T879", - "SGH-T889", - "SGH-T889V", - "SGH-T959", - "SGH-T959D", - "SGH-T959P", - "SGH-T959V", - "SGH-T959W", - "SGH-T989", - "SGH-T989D", - "SGH-T999", - "SGH-T999L", - "SGH-T999N", - "SGH-T999V", - "SGP311", - "SGP312", - "SGP321", - "SGP351", - "SGP412", - "SGP511", - "SGP512", - "SGP521", - "SGP551", - "SGP561", - "SGP611", - "SGP612", - "SGP621", - "SGP641", - "SGP712", - "SGP771", - "SGPT12", - "SGPT13", - "SHV-E110S", - "SHV-E120K", - "SHV-E120L", - "SHV-E120S", - "SHV-E140K", - "SHV-E140L", - "SHV-E140S", - "SHV-E150S", - "SHV-E160K", - "SHV-E160L", - "SHV-E160S", - "SHV-E170K", - "SHV-E170L", - "SHV-E170S", - "SHV-E210K", - "SHV-E210L", - "SHV-E210S", - "SHV-E220S", - "SHV-E230K", - "SHV-E230L", - "SHV-E230S", - "SHV-E250K", - "SHV-E250L", - "SHV-E250S", - "SHV-E270K", - "SHV-E270S", - "SHV-E275K", - "SHV-E275S", - "SHV-E300K", - "SHV-E300L", - "SHV-E300S", - "SHV-E310K", - "SHV-E310L", - "SHV-E310S", - "SHV-E330K", - "SHV-E330L", - "SHV-E330S", - "SHV-E370D", - "SHV-E370K", - "SHV-E400K", - "SHV-E400S", - "SHV-E470S", - "SHV-E500L", - "SHV-E500S", - "SHW-M100S", - "SHW-M110S", - "SHW-M115S", - "SHW-M130K", - "SHW-M130L", - "SHW-M135K", - "SHW-M135L", - "SHW-M180K", - "SHW-M180L", - "SHW-M180S", - "SHW-M180W", - "SHW-M190S", - "SHW-M220L", - "SHW-M240S", - "SHW-M250K", - "SHW-M250L", - "SHW-M250S", - "SHW-M290K", - "SHW-M290S", - "SHW-M300W", - "SHW-M305W", - "SHW-M340D", - "SHW-M340K", - "SHW-M340L", - "SHW-M340S", - "SHW-M380K", - "SHW-M380S", - "SHW-M380W", - "SHW-M430W", - "SHW-M440S", - "SHW-M460D", - "SHW-M480K", - "SHW-M480S", - "SHW-M480W", - "SHW-M485W", - "SHW-M486W", - "SHW-M500W", - "SHW-M570S", - "SHW-M580D", - "SHW-M585D", - "sirius", - "SK17a", - "SM-A013F", - "SM-A013G", - "SM-A013M", - "SM-A015A", - "SM-A015AZ", - "SM-A015F", - "SM-A015G", - "SM-A015M", - "SM-A015T1", - "SM-A015U", - "SM-A015U1", - "SM-A015V", - "SM-A022F", - "SM-A022G", - "SM-A022M", - "SM-A025A", - "SM-A025AZ", - "SM-A025F", - "SM-A025G", - "SM-A025M", - "SM-A025U", - "SM-A025U1", - "SM-A025V", - "SM-A032F", - "SM-A032M", - "SM-A035F", - "SM-A035G", - "SM-A035M", - "SM-A037F", - "SM-A037G", - "SM-A037M", - "SM-A037U", - "SM-A037U1", - "SM-A037W", - "SM-A045F", - "SM-A045M", - "SM-A047F", - "SM-A047M", - "SM-A102N", - "SM-A102U", - "SM-A102U1", - "SM-A102W", - "SM-A105F", - "SM-A105FN", - "SM-A105G", - "SM-A105M", - "SM-A105N", - "SM-A107F", - "SM-A107M", - "SM-A115A", - "SM-A115AP", - "SM-A115AZ", - "SM-A115F", - "SM-A115M", - "SM-A115U", - "SM-A115U1", - "SM-A115W", - "SM-A125F", - "SM-A125M", - "SM-A125N", - "SM-A125U", - "SM-A125U1", - "SM-A125W", - "SM-A127F", - "SM-A127M", - "SM-A135F", - "SM-A135M", - "SM-A135N", - "SM-A135U", - "SM-A135U1", - "SM-A136B", - "SM-A136M", - "SM-A136S", - "SM-A136U", - "SM-A136U1", - "SM-A136W", - "SM-A137F", - "SM-A202F", - "SM-A202K", - "SM-A205F", - "SM-A205FN", - "SM-A205G", - "SM-A205GN", - "SM-A205S", - "SM-A205U", - "SM-A205U1", - "SM-A205W", - "SM-A205YN", - "SM-A2070", - "SM-A207F", - "SM-A207M", - "SM-A215U", - "SM-A215U1", - "SM-A215W", - "SM-A217F", - "SM-A217M", - "SM-A217N", - "SM-A225F", - "SM-A225M", - "SM-A226B", - "SM-A226BR", - "SM-A226L", - "SM-A233C", - "SM-A235F", - "SM-A235M", - "SM-A235N", - "SM-A2360", - "SM-A236B", - "SM-A236E", - "SM-A236M", - "SM-A236U", - "SM-A236U1", - "SM-A260F", - "SM-A260G", - "SM-A3000", - "SM-A3009", - "SM-A300F", - "SM-A300FU", - "SM-A300G", - "SM-A300H", - "SM-A300M", - "SM-A300X", - "SM-A300XU", - "SM-A300XZ", - "SM-A300Y", - "SM-A300YZ", - "SM-A3050", - "SM-A3051", - "SM-A3058", - "SM-A305F", - "SM-A305FN", - "SM-A305G", - "SM-A305GN", - "SM-A305GT", - "SM-A305N", - "SM-A305YN", - "SM-A307FN", - "SM-A307G", - "SM-A307GN", - "SM-A307GT", - "SM-A310F", - "SM-A310M", - "SM-A310N0", - "SM-A310X", - "SM-A310Y", - "SM-A315F", - "SM-A315G", - "SM-A315N", - "SM-A320F", - "SM-A320FL", - "SM-A320X", - "SM-A320Y", - "SM-A325F", - "SM-A325M", - "SM-A325N", - "SM-A326B", - "SM-A326BR", - "SM-A326U", - "SM-A326U1", - "SM-A326W", - "SM-A3360", - "SM-A336B", - "SM-A336E", - "SM-A336M", - "SM-A336N", - "SM-A405FM", - "SM-A405FN", - "SM-A405S", - "SM-A415F", - "SM-A4260", - "SM-A426B", - "SM-A426N", - "SM-A426U", - "SM-A426U1", - "SM-A5000", - "SM-A5009", - "SM-A500F", - "SM-A500F1", - "SM-A500FU", - "SM-A500G", - "SM-A500H", - "SM-A500K", - "SM-A500L", - "SM-A500M", - "SM-A500S", - "SM-A500W", - "SM-A500X", - "SM-A500XZ", - "SM-A500Y", - "SM-A500YZ", - "SM-A505F", - "SM-A505FM", - "SM-A505FN", - "SM-A505G", - "SM-A505GN", - "SM-A505GT", - "SM-A505N", - "SM-A505U", - "SM-A505U1", - "SM-A505W", - "SM-A505YN", - "SM-A5070", - "SM-A507FN", - "SM-A5100", - "SM-A5100X", - "SM-A5108", - "SM-A510F", - "SM-A510K", - "SM-A510L", - "SM-A510M", - "SM-A510S", - "SM-A510X", - "SM-A510XZ", - "SM-A510Y", - "SM-A515F", - "SM-A515U", - "SM-A515U1", - "SM-A515W", - "SM-A5160", - "SM-A516B", - "SM-A516N", - "SM-A516U", - "SM-A516U1", - "SM-A516V", - "SM-A520F", - "SM-A520K", - "SM-A520L", - "SM-A520S", - "SM-A520W", - "SM-A520X", - "SM-A525F", - "SM-A525M", - "SM-A5260", - "SM-A526B", - "SM-A526N", - "SM-A526U", - "SM-A526U1", - "SM-A526W", - "SM-A528B", - "SM-A528N", - "SM-A530F", - "SM-A530N", - "SM-A530W", - "SM-A530X", - "SM-A5360", - "SM-A536B", - "SM-A536E", - "SM-A536N", - "SM-A536U", - "SM-A536U1", - "SM-A536V", - "SM-A536W", - "SM-A600A", - "SM-A600AZ", - "SM-A600F", - "SM-A600FN", - "SM-A600G", - "SM-A600GN", - "SM-A600N", - "SM-A600P", - "SM-A600T", - "SM-A600T1", - "SM-A600U", - "SM-A6050", - "SM-A6058", - "SM-A605F", - "SM-A605FN", - "SM-A605G", - "SM-A605GN", - "SM-A605K", - "SM-A605XC", - "SM-A6060", - "SM-A606Y", - "SM-A7000", - "SM-A7009", - "SM-A700F", - "SM-A700FD", - "SM-A700H", - "SM-A700K", - "SM-A700L", - "SM-A700S", - "SM-A700X", - "SM-A700YD", - "SM-A7050", - "SM-A705F", - "SM-A705FN", - "SM-A705GM", - "SM-A705MN", - "SM-A705U", - "SM-A705W", - "SM-A705YN", - "SM-A7070", - "SM-A707F", - "SM-A7100", - "SM-A7108", - "SM-A710F", - "SM-A710K", - "SM-A710L", - "SM-A710M", - "SM-A710S", - "SM-A710X", - "SM-A710XZ", - "SM-A710Y", - "SM-A715F", - "SM-A715W", - "SM-A7160", - "SM-A716B", - "SM-A716S", - "SM-A716U", - "SM-A716U1", - "SM-A716V", - "SM-A720F", - "SM-A720S", - "SM-A725F", - "SM-A725M", - "SM-A730F", - "SM-A730X", - "SM-A736B", - "SM-A750C", - "SM-A750F", - "SM-A750FN", - "SM-A750G", - "SM-A750GN", - "SM-A750N", - "SM-A8000", - "SM-A800F", - "SM-A800I", - "SM-A800IZ", - "SM-A800S", - "SM-A800X", - "SM-A800YZ", - "SM-A8050", - "SM-A805F", - "SM-A805N", - "SM-A810F", - "SM-A810S", - "SM-A810YZ", - "SM-A826S", - "SM-A9000", - "SM-A9080", - "SM-A908B", - "SM-A908N", - "SM-A9100", - "SM-A910F", - "SM-A9200", - "SM-A920F", - "SM-A920N", - "SmartTabII10", - "SmartTabII7", - "SM-C101", - "SM-C105", - "SM-C105K", - "SM-C105L", - "SM-C105S", - "SM-C111", - "SM-C111M", - "SM-C115", - "SM-C115L", - "SM-C115M", - "SM-C115W", - "SM-C5000", - "SM-C500X", - "SM-C5010", - "SM-C5018", - "SM-C7000", - "SM-C700X", - "SM-C7010", - "SM-C7018", - "SM-C701F", - "SM-C701X", - "SM-C7100", - "SM-C7108", - "SM-C710F", - "SM-C710X", - "SM-C9000", - "SM-C9008", - "SM-C900F", - "SM-C900X", - "SM-C900Y", - "SM-E025F", - "SM-E135F", - "SM-E225F", - "SM-E236B", - "SM-E426B", - "SM-E426S", - "SM-E500F", - "SM-E500H", - "SM-E500M", - "SM-E500YZ", - "SM-E5260", - "SM-E625F", - "SM-E7000", - "SM-E7009", - "SM-E700F", - "SM-E700H", - "SM-E700M", - "SM-F127G", - "SM-F415F", - "SM-F7000", - "SM-F700F", - "SM-F700N", - "SM-F700U", - "SM-F700U1", - "SM-F700W", - "SM-F7070", - "SM-F707B", - "SM-F707N", - "SM-F707U", - "SM-F707U1", - "SM-F707W", - "SM-F7110", - "SM-F711B", - "SM-F711N", - "SM-F711U", - "SM-F711U1", - "SM-F711W", - "SM-F7210", - "SM-F721B", - "SM-F721C", - "SM-F721N", - "SM-F721U", - "SM-F721U1", - "SM-F721W", - "SM-F9000", - "SM-F900F", - "SM-F900U", - "SM-F900U1", - "SM-F900W", - "SM-F907B", - "SM-F907N", - "SM-F9160", - "SM-F916B", - "SM-F916N", - "SM-F916Q", - "SM-F916U", - "SM-F916U1", - "SM-F916W", - "SM-F9260", - "SM-F926B", - "SM-F926N", - "SM-F926U", - "SM-F926U1", - "SM-F926W", - "SM-F9360", - "SM-F936B", - "SM-F936N", - "SM-F936U", - "SM-F936U1", - "SM-F936W", - "SM-G110B", - "SM-G110H", - "SM-G110M", - "SM-G130BT", - "SM-G130BU", - "SM-G130E", - "SM-G130H", - "SM-G130HN", - "SM-G130M", - "SM-G130U", - "SM-G150N0", - "SM-G150NK", - "SM-G150NL", - "SM-G150NS", - "SM-G155S", - "SM-G160N", - "SM-G1650", - "SM-G165N", - "SM-G310HN", - "SM-G310R5", - "SM-G3139D", - "SM-G313F", - "SM-G313H", - "SM-G313HN", - "SM-G313HU", - "SM-G313HY", - "SM-G313HZ", - "SM-G313M", - "SM-G313ML", - "SM-G313MU", - "SM-G313MY", - "SM-G313U", - "SM-G316H", - "SM-G316HU", - "SM-G316M", - "SM-G316ML", - "SM-G316MY", - "SM-G316U", - "SM-G318H", - "SM-G318HZ", - "SM-G318ML", - "SM-G318MZ", - "SM-G350", - "SM-G3502", - "SM-G3502C", - "SM-G3502I", - "SM-G3502L", - "SM-G3502T", - "SM-G3502U", - "SM-G3508", - "SM-G3508I", - "SM-G3508J", - "SM-G3509", - "SM-G3509I", - "SM-G350E", - "SM-G350L", - "SM-G350M", - "SM-G3518", - "SM-G3556D", - "SM-G3558", - "SM-G3559", - "SM-G355H", - "SM-G355HN", - "SM-G355HQ", - "SM-G355M", - "SM-G357FZ", - "SM-G357M", - "SM-G3586V", - "SM-G3589W", - "SM-G3606", - "SM-G3608", - "SM-G3609", - "SM-G360BT", - "SM-G360F", - "SM-G360FY", - "SM-G360GY", - "SM-G360H", - "SM-G360HU", - "SM-G360M", - "SM-G360P", - "SM-G360R6", - "SM-G360T", - "SM-G360T1", - "SM-G360V", - "SM-G361F", - "SM-G361H", - "SM-G361HU", - "SM-G361M", - "SM-G3812", - "SM-G3812B", - "SM-G3815", - "SM-G3818", - "SM-G3819", - "SM-G3819D", - "SM-G386F", - "SM-G386T", - "SM-G386T1", - "SM-G386W", - "SM-G388F", - "SM-G389F", - "SM-G390F", - "SM-G390W", - "SM-G390Y", - "SM-G398FN", - "SM-G5108", - "SM-G5108Q", - "SM-G525F", - "SM-G525N", - "SM-G5306W", - "SM-G5308W", - "SM-G5309W", - "SM-G530BT", - "SM-G530F", - "SM-G530FZ", - "SM-G530H", - "SM-G530M", - "SM-G530MU", - "SM-G530P", - "SM-G530R4", - "SM-G530R7", - "SM-G530T", - "SM-G530T1", - "SM-G530W", - "SM-G530Y", - "SM-G531BT", - "SM-G531F", - "SM-G531H", - "SM-G531M", - "SM-G531Y", - "SM-G532F", - "SM-G532G", - "SM-G532M", - "SM-G532MT", - "SM-G5500", - "SM-G550FY", - "SM-G550T", - "SM-G550T1", - "SM-G550T2", - "SM-G5510", - "SM-G5520", - "SM-G5528", - "SM-G5700", - "SM-G570F", - "SM-G570M", - "SM-G570Y", - "SM-G6000", - "SM-G600F", - "SM-G600FY", - "SM-G600S", - "SM-G6100", - "SM-G610F", - "SM-G610K", - "SM-G610L", - "SM-G610M", - "SM-G610S", - "SM-G610Y", - "SM-G611F", - "SM-G611FF", - "SM-G611K", - "SM-G611L", - "SM-G611M", - "SM-G611MT", - "SM-G611S", - "SM-G615F", - "SM-G615FU", - "SM-G6200", - "SM-G710", - "SM-G7102", - "SM-G7102T", - "SM-G7105", - "SM-G7105H", - "SM-G7105L", - "SM-G7106", - "SM-G7108", - "SM-G7109", - "SM-G710K", - "SM-G710L", - "SM-G710S", - "SM-G715FN", - "SM-G7200", - "SM-G7202", - "SM-G720AX", - "SM-G720N0", - "SM-G730V", - "SM-G730W8", - "SM-G736B", - "SM-G736U", - "SM-G736U1", - "SM-G736W", - "SM-G7508Q", - "SM-G750F", - "SM-G750H", - "SM-G770F", - "SM-G770U1", - "SM-G780F", - "SM-G780G", - "SM-G7810", - "SM-G781B", - "SM-G781N", - "SM-G781U", - "SM-G781U1", - "SM-G781V", - "SM-G781W", - "SM-G800F", - "SM-G800H", - "SM-G800HQ", - "SM-G800M", - "SM-G800R4", - "SM-G800X", - "SM-G800Y", - "SM-G8508S", - "SM-G850F", - "SM-G850FQ", - "SM-G850K", - "SM-G850L", - "SM-G850M", - "SM-G850S", - "SM-G850W", - "SM-G850X", - "SM-G850Y", - "SM-G860P", - "SM-G870F", - "SM-G870F0", - "SM-G870W", - "SM-G8750", - "SM-G8850", - "SM-G8858", - "SM-G885F", - "SM-G885S", - "SM-G885Y", - "SM-G8870", - "SM-G887F", - "SM-G887N", - "SM-G889A", - "SM-G889F", - "SM-G889G", - "SM-G889YB", - "SM-G892A", - "SM-G892U", - "SM-G9006W", - "SM-G9008W", - "SM-G9009W", - "SM-G900F", - "SM-G900FD", - "SM-G900FG", - "SM-G900FQ", - "SM-G900H", - "SM-G900I", - "SM-G900K", - "SM-G900L", - "SM-G900M", - "SM-G900MD", - "SM-G900P", - "SM-G900R4", - "SM-G900R6", - "SM-G900R7", - "SM-G900S", - "SM-G900T", - "SM-G900T1", - "SM-G900T3", - "SM-G900T4", - "SM-G900V", - "SM-G900W8", - "SM-G900X", - "SM-G901F", - "SM-G903F", - "SM-G903M", - "SM-G903W", - "SM-G906K", - "SM-G906L", - "SM-G906S", - "SM-G910S", - "SM-G9198", - "SM-G9200", - "SM-G9208", - "SM-G9209", - "SM-G920F", - "SM-G920I", - "SM-G920K", - "SM-G920L", - "SM-G920P", - "SM-G920R4", - "SM-G920R6", - "SM-G920R7", - "SM-G920S", - "SM-G920T", - "SM-G920T1", - "SM-G920V", - "SM-G920W8", - "SM-G920X", - "SM-G9250", - "SM-G925F", - "SM-G925I", - "SM-G925K", - "SM-G925L", - "SM-G925P", - "SM-G925R4", - "SM-G925R6", - "SM-G925R7", - "SM-G925S", - "SM-G925T", - "SM-G925V", - "SM-G925W8", - "SM-G925X", - "SM-G9280", - "SM-G9287", - "SM-G9287C", - "SM-G928C", - "SM-G928F", - "SM-G928G", - "SM-G928I", - "SM-G928K", - "SM-G928L", - "SM-G928N0", - "SM-G928P", - "SM-G928R4", - "SM-G928S", - "SM-G928T", - "SM-G928V", - "SM-G928W8", - "SM-G928X", - "SM-G9298", - "SM-G9300", - "SM-G9308", - "SM-G930F", - "SM-G930K", - "SM-G930L", - "SM-G930P", - "SM-G930R4", - "SM-G930R6", - "SM-G930R7", - "SM-G930S", - "SM-G930T", - "SM-G930T1", - "SM-G930U", - "SM-G930V", - "SM-G930VC", - "SM-G930VL", - "SM-G930W8", - "SM-G930X", - "SM-G9350", - "SM-G935F", - "SM-G935K", - "SM-G935L", - "SM-G935P", - "SM-G935R4", - "SM-G935S", - "SM-G935T", - "SM-G935U", - "SM-G935V", - "SM-G935VC", - "SM-G935W8", - "SM-G935X", - "SM-G9500", - "SM-G9508", - "SM-G950F", - "SM-G950N", - "SM-G950U", - "SM-G950U1", - "SM-G950W", - "SM-G9550", - "SM-G955F", - "SM-G955N", - "SM-G955U", - "SM-G955U1", - "SM-G955W", - "SM-G9600", - "SM-G9608", - "SM-G960F", - "SM-G960N", - "SM-G960U", - "SM-G960U1", - "SM-G960W", - "SM-G9650", - "SM-G965F", - "SM-G965N", - "SM-G965U", - "SM-G965U1", - "SM-G965W", - "SM-G9700", - "SM-G9708", - "SM-G970F", - "SM-G970N", - "SM-G970U", - "SM-G970U1", - "SM-G970W", - "SM-G9730", - "SM-G9738", - "SM-G973C", - "SM-G973F", - "SM-G973N", - "SM-G973U", - "SM-G973U1", - "SM-G973W", - "SM-G9750", - "SM-G9758", - "SM-G975F", - "SM-G975N", - "SM-G975U", - "SM-G975U1", - "SM-G975W", - "SM-G977B", - "SM-G977N", - "SM-G977P", - "SM-G977T", - "SM-G977U", - "SM-G980F", - "SM-G9810", - "SM-G981B", - "SM-G981N", - "SM-G981U", - "SM-G981U1", - "SM-G981V", - "SM-G981W", - "SM-G985F", - "SM-G9860", - "SM-G986B", - "SM-G986N", - "SM-G986U", - "SM-G986U1", - "SM-G986W", - "SM-G9880", - "SM-G988B", - "SM-G988N", - "SM-G988Q", - "SM-G988U", - "SM-G988U1", - "SM-G988W", - "SM-G9900", - "SM-G990B", - "SM-G990B2", - "SM-G990E", - "SM-G990U", - "SM-G990U1", - "SM-G990U2", - "SM-G990U3", - "SM-G990W", - "SM-G990W2", - "SM-G9910", - "SM-G991B", - "SM-G991N", - "SM-G991Q", - "SM-G991U1", - "SM-G991W", - "SM-G9960", - "SM-G996B", - "SM-G996N", - "SM-G996U1", - "SM-G996W", - "SM-G9980", - "SM-G998B", - "SM-G998N", - "SM-G998U", - "SM-G998U1", - "SM-G998W", - "SM-J100F", - "SM-J100FN", - "SM-J100G", - "SM-J100H", - "SM-J100M", - "SM-J100ML", - "SM-J100MU", - "SM-J100VPP", - "SM-J100Y", - "SM-J105B", - "SM-J105F", - "SM-J105H", - "SM-J105M", - "SM-J105Y", - "SM-J106B", - "SM-J106F", - "SM-J106H", - "SM-J106M", - "SM-J110F", - "SM-J110G", - "SM-J110H", - "SM-J110L", - "SM-J110M", - "SM-J111F", - "SM-J111M", - "SM-J120F", - "SM-J120FN", - "SM-J120G", - "SM-J120H", - "SM-J120M", - "SM-J120P", - "SM-J120W", - "SM-J120ZN", - "SM-J200BT", - "SM-J200F", - "SM-J200G", - "SM-J200GU", - "SM-J200H", - "SM-J200M", - "SM-J200Y", - "SM-J210F", - "SM-J250F", - "SM-J250G", - "SM-J250M", - "SM-J250Y", - "SM-J260A", - "SM-J260AZ", - "SM-J260F", - "SM-J260FU", - "SM-J260G", - "SM-J260GU", - "SM-J260M", - "SM-J260MU", - "SM-J260T1", - "SM-J260Y", - "SM-J3109", - "SM-J3110", - "SM-J3119", - "SM-J3119S", - "SM-J320F", - "SM-J320FN", - "SM-J320G", - "SM-J320H", - "SM-J320M", - "SM-J320N0", - "SM-J320P", - "SM-J320R4", - "SM-J320V", - "SM-J320VPP", - "SM-J320W8", - "SM-J320Y", - "SM-J320YZ", - "SM-J320ZN", - "SM-J327P", - "SM-J327R4", - "SM-J327R6", - "SM-J327R7", - "SM-J327T", - "SM-J327T1", - "SM-J327U", - "SM-J327V", - "SM-J327VPP", - "SM-J327W", - "SM-J3300", - "SM-J3308", - "SM-J330F", - "SM-J330FN", - "SM-J330G", - "SM-J330L", - "SM-J330N", - "SM-J336AZ", - "SM-J337A", - "SM-J337AZ", - "SM-J337P", - "SM-J337R4", - "SM-J337R7", - "SM-J337T", - "SM-J337U", - "SM-J337V", - "SM-J337VPP", - "SM-J337W", - "SM-J400F", - "SM-J400G", - "SM-J400M", - "SM-J410F", - "SM-J410G", - "SM-J415F", - "SM-J415FN", - "SM-J415G", - "SM-J415GN", - "SM-J415N", - "SM-J5007", - "SM-J5008", - "SM-J500F", - "SM-J500FN", - "SM-J500G", - "SM-J500H", - "SM-J500M", - "SM-J500N0", - "SM-J500Y", - "SM-J5108", - "SM-J510F", - "SM-J510FN", - "SM-J510FQ", - "SM-J510GN", - "SM-J510H", - "SM-J510K", - "SM-J510L", - "SM-J510MN", - "SM-J510S", - "SM-J510UN", - "SM-J530F", - "SM-J530FM", - "SM-J530G", - "SM-J530GM", - "SM-J530K", - "SM-J530L", - "SM-J530S", - "SM-J530Y", - "SM-J530YM", - "SM-J600F", - "SM-J600FN", - "SM-J600G", - "SM-J600GF", - "SM-J600GT", - "SM-J600L", - "SM-J600N", - "SM-J610F", - "SM-J610FN", - "SM-J610G", - "SM-J7008", - "SM-J700F", - "SM-J700H", - "SM-J700K", - "SM-J700M", - "SM-J700P", - "SM-J700T", - "SM-J700T1", - "SM-J701F", - "SM-J701M", - "SM-J701MT", - "SM-J7108", - "SM-J7109", - "SM-J710F", - "SM-J710FN", - "SM-J710FQ", - "SM-J710GN", - "SM-J710K", - "SM-J710MN", - "SM-J720F", - "SM-J720M", - "SM-J727P", - "SM-J727R4", - "SM-J727S", - "SM-J727T", - "SM-J727T1", - "SM-J727U", - "SM-J727V", - "SM-J727VPP", - "SM-J730F", - "SM-J730FM", - "SM-J730G", - "SM-J730GM", - "SM-J730K", - "SM-J737A", - "SM-J737P", - "SM-J737R4", - "SM-J737S", - "SM-J737T", - "SM-J737T1", - "SM-J737U", - "SM-J737V", - "SM-J737VPP", - "SM-J810F", - "SM-J810G", - "SM-J810GF", - "SM-J810M", - "SM-J810Y", - "SM-M013F", - "SM-M015F", - "SM-M015G", - "SM-M017F", - "SM-M022F", - "SM-M022G", - "SM-M022M", - "SM-M025F", - "SM-M105F", - "SM-M105G", - "SM-M105M", - "SM-M105Y", - "SM-M107F", - "SM-M115F", - "SM-M115M", - "SM-M127F", - "SM-M127G", - "SM-M127N", - "SM-M135F", - "SM-M135FU", - "SM-M135M", - "SM-M136B", - "SM-M205F", - "SM-M205FN", - "SM-M205G", - "SM-M205M", - "SM-M205N", - "SM-M215F", - "SM-M215G", - "SM-M225FV", - "SM-M236B", - "SM-M236L", - "SM-M236Q", - "SM-M305F", - "SM-M305M", - "SM-M3070", - "SM-M307F", - "SM-M307FN", - "SM-M315F", - "SM-M317F", - "SM-M325F", - "SM-M325FV", - "SM-M326B", - "SM-M336B", - "SM-M336BU", - "SM-M336K", - "SM-M405F", - "SM-M426B", - "SM-M515F", - "SM-M526B", - "SM-M526BR", - "SM-M536B", - "SM-M536S", - "SM-M625F", - "SM-N750", - "SM-N7500Q", - "SM-N7502", - "SM-N7505", - "SM-N7505L", - "SM-N7507", - "SM-N750K", - "SM-N750L", - "SM-N750S", - "SM-N770F", - "SM-N900", - "SM-N9000Q", - "SM-N9002", - "SM-N9005", - "SM-N9006", - "SM-N9007", - "SM-N9008", - "SM-N9008V", - "SM-N9009", - "SM-N900K", - "SM-N900L", - "SM-N900P", - "SM-N900R4", - "SM-N900S", - "SM-N900T", - "SM-N900U", - "SM-N900V", - "SM-N900W8", - "SM-N9100", - "SM-N9106W", - "SM-N9108V", - "SM-N9109W", - "SM-N910C", - "SM-N910F", - "SM-N910G", - "SM-N910H", - "SM-N910K", - "SM-N910L", - "SM-N910P", - "SM-N910R4", - "SM-N910S", - "SM-N910T", - "SM-N910T2", - "SM-N910T3", - "SM-N910U", - "SM-N910V", - "SM-N910W8", - "SM-N910X", - "SM-N9150", - "SM-N915F", - "SM-N915FY", - "SM-N915G", - "SM-N915K", - "SM-N915L", - "SM-N915P", - "SM-N915R4", - "SM-N915S", - "SM-N915T", - "SM-N915T3", - "SM-N915V", - "SM-N915W8", - "SM-N915X", - "SM-N916K", - "SM-N916L", - "SM-N916S", - "SM-N9200", - "SM-N9208", - "SM-N920C", - "SM-N920F", - "SM-N920G", - "SM-N920I", - "SM-N920K", - "SM-N920L", - "SM-N920P", - "SM-N920R4", - "SM-N920R6", - "SM-N920R7", - "SM-N920S", - "SM-N920T", - "SM-N920V", - "SM-N920W8", - "SM-N920X", - "SM-N9300", - "SM-N930F", - "SM-N930K", - "SM-N930L", - "SM-N930P", - "SM-N930R4", - "SM-N930R6", - "SM-N930R7", - "SM-N930S", - "SM-N930T", - "SM-N930U", - "SM-N930V", - "SM-N930VL", - "SM-N930W8", - "SM-N930X", - "SM-N935F", - "SM-N935K", - "SM-N935L", - "SM-N935S", - "SM-N9500", - "SM-N9508", - "SM-N950F", - "SM-N950N", - "SM-N950U", - "SM-N950U1", - "SM-N950W", - "SM-N950XN", - "SM-N9600", - "SM-N960F", - "SM-N960N", - "SM-N960U", - "SM-N960U1", - "SM-N960W", - "SM-N9700", - "SM-N970F", - "SM-N970U", - "SM-N970U1", - "SM-N970W", - "SM-N971N", - "SM-N9750", - "SM-N975C", - "SM-N975F", - "SM-N975U", - "SM-N975U1", - "SM-N975W", - "SM-N9760", - "SM-N976B", - "SM-N976N", - "SM-N976Q", - "SM-N976U", - "SM-N976V", - "SM-N980F", - "SM-N9810", - "SM-N981B", - "SM-N981N", - "SM-N981U", - "SM-N981U1", - "SM-N981W", - "SM-N985F", - "SM-N9860", - "SM-N986B", - "SM-N986N", - "SM-N986U", - "SM-N986U1", - "SM-N986W", - "SM-P200", - "SM-P205", - "SM-P350", - "SM-P355", - "SM-P355C", - "SM-P355M", - "SM-P355Y", - "SM-P550", - "SM-P555", - "SM-P555C", - "SM-P555K", - "SM-P555L", - "SM-P555M", - "SM-P555S", - "SM-P555Y", - "SM-P580", - "SM-P580X", - "SM-P583", - "SM-P585", - "SM-P585M", - "SM-P585N0", - "SM-P585Y", - "SM-P587", - "SM-P588C", - "SM-P600", - "SM-P601", - "SM-P602", - "SM-P605", - "SM-P605K", - "SM-P605L", - "SM-P605M", - "SM-P605S", - "SM-P605V", - "SM-P607T", - "SM-P610", - "SM-P610X", - "SM-P613", - "SM-P615", - "SM-P615C", - "SM-P615N", - "SM-P617", - "SM-P619", - "SM-P900", - "SM-P901", - "SM-P905", - "SM-P905F0", - "SM-P905M", - "SM-P905V", - "SM-R860", - "SM-R865F", - "SM-R865N", - "SM-R865U", - "SM-R870", - "SM-R875F", - "SM-R875N", - "SM-R875U", - "SM-R880", - "SM-R885F", - "SM-R885N", - "SM-R885U", - "SM-R890", - "SM-R8950", - "SM-R895F", - "SM-R895N", - "SM-R895U", - "SM-R900", - "SM-R905F", - "SM-R905N", - "SM-R905U", - "SM-R910", - "SM-R9150", - "SM-R915F", - "SM-R915N", - "SM-R915U", - "SM-R920", - "SM-R925F", - "SM-R925N", - "SM-R925U", - "SM-S102DL", - "SM-S111DL", - "SM-S120VL", - "SM-S124DL", - "SM-S127DL", - "SM-S134DL", - "SM-S136DL", - "SM-S205DL", - "SM-S215DL", - "SM-S236DL", - "SM-S260DL", - "SM-S320VL", - "SM-S326DL", - "SM-S327VL", - "SM-S337TL", - "SM-S357BL", - "SM-S367VL", - "SM-S426DL", - "SM-S506DL", - "SM-S515DL", - "SM-S536DL", - "SM-S550TL", - "SM-S727VL", - "SM-S737TL", - "SM-S757BL", - "SM-S765C", - "SM-S766C", - "SM-S767VL", - "SM-S777C", - "SM-S820L", - "SM-S9010", - "SM-S901B", - "SM-S901E", - "SM-S901N", - "SM-S901U", - "SM-S901U1", - "SM-S901W", - "SM-S903VL", - "SM-S9060", - "SM-S906B", - "SM-S906E", - "SM-S906L", - "SM-S906N", - "SM-S906U", - "SM-S906U1", - "SM-S906W", - "SM-S907VL", - "SM-S9080", - "SM-S908B", - "SM-S908E", - "SM-S908N", - "SM-S908U", - "SM-S908U1", - "SM-S908W", - "SM-S920L", - "SM-S975L", - "SM-S978L", - "SM-T110", - "SM-T111", - "SM-T111M", - "SM-T113", - "SM-T113NU", - "SM-T116", - "SM-T116BU", - "SM-T116IR", - "SM-T116NQ", - "SM-T116NU", - "SM-T116NY", - "SM-T210", - "SM-T2105", - "SM-T210L", - "SM-T210R", - "SM-T210X", - "SM-T211", - "SM-T211M", - "SM-T212", - "SM-T215", - "SM-T217S", - "SM-T217T", - "SM-T220", - "SM-T225", - "SM-T225C", - "SM-T225N", - "SM-T227", - "SM-T227U", - "SM-T230", - "SM-T230NT", - "SM-T230NU", - "SM-T230NW", - "SM-T230NY", - "SM-T230NZ", - "SM-T230X", - "SM-T231", - "SM-T232", - "SM-T235", - "SM-T235Y", - "SM-T237P", - "SM-T237V", - "SM-T239", - "SM-T2397", - "SM-T239C", - "SM-T239M", - "SM-T2519", - "SM-T255S", - "SM-T280", - "SM-T285", - "SM-T285M", - "SM-T285YD", - "SM-T287", - "SM-T290", - "SM-T295", - "SM-T295C", - "SM-T295N", - "SM-T297", - "SM-T307U", - "SM-T310", - "SM-T310X", - "SM-T311", - "SM-T312", - "SM-T315", - "SM-T315T", - "SM-T320", - "SM-T320NU", - "SM-T320X", - "SM-T325", - "SM-T330", - "SM-T330NU", - "SM-T330X", - "SM-T331", - "SM-T335", - "SM-T335K", - "SM-T335L", - "SM-T337T", - "SM-T337V", - "SM-T350", - "SM-T350X", - "SM-T355", - "SM-T355C", - "SM-T355Y", - "SM-T357T", - "SM-T357W", - "SM-T360", - "SM-T365", - "SM-T365F0", - "SM-T365M", - "SM-T365Y", - "SM-T375L", - "SM-T375S", - "SM-T3777", - "SM-T377P", - "SM-T377R4", - "SM-T377T", - "SM-T377V", - "SM-T377W", - "SM-T378K", - "SM-T378L", - "SM-T378S", - "SM-T378V", - "SM-T380", - "SM-T380C", - "SM-T385", - "SM-T385C", - "SM-T385K", - "SM-T385L", - "SM-T385M", - "SM-T385S", - "SM-T387AA", - "SM-T387P", - "SM-T387R4", - "SM-T387T", - "SM-T387V", - "SM-T387VK", - "SM-T387W", - "SM-T390", - "SM-T395", - "SM-T395C", - "SM-T395N", - "SM-T397U", - "SM-T500", - "SM-T503", - "SM-T505", - "SM-T505C", - "SM-T505N", - "SM-T507", - "SM-T509", - "SM-T510", - "SM-T515", - "SM-T515N", - "SM-T517", - "SM-T517P", - "SM-T520", - "SM-T520CC", - "SM-T525", - "SM-T530", - "SM-T530NN", - "SM-T530NU", - "SM-T530X", - "SM-T531", - "SM-T533", - "SM-T535", - "SM-T536", - "SM-T537R4", - "SM-T537V", - "SM-T540", - "SM-T545", - "SM-T547", - "SM-T547U", - "SM-T550", - "SM-T550X", - "SM-T555", - "SM-T555C", - "SM-T560", - "SM-T560NU", - "SM-T561", - "SM-T561M", - "SM-T561Y", - "SM-T562", - "SM-T567V", - "SM-T575", - "SM-T575N", - "SM-T577", - "SM-T577U", - "SM-T580", - "SM-T580X", - "SM-T583", - "SM-T585", - "SM-T585C", - "SM-T585M", - "SM-T585N0", - "SM-T587", - "SM-T587P", - "SM-T590", - "SM-T595", - "SM-T595C", - "SM-T595N", - "SM-T597", - "SM-T597P", - "SM-T597V", - "SM-T597W", - "SM-T636B", - "SM-T636N", - "SM-T638B", - "SM-T638U", - "SM-T670", - "SM-T677", - "SM-T677NK", - "SM-T677NL", - "SM-T677V", - "SM-T700", - "SM-T705", - "SM-T705C", - "SM-T705M", - "SM-T705W", - "SM-T705Y", - "SM-T707V", - "SM-T710", - "SM-T710X", - "SM-T713", - "SM-T715", - "SM-T715C", - "SM-T715N0", - "SM-T715Y", - "SM-T719", - "SM-T719C", - "SM-T719Y", - "SM-T720", - "SM-T725", - "SM-T725C", - "SM-T725N", - "SM-T727", - "SM-T727A", - "SM-T727R4", - "SM-T727U", - "SM-T727V", - "SM-T730", - "SM-T733", - "SM-T735", - "SM-T735C", - "SM-T735N", - "SM-T736B", - "SM-T736N", - "SM-T737", - "SM-T738U", - "SM-T800", - "SM-T800X", - "SM-T805", - "SM-T805C", - "SM-T805K", - "SM-T805L", - "SM-T805M", - "SM-T805S", - "SM-T805W", - "SM-T805Y", - "SM-T807", - "SM-T807P", - "SM-T807R4", - "SM-T807T", - "SM-T807V", - "SM-T810", - "SM-T810X", - "SM-T813", - "SM-T815", - "SM-T815C", - "SM-T815N0", - "SM-T815Y", - "SM-T817", - "SM-T817P", - "SM-T817R4", - "SM-T817T", - "SM-T817V", - "SM-T817W", - "SM-T818", - "SM-T818T", - "SM-T818V", - "SM-T818W", - "SM-T819", - "SM-T819C", - "SM-T819Y", - "SM-T820", - "SM-T820X", - "SM-T825", - "SM-T825C", - "SM-T825N0", - "SM-T825X", - "SM-T825Y", - "SM-T827", - "SM-T827R4", - "SM-T827V", - "SM-T830", - "SM-T835", - "SM-T835C", - "SM-T835N", - "SM-T837", - "SM-T837A", - "SM-T837P", - "SM-T837R4", - "SM-T837T", - "SM-T837V", - "SM-T860", - "SM-T865", - "SM-T865N", - "SM-T866N", - "SM-T867", - "SM-T867R4", - "SM-T867U", - "SM-T867V", - "SM-T870", - "SM-T875", - "SM-T875N", - "SM-T878U", - "SM-T900", - "SM-T900X", - "SM-T905", - "SM-T927A", - "SM-T970", - "SM-T975", - "SM-T975N", - "SM-T976B", - "SM-T976N", - "SM-T978U", - "SMT-E5015", - "SMT-i9100", - "SM-W2014", - "SM-W2015", - "SM-W2016", - "SM-W2017", - "SM-W2018", - "SM-W2018X", - "SM-W2020", - "SM-W2021", - "SM-W2022", - "SM-W7023", - "SM-X200", - "SM-X205", - "SM-X205C", - "SM-X205N", - "SM-X207", - "SM-X700", - "SM-X706B", - "SM-X706C", - "SM-X706N", - "SM-X800", - "SM-X806B", - "SM-X806C", - "SM-X806E", - "SM-X806N", - "SM-X808U", - "SM-X900", - "SM-X906B", - "SM-X906C", - "SM-X906N", - "SO-01F", - "SO-01G", - "SO-01H", - "SO-01J", - "SO-01K", - "SO-01L", - "SO-01M", - "SO-02E", - "SO-02F", - "SO-02G", - "SO-02H", - "SO-02J", - "SO-02K", - "SO-02L", - "SO-03D", - "SO-03F", - "SO-03G", - "SO-03H", - "SO-03J", - "SO-03K", - "SO-03L", - "SO-04E", - "SO-04F", - "SO-04G", - "SO-04H", - "SO-04J", - "SO-04K", - "SO-05F", - "SO-05G", - "SO-05K", - "SO-41A", - "SO-41B", - "SO-51A", - "SO-51B", - "SO-51C", - "SO-52A", - "SO-52B", - "SO-52C", - "SO-53B", - "SO-53C", - "SO-54C", - "SOG01", - "SOG02", - "SOG03", - "SOG04", - "SOG05", - "SOG06", - "SOG07", - "SOG08", - "SOG09", - "SOL23", - "SOL24", - "SOL25", - "SOL26", - "Sony Tablet P", - "Sony Tablet S", - "SOT21", - "SOT31", - "SOV31", - "SOV32", - "SOV33", - "SOV34", - "SOV35", - "SOV36", - "SOV37", - "SOV38", - "SOV39", - "SOV40", - "SOV41", - "SOV42", - "SOV42-u", - "SOV43", - "SPH-D700", - "SPH-D710", - "SPH-D710BST", - "SPH-D710VMUB", - "SPH-L300", - "SPH-L500", - "SPH-L520", - "SPH-L600", - "SPH-L710", - "SPH-L710T", - "SPH-L720", - "SPH-L720T", - "SPH-L900", - "SPH-M580", - "SPH-M580BST", - "SPH-M820-BST", - "SPH-M830", - "SPH-M840", - "SPH-M900", - "SPH-M910", - "SPH-M920", - "SPH-M930", - "SPH-M930BST", - "SPH-M950", - "SPH-P100", - "SPH-P500", - "SPH-P600", - "Spice Mi-350", - "ST17i", - "ST18i", - "ST21a", - "ST21a2", - "ST21i", - "ST21i2", - "ST23a", - "ST23i", - "ST25a", - "ST25i", - "ST26a", - "ST26i", - "ST27a", - "ST27i", - "STH100-1", - "STH100-2", - "STV100-1", - "STV100-2", - "STV100-3", - "STV100-4", - "TA-1000", - "TA-1003", - "TA-1004", - "TA-1012", - "TA-1020", - "TA-1021", - "TA-1024", - "TA-1025", - "TA-1027", - "TA-1028", - "TA-1032", - "TA-1033", - "TA-1038", - "TA-1039", - "TA-1041", - "TA-1044", - "TA-1052", - "TA-1053", - "TA-1054", - "TAB A10-80HC", - "Tab2A7-10F", - "Tab2A7-20F", - "TB128FU", - "TB128XC", - "TB132FU", - "TB138FC", - "TB230FC", - "TB230XC", - "TB300FU", - "TB300XU", - "TB310FU", - "TB328FU", - "TB328XU", - "TB350FU", - "TB350XU", - "TB-8504F", - "TB-8704V", - "TBD", - "TB-X304F", - "TB-X304N", - "TB-X704A", - "TB-X704N", - "TB-X704V", - "ThinkPad 11e Chromebook 3rd Gen (Yoga/Clamshell)", - "Thinkpad 13 Chromebook", - "ThinkPad Tablet", - "ThinkVision28", - "Thyme", - "toco", - "U3", - "U705T", - "U705W", - "U707", - "U707T", - "U708", - "Umi", - "V1730EA", - "V1731CA", - "V1732A", - "V1809A", - "V1813A", - "V1813BA", - "V1813BT", - "V1814A", - "V1816A", - "V1818A", - "V1818BA", - "V1818CA", - "V1821A", - "V1824A", - "V1829A", - "V1831A", - "V1832A", - "V1836A", - "V1838A", - "V1901A", - "V1911A", - "V1913A", - "V1914A", - "V1916A", - "V1921A", - "V1922A", - "V1923A", - "V1924A", - "V1926", - "V1928A", - "V1930", - "V1930A", - "V1932A", - "V1934A", - "V1936A", - "V1936AL", - "V1937", - "V1938CT", - "V1938T", - "V1941A", - "V1945A", - "V1950A", - "V1955A", - "V1962A", - "V1963A", - "V1965A", - "V1981A", - "V1986A", - "V1990A", - "V2001A", - "V2002A", - "V2005A", - "V2006", - "V2009A", - "V2011A", - "V2012A", - "V2019A", - "V2020A", - "V2022", - "V2023", - "V2023A", - "V2023EA", - "V2024", - "V2024A", - "V2025", - "V2025A", - "V2026", - "V2026_21", - "V2027", - "V2028", - "V2029", - "V2029_PK", - "V2030", - "V2031", - "V2031_21", - "V2031A", - "V2031EA", - "V2032", - "V2033", - "V2034", - "V2034A", - "V2035", - "V2036", - "V2036_21", - "V2036A", - "V2037", - "V2038", - "V2039", - "V2040", - "V2041", - "V2042", - "V2043", - "V2043_21", - "V2044", - "V2045", - "V2045A", - "V2046", - "V2046A", - "V2047", - "V2047A", - "V2048", - "V2048A", - "V2049A", - "V2050", - "V2052", - "V2053", - "V2054", - "V2054A", - "V2055", - "V2055A", - "V2056A", - "V2057", - "V2057A", - "V2058", - "V2059", - "V2059A", - "V2060", - "V2061", - "V2061A", - "V2065", - "V2065A", - "V2066", - "V2066A", - "V2066BA", - "V2068", - "V2068A", - "V2069", - "V2069A", - "V2069BA", - "V2070", - "V2072A", - "V2073A", - "V2080A", - "V2085A", - "V2099A", - "V2101", - "V2102", - "V2102A", - "V2104", - "V2105", - "V2106A", - "V2108", - "V2109", - "V2110", - "V2111", - "V2111A", - "V2111-EG", - "V2113", - "V2114", - "V2115", - "V2115A", - "V2116", - "V2117", - "V2118", - "V2118A", - "V2120", - "V2121A", - "V2123A", - "V2124", - "V2125", - "V2126", - "V2127", - "V2129", - "V2130", - "V2130A", - "V2131", - "V2131A", - "V2132", - "V2132A", - "V2133A", - "V2134", - "V2134A", - "V2135", - "V2135A", - "V2136", - "V2136A", - "V2136GA", - "V2139", - "V2140", - "V2140A", - "V2141", - "V2141A", - "V2142", - "V2143", - "V2143A", - "V2144", - "V2145", - "V2145A", - "V2146", - "V2147", - "V2148A", - "V2149", - "V2150", - "V2151", - "V2152", - "V2153", - "V2154", - "V2154A", - "V2156A", - "V2156FA", - "V2157A", - "V2158", - "V2158A", - "V2160", - "V2162", - "V2162A", - "V2163A", - "V2164A", - "V2164KA", - "V2164PA", - "V2165A", - "V2166", - "V2166A", - "V2166BA", - "V2168", - "V2168A", - "V2170A", - "V2171A", - "V2172A", - "V2178A", - "V2180A", - "V2180GA", - "V2183A", - "V2185A", - "V2186A", - "V2188A", - "V2196A", - "V2197A", - "V2199A", - "V2199GA", - "V2201", - "V2202", - "V2202A", - "V2203", - "V2203A", - "V2204", - "V2205", - "V2206", - "V2207", - "V2207A", - "V2208", - "V2209", - "V2212", - "V2214", - "V2217A", - "V2218A", - "V2219A", - "V2220A", - "V2228", - "V2229", - "V2229A", - "VIBE X2Pt5", - "vivo 1601", - "vivo 1603", - "vivo 1606", - "vivo 1609", - "vivo 1610", - "vivo 1611", - "vivo 1707", - "vivo 1713", - "vivo 1714", - "vivo 1716", - "vivo 1718", - "vivo 1719", - "vivo 1720", - "vivo 1721", - "vivo 1723", - "vivo 1724", - "vivo 1725", - "vivo 1726", - "vivo 1727", - "vivo 1801", - "vivo 1802", - "vivo 1803", - "vivo 1804", - "vivo 1805", - "vivo 1806", - "vivo 1807", - "vivo 1808", - "vivo 1811", - "vivo 1812", - "vivo 1813", - "vivo 1814", - "vivo 1815", - "vivo 1816", - "vivo 1817", - "vivo 1818", - "vivo 1819", - "vivo 1820", - "vivo 1851", - "vivo 1901", - "vivo 1902", - "vivo 1904", - "vivo 1906", - "vivo 1907", - "vivo 1909", - "vivo 1910", - "vivo 1912", - "vivo 1913", - "vivo 1914", - "vivo 1915", - "vivo 1916", - "vivo 1917", - "vivo 1919", - "vivo 1920", - "vivo 1921", - "vivo 1929", - "vivo 1933", - "vivo 1935", - "vivo 1937", - "vivo 1938", - "vivo 1940", - "vivo 1951", - "vivo 2004", - "vivo 2005", - "vivo 2006", - "vivo 2007", - "vivo 2010", - "vivo 2015", - "vivo 2015_21", - "vivo 2018", - "vivo 2019", - "vivo NEX A", - "vivo NEX S", - "vivo PD1415A", - "vivo PD1501D", - "vivo PD1515A", - "vivo PD1515BA", - "vivo PD1522A", - "vivo PD1523A", - "vivo PD1524B", - "vivo PD1612", - "vivo PD1616B", - "vivo PD1628", - "vivo PD1635", - "vivo PD1708", - "vivo PD1709", - "vivo PD1710", - "vivo PD1721", - "vivo V1", - "vivo V3", - "vivo V3Lite", - "vivo V3Max", - "vivo V3Max+ A", - "vivo V5Plus", - "vivo X20A", - "vivo X20Plus A", - "vivo X20Plus UD", - "vivo X21A", - "vivo X21i A", - "vivo X21UD A", - "vivo X5", - "vivo X5M", - "vivo X5Max", - "vivo X5Max S", - "vivo X5MaxV", - "vivo X5Pro", - "vivo X5Pro D", - "vivo X5Pro V", - "vivo X6D", - "vivo X6S A", - "vivo X7", - "vivo X7Plus", - "vivo X9", - "vivo X9i", - "vivo X9Plus", - "vivo X9s", - "vivo X9s Plus", - "vivo Xplay5A", - "vivo Xplay6", - "vivo Y11", - "vivo Y13iL", - "vivo Y15", - "vivo Y15S", - "vivo Y21", - "vivo Y21L", - "vivo Y22", - "vivo Y27", - "vivo Y28", - "vivo Y31", - "vivo Y31i", - "vivo Y31L", - "vivo Y33", - "vivo Y35", - "vivo Y35A", - "vivo Y37", - "vivo Y51", - "vivo Y51A", - "vivo Y55", - "vivo Y66", - "vivo Y66i A", - "vivo Y67", - "vivo Y69A", - "vivo Y71A", - "vivo Y75A", - "vivo Y75s", - "vivo Y79A", - "vivo Y83A", - "vivo Y85A", - "vivo Y89", - "vivo Y923", - "vivo Y937", - "vivo Z1", - "vivo Z1i", - "vivo Z3x", - "Vodafone Smart Tab III 10", - "Vodafone Smart Tab III 7", - "VR-1541F", - "VR-S3", - "willow", - "X18_Ultra", - "X67 5G", - "X9000", - "X9006", - "X9007", - "X9009", - "X9009fw", - "X9070", - "X9076", - "X9077", - "X9079", - "X909", - "X909T", - "XIG01", - "XIG02", - "XL39h", - "XQ-AD51", - "XQ-AD52", - "XQ-AQ52", - "XQ-AQ62", - "XQ-AS42", - "XQ-AS52", - "XQ-AS62", - "XQ-AS72", - "XQ-AT42", - "XQ-AT51", - "XQ-AT52", - "XQ-AT72", - "XQ-AU42", - "XQ-AU51", - "XQ-AU52", - "XQ-BC42", - "XQ-BC52", - "XQ-BC62", - "XQ-BC72", - "XQ-BE42", - "XQ-BE52", - "XQ-BE62", - "XQ-BE72", - "XQ-BQ42", - "XQ-BQ52", - "XQ-BQ62", - "XQ-BQ72", - "XQ-BT44", - "XQ-BT52", - "XQ-CC44", - "XQ-CC54", - "XQ-CC72", - "XQ-CQ44", - "XQ-CQ54", - "XQ-CQ62", - "XQ-CQ72", - "XQ-CT44", - "XQ-CT54", - "XQ-CT62", - "XQ-CT72", - "XT1662", - "XT1663", - "XT1700", - "XT1706", - "XT1902-3", - "XT2261-1", - "XT2261-2", - "Y Series", - "YOGA Tablet 2 Pro-1380F", - "YOGA Tablet 2 Pro-1380L", - "YOGA Tablet 2-1050F", - "YOGA Tablet 2-1050L", - "YOGA Tablet 2-1050LC", - "YOGA Tablet 2-830F", - "YOGA Tablet 2-830L", - "YOGA Tablet 2-830LC", - "YP-G1", - "YP-G50", - "YP-G70", - "YP-GB1", - "YP-GB70", - "YP-GB70D", - "YP-GH1", - "YP-GI1", - "YP-GI2", - "YP-GP1", - "YP-GS1", -]; -exports.timeZoneData = [ - { - "timeZoneName": "Abidjan", - "timeId": "Africa/Abidjan", - "timeSn": "1000", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Accra", - "timeId": "Africa/Accra", - "timeSn": "1001", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Addis Ababa", - "timeId": "Africa/Addis_Ababa", - "timeSn": "1002", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Algiers", - "timeId": "Africa/Algiers", - "timeSn": "1003", - "timeZoneGMT": "CET-1" - }, - { - "timeZoneName": "Asmara", - "timeId": "Africa/Asmara", - "timeSn": "1004", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Bamako", - "timeId": "Africa/Bamako", - "timeSn": "1005", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Bangui", - "timeId": "Africa/Bangui", - "timeSn": "1006", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Banjul", - "timeId": "Africa/Banjul", - "timeSn": "1007", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Bissau", - "timeId": "Africa/Bissau", - "timeSn": "1008", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Blantyre", - "timeId": "Africa/Blantyre", - "timeSn": "1009", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Brazzaville", - "timeId": "Africa/Brazzaville", - "timeSn": "1010", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Bujumbura", - "timeId": "Africa/Bujumbura", - "timeSn": "1011", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Cairo", - "timeId": "Africa/Cairo", - "timeSn": "1012", - "timeZoneGMT": "EET-2" - }, - { - "timeZoneName": "Casablanca", - "timeId": "Africa/Casablanca", - "timeSn": "1013", - "timeZoneGMT": "\u003c+01\u003e-1" - }, - { - "timeZoneName": "Ceuta", - "timeId": "Africa/Ceuta", - "timeSn": "1014", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Conakry", - "timeId": "Africa/Conakry", - "timeSn": "1015", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Dakar", - "timeId": "Africa/Dakar", - "timeSn": "1016", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Dar es Salaam", - "timeId": "Africa/Dar_es_Salaam", - "timeSn": "1017", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Djibouti", - "timeId": "Africa/Djibouti", - "timeSn": "1018", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Douala", - "timeId": "Africa/Douala", - "timeSn": "1019", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "El Aaiun", - "timeId": "Africa/El_Aaiun", - "timeSn": "1020", - "timeZoneGMT": "\u003c+01\u003e-1" - }, - { - "timeZoneName": "Freetown", - "timeId": "Africa/Freetown", - "timeSn": "1021", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Gaborone", - "timeId": "Africa/Gaborone", - "timeSn": "1022", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Harare", - "timeId": "Africa/Harare", - "timeSn": "1023", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Johannesburg", - "timeId": "Africa/Johannesburg", - "timeSn": "1024", - "timeZoneGMT": "SAST-2" - }, - { - "timeZoneName": "Juba", - "timeId": "Africa/Juba", - "timeSn": "1025", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Kampala", - "timeId": "Africa/Kampala", - "timeSn": "1026", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Khartoum", - "timeId": "Africa/Khartoum", - "timeSn": "1027", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Kigali", - "timeId": "Africa/Kigali", - "timeSn": "1028", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Kinshasa", - "timeId": "Africa/Kinshasa", - "timeSn": "1029", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Lagos", - "timeId": "Africa/Lagos", - "timeSn": "1030", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Libreville", - "timeId": "Africa/Libreville", - "timeSn": "1031", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Lome", - "timeId": "Africa/Lome", - "timeSn": "1032", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Luanda", - "timeId": "Africa/Luanda", - "timeSn": "1033", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Lubumbashi", - "timeId": "Africa/Lubumbashi", - "timeSn": "1034", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Lusaka", - "timeId": "Africa/Lusaka", - "timeSn": "1035", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Malabo", - "timeId": "Africa/Malabo", - "timeSn": "1036", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Maputo", - "timeId": "Africa/Maputo", - "timeSn": "1037", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Maseru", - "timeId": "Africa/Maseru", - "timeSn": "1038", - "timeZoneGMT": "SAST-2" - }, - { - "timeZoneName": "Mbabane", - "timeId": "Africa/Mbabane", - "timeSn": "1039", - "timeZoneGMT": "SAST-2" - }, - { - "timeZoneName": "Mogadishu", - "timeId": "Africa/Mogadishu", - "timeSn": "1040", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Monrovia", - "timeId": "Africa/Monrovia", - "timeSn": "1041", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Nairobi", - "timeId": "Africa/Nairobi", - "timeSn": "1042", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Ndjamena", - "timeId": "Africa/Ndjamena", - "timeSn": "1043", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Niamey", - "timeId": "Africa/Niamey", - "timeSn": "1044", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Nouakchott", - "timeId": "Africa/Nouakchott", - "timeSn": "1045", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Ouagadougou", - "timeId": "Africa/Ouagadougou", - "timeSn": "1046", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Porto-Novo", - "timeId": "Africa/Porto-Novo", - "timeSn": "1047", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Saint Thomas", - "timeId": "Africa/Sao_Tome", - "timeSn": "1048", - "timeZoneGMT": "WAT-1" - }, - { - "timeZoneName": "Timbuktu", - "timeId": "Africa/Timbuktu", - "timeSn": "1049", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Tripoli", - "timeId": "Africa/Tripoli", - "timeSn": "1050", - "timeZoneGMT": "EET-2" - }, - { - "timeZoneName": "Tunis", - "timeId": "Africa/Tunis", - "timeSn": "1051", - "timeZoneGMT": "CET-1" - }, - { - "timeZoneName": "Windhoek", - "timeId": "Africa/Windhoek", - "timeSn": "1052", - "timeZoneGMT": "CAT-2" - }, - { - "timeZoneName": "Adak", - "timeId": "America/Adak", - "timeSn": "1053", - "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Anchorage", - "timeId": "America/Anchorage", - "timeSn": "1054", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Anguilla", - "timeId": "America/Anguilla", - "timeSn": "1055", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Antigua", - "timeId": "America/Antigua", - "timeSn": "1056", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Araguaina", - "timeId": "America/Araguaina", - "timeSn": "1057", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Buenos Aires", - "timeId": "America/Argentina/Buenos_Aires", - "timeSn": "1058", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Catamarca", - "timeId": "America/Argentina/Catamarca", - "timeSn": "1059", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "ComodRivadavia", - "timeId": "America/Argentina/ComodRivadavia", - "timeSn": "1060", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Cordoba", - "timeId": "America/Argentina/Cordoba", - "timeSn": "1061", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Jujuy", - "timeId": "America/Argentina/Jujuy", - "timeSn": "1062", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "La Rioja", - "timeId": "America/Argentina/La_Rioja", - "timeSn": "1063", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Mendoza", - "timeId": "America/Argentina/Mendoza", - "timeSn": "1064", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Rio Gallegos", - "timeId": "America/Argentina/Rio_Gallegos", - "timeSn": "1065", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Salta", - "timeId": "America/Argentina/Salta", - "timeSn": "1066", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "San Juan", - "timeId": "America/Argentina/San_Juan", - "timeSn": "1067", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "San Luis", - "timeId": "America/Argentina/San_Luis", - "timeSn": "1068", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Tucuman", - "timeId": "America/Argentina/Tucuman", - "timeSn": "1069", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Ushuaia", - "timeId": "America/Argentina/Ushuaia", - "timeSn": "1070", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Aruba", - "timeId": "America/Aruba", - "timeSn": "1071", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Asuncion", - "timeId": "America/Asuncion", - "timeSn": "1072", - "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M10.1.0/0,M3.4.0/0" - }, - { - "timeZoneName": "Atikokan", - "timeId": "America/Atikokan", - "timeSn": "1073", - "timeZoneGMT": "EST5" - }, - { - "timeZoneName": "Atka", - "timeId": "America/Atka", - "timeSn": "1074", - "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Bahia", - "timeId": "America/Bahia", - "timeSn": "1075", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Bahia Banderas", - "timeId": "America/Bahia_Banderas", - "timeSn": "1076", - "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Barbados", - "timeId": "America/Barbados", - "timeSn": "1077", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Belem", - "timeId": "America/Belem", - "timeSn": "1078", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Belize", - "timeId": "America/Belize", - "timeSn": "1079", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Blanc-Sablon", - "timeId": "America/Blanc-Sablon", - "timeSn": "1080", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Boa Vista", - "timeId": "America/Boa_Vista", - "timeSn": "1081", - "timeZoneGMT": "\u003c-04\u003e4" - }, - { - "timeZoneName": "Bogota", - "timeId": "America/Bogota", - "timeSn": "1082", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "Boise", - "timeId": "America/Boise", - "timeSn": "1083", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Cambridge Bay", - "timeId": "America/Cambridge_Bay", - "timeSn": "1084", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Campo Grande", - "timeId": "America/Campo_Grande", - "timeSn": "1085", - "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M11.1.0/0,M2.3.0/0" - }, - { - "timeZoneName": "Cancun", - "timeId": "America/Cancun", - "timeSn": "1086", - "timeZoneGMT": "EST5" - }, - { - "timeZoneName": "Caracas", - "timeId": "America/Caracas", - "timeSn": "1087", - "timeZoneGMT": "\u003c-04\u003e4" - }, - { - "timeZoneName": "Cayenne", - "timeId": "America/Cayenne", - "timeSn": "1088", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Cayman", - "timeId": "America/Cayman", - "timeSn": "1089", - "timeZoneGMT": "EST5" - }, - { - "timeZoneName": "Chicago", - "timeId": "America/Chicago", - "timeSn": "1090", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Chihuahua", - "timeId": "America/Chihuahua", - "timeSn": "1091", - "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Costa Rica", - "timeId": "America/Costa_Rica", - "timeSn": "1092", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Creston", - "timeId": "America/Creston", - "timeSn": "1093", - "timeZoneGMT": "MST7" - }, - { - "timeZoneName": "Cuiaba", - "timeId": "America/Cuiaba", - "timeSn": "1094", - "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M11.1.0/0,M2.3.0/0" - }, - { - "timeZoneName": "Curacao", - "timeId": "America/Curacao", - "timeSn": "1095", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Danmarkshavn", - "timeId": "America/Danmarkshavn", - "timeSn": "1096", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Dawson", - "timeId": "America/Dawson", - "timeSn": "1097", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Dawson Creek", - "timeId": "America/Dawson_Creek", - "timeSn": "1098", - "timeZoneGMT": "MST7" - }, - { - "timeZoneName": "Denver", - "timeId": "America/Denver", - "timeSn": "1099", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Detroit", - "timeId": "America/Detroit", - "timeSn": "1100", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Dominica", - "timeId": "America/Dominica", - "timeSn": "1101", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Edmonton", - "timeId": "America/Edmonton", - "timeSn": "1102", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Eirunepe", - "timeId": "America/Eirunepe", - "timeSn": "1103", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "El Salvador", - "timeId": "America/El_Salvador", - "timeSn": "1104", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Ensenada", - "timeId": "America/Ensenada", - "timeSn": "1105", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Fort Nelson", - "timeId": "America/Fort_Nelson", - "timeSn": "1106", - "timeZoneGMT": "MST7" - }, - { - "timeZoneName": "Fort Wayne", - "timeId": "America/Fort_Wayne", - "timeSn": "1107", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Fortaleza", - "timeId": "America/Fortaleza", - "timeSn": "1108", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Glace Bay", - "timeId": "America/Glace_Bay", - "timeSn": "1109", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Nuuk", - "timeId": "America/Godthab", - "timeSn": "1110", - "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M3.5.0,M10.5.0" - }, - { - "timeZoneName": "Goose Bay", - "timeId": "America/Goose_Bay", - "timeSn": "1111", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Grand Turk", - "timeId": "America/Grand_Turk", - "timeSn": "1112", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Grenada", - "timeId": "America/Grenada", - "timeSn": "1113", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Guadeloupe", - "timeId": "America/Guadeloupe", - "timeSn": "1114", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Guatemala", - "timeId": "America/Guatemala", - "timeSn": "1115", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Guayaquil", - "timeId": "America/Guayaquil", - "timeSn": "1116", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "Guyana", - "timeId": "America/Guyana", - "timeSn": "1117", - "timeZoneGMT": "\u003c-04\u003e4" - }, - { - "timeZoneName": "Halifax", - "timeId": "America/Halifax", - "timeSn": "1118", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Havana", - "timeId": "America/Havana", - "timeSn": "1119", - "timeZoneGMT": "CST5CDT,M3.2.0/0,M11.1.0/1" - }, - { - "timeZoneName": "Hermosillo", - "timeId": "America/Hermosillo", - "timeSn": "1120", - "timeZoneGMT": "MST7" - }, - { - "timeZoneName": "Indianapolis", - "timeId": "America/Indiana/Indianapolis", - "timeSn": "1121", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Knox, Indiana", - "timeId": "America/Indiana/Knox", - "timeSn": "1122", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Marengo, Indiana", - "timeId": "America/Indiana/Marengo", - "timeSn": "1123", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Petersburg, Indiana", - "timeId": "America/Indiana/Petersburg", - "timeSn": "1124", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Tell City, Indiana", - "timeId": "America/Indiana/Tell_City", - "timeSn": "1125", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Vevay, Indiana", - "timeId": "America/Indiana/Vevay", - "timeSn": "1126", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Vincennes, Indiana", - "timeId": "America/Indiana/Vincennes", - "timeSn": "1127", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Winamac, Indiana", - "timeId": "America/Indiana/Winamac", - "timeSn": "1128", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Inuvik", - "timeId": "America/Inuvik", - "timeSn": "1129", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Iqaluit", - "timeId": "America/Iqaluit", - "timeSn": "1130", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Jamaica", - "timeId": "America/Jamaica", - "timeSn": "1131", - "timeZoneGMT": "EST5" - }, - { - "timeZoneName": "Juneau", - "timeId": "America/Juneau", - "timeSn": "1132", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Louisville", - "timeId": "America/Kentucky/Louisville", - "timeSn": "1133", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Monticello, Kentucky", - "timeId": "America/Kentucky/Monticello", - "timeSn": "1134", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Knox IN", - "timeId": "America/Knox_IN", - "timeSn": "1135", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Kralendijk", - "timeId": "America/Kralendijk", - "timeSn": "1136", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "La Paz", - "timeId": "America/La_Paz", - "timeSn": "1137", - "timeZoneGMT": "\u003c-04\u003e4" - }, - { - "timeZoneName": "Lima", - "timeId": "America/Lima", - "timeSn": "1138", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "Los Angeles", - "timeId": "America/Los_Angeles", - "timeSn": "1139", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Lower Prince’s Quarter", - "timeId": "America/Lower_Princes", - "timeSn": "1140", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Maceio", - "timeId": "America/Maceio", - "timeSn": "1141", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Managua", - "timeId": "America/Managua", - "timeSn": "1142", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Manaus", - "timeId": "America/Manaus", - "timeSn": "1143", - "timeZoneGMT": "\u003c-04\u003e4" - }, - { - "timeZoneName": "Marigot", - "timeId": "America/Marigot", - "timeSn": "1144", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Martinique", - "timeId": "America/Martinique", - "timeSn": "1145", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Matamoros", - "timeId": "America/Matamoros", - "timeSn": "1146", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Mazatlan", - "timeId": "America/Mazatlan", - "timeSn": "1147", - "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Menominee", - "timeId": "America/Menominee", - "timeSn": "1148", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Merida", - "timeId": "America/Merida", - "timeSn": "1149", - "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Metlakatla", - "timeId": "America/Metlakatla", - "timeSn": "1150", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Mexico City", - "timeId": "America/Mexico_City", - "timeSn": "1151", - "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Miquelon", - "timeId": "America/Miquelon", - "timeSn": "1152", - "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Moncton", - "timeId": "America/Moncton", - "timeSn": "1153", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Monterrey", - "timeId": "America/Monterrey", - "timeSn": "1154", - "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Montevideo", - "timeId": "America/Montevideo", - "timeSn": "1155", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Montreal", - "timeId": "America/Montreal", - "timeSn": "1156", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Montserrat", - "timeId": "America/Montserrat", - "timeSn": "1157", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Nassau", - "timeId": "America/Nassau", - "timeSn": "1158", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "New York", - "timeId": "America/New_York", - "timeSn": "1159", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Nipigon", - "timeId": "America/Nipigon", - "timeSn": "1160", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Nome", - "timeId": "America/Nome", - "timeSn": "1161", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Noronha", - "timeId": "America/Noronha", - "timeSn": "1162", - "timeZoneGMT": "\u003c-02\u003e2" - }, - { - "timeZoneName": "Beulah, North Dakota", - "timeId": "America/North_Dakota/Beulah", - "timeSn": "1163", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Center, North Dakota", - "timeId": "America/North_Dakota/Center", - "timeSn": "1164", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "New Salem, North Dakota", - "timeId": "America/North_Dakota/New_Salem", - "timeSn": "1165", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Ojinaga", - "timeId": "America/Ojinaga", - "timeSn": "1166", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Panama", - "timeId": "America/Panama", - "timeSn": "1167", - "timeZoneGMT": "EST5" - }, - { - "timeZoneName": "Pangnirtung", - "timeId": "America/Pangnirtung", - "timeSn": "1168", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Paramaribo", - "timeId": "America/Paramaribo", - "timeSn": "1169", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Phoenix", - "timeId": "America/Phoenix", - "timeSn": "1170", - "timeZoneGMT": "MST7" - }, - { - "timeZoneName": "Port-au-Prince", - "timeId": "America/Port-au-Prince", - "timeSn": "1171", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Port of Spain", - "timeId": "America/Port_of_Spain", - "timeSn": "1172", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Porto Acre", - "timeId": "America/Porto_Acre", - "timeSn": "1173", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "Porto Velho", - "timeId": "America/Porto_Velho", - "timeSn": "1174", - "timeZoneGMT": "\u003c-04\u003e4" - }, - { - "timeZoneName": "Puerto Rico", - "timeId": "America/Puerto_Rico", - "timeSn": "1175", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Punta Arenas", - "timeId": "America/Punta_Arenas", - "timeSn": "1176", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Rainy River", - "timeId": "America/Rainy_River", - "timeSn": "1177", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Rankin Inlet", - "timeId": "America/Rankin_Inlet", - "timeSn": "1178", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Recife", - "timeId": "America/Recife", - "timeSn": "1179", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Regina", - "timeId": "America/Regina", - "timeSn": "1180", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Resolute", - "timeId": "America/Resolute", - "timeSn": "1181", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Rio Branco", - "timeId": "America/Rio_Branco", - "timeSn": "1182", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "Rosario", - "timeId": "America/Rosario", - "timeSn": "1183", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Santa Isabel", - "timeId": "America/Santa_Isabel", - "timeSn": "1184", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Santarem", - "timeId": "America/Santarem", - "timeSn": "1185", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Santiago", - "timeId": "America/Santiago", - "timeSn": "1186", - "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M9.1.6/24,M4.1.6/24" - }, - { - "timeZoneName": "Santo Domingo", - "timeId": "America/Santo_Domingo", - "timeSn": "1187", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Sao Paulo", - "timeId": "America/Sao_Paulo", - "timeSn": "1188", - "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M11.1.0/0,M2.3.0/0" - }, - { - "timeZoneName": "Ittoqqortoormiit", - "timeId": "America/Scoresbysund", - "timeSn": "1189", - "timeZoneGMT": "\u003c-01\u003e1\u003c+00\u003e,M3.5.0/0,M10.5.0/1" - }, - { - "timeZoneName": "Shiprock", - "timeId": "America/Shiprock", - "timeSn": "1190", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Sitka", - "timeId": "America/Sitka", - "timeSn": "1191", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "St. Barthelemy", - "timeId": "America/St_Barthelemy", - "timeSn": "1192", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "St. John’s", - "timeId": "America/St_Johns", - "timeSn": "1193", - "timeZoneGMT": "NST3:30NDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "St. Kitts", - "timeId": "America/St_Kitts", - "timeSn": "1194", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "St. Lucia", - "timeId": "America/St_Lucia", - "timeSn": "1195", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "St. Thomas", - "timeId": "America/St_Thomas", - "timeSn": "1196", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "St. Vincent", - "timeId": "America/St_Vincent", - "timeSn": "1197", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Swift Current", - "timeId": "America/Swift_Current", - "timeSn": "1198", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Tegucigalpa", - "timeId": "America/Tegucigalpa", - "timeSn": "1199", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Thule", - "timeId": "America/Thule", - "timeSn": "1200", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Thunder Bay", - "timeId": "America/Thunder_Bay", - "timeSn": "1201", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Tijuana", - "timeId": "America/Tijuana", - "timeSn": "1202", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Toronto", - "timeId": "America/Toronto", - "timeSn": "1203", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Tortola", - "timeId": "America/Tortola", - "timeSn": "1204", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Vancouver", - "timeId": "America/Vancouver", - "timeSn": "1205", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Virgin", - "timeId": "America/Virgin", - "timeSn": "1206", - "timeZoneGMT": "AST4" - }, - { - "timeZoneName": "Whitehorse", - "timeId": "America/Whitehorse", - "timeSn": "1207", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Winnipeg", - "timeId": "America/Winnipeg", - "timeSn": "1208", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Yakutat", - "timeId": "America/Yakutat", - "timeSn": "1209", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Yellowknife", - "timeId": "America/Yellowknife", - "timeSn": "1210", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Casey", - "timeId": "Antarctica/Casey", - "timeSn": "1211", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Davis", - "timeId": "Antarctica/Davis", - "timeSn": "1212", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Dumont d’Urville", - "timeId": "Antarctica/DumontDUrville", - "timeSn": "1213", - "timeZoneGMT": "\u003c+10\u003e-10" - }, - { - "timeZoneName": "Macquarie", - "timeId": "Antarctica/Macquarie", - "timeSn": "1214", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Mawson", - "timeId": "Antarctica/Mawson", - "timeSn": "1215", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "McMurdo", - "timeId": "Antarctica/McMurdo", - "timeSn": "1216", - "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3" - }, - { - "timeZoneName": "Palmer", - "timeId": "Antarctica/Palmer", - "timeSn": "1217", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "Rothera", - "timeId": "Antarctica/Rothera", - "timeSn": "1218", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "South Pole", - "timeId": "Antarctica/South_Pole", - "timeSn": "1219", - "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3" - }, - { - "timeZoneName": "Syowa", - "timeId": "Antarctica/Syowa", - "timeSn": "1220", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Troll", - "timeId": "Antarctica/Troll", - "timeSn": "1221", - "timeZoneGMT": "\u003c+00\u003e0\u003c+02\u003e-2,M3.5.0/1,M10.5.0/3" - }, - { - "timeZoneName": "Vostok", - "timeId": "Antarctica/Vostok", - "timeSn": "1222", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Longyearbyen", - "timeId": "Arctic/Longyearbyen", - "timeSn": "1223", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Aden", - "timeId": "Asia/Aden", - "timeSn": "1224", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Almaty", - "timeId": "Asia/Almaty", - "timeSn": "1225", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Amman", - "timeId": "Asia/Amman", - "timeSn": "1226", - "timeZoneGMT": "EET-2EEST,M3.5.4/24,M10.5.5/1" - }, - { - "timeZoneName": "Anadyr", - "timeId": "Asia/Anadyr", - "timeSn": "1227", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Aqtau", - "timeId": "Asia/Aqtau", - "timeSn": "1228", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Aqtobe", - "timeId": "Asia/Aqtobe", - "timeSn": "1229", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Ashgabat", - "timeId": "Asia/Ashgabat", - "timeSn": "1230", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Ashkhabad", - "timeId": "Asia/Ashkhabad", - "timeSn": "1231", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Atyrau", - "timeId": "Asia/Atyrau", - "timeSn": "1232", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Baghdad", - "timeId": "Asia/Baghdad", - "timeSn": "1233", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Bahrain", - "timeId": "Asia/Bahrain", - "timeSn": "1234", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Baku", - "timeId": "Asia/Baku", - "timeSn": "1235", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Bangkok", - "timeId": "Asia/Bangkok", - "timeSn": "1236", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Barnaul", - "timeId": "Asia/Barnaul", - "timeSn": "1237", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Beirut", - "timeId": "Asia/Beirut", - "timeSn": "1238", - "timeZoneGMT": "EET-2EEST,M3.5.0/0,M10.5.0/0" - }, - { - "timeZoneName": "Bishkek", - "timeId": "Asia/Bishkek", - "timeSn": "1239", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Brunei", - "timeId": "Asia/Brunei", - "timeSn": "1240", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Kolkata", - "timeId": "Asia/Calcutta", - "timeSn": "1241", - "timeZoneGMT": "IST-5:30" - }, - { - "timeZoneName": "Chita", - "timeId": "Asia/Chita", - "timeSn": "1242", - "timeZoneGMT": "\u003c+09\u003e-9" - }, - { - "timeZoneName": "Choibalsan", - "timeId": "Asia/Choibalsan", - "timeSn": "1243", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Chongqing", - "timeId": "Asia/Chongqing", - "timeSn": "1244", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Chungking", - "timeId": "Asia/Chungking", - "timeSn": "1245", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Colombo", - "timeId": "Asia/Colombo", - "timeSn": "1246", - "timeZoneGMT": "\u003c+0530\u003e-5:30" - }, - { - "timeZoneName": "Dacca", - "timeId": "Asia/Dacca", - "timeSn": "1247", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Damascus", - "timeId": "Asia/Damascus", - "timeSn": "1248", - "timeZoneGMT": "EET-2EEST,M3.5.5/0,M10.5.5/0" - }, - { - "timeZoneName": "Dhaka", - "timeId": "Asia/Dhaka", - "timeSn": "1249", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Dili", - "timeId": "Asia/Dili", - "timeSn": "1250", - "timeZoneGMT": "\u003c+09\u003e-9" - }, - { - "timeZoneName": "Dubai", - "timeId": "Asia/Dubai", - "timeSn": "1251", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Dushanbe", - "timeId": "Asia/Dushanbe", - "timeSn": "1252", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Famagusta", - "timeId": "Asia/Famagusta", - "timeSn": "1253", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Gaza", - "timeId": "Asia/Gaza", - "timeSn": "1254", - "timeZoneGMT": "EET-2EEST,M3.4.6/1,M10.5.6/1" - }, - { - "timeZoneName": "Harbin", - "timeId": "Asia/Harbin", - "timeSn": "1255", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Hebron", - "timeId": "Asia/Hebron", - "timeSn": "1256", - "timeZoneGMT": "EET-2EEST,M3.4.6/1,M10.5.6/1" - }, - { - "timeZoneName": "Ho Chi Minh", - "timeId": "Asia/Ho_Chi_Minh", - "timeSn": "1257", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Hong Kong", - "timeId": "Asia/Hong_Kong", - "timeSn": "1258", - "timeZoneGMT": "HKT-8" - }, - { - "timeZoneName": "Hovd", - "timeId": "Asia/Hovd", - "timeSn": "1259", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Irkutsk", - "timeId": "Asia/Irkutsk", - "timeSn": "1260", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Istanbul", - "timeId": "Asia/Istanbul", - "timeSn": "1261", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Jakarta", - "timeId": "Asia/Jakarta", - "timeSn": "1262", - "timeZoneGMT": "WIB-7" - }, - { - "timeZoneName": "Jayapura", - "timeId": "Asia/Jayapura", - "timeSn": "1263", - "timeZoneGMT": "WIT-9" - }, - { - "timeZoneName": "Jerusalem", - "timeId": "Asia/Jerusalem", - "timeSn": "1264", - "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0" - }, - { - "timeZoneName": "Kabul", - "timeId": "Asia/Kabul", - "timeSn": "1265", - "timeZoneGMT": "\u003c+0430\u003e-4:30" - }, - { - "timeZoneName": "Kamchatka", - "timeId": "Asia/Kamchatka", - "timeSn": "1266", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Karachi", - "timeId": "Asia/Karachi", - "timeSn": "1267", - "timeZoneGMT": "PKT-5" - }, - { - "timeZoneName": "Kashgar", - "timeId": "Asia/Kashgar", - "timeSn": "1268", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Kathmandu", - "timeId": "Asia/Kathmandu", - "timeSn": "1269", - "timeZoneGMT": "\u003c+0545\u003e-5:45" - }, - { - "timeZoneName": "Khandyga", - "timeId": "Asia/Khandyga", - "timeSn": "1270", - "timeZoneGMT": "\u003c+09\u003e-9" - }, - { - "timeZoneName": "Krasnoyarsk", - "timeId": "Asia/Krasnoyarsk", - "timeSn": "1271", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Kuala Lumpur", - "timeId": "Asia/Kuala_Lumpur", - "timeSn": "1272", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Kuching", - "timeId": "Asia/Kuching", - "timeSn": "1273", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Kuwait", - "timeId": "Asia/Kuwait", - "timeSn": "1274", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Macao", - "timeId": "Asia/Macao", - "timeSn": "1275", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Macau", - "timeId": "Asia/Macau", - "timeSn": "1276", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Magadan", - "timeId": "Asia/Magadan", - "timeSn": "1277", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Makassar", - "timeId": "Asia/Makassar", - "timeSn": "1278", - "timeZoneGMT": "WITA-8" - }, - { - "timeZoneName": "Manila", - "timeId": "Asia/Manila", - "timeSn": "1279", - "timeZoneGMT": "PST-8" - }, - { - "timeZoneName": "Muscat", - "timeId": "Asia/Muscat", - "timeSn": "1280", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Nicosia", - "timeId": "Asia/Nicosia", - "timeSn": "1281", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Novokuznetsk", - "timeId": "Asia/Novokuznetsk", - "timeSn": "1282", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Novosibirsk", - "timeId": "Asia/Novosibirsk", - "timeSn": "1283", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Omsk", - "timeId": "Asia/Omsk", - "timeSn": "1284", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Oral", - "timeId": "Asia/Oral", - "timeSn": "1285", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Phnom Penh", - "timeId": "Asia/Phnom_Penh", - "timeSn": "1286", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Pontianak", - "timeId": "Asia/Pontianak", - "timeSn": "1287", - "timeZoneGMT": "WIB-7" - }, - { - "timeZoneName": "Pyongyang", - "timeId": "Asia/Pyongyang", - "timeSn": "1288", - "timeZoneGMT": "KST-9" - }, - { - "timeZoneName": "Qatar", - "timeId": "Asia/Qatar", - "timeSn": "1289", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Qyzylorda", - "timeId": "Asia/Qyzylorda", - "timeSn": "1290", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Yangon", - "timeId": "Asia/Rangoon", - "timeSn": "1291", - "timeZoneGMT": "\u003c+0630\u003e-6:30" - }, - { - "timeZoneName": "Riyadh", - "timeId": "Asia/Riyadh", - "timeSn": "1292", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Ho Chi Minh City", - "timeId": "Asia/Saigon", - "timeSn": "1293", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Sakhalin", - "timeId": "Asia/Sakhalin", - "timeSn": "1294", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Samarkand", - "timeId": "Asia/Samarkand", - "timeSn": "1295", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Seoul", - "timeId": "Asia/Seoul", - "timeSn": "1296", - "timeZoneGMT": "KST-9" - }, - { - "timeZoneName": "Beijing", - "timeId": "Asia/Shanghai", - "timeSn": "1297", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Singapore", - "timeId": "Asia/Singapore", - "timeSn": "1298", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Srednekolymsk", - "timeId": "Asia/Srednekolymsk", - "timeSn": "1299", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Taipei", - "timeId": "Asia/Taipei", - "timeSn": "1300", - "timeZoneGMT": "CST-8" - }, - { - "timeZoneName": "Tashkent", - "timeId": "Asia/Tashkent", - "timeSn": "1301", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Tbilisi", - "timeId": "Asia/Tbilisi", - "timeSn": "1302", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Tehran", - "timeId": "Asia/Tehran", - "timeSn": "1303", - "timeZoneGMT": "\u003c+0330\u003e-3:30\u003c+0430\u003e,J80/0,J264/0" - }, - { - "timeZoneName": "Tel Aviv", - "timeId": "Asia/Tel_Aviv", - "timeSn": "1304", - "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0" - }, - { - "timeZoneName": "Thimbu", - "timeId": "Asia/Thimbu", - "timeSn": "1305", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Thimphu", - "timeId": "Asia/Thimphu", - "timeSn": "1306", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Tokyo", - "timeId": "Asia/Tokyo", - "timeSn": "1307", - "timeZoneGMT": "JST-9" - }, - { - "timeZoneName": "Tomsk", - "timeId": "Asia/Tomsk", - "timeSn": "1308", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Ujung Pandang", - "timeId": "Asia/Ujung_Pandang", - "timeSn": "1309", - "timeZoneGMT": "WITA-8" - }, - { - "timeZoneName": "Ulaanbaatar", - "timeId": "Asia/Ulaanbaatar", - "timeSn": "1310", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Ulan Bator", - "timeId": "Asia/Ulan_Bator", - "timeSn": "1311", - "timeZoneGMT": "\u003c+08\u003e-8" - }, - { - "timeZoneName": "Urumqi", - "timeId": "Asia/Urumqi", - "timeSn": "1312", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Ust-Nera", - "timeId": "Asia/Ust-Nera", - "timeSn": "1313", - "timeZoneGMT": "\u003c+10\u003e-10" - }, - { - "timeZoneName": "Vientiane", - "timeId": "Asia/Vientiane", - "timeSn": "1314", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Vladivostok", - "timeId": "Asia/Vladivostok", - "timeSn": "1315", - "timeZoneGMT": "\u003c+10\u003e-10" - }, - { - "timeZoneName": "Yakutsk", - "timeId": "Asia/Yakutsk", - "timeSn": "1316", - "timeZoneGMT": "\u003c+09\u003e-9" - }, - { - "timeZoneName": "Yekaterinburg", - "timeId": "Asia/Yekaterinburg", - "timeSn": "1317", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Yerevan", - "timeId": "Asia/Yerevan", - "timeSn": "1318", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Azores", - "timeId": "Atlantic/Azores", - "timeSn": "1319", - "timeZoneGMT": "\u003c-01\u003e1\u003c+00\u003e,M3.5.0/0,M10.5.0/1" - }, - { - "timeZoneName": "Bermuda", - "timeId": "Atlantic/Bermuda", - "timeSn": "1320", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Canary", - "timeId": "Atlantic/Canary", - "timeSn": "1321", - "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Cape Verde", - "timeId": "Atlantic/Cape_Verde", - "timeSn": "1322", - "timeZoneGMT": "\u003c-01\u003e1" - }, - { - "timeZoneName": "Faroe", - "timeId": "Atlantic/Faeroe", - "timeSn": "1323", - "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Jan Mayen", - "timeId": "Atlantic/Jan_Mayen", - "timeSn": "1324", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Madeira", - "timeId": "Atlantic/Madeira", - "timeSn": "1325", - "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Reykjavik", - "timeId": "Atlantic/Reykjavik", - "timeSn": "1326", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "South Georgia", - "timeId": "Atlantic/South_Georgia", - "timeSn": "1327", - "timeZoneGMT": "\u003c-02\u003e2" - }, - { - "timeZoneName": "St. Helena", - "timeId": "Atlantic/St_Helena", - "timeSn": "1328", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Stanley", - "timeId": "Atlantic/Stanley", - "timeSn": "1329", - "timeZoneGMT": "\u003c-03\u003e3" - }, - { - "timeZoneName": "ACT", - "timeId": "Australia/ACT", - "timeSn": "1330", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Adelaide", - "timeId": "Australia/Adelaide", - "timeSn": "1331", - "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Brisbane", - "timeId": "Australia/Brisbane", - "timeSn": "1332", - "timeZoneGMT": "AEST-10" - }, - { - "timeZoneName": "Broken Hill", - "timeId": "Australia/Broken_Hill", - "timeSn": "1333", - "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Canberra", - "timeId": "Australia/Canberra", - "timeSn": "1334", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Currie", - "timeId": "Australia/Currie", - "timeSn": "1335", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Darwin", - "timeId": "Australia/Darwin", - "timeSn": "1336", - "timeZoneGMT": "ACST-9:30" - }, - { - "timeZoneName": "Eucla", - "timeId": "Australia/Eucla", - "timeSn": "1337", - "timeZoneGMT": "\u003c+0845\u003e-8:45" - }, - { - "timeZoneName": "Hobart", - "timeId": "Australia/Hobart", - "timeSn": "1338", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "LHI", - "timeId": "Australia/LHI", - "timeSn": "1339", - "timeZoneGMT": "\u003c+1030\u003e-10:30\u003c+11\u003e-11,M10.1.0,M4.1.0" - }, - { - "timeZoneName": "Lindeman", - "timeId": "Australia/Lindeman", - "timeSn": "1340", - "timeZoneGMT": "AEST-10" - }, - { - "timeZoneName": "Lord Howe", - "timeId": "Australia/Lord_Howe", - "timeSn": "1341", - "timeZoneGMT": "\u003c+1030\u003e-10:30\u003c+11\u003e-11,M10.1.0,M4.1.0" - }, - { - "timeZoneName": "Melbourne", - "timeId": "Australia/Melbourne", - "timeSn": "1342", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "NSW", - "timeId": "Australia/NSW", - "timeSn": "1343", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "North", - "timeId": "Australia/North", - "timeSn": "1344", - "timeZoneGMT": "ACST-9:30" - }, - { - "timeZoneName": "Perth", - "timeId": "Australia/Perth", - "timeSn": "1345", - "timeZoneGMT": "AWST-8" - }, - { - "timeZoneName": "Queensland", - "timeId": "Australia/Queensland", - "timeSn": "1346", - "timeZoneGMT": "AEST-10" - }, - { - "timeZoneName": "South", - "timeId": "Australia/South", - "timeSn": "1347", - "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Sydney", - "timeId": "Australia/Sydney", - "timeSn": "1348", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Tasmania", - "timeId": "Australia/Tasmania", - "timeSn": "1349", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Victoria", - "timeId": "Australia/Victoria", - "timeSn": "1350", - "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "West", - "timeId": "Australia/West", - "timeSn": "1351", - "timeZoneGMT": "AWST-8" - }, - { - "timeZoneName": "Yancowinna", - "timeId": "Australia/Yancowinna", - "timeSn": "1352", - "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3" - }, - { - "timeZoneName": "Acre", - "timeId": "Brazil/Acre", - "timeSn": "1353", - "timeZoneGMT": "\u003c-05\u003e5" - }, - { - "timeZoneName": "DeNoronha", - "timeId": "Brazil/DeNoronha", - "timeSn": "1354", - "timeZoneGMT": "\u003c-02\u003e2" - }, - { - "timeZoneName": "East", - "timeId": "Brazil/East", - "timeSn": "1355", - "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M11.1.0/0,M2.3.0/0" - }, - { - "timeZoneName": "Atlantic", - "timeId": "Canada/Atlantic", - "timeSn": "1356", - "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Central", - "timeId": "Canada/Central", - "timeSn": "1357", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Eastern", - "timeId": "Canada/Eastern", - "timeSn": "1358", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Mountain", - "timeId": "Canada/Mountain", - "timeSn": "1359", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Newfoundland", - "timeId": "Canada/Newfoundland", - "timeSn": "1360", - "timeZoneGMT": "NST3:30NDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Pacific", - "timeId": "Canada/Pacific", - "timeSn": "1361", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Saskatchewan", - "timeId": "Canada/Saskatchewan", - "timeSn": "1362", - "timeZoneGMT": "CST6" - }, - { - "timeZoneName": "Yukon", - "timeId": "Canada/Yukon", - "timeSn": "1363", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Continental", - "timeId": "Chile/Continental", - "timeSn": "1364", - "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M9.1.6/24,M4.1.6/24" - }, - { - "timeZoneName": "EasterIsland", - "timeId": "Chile/EasterIsland", - "timeSn": "1365", - "timeZoneGMT": "\u003c-06\u003e6\u003c-05\u003e,M9.1.6/22,M4.1.6/22" - }, - { - "timeZoneName": "Cuba", - "timeId": "Cuba", - "timeSn": "1366", - "timeZoneGMT": "CST5CDT,M3.2.0/0,M11.1.0/1" - }, - { - "timeZoneName": "Egypt", - "timeId": "Egypt", - "timeSn": "1367", - "timeZoneGMT": "EET-2" - }, - { - "timeZoneName": "Eire", - "timeId": "Eire", - "timeSn": "1368", - "timeZoneGMT": "IST-1GMT0,M10.5.0,M3.5.0/1" - }, - { - "timeZoneName": "Amsterdam", - "timeId": "Europe/Amsterdam", - "timeSn": "1369", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Andorra", - "timeId": "Europe/Andorra", - "timeSn": "1370", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Astrakhan", - "timeId": "Europe/Astrakhan", - "timeSn": "1371", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Athens", - "timeId": "Europe/Athens", - "timeSn": "1372", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Belfast", - "timeId": "Europe/Belfast", - "timeSn": "1373", - "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Belgrade", - "timeId": "Europe/Belgrade", - "timeSn": "1374", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Berlin", - "timeId": "Europe/Berlin", - "timeSn": "1375", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Bratislava", - "timeId": "Europe/Bratislava", - "timeSn": "1376", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Brussels", - "timeId": "Europe/Brussels", - "timeSn": "1377", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Bucharest", - "timeId": "Europe/Bucharest", - "timeSn": "1378", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Budapest", - "timeId": "Europe/Budapest", - "timeSn": "1379", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Busingen", - "timeId": "Europe/Busingen", - "timeSn": "1380", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Chisinau", - "timeId": "Europe/Chisinau", - "timeSn": "1381", - "timeZoneGMT": "EET-2EEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Copenhagen", - "timeId": "Europe/Copenhagen", - "timeSn": "1382", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Dublin", - "timeId": "Europe/Dublin", - "timeSn": "1383", - "timeZoneGMT": "GMT0IST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Gibraltar", - "timeId": "Europe/Gibraltar", - "timeSn": "1384", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Guernsey", - "timeId": "Europe/Guernsey", - "timeSn": "1385", - "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Helsinki", - "timeId": "Europe/Helsinki", - "timeSn": "1386", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Isle of Man", - "timeId": "Europe/Isle_of_Man", - "timeSn": "1387", - "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Jersey", - "timeId": "Europe/Jersey", - "timeSn": "1388", - "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Kaliningrad", - "timeId": "Europe/Kaliningrad", - "timeSn": "1389", - "timeZoneGMT": "EET-2" - }, - { - "timeZoneName": "Kiev", - "timeId": "Europe/Kiev", - "timeSn": "1390", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Kirov", - "timeId": "Europe/Kirov", - "timeSn": "1391", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Lisbon", - "timeId": "Europe/Lisbon", - "timeSn": "1392", - "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Ljubljana", - "timeId": "Europe/Ljubljana", - "timeSn": "1393", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "London", - "timeId": "Europe/London", - "timeSn": "1394", - "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Luxembourg", - "timeId": "Europe/Luxembourg", - "timeSn": "1395", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Madrid", - "timeId": "Europe/Madrid", - "timeSn": "1396", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Malta", - "timeId": "Europe/Malta", - "timeSn": "1397", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Mariehamn", - "timeId": "Europe/Mariehamn", - "timeSn": "1398", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Minsk", - "timeId": "Europe/Minsk", - "timeSn": "1399", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Monaco", - "timeId": "Europe/Monaco", - "timeSn": "1400", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Moscow", - "timeId": "Europe/Moscow", - "timeSn": "1401", - "timeZoneGMT": "MSK-3" - }, - { - "timeZoneName": "Oslo", - "timeId": "Europe/Oslo", - "timeSn": "1402", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Paris", - "timeId": "Europe/Paris", - "timeSn": "1403", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Podgorica", - "timeId": "Europe/Podgorica", - "timeSn": "1404", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Prague", - "timeId": "Europe/Prague", - "timeSn": "1405", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Riga", - "timeId": "Europe/Riga", - "timeSn": "1406", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Rome", - "timeId": "Europe/Rome", - "timeSn": "1407", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Samara", - "timeId": "Europe/Samara", - "timeSn": "1408", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "San Marino", - "timeId": "Europe/San_Marino", - "timeSn": "1409", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Sarajevo", - "timeId": "Europe/Sarajevo", - "timeSn": "1410", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Saratov", - "timeId": "Europe/Saratov", - "timeSn": "1411", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Simferopol", - "timeId": "Europe/Simferopol", - "timeSn": "1412", - "timeZoneGMT": "MSK-3" - }, - { - "timeZoneName": "Skopje", - "timeId": "Europe/Skopje", - "timeSn": "1413", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Sofia", - "timeId": "Europe/Sofia", - "timeSn": "1414", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Stockholm", - "timeId": "Europe/Stockholm", - "timeSn": "1415", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Tallinn", - "timeId": "Europe/Tallinn", - "timeSn": "1416", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Tirane", - "timeId": "Europe/Tirane", - "timeSn": "1417", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Tiraspol", - "timeId": "Europe/Tiraspol", - "timeSn": "1418", - "timeZoneGMT": "EET-2EEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Ulyanovsk", - "timeId": "Europe/Ulyanovsk", - "timeSn": "1419", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Uzhhorod", - "timeId": "Europe/Uzhgorod", - "timeSn": "1420", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Vaduz", - "timeId": "Europe/Vaduz", - "timeSn": "1421", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Vatican", - "timeId": "Europe/Vatican", - "timeSn": "1422", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Vienna", - "timeId": "Europe/Vienna", - "timeSn": "1423", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Vilnius", - "timeId": "Europe/Vilnius", - "timeSn": "1424", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Volgograd", - "timeId": "Europe/Volgograd", - "timeSn": "1425", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Warsaw", - "timeId": "Europe/Warsaw", - "timeSn": "1426", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Zagreb", - "timeId": "Europe/Zagreb", - "timeSn": "1427", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Zaporozhye", - "timeId": "Europe/Zaporozhye", - "timeSn": "1428", - "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4" - }, - { - "timeZoneName": "Zurich", - "timeId": "Europe/Zurich", - "timeSn": "1429", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Greenwich", - "timeId": "Greenwich", - "timeSn": "1430", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Iceland", - "timeId": "Iceland", - "timeSn": "1431", - "timeZoneGMT": "GMT0" - }, - { - "timeZoneName": "Antananarivo", - "timeId": "Indian/Antananarivo", - "timeSn": "1432", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Chagos", - "timeId": "Indian/Chagos", - "timeSn": "1433", - "timeZoneGMT": "\u003c+06\u003e-6" - }, - { - "timeZoneName": "Christmas", - "timeId": "Indian/Christmas", - "timeSn": "1434", - "timeZoneGMT": "\u003c+07\u003e-7" - }, - { - "timeZoneName": "Cocos", - "timeId": "Indian/Cocos", - "timeSn": "1435", - "timeZoneGMT": "\u003c+0630\u003e-6:30" - }, - { - "timeZoneName": "Comoro", - "timeId": "Indian/Comoro", - "timeSn": "1436", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Kerguelen", - "timeId": "Indian/Kerguelen", - "timeSn": "1437", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Mahe", - "timeId": "Indian/Mahe", - "timeSn": "1438", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Maldives", - "timeId": "Indian/Maldives", - "timeSn": "1439", - "timeZoneGMT": "\u003c+05\u003e-5" - }, - { - "timeZoneName": "Mauritius", - "timeId": "Indian/Mauritius", - "timeSn": "1440", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Mayotte", - "timeId": "Indian/Mayotte", - "timeSn": "1441", - "timeZoneGMT": "EAT-3" - }, - { - "timeZoneName": "Reunion", - "timeId": "Indian/Reunion", - "timeSn": "1442", - "timeZoneGMT": "\u003c+04\u003e-4" - }, - { - "timeZoneName": "Iran", - "timeId": "Iran", - "timeSn": "1443", - "timeZoneGMT": "\u003c+0330\u003e-3:30\u003c+0430\u003e,J80/0,J264/0" - }, - { - "timeZoneName": "Israel", - "timeId": "Israel", - "timeSn": "1444", - "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0" - }, - { - "timeZoneName": "Japan", - "timeId": "Japan", - "timeSn": "1445", - "timeZoneGMT": "JST-9" - }, - { - "timeZoneName": "Libya", - "timeId": "Libya", - "timeSn": "1446", - "timeZoneGMT": "EET-2" - }, - { - "timeZoneName": "BajaNorte", - "timeId": "Mexico/BajaNorte", - "timeSn": "1447", - "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "BajaSur", - "timeId": "Mexico/BajaSur", - "timeSn": "1448", - "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "General", - "timeId": "Mexico/General", - "timeSn": "1449", - "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0" - }, - { - "timeZoneName": "Navajo", - "timeId": "Navajo", - "timeSn": "1450", - "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Apia", - "timeId": "Pacific/Apia", - "timeSn": "1451", - "timeZoneGMT": "\u003c+13\u003e-13\u003c+14\u003e,M9.5.0/3,M4.1.0/4" - }, - { - "timeZoneName": "Auckland", - "timeId": "Pacific/Auckland", - "timeSn": "1452", - "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3" - }, - { - "timeZoneName": "Bougainville", - "timeId": "Pacific/Bougainville", - "timeSn": "1453", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Chatham", - "timeId": "Pacific/Chatham", - "timeSn": "1454", - "timeZoneGMT": "\u003c+1245\u003e-12:45\u003c+1345\u003e,M9.5.0/2:45,M4.1.0/3:45" - }, - { - "timeZoneName": "Chuuk", - "timeId": "Pacific/Chuuk", - "timeSn": "1455", - "timeZoneGMT": "\u003c+10\u003e-10" - }, - { - "timeZoneName": "Easter", - "timeId": "Pacific/Easter", - "timeSn": "1456", - "timeZoneGMT": "\u003c-06\u003e6\u003c-05\u003e,M9.1.6/22,M4.1.6/22" - }, - { - "timeZoneName": "Efate", - "timeId": "Pacific/Efate", - "timeSn": "1457", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Enderbury", - "timeId": "Pacific/Enderbury", - "timeSn": "1458", - "timeZoneGMT": "\u003c+13\u003e-13" - }, - { - "timeZoneName": "Fakaofo", - "timeId": "Pacific/Fakaofo", - "timeSn": "1459", - "timeZoneGMT": "\u003c+13\u003e-13" - }, - { - "timeZoneName": "Fiji", - "timeId": "Pacific/Fiji", - "timeSn": "1460", - "timeZoneGMT": "\u003c+12\u003e-12\u003c+13\u003e,M11.1.0,M1.3.0/3" - }, - { - "timeZoneName": "Funafuti", - "timeId": "Pacific/Funafuti", - "timeSn": "1461", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Galapagos", - "timeId": "Pacific/Galapagos", - "timeSn": "1462", - "timeZoneGMT": "\u003c-06\u003e6" - }, - { - "timeZoneName": "Gambier", - "timeId": "Pacific/Gambier", - "timeSn": "1463", - "timeZoneGMT": "\u003c-09\u003e9" - }, - { - "timeZoneName": "Guadalcanal", - "timeId": "Pacific/Guadalcanal", - "timeSn": "1464", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Guam", - "timeId": "Pacific/Guam", - "timeSn": "1465", - "timeZoneGMT": "ChST-10" - }, - { - "timeZoneName": "Honolulu", - "timeId": "Pacific/Honolulu", - "timeSn": "1466", - "timeZoneGMT": "HST10" - }, - { - "timeZoneName": "Johnston", - "timeId": "Pacific/Johnston", - "timeSn": "1467", - "timeZoneGMT": "HST10" - }, - { - "timeZoneName": "Kiritimati", - "timeId": "Pacific/Kiritimati", - "timeSn": "1468", - "timeZoneGMT": "\u003c+14\u003e-14" - }, - { - "timeZoneName": "Kosrae", - "timeId": "Pacific/Kosrae", - "timeSn": "1469", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Kwajalein", - "timeId": "Pacific/Kwajalein", - "timeSn": "1470", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Majuro", - "timeId": "Pacific/Majuro", - "timeSn": "1471", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Marquesas", - "timeId": "Pacific/Marquesas", - "timeSn": "1472", - "timeZoneGMT": "\u003c-0930\u003e9:30" - }, - { - "timeZoneName": "Midway", - "timeId": "Pacific/Midway", - "timeSn": "1473", - "timeZoneGMT": "SST11" - }, - { - "timeZoneName": "Nauru", - "timeId": "Pacific/Nauru", - "timeSn": "1474", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Niue", - "timeId": "Pacific/Niue", - "timeSn": "1475", - "timeZoneGMT": "\u003c-11\u003e11" - }, - { - "timeZoneName": "Norfolk", - "timeId": "Pacific/Norfolk", - "timeSn": "1476", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Noumea", - "timeId": "Pacific/Noumea", - "timeSn": "1477", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Pago Pago", - "timeId": "Pacific/Pago_Pago", - "timeSn": "1478", - "timeZoneGMT": "SST11" - }, - { - "timeZoneName": "Palau", - "timeId": "Pacific/Palau", - "timeSn": "1479", - "timeZoneGMT": "\u003c+09\u003e-9" - }, - { - "timeZoneName": "Pitcairn", - "timeId": "Pacific/Pitcairn", - "timeSn": "1480", - "timeZoneGMT": "\u003c-08\u003e8" - }, - { - "timeZoneName": "Pohnpei", - "timeId": "Pacific/Pohnpei", - "timeSn": "1481", - "timeZoneGMT": "\u003c+11\u003e-11" - }, - { - "timeZoneName": "Port Moresby", - "timeId": "Pacific/Port_Moresby", - "timeSn": "1482", - "timeZoneGMT": "\u003c+10\u003e-10" - }, - { - "timeZoneName": "Rarotonga", - "timeId": "Pacific/Rarotonga", - "timeSn": "1483", - "timeZoneGMT": "\u003c-10\u003e10" - }, - { - "timeZoneName": "Saipan", - "timeId": "Pacific/Saipan", - "timeSn": "1484", - "timeZoneGMT": "ChST-10" - }, - { - "timeZoneName": "Samoa", - "timeId": "Pacific/Samoa", - "timeSn": "1485", - "timeZoneGMT": "SST11" - }, - { - "timeZoneName": "Tahiti", - "timeId": "Pacific/Tahiti", - "timeSn": "1486", - "timeZoneGMT": "\u003c-10\u003e10" - }, - { - "timeZoneName": "Tarawa", - "timeId": "Pacific/Tarawa", - "timeSn": "1487", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Tongatapu", - "timeId": "Pacific/Tongatapu", - "timeSn": "1488", - "timeZoneGMT": "\u003c+13\u003e-13" - }, - { - "timeZoneName": "Wake", - "timeId": "Pacific/Wake", - "timeSn": "1489", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Wallis", - "timeId": "Pacific/Wallis", - "timeSn": "1490", - "timeZoneGMT": "\u003c+12\u003e-12" - }, - { - "timeZoneName": "Yap", - "timeId": "Pacific/Yap", - "timeSn": "1491", - "timeZoneGMT": "\u003c+10\u003e-10" - }, - { - "timeZoneName": "Poland", - "timeId": "Poland", - "timeSn": "1492", - "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - { - "timeZoneName": "Portugal", - "timeId": "Portugal", - "timeSn": "1493", - "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0" - }, - { - "timeZoneName": "Turkey", - "timeId": "Turkey", - "timeSn": "1494", - "timeZoneGMT": "\u003c+03\u003e-3" - }, - { - "timeZoneName": "Alaska", - "timeId": "US/Alaska", - "timeSn": "1495", - "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Aleutian", - "timeId": "US/Aleutian", - "timeSn": "1496", - "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Arizona", - "timeId": "US/Arizona", - "timeSn": "1497", - "timeZoneGMT": "MST7" - }, - { - "timeZoneName": "East-Indiana", - "timeId": "US/East-Indiana", - "timeSn": "1498", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Hawaii", - "timeId": "US/Hawaii", - "timeSn": "1499", - "timeZoneGMT": "HST10" - }, - { - "timeZoneName": "Indiana-Starke", - "timeId": "US/Indiana-Starke", - "timeSn": "1500", - "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Michigan", - "timeId": "US/Michigan", - "timeSn": "1501", - "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0" - }, - { - "timeZoneName": "Zulu", - "timeId": "Zulu", - "timeSn": "1502", - "timeZoneGMT": "UTC0" - } -]; -//# sourceMappingURL=const.js.map \ No newline at end of file diff --git a/build/http/const.js.map b/build/http/const.js.map deleted file mode 100644 index 16402c4f..00000000 --- a/build/http/const.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/http/const.ts"],"names":[],"mappings":"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AAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,cAAc;IACd,UAAU;IACV,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,SAAS;IACT,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;IACZ,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,2BAA2B;IAC3B,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,iBAAiB;IACjB,gBAAgB;IAChB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,kCAAkC;IAClC,UAAU;IACV,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,cAAc;IACd,aAAa;IACb,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,0BAA0B;IAC1B,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;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;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,OAAO;IACP,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,cAAc;IACd,aAAa;IACb,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS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IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,SAAS;IACT,SAAS;IACT,aAAa;IACb,YAAY;IACZ,eAAe;IACf,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,cAAc;IACd,SAAS;IACT,UAAU;IACV,YAAY;IACZ,cAAc;IACd,aAAa;IACb,YAAY;IACZ,cAAc;IACd,cAAc;IACd,UAAU;IACV,YAAY;IACZ,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;IACV,aAAa;IACb,UAAU;IACV,eAAe;IACf,cAAc;IACd,aAAa;IACb,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV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"} \ No newline at end of file diff --git a/build/http/device.d.ts b/build/http/device.d.ts deleted file mode 100644 index 9c112c40..00000000 --- a/build/http/device.d.ts +++ /dev/null @@ -1,474 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { HTTPApi } from "./api"; -import { CommandName, DeviceEvent, SourceType, TrackerType } from "./types"; -import { DeviceListResponse } from "./models"; -import { DeviceEvents, PropertyValue, PropertyValues, PropertyMetadataAny, IndexedProperty, RawValues, Schedule, Voices, DeviceConfig } from "./interfaces"; -import { PushMessage } from "../push/models"; -import { DeviceSmartLockNotifyData } from "../mqtt/model"; -import { Station } from "./station"; -export declare class Device extends TypedEmitter { - protected api: HTTPApi; - protected rawDevice: DeviceListResponse; - protected eventTimeouts: Map; - protected pictureEventTimeouts: Map; - protected properties: PropertyValues; - protected config: DeviceConfig; - private rawProperties; - private ready; - protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); - protected initializeState(): void; - initialize(): void; - getRawDevice(): DeviceListResponse; - update(device: DeviceListResponse): void; - updateProperty(name: string, value: PropertyValue, force?: boolean): boolean; - updateRawProperties(values: RawValues): void; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - updateRawProperty(type: number, value: string, source: SourceType): boolean; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - getPropertyMetadata(name: string, hidden?: boolean): PropertyMetadataAny; - getPropertyValue(name: string): PropertyValue; - hasPropertyValue(name: string): boolean; - getRawProperty(type: number): string | undefined; - getRawProperties(): RawValues; - getProperties(): PropertyValues; - getPropertiesMetadata(hidden?: boolean): IndexedProperty; - hasProperty(name: string, hidden?: boolean): boolean; - getCommands(): Array; - hasCommand(name: CommandName): boolean; - processPushNotification(_station: Station, _message: PushMessage, _eventDurationSeconds: number): void; - setCustomPropertyValue(name: string, value: PropertyValue): void; - destroy(): void; - protected clearEventTimeout(eventType: DeviceEvent): void; - static isSupported(type: number): boolean; - static isCamera(type: number): boolean; - static hasBattery(type: number): boolean; - static isStation(type: number): boolean; - static isCamera1(type: number): boolean; - static isCameraE(type: number): boolean; - static isSensor(type: number): boolean; - static isKeyPad(type: number): boolean; - static isDoorbell(type: number): boolean; - static isWiredDoorbell(type: number): boolean; - static isWiredDoorbellT8200X(type: number, serialnumber: string): boolean; - static isWiredDoorbellDual(type: number): boolean; - static isIndoorCamera(type: number): boolean; - static isPanAndTiltCamera(type: number): boolean; - static isOutdoorPanAndTiltCamera(type: number): boolean; - static isIndoorPanAndTiltCameraS350(type: number): boolean; - static isFloodLight(type: number): boolean; - static isFloodLightT8420X(type: number, serialnumber: string): boolean; - static isFloodLightT8423(type: number): boolean; - static isFloodLightT8425(type: number): boolean; - static isWallLightCam(type: number): boolean; - static isLock(type: number): boolean; - static isLockKeypad(type: number): boolean; - static isLockBle(type: number): boolean; - static isLockBleNoFinger(type: number): boolean; - static isLockWifi(type: number, serialnumber: string): boolean; - static isLockWifiNoFinger(type: number): boolean; - static isLockWifiR10(type: number): boolean; - static isLockWifiR20(type: number): boolean; - static isLockWifiVideo(type: number): boolean; - static isLockWifiR10Keypad(type: number): boolean; - static isLockWifiR20Keypad(type: number): boolean; - static isLockWifiT8506(type: number): boolean; - static isLockWifiT8502(type: number): boolean; - static isLockWifiT8510P(type: number, serialnumber: string): boolean; - static isLockWifiT8520P(type: number, serialnumber: string): boolean; - static isBatteryDoorbell1(type: number): boolean; - static isBatteryDoorbell2(type: number): boolean; - static isBatteryDoorbellDual(type: number): boolean; - static isBatteryDoorbellDualE340(type: number): boolean; - static isBatteryDoorbellC30(type: number): boolean; - static isBatteryDoorbellC31(type: number): boolean; - static isDoorbellDual(type: number): boolean; - static isBatteryDoorbell(type: number): boolean; - static isSoloCamera(type: number): boolean; - static isSoloCameraPro(type: number): boolean; - static isSoloCameraSpotlight1080(type: number): boolean; - static isSoloCameraSpotlight2k(type: number): boolean; - static isSoloCameraSpotlightSolar(type: number): boolean; - static isSoloCameraSolar(type: number): boolean; - static isSoloCameraC210(type: number): boolean; - static isSoloCameraE30(type: number): boolean; - static isSoloCameras(type: number): boolean; - static isStarlight4GLTE(type: number): boolean; - static isIndoorOutdoorCamera1080p(type: number): boolean; - static isIndoorOutdoorCamera1080pNoLight(type: number): boolean; - static isIndoorOutdoorCamera2k(type: number): boolean; - static isIndoorCamMini(type: number): boolean; - static isCamera1Product(type: number): boolean; - static isCamera2(type: number): boolean; - static isCamera2C(type: number): boolean; - static isCamera2Pro(type: number): boolean; - static isCamera2CPro(type: number): boolean; - static isCamera2Product(type: number): boolean; - static isCamera3(type: number): boolean; - static isCamera3C(type: number): boolean; - static isCamera3Pro(type: number): boolean; - static isCameraProfessional247(type: number): boolean; - static isCamera3Product(type: number): boolean; - static isEntrySensor(type: number): boolean; - static isMotionSensor(type: number): boolean; - static isSmartDrop(type: number): boolean; - static isSmartSafe(type: number): boolean; - static isGarageCamera(type: number): boolean; - static isIntegratedDeviceBySn(sn: string): boolean; - static isSoloCameraBySn(sn: string): boolean; - static isSmartDropBySn(sn: string): boolean; - static isLockBySn(sn: string): boolean; - static isGarageCameraBySn(sn: string): boolean; - static isFloodlightBySn(sn: string): boolean; - static isIndoorCameraBySn(sn: string): boolean; - static is4GCameraBySn(sn: string): boolean; - static isSmartSafeBySn(sn: string): boolean; - static isSmartTrackCard(type: number): boolean; - static isSmartTrackLink(type: number): boolean; - static isSmartTrack(type: number): boolean; - isCamera(): boolean; - isFloodLight(): boolean; - isFloodLightT8420X(): boolean; - isFloodLightT8423(): boolean; - isFloodLightT8425(): boolean; - isWallLightCam(): boolean; - isDoorbell(): boolean; - isWiredDoorbell(): boolean; - isWiredDoorbellT8200X(): boolean; - isWiredDoorbellDual(): boolean; - isLock(): boolean; - isLockKeypad(): boolean; - isLockBle(): boolean; - isLockBleNoFinger(): boolean; - isLockWifi(): boolean; - isLockWifiNoFinger(): boolean; - isLockWifiR10(): boolean; - isLockWifiR20(): boolean; - isLockWifiVideo(): boolean; - isLockWifiR10Keypad(): boolean; - isLockWifiR20Keypad(): boolean; - isLockWifiT8506(): boolean; - isLockWifiT8502(): boolean; - isLockWifiT8510P(): boolean; - isLockWifiT8520P(): boolean; - isBatteryDoorbell1(): boolean; - isBatteryDoorbell2(): boolean; - isBatteryDoorbellDual(): boolean; - isBatteryDoorbellDualE340(): boolean; - isBatteryDoorbellC30(): boolean; - isBatteryDoorbellC31(): boolean; - isDoorbellDual(): boolean; - isBatteryDoorbell(): boolean; - isSoloCamera(): boolean; - isSoloCameraPro(): boolean; - isSoloCameraSpotlight1080(): boolean; - isSoloCameraSpotlight2k(): boolean; - isSoloCameraSpotlightSolar(): boolean; - isSoloCameraSolar(): boolean; - isSoloCameraC210(): boolean; - isSoloCameraE30(): boolean; - isStarlight4GLTE(): boolean; - isIndoorOutdoorCamera1080p(): boolean; - isIndoorOutdoorCamera1080pNoLight(): boolean; - isIndoorOutdoorCamera2k(): boolean; - isIndoorCamMini(): boolean; - isSoloCameras(): boolean; - isCamera2(): boolean; - isCamera2C(): boolean; - isCamera2Pro(): boolean; - isCamera2CPro(): boolean; - isCamera2Product(): boolean; - isCamera3(): boolean; - isCamera3C(): boolean; - isCameraProfessional247(): boolean; - isCamera3Pro(): boolean; - isCamera3Product(): boolean; - isEntrySensor(): boolean; - isKeyPad(): boolean; - isMotionSensor(): boolean; - isIndoorCamera(): boolean; - isPanAndTiltCamera(): boolean; - isOutdoorPanAndTiltCamera(): boolean; - isIndoorPanAndTiltCameraS350(): boolean; - isSmartDrop(): boolean; - isSmartSafe(): boolean; - isGarageCamera(): boolean; - isIntegratedDevice(): boolean; - isSmartTrack(): boolean; - isSmartTrackCard(): boolean; - isSmartTrackLink(): boolean; - hasBattery(): boolean; - getDeviceKey(): string; - getDeviceType(): number; - getHardwareVersion(): string; - getSoftwareVersion(): string; - getModel(): string; - getName(): string; - getSerial(): string; - getStationSerial(): string; - setParameters(params: { - paramType: number; - paramValue: any; - }[]): Promise; - getChannel(): number; - getStateID(state: string, level?: number): string; - getStateChannel(): string; - getWifiRssi(): PropertyValue; - getStoragePath(filename: string): string; - isEnabled(): PropertyValue; -} -export declare class Camera extends Device { - protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - getLastCameraImageURL(): PropertyValue; - getMACAddress(): string; - startDetection(): Promise; - stopDetection(): Promise; - getState(): PropertyValue; - close(): Promise; - getLastChargingDays(): number; - getLastChargingFalseEvents(): number; - getLastChargingRecordedEvents(): number; - getLastChargingTotalEvents(): number; - getBatteryValue(): PropertyValue; - getBatteryTemperature(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; - isLedEnabled(): PropertyValue; - isAutoNightVisionEnabled(): PropertyValue; - isRTSPStreamEnabled(): PropertyValue; - isAntiTheftDetectionEnabled(): PropertyValue; - getWatermark(): PropertyValue; - isMotionDetected(): boolean; - isPersonDetected(): boolean; - getDetectedPerson(): string; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class SoloCamera extends Camera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class IndoorCamera extends Camera { - protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; - isPetDetectionEnabled(): PropertyValue; - isSoundDetectionEnabled(): PropertyValue; - isPetDetected(): boolean; - isSoundDetected(): boolean; - isCryingDetected(): boolean; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; - destroy(): void; -} -export declare class DoorbellCamera extends Camera { - protected voices: Voices; - protected constructor(api: HTTPApi, device: DeviceListResponse, voices: Voices, deviceConfig: DeviceConfig); - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - private loadMetadataVoiceStates; - getVoiceName(id: number): string; - getVoices(): Voices; - getPropertiesMetadata(hidden?: boolean): IndexedProperty; - isRinging(): boolean; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class WiredDoorbellCamera extends DoorbellCamera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; - isAutoNightVisionEnabled(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; -} -export declare class BatteryDoorbellCamera extends DoorbellCamera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; -} -export declare class FloodlightCamera extends Camera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class WallLightCam extends Camera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - getPropertiesMetadata(hidden?: boolean): IndexedProperty; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class GarageCamera extends Camera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isLedEnabled(): PropertyValue; - isMotionDetectionEnabled(): PropertyValue; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class Sensor extends Device { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - getState(): PropertyValue; -} -export declare class EntrySensor extends Sensor { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isSensorOpen(): PropertyValue; - getSensorChangeTime(): PropertyValue; - isBatteryLow(): PropertyValue; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; -} -export declare class MotionSensor extends Sensor { - static readonly MOTION_COOLDOWN_MS = 120000; - protected constructor(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig); - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - isMotionDetected(): boolean; - getMotionSensorPIREvent(): PropertyValue; - isBatteryLow(): PropertyValue; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class Lock extends Device { - static readonly VERSION_CODE_SMART_LOCK = 3; - static readonly VERSION_CODE_LOCKV12 = 18; - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - getState(): PropertyValue; - getBatteryValue(): PropertyValue; - getWifiRssi(): PropertyValue; - isLocked(): PropertyValue; - getLockStatus(): PropertyValue; - static encodeESLCmdOnOff(short_user_id: number, nickname: string, lock: boolean): Buffer; - static encodeESLCmdQueryStatus(admin_user_id: string): Buffer; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; - processMQTTNotification(message: DeviceSmartLockNotifyData, eventDurationSeconds: number): void; - private processNotification; - private static getCurrentTimeInSeconds; - private static getUInt8Buffer; - private static getUint16LEBuffer; - private static getUint16BEBuffer; - static encodeCmdStatus(user_id: string): Buffer; - static encodeCmdUnlock(short_user_id: string, value: number, username: string): Buffer; - static encodeCmdCalibrate(user_id: string): Buffer; - static encodeCmdAddUser(short_user_id: string, passcode: string, username: string, schedule?: Schedule, user_permission?: number): Buffer; - static encodeCmdAddTemporaryUser(schedule?: Schedule, unlimited?: boolean): Buffer; - static encodeCmdDeleteTemporaryUser(password_id: string): Buffer; - static encodeCmdDeleteUser(short_user_id: string): Buffer; - static encodeCmdVerifyPw(password: string): Buffer; - static encodeCmdQueryLockRecord(index: number): Buffer; - static encodeCmdQueryUser(short_user_id: string): Buffer; - static encodeCmdQueryPassword(password_id: string): Buffer; - static encodeCmdModifyPassword(password_id: string, passcode: string): Buffer; - static encodeCmdUpdateSchedule(short_user_id: string, schedule: Schedule): Buffer; - static encodeCmdModifyUsername(username: string, password_id: string): Buffer; - static encodeCmdGetLockParam(user_id: string): Buffer; - static encodeCmdSetLockParamAutoLock(enabled: boolean, lockTimeSeconds: number): Buffer; - private static hexTime; - static encodeCmdSetLockParamAutoLockSchedule(enabled: boolean, schedule_start: string, schedule_end: string): Buffer; - static encodeCmdSetLockParamOneTouchLock(enabled: boolean): Buffer; - static encodeCmdSetLockParamWrongTryProtect(enabled: boolean, lockdownTime: number, attempts: number): Buffer; - static encodeCmdSetLockParamScramblePasscode(enabled: boolean): Buffer; - static encodeCmdSetLockParamSound(value: number): Buffer; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - static encodeCmdSmartLockUnlock(adminUserId: string, lock: boolean, username: string, shortUserId: string): Buffer; - static encodeCmdSmartLockCalibrate(adminUserId: string): Buffer; - static encodeCmdSetSmartLockParamWrongTryProtect(adminUserId: string, enabled: boolean, attempts: number, lockdownTime: number): Buffer; - private static hexTimeSmartLock; - static encodeCmdSetSmartLockParamAutoLock(adminUserId: string, enabled: boolean, lockTimeSeconds: number, schedule: boolean, scheduleStart: string, scheduleEnd: string): Buffer; - static encodeCmdSetSmartLockParamOneTouchLock(adminUserId: string, enabled: boolean): Buffer; - static encodeCmdSetSmartLockParamScramblePasscode(adminUserId: string, enabled: boolean): Buffer; - static encodeCmdSetSmartLockParamSound(adminUserId: string, value: number): Buffer; - static encodeCmdSmartLockAddUser(adminUserId: string, shortUserId: string, passcode: string, username: string, schedule?: Schedule, userPermission?: number): Buffer; - static encodeCmdSmartLockDeleteUser(adminUserId: string, shortUserId: string): Buffer; - static encodeCmdSmartLockUpdateSchedule(adminUserId: string, shortUserId: string, username: string, schedule: Schedule, userPermission?: number): Buffer; - static encodeCmdSmartLockModifyPassword(adminUserId: string, passwordId: string, passcode: string): Buffer; - static encodeCmdSmartLockGetUserList(adminUserId: string): Buffer; - static encodeCmdSmartLockStatus(adminUserId: string): Buffer; - static encodeCmdSmartLockGetParams(adminUserId: string): Buffer; -} -export declare class LockKeypad extends Device { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; -} -export declare class Keypad extends Device { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - getState(): PropertyValue; - isBatteryLow(): PropertyValue; - isBatteryCharging(): PropertyValue; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; -} -export declare class SmartSafe extends Device { - static readonly IV = "052E19EB3F880512E99EBB684D4DC1FE"; - static readonly DATA_HEADER: number[]; - static readonly VERSION_CODE = 1; - static readonly PUSH_NOTIFICATION_POSITION: { - [index: string]: number; - }; - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - private static getCurrentTimeInSeconds; - private static getUInt8Buffer; - private static getUint16LEBuffer; - private static encodeCmdSingleUInt8; - static encodeCmdWrongTryProtect(user_id: string, enabled: boolean, attempts: number, lockdownTime: number): Buffer; - static encodeCmdLeftOpenAlarm(user_id: string, enabled: boolean, duration: number): Buffer; - static encodeCmdDualUnlock(user_id: string, enabled: boolean): Buffer; - static encodeCmdScramblePIN(user_id: string, enabled: boolean): Buffer; - static encodeCmdPowerSave(user_id: string, enabled: boolean): Buffer; - static encodeCmdInteriorBrightness(user_id: string, interiorBrightness: number, duration: number): Buffer; - static encodeCmdTamperAlarm(user_id: string, option: number): Buffer; - static encodeCmdRemoteUnlock(user_id: string, option: number): Buffer; - static encodeCmdAlertVolume(user_id: string, volume: number): Buffer; - static encodeCmdPromptVolume(user_id: string, volume: number): Buffer; - static encodeCmdPushNotification(user_id: string, modes: number): Buffer; - static encodeCmdUnlock(user_id: string): Buffer; - static encodeCmdVerifyPIN(user_id: string, pin: string): Buffer; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - shakeEvent(event: number, eventDurationSeconds: number): void; - alarm911Event(event: number, eventDurationSeconds: number): void; - jammedEvent(eventDurationSeconds: number): void; - lowBatteryEvent(eventDurationSeconds: number): void; - wrongTryProtectAlarmEvent(eventDurationSeconds: number): void; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - getState(): PropertyValue; - getBatteryValue(): PropertyValue; - getWifiRssi(): PropertyValue; - isLocked(): boolean; -} -export declare class Tracker extends Device { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - setFindPhone(value: boolean): Promise; - setLeftBehindAlarm(value: boolean): Promise; - setTrackerType(value: TrackerType): Promise; -} -export declare class DoorbellLock extends DoorbellCamera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - getState(): PropertyValue; - getBatteryValue(): PropertyValue; - getWifiRssi(): PropertyValue; - isLocked(): PropertyValue; - getLockStatus(): PropertyValue; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; -} -export declare class SmartDrop extends Camera { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; - processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; -} -export declare class UnknownDevice extends Device { - static getInstance(api: HTTPApi, device: DeviceListResponse, deviceConfig: DeviceConfig): Promise; - getStateChannel(): string; -} diff --git a/build/http/device.js b/build/http/device.js deleted file mode 100644 index 1680792b..00000000 --- a/build/http/device.js +++ /dev/null @@ -1,4314 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.UnknownDevice = exports.SmartDrop = exports.DoorbellLock = exports.Tracker = exports.SmartSafe = exports.Keypad = exports.LockKeypad = exports.Lock = exports.MotionSensor = exports.EntrySensor = exports.Sensor = exports.GarageCamera = exports.WallLightCam = exports.FloodlightCamera = exports.BatteryDoorbellCamera = exports.WiredDoorbellCamera = exports.DoorbellCamera = exports.IndoorCamera = exports.SoloCamera = exports.Camera = exports.Device = void 0; -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const types_1 = require("./types"); -const parameter_1 = require("./parameter"); -const types_2 = require("../p2p/types"); -const utils_1 = require("./utils"); -const utils_2 = require("../p2p/utils"); -const types_3 = require("../push/types"); -const utils_3 = require("../utils"); -const error_1 = require("./error"); -const error_2 = require("../error"); -const logging_1 = require("../logging"); -const station_1 = require("./station"); -class Device extends tiny_typed_emitter_1.TypedEmitter { - api; - rawDevice; - eventTimeouts = new Map(); - pictureEventTimeouts = new Map(); - properties = {}; - config = {}; - rawProperties = {}; - ready = false; - constructor(api, device, deviceConfig) { - super(); - this.api = api; - this.rawDevice = device; - this.config = deviceConfig; - } - initializeState() { - this.update(this.rawDevice); - this.ready = true; - setImmediate(() => { - this.emit("ready", this); - }); - } - initialize() { - this.initializeState(); - } - getRawDevice() { - return this.rawDevice; - } - update(device) { - this.rawDevice = device; - const metadata = this.getPropertiesMetadata(true); - for (const property of Object.values(metadata)) { - if (this.rawDevice[property.key] !== undefined && typeof property.key === "string") { - if (property.key === "cover_path" && !this.getPropertyValue(property.name) && this.rawDevice[property.key] !== "") { - // First image initialisation if no image has been set yet and a cloud value is available - this.updateProperty(property.name, this.convertRawPropertyValue(property, (0, utils_1.getImagePath)(this.rawDevice[property.key]))); - } - else { - this.updateProperty(property.name, this.convertRawPropertyValue(property, this.rawDevice[property.key])); - } - } - else if (this.properties[property.name] === undefined && property.default !== undefined && !this.ready) { - this.updateProperty(property.name, property.default); - } - } - if (this.rawDevice.params) { - this.rawDevice.params.forEach(param => { - this.updateRawProperty(param.param_type, param.param_value, "http"); - }); - } - logging_1.rootHTTPLogger.debug("Update device cloud properties", { deviceSN: this.getSerial(), properties: this.properties }); - } - updateProperty(name, value, force = false) { - if ((this.properties[name] !== undefined && this.properties[name] !== value) - || this.properties[name] === undefined || force) { - const oldValue = this.properties[name]; - this.properties[name] = value; - this.emit("property changed", this, name, value, this.ready); - try { - this.handlePropertyChange(this.getPropertyMetadata(name, true), oldValue, this.properties[name]); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - if (error instanceof error_1.InvalidPropertyError) { - logging_1.rootHTTPLogger.error(`Device update property - Invalid Property error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), propertyName: name, propertyValue: value, force: force }); - } - else { - logging_1.rootHTTPLogger.error(`Device update property - Property error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), propertyName: name, propertyValue: value, force: force }); - } - } - return true; - } - return false; - } - updateRawProperties(values) { - Object.keys(values).forEach(paramtype => { - const param_type = Number.parseInt(paramtype); - this.updateRawProperty(param_type, values[param_type].value, values[param_type].source); - }); - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - handlePropertyChange(metadata, oldValue, newValue) { - try { - if ((metadata.key === types_1.ParamType.DETECT_MOTION_SENSITIVE || metadata.key === types_1.ParamType.DETECT_MODE) && this.isWiredDoorbell()) { - //TODO: Not perfectly solved, can in certain cases briefly trigger a double event where the last event is the correct one - const rawSensitivity = this.getRawProperty(types_1.ParamType.DETECT_MOTION_SENSITIVE); - const rawMode = this.getRawProperty(types_1.ParamType.DETECT_MODE); - if (rawSensitivity !== undefined && rawMode !== undefined && this.hasProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity)) { - const sensitivity = Number.parseInt(rawSensitivity); - const mode = Number.parseInt(rawMode); - if (mode === 3 && sensitivity === 2) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 1); - } - else if (mode === 1 && sensitivity === 1) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 2); - } - else if (mode === 1 && sensitivity === 2) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 3); - } - else if (mode === 1 && sensitivity === 3) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 4); - } - else if (mode === 2 && sensitivity === 1) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetectionSensitivity, 5); - } - } - } - else if (metadata.name === types_1.PropertyName.DeviceWifiRSSI && this.hasProperty(types_1.PropertyName.DeviceWifiSignalLevel)) { - this.updateProperty(types_1.PropertyName.DeviceWifiSignalLevel, (0, utils_1.calculateWifiSignalLevel)(this, newValue)); - } - else if (metadata.name === types_1.PropertyName.DeviceCellularRSSI && this.hasProperty(types_1.PropertyName.DeviceCellularSignalLevel)) { - this.updateProperty(types_1.PropertyName.DeviceCellularSignalLevel, (0, utils_1.calculateCellularSignalLevel)(newValue)); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error(`Device handle property change - error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), metadata: metadata, oldValue: oldValue, newValue: newValue }); - } - } - updateRawProperty(type, value, source) { - const parsedValue = parameter_1.ParameterHelper.readValue(this.getStationSerial(), type, value, logging_1.rootHTTPLogger); - if (parsedValue !== undefined && - ((this.rawProperties[type] !== undefined && this.rawProperties[type].value !== parsedValue && (0, utils_1.isPrioritySourceType)(this.rawProperties[type].source, source)) || this.rawProperties[type] === undefined)) { - this.rawProperties[type] = { - value: parsedValue, - source: source - }; - if (this.ready) - this.emit("raw property changed", this, type, this.rawProperties[type].value); - const metadata = this.getPropertiesMetadata(true); - for (const property of Object.values(metadata)) { - if (property.key === type) { - try { - this.updateProperty(property.name, this.convertRawPropertyValue(property, this.rawProperties[type].value)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - if (error instanceof error_1.PropertyNotSupportedError) { - logging_1.rootHTTPLogger.debug("Device update raw property - Property not supported error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), type: type, value: value, source: source }); - } - else { - logging_1.rootHTTPLogger.error("Device update raw property - Property error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), type: type, value: value, source: source }); - } - } - } - } - return true; - } - return false; - } - convertRawPropertyValue(property, value) { - try { - if (property.key === types_1.ParamType.PRIVATE_MODE || property.key === types_1.ParamType.OPEN_DEVICE || property.key === types_2.CommandType.CMD_DEVS_SWITCH) { - if ((this.isIndoorCamera() && !this.isIndoorPanAndTiltCameraS350()) || (this.isWiredDoorbell() && !this.isWiredDoorbellT8200X()) || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424) { - return value !== undefined ? (value === "true" ? true : false) : false; - } - return value !== undefined ? (value === "0" ? true : false) : false; - } - else if (property.key === types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE) { - switch (property.name) { - case types_1.PropertyName.DeviceNotificationRing: { - const booleanProperty = property; - try { - return value !== undefined ? (Number.parseInt(value.notification_ring_onoff) === 1 ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE DeviceNotificationRing Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceNotificationMotion: { - const booleanProperty = property; - try { - return value !== undefined ? (Number.parseInt(value.notification_motion_onoff) === 1 ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE DeviceNotificationMotion Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceNotificationType: { - const numericProperty = property; - try { - return value !== undefined ? Number.parseInt(value.notification_style) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE DeviceNotificationType Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - } - } - else if (property.key === types_1.ParamType.DOORBELL_NOTIFICATION_OPEN) { - try { - switch (property.name) { - case types_1.PropertyName.DeviceNotificationRing: - return value !== undefined ? (Number.parseInt(value) === 3 || Number.parseInt(value) === 1 ? true : false) : false; - case types_1.PropertyName.DeviceNotificationMotion: - return value !== undefined ? (Number.parseInt(value) === 3 || Number.parseInt(value) === 2 ? true : false) : false; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - DOORBELL_NOTIFICATION_OPEN Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return false; - } - } - else if (property.key === types_2.CommandType.CMD_SET_PIRSENSITIVITY) { - const numericProperty = property; - try { - if (this.getDeviceType() === types_1.DeviceType.CAMERA || this.getDeviceType() === types_1.DeviceType.CAMERA_E) { - const convertedValue = ((200 - Number.parseInt(value)) / 2) + 1; - return convertedValue; - } - else if (this.isCamera2Product()) { - let convertedValue; - switch (Number.parseInt(value)) { - case 192: - convertedValue = 1; - break; - case 118: - convertedValue = 2; - break; - case 72: - convertedValue = 3; - break; - case 46: - convertedValue = 4; - break; - case 30: - convertedValue = 5; - break; - case 20: - convertedValue = 6; - break; - case 14: - convertedValue = 7; - break; - default: - convertedValue = 4; - break; - } - return convertedValue; - } - else { - return value !== undefined ? Number.parseInt(value) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_PIRSENSITIVITY Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME || property.key === types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME) { - const tmpBuffer = Buffer.from(value, "hex"); - return `${tmpBuffer.subarray(0, 1).readInt8().toString().padStart(2, "0")}:${tmpBuffer.subarray(1).readInt8().toString().padStart(2, "0")}`; - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY) { - const numericProperty = property; - try { - switch (property.name) { - case types_1.PropertyName.DeviceMotionDetectionSensitivityMode: - return value !== undefined && value.model !== undefined ? value.model : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityStandard: - return value !== undefined && value.model === 0 ? (0, utils_1.getDistances)(value.block_list)[0] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedA: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[0] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedB: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[1] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedC: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[2] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedD: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[3] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedE: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[4] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedF: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[5] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedG: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[6] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - case types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedH: - return value !== undefined && value.model === 1 ? (0, utils_1.getDistances)(value.block_list)[7] : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error(`Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY ${property.name} Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE) { - switch (property.name) { - case types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom: { - const stringProperty = property; - try { - return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.start_hour !== undefined && value?.setting[0]?.start_min !== undefined) ? `${value?.setting[0]?.start_hour?.padStart(2, "0")}:${value?.setting[0]?.start_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseTimeFrom Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo: { - const stringProperty = property; - try { - return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.end_hour !== undefined && value?.setting[0]?.end_min !== undefined) ? `${value?.setting[0]?.end_hour?.padStart(2, "0")}:${value?.setting[0]?.end_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseTimeTo Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification: { - const booleanProperty = property; - try { - return value?.setting[0]?.push_notify === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponsePhoneNotification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification: { - const booleanProperty = property; - try { - return value?.setting[0]?.homebase_alert === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseHomeBaseNotification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse: { - const booleanProperty = property; - try { - return value?.setting[0]?.auto_voice_resp === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseAutoVoiceResponse Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice: { - const numericProperty = property; - try { - return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.auto_voice_id !== undefined) ? value?.setting[0]?.auto_voice_id : numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE DeviceLoiteringCustomResponseAutoVoiceResponseVoice Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH) { - const booleanProperty = property; - try { - return value !== undefined && value.ai_bottom_switch !== undefined ? value.ai_bottom_switch === 1024 : (booleanProperty.default !== undefined ? booleanProperty.default : false); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME) { - const stringProperty = property; - try { - return (value?.start_h !== undefined && value?.start_m !== undefined) ? `${value?.start_h?.toString().padStart(2, "0")}:${value?.start_m?.toString().padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE) { - switch (property.name) { - case types_1.PropertyName.DeviceRingAutoResponse: { - const booleanProperty = property; - try { - return value?.setting[0]?.active === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponse Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceRingAutoResponseVoiceResponse: { - const booleanProperty = property; - try { - return value?.setting[0]?.active === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseVoiceResponse Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceRingAutoResponseTimeFrom: { - const stringProperty = property; - try { - return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.start_hour !== undefined && value?.setting[0]?.start_min !== undefined) ? `${value?.setting[0]?.start_hour?.padStart(2, "0")}:${value?.setting[0]?.start_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseTimeFrom Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceRingAutoResponseTimeTo: { - const stringProperty = property; - try { - return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.end_hour !== undefined && value?.setting[0]?.end_min !== undefined) ? `${value?.setting[0]?.end_hour?.padStart(2, "0")}:${value?.setting[0]?.end_min?.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseTimeTo Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice: { - const numericProperty = property; - try { - return (value?.setting?.length !== undefined && value?.setting?.length > 0 && value?.setting[0]?.auto_voice_id !== undefined) ? value?.setting[0]?.auto_voice_id : numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseVoiceResponseVoice Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME) { - switch (property.name) { - case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom: { - const stringProperty = property; - try { - return (value?.start_h !== undefined && value?.start_m !== undefined) ? `${value?.start_h?.toString().padStart(2, "0")}:${value?.start_m?.toString().padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME DeviceDeliveryGuardPackageGuardingActivatedTimeFrom Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo: { - const stringProperty = property; - try { - return (value?.end_h !== undefined && value?.end_m !== undefined) ? `${value?.end_h?.toString().padStart(2, "0")}:${value?.end_m?.toString().padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME DeviceDeliveryGuardPackageGuardingActivatedTimeTo Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE) { - const numericProperty = property; - try { - return value !== undefined && value.radar_wd_distance !== undefined ? value.radar_wd_distance : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME) { - const numericProperty = property; - try { - return value !== undefined && value.radar_wd_time !== undefined ? value.radar_wd_time : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_RADAR_WD_TIME Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE) { - const numericProperty = property; - try { - return value !== undefined && value.auto_voice_id !== undefined ? value.auto_voice_id : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS) { - switch (property.name) { - case types_1.PropertyName.DeviceLeavingReactionStartTime: { - const stringProperty = property; - try { - return (value !== undefined && value.start_hour !== undefined && value.start_min !== undefined) ? `${value.start_hour.padStart(2, "0")}:${value.start_min.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_MOTION_SET_LEAVING_REACTIONS DeviceLeavingReactionStartTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceLeavingReactionEndTime: { - const stringProperty = property; - try { - return (value !== undefined && value.end_hour !== undefined && value.end_min !== undefined) ? `${value.end_hour.padStart(2, "0")}:${value.end_min.padStart(2, "0")}` : stringProperty.default !== undefined ? stringProperty.default : ""; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_MOTION_SET_LEAVING_REACTIONS DeviceLeavingReactionEndTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return stringProperty.default !== undefined ? stringProperty.default : ""; - } - } - case types_1.PropertyName.DeviceLeavingReactionNotification: { - const booleanProperty = property; - try { - return value !== undefined && value.push_notify === 1 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_MOTION_SET_LEAVING_REACTIONS DeviceLeavingReactionNotification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - } - } - else if (property.key === types_2.CommandType.CMD_SET_SNOOZE_MODE) { - switch (property.name) { - case types_1.PropertyName.DeviceSnooze: { - const booleanProperty = property; - try { - return value !== undefined && value.snooze_time !== undefined && value.snooze_time !== "" && Number.parseInt(value.snooze_time) !== 0 ? true : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnooze Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceSnoozeTime: { - const numericProperty = property; - try { - return value !== undefined && value.snooze_time !== undefined && value.snooze_time !== "" ? Number.parseInt(value.snooze_time) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - case types_1.PropertyName.DeviceSnoozeStartTime: { - const numericProperty = property; - try { - return value !== undefined && value.startTime !== undefined ? Number.parseInt(value.startTime) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeTime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - case types_1.PropertyName.DeviceSnoozeHomebase: { - const booleanProperty = property; - try { - return value !== undefined && value.homebase_onoff !== undefined ? (value.homebase_onoff === 1 ? true : false) : (booleanProperty.default !== undefined ? booleanProperty.default : false); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeHomebase Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceSnoozeMotion: { - const booleanProperty = property; - try { - return value !== undefined && value.motion_notify_onoff !== undefined ? (value.motion_notify_onoff === 1 ? true : false) : (booleanProperty.default !== undefined ? booleanProperty.default : false); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeMotion Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - case types_1.PropertyName.DeviceSnoozeChime: { - const booleanProperty = property; - try { - return value !== undefined && value.chime_onoff !== undefined ? (value.chime_onoff === 1 ? true : false) : (booleanProperty.default !== undefined ? booleanProperty.default : false); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_SET_SNOOZE_MODE DeviceSnoozeChime Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - } - } - else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition || - property.name === types_1.PropertyName.DeviceMotionDetectionTypePet || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.getStationSerial().startsWith("T8030")) { - const booleanProperty = property; - try { - return (0, utils_1.isHB3DetectionModeEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.HB3DetectionTypes.HUMAN_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition ? types_1.HB3DetectionTypes.HUMAN_RECOGNITION : property.name === types_1.PropertyName.DeviceMotionDetectionTypePet ? types_1.HB3DetectionTypes.PET_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle ? types_1.HB3DetectionTypes.VEHICLE_DETECTION : types_1.HB3DetectionTypes.ALL_OTHER_MOTION); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - HB3 motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.isOutdoorPanAndTiltCamera()) { - const booleanProperty = property; - try { - return (0, utils_1.isT8170DetectionModeEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.T8170DetectionTypes.HUMAN_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypeVehicle ? types_1.T8170DetectionTypes.VEHICLE_DETECTION : types_1.T8170DetectionTypes.ALL_OTHER_MOTION); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - T8170 motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || - property.name === types_1.PropertyName.DeviceMotionDetectionTypePet || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.isIndoorPanAndTiltCameraS350()) { - const booleanProperty = property; - try { - return (0, utils_1.isIndoorS350DetectionModeEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.IndoorS350DetectionTypes.HUMAN_DETECTION : property.name === types_1.PropertyName.DeviceMotionDetectionTypePet ? types_1.IndoorS350DetectionTypes.PET_DETECTION : types_1.IndoorS350DetectionTypes.ALL_OTHER_MOTION); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - T8416 motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if ((property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman || - property.name === types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions) && this.isSoloCameras()) { - const booleanProperty = property; - try { - return property.name === types_1.PropertyName.DeviceMotionDetectionTypeHuman ? types_1.SoloCameraDetectionTypes.HUMAN_DETECTION === Number.parseInt(value) ? true : false : types_1.SoloCameraDetectionTypes.ALL_OTHER_MOTION === Number.parseInt(value) ? true : false; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - SoloCamera motion detection type Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if ((property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion || - property.name === types_1.PropertyName.DeviceNotificationPerson || - property.name === types_1.PropertyName.DeviceNotificationPet || - property.name === types_1.PropertyName.DeviceNotificationCrying || - property.name === types_1.PropertyName.DeviceNotificationAllSound) && this.isIndoorPanAndTiltCameraS350()) { - const booleanProperty = property; - try { - return (0, utils_1.isIndoorNotitficationEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion ? types_1.IndoorS350NotificationTypes.ALL_OTHER_MOTION : property.name === types_1.PropertyName.DeviceNotificationPerson ? types_1.IndoorS350NotificationTypes.HUMAN : property.name === types_1.PropertyName.DeviceNotificationPet ? types_1.IndoorS350NotificationTypes.PET : property.name === types_1.PropertyName.DeviceNotificationCrying ? types_1.IndoorS350NotificationTypes.CRYING : types_1.IndoorS350NotificationTypes.ALL_SOUND); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - IndoorPanAndTiltCameraS350 notification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if ((property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion || - property.name === types_1.PropertyName.DeviceNotificationPerson || - property.name === types_1.PropertyName.DeviceNotificationPet || - property.name === types_1.PropertyName.DeviceNotificationVehicle) && this.isFloodLightT8425()) { - const booleanProperty = property; - try { - return (0, utils_1.isFloodlightT8425NotitficationEnabled)(Number.parseInt(value), property.name === types_1.PropertyName.DeviceNotificationAllOtherMotion ? types_1.FloodlightT8425NotificationTypes.ALL_OTHER_MOTION : property.name === types_1.PropertyName.DeviceNotificationPerson ? types_1.FloodlightT8425NotificationTypes.HUMAN : property.name === types_1.PropertyName.DeviceNotificationPet ? types_1.FloodlightT8425NotificationTypes.PET : types_1.FloodlightT8425NotificationTypes.VEHICLE); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - FloodLightT8425 notification Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if (property.key === types_2.CommandType.CELLULAR_INFO) { - switch (property.name) { - case types_1.PropertyName.DeviceCellularSignal: { - const stringProperty = property; - return value !== undefined && value.Signal !== undefined ? String(value.Signal) : (stringProperty.default !== undefined ? stringProperty.default : ""); - } - case types_1.PropertyName.DeviceCellularBand: { - const stringProperty = property; - return value !== undefined && value.band !== undefined ? String(value.band) : (stringProperty.default !== undefined ? stringProperty.default : ""); - } - case types_1.PropertyName.DeviceCellularIMEI: { - const stringProperty = property; - return value !== undefined && value.imei !== undefined ? String(value.imei) : (stringProperty.default !== undefined ? stringProperty.default : ""); - } - case types_1.PropertyName.DeviceCellularICCID: { - const stringProperty = property; - return value !== undefined && value.iccid !== undefined ? String(value.iccid) : (stringProperty.default !== undefined ? stringProperty.default : ""); - } - } - } - else if (property.key === types_2.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2) { - const numericProperty = property; - const quality = value; - let mode = quality.mode_1; - if (quality.cur_mode === 0) { - mode = quality.mode_0; - } - try { - return value !== undefined && mode !== undefined && mode.quality !== undefined ? mode.quality : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_VIDEO_QUALITY2 Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2) { - const numericProperty = property; - const quality = value; - let mode = quality.mode_1; - if (quality.cur_mode === 0) { - mode = quality.mode_0; - } - try { - return value !== undefined && mode !== undefined && mode.quality !== undefined ? mode.quality : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - CMD_BAT_DOORBELL_RECORD_QUALITY2 Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.key === types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP && this.isCameraProfessional247()) { - return value !== undefined ? (value === "0" ? true : false) : false; - } - else if (property.key === types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425) { - const currentValue = value; - switch (property.name) { - case types_1.PropertyName.DeviceMotionDetectionRange: { - const numericProperty = property; - return currentValue !== undefined && currentValue.cur_mode !== undefined ? currentValue.cur_mode : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceMotionDetectionRangeStandardSensitivity: { - const numericProperty = property; - return currentValue !== undefined && currentValue.mode0 !== undefined && Array.isArray(currentValue.mode0) && currentValue.mode0.length > 0 && currentValue.mode0.find((element) => element.id === 1) !== undefined ? currentValue.mode0.find((element) => element.id === 1).sst : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity: { - const numericProperty = property; - return currentValue !== undefined && currentValue.mode1 !== undefined && Array.isArray(currentValue.mode1) && currentValue.mode1.length > 0 && currentValue.mode1.find((element) => element.id === 1) !== undefined ? currentValue.mode1.find((element) => element.id === 1).sst : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity: { - const numericProperty = property; - return currentValue !== undefined && currentValue.mode1 !== undefined && Array.isArray(currentValue.mode1) && currentValue.mode1.length > 0 && currentValue.mode1.find((element) => element.id === 2) !== undefined ? currentValue.mode1.find((element) => element.id === 2).sst : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceMotionDetectionTestMode: { - const booleanProperty = property; - return currentValue !== undefined && currentValue.test_mode !== undefined ? currentValue.test_mode === 1 ? true : false : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - } - else if (property.key === types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425) { - const currentValue = value; - const numericProperty = property; - return currentValue !== undefined && currentValue.brightness !== undefined ? currentValue.brightness : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - else if (property.key === types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425) { - const currentValue = value; - switch (property.name) { - case types_1.PropertyName.DeviceLightSettingsBrightnessMotion: { - const numericProperty = property; - return currentValue !== undefined && currentValue.brightness !== undefined ? currentValue.brightness : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceLightSettingsMotionActivationMode: { - const numericProperty = property; - return currentValue !== undefined && currentValue.mode !== undefined ? currentValue.mode : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceLightSettingsMotionTriggeredTimer: { - const numericProperty = property; - return currentValue !== undefined && currentValue.time !== undefined ? currentValue.time : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - case types_1.PropertyName.DeviceLightSettingsMotionTriggered: { - const booleanProperty = property; - return currentValue !== undefined && currentValue.enable !== undefined ? currentValue.enable === 1 ? true : false : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - } - else if (property.key === types_2.CommandType.SUB1G_REP_UNPLUG_POWER_LINE) { - const numericProperty = property; - try { - const rawCharging = Number.parseInt(value); - return rawCharging !== undefined ? ((0, utils_2.isCharging)(rawCharging) ? 1 : 0) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.warn("Device convert raw property - SUB1G_REP_UNPLUG_POWER_LINE Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.name === types_1.PropertyName.Model && this.isLockWifiT8510P()) { - return "T8510P"; - } - else if (property.type === "number") { - const numericProperty = property; - try { - return value !== undefined ? Number.parseInt(value) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.warn("Device convert raw property - PropertyMetadataNumeric Convert Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.type === "boolean") { - const booleanProperty = property; - try { - return value !== undefined ? (typeof value === "number" ? !!value : (value === "1" || value.toLowerCase() === "true" ? true : false)) : (booleanProperty.default !== undefined ? booleanProperty.default : false); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.warn("Device convert raw property - PropertyMetadataBoolean Convert Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if (property.type === "string") { - const stringProperty = property; - return value !== undefined ? value : (stringProperty.default !== undefined ? stringProperty.default : ""); - } - else if (property.type === "object") { - const objectProperty = property; - return value !== undefined ? value : (objectProperty.default !== undefined ? objectProperty.default : undefined); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Device convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return value; - } - getPropertyMetadata(name, hidden = false) { - const property = this.getPropertiesMetadata(hidden)[name]; - if (property !== undefined) - return property; - throw new error_1.InvalidPropertyError("Property name is not valid", { context: { name: name } }); - } - getPropertyValue(name) { - return this.properties[name]; - } - hasPropertyValue(name) { - return this.getPropertyValue(name) !== undefined; - } - getRawProperty(type) { - return this.rawProperties[type]?.value; - } - getRawProperties() { - return this.rawProperties; - } - getProperties() { - const result = {}; - for (const property of Object.keys(this.properties)) { - if (!property.startsWith("hidden-")) - result[property] = this.properties[property]; - } - return result; - } - getPropertiesMetadata(hidden = false) { - let metadata = { - ...types_1.DeviceProperties[this.getDeviceType()] - }; - if (this.isFloodLightT8420X()) { - metadata = { - ...types_1.FloodlightT8420XDeviceProperties - }; - } - else if (this.isWiredDoorbellT8200X()) { - metadata = { - ...types_1.WiredDoorbellT8200XDeviceProperties - }; - } - else if (this.isLockWifiT8510P()) { - metadata = { - ...types_1.LockT8510PDeviceProperties - }; - metadata[types_1.PropertyName.Type].states[this.getDeviceType()] = "Smart Lock S230 (T8510P)"; - } - else if (this.isLockWifiT8520P()) { - metadata = { - ...types_1.LockT8520PDeviceProperties - }; - metadata[types_1.PropertyName.Type].states[this.getDeviceType()] = "Smart Lock S231 (T8520P)"; - } - else if (this.isSoloCameras() && station_1.Station.isStationHomeBase3BySn(this.getStationSerial())) { - const newMetadata = { - ...metadata - }; - newMetadata[types_1.PropertyName.DeviceAudioRecording] = types_1.DeviceAudioRecordingProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetectionSensitivity] = types_1.DeviceMotionDetectionSensitivityCamera2Property; - newMetadata[types_1.PropertyName.DeviceVideoRecordingQuality] = types_1.DeviceVideoRecordingQualitySoloCamerasHB3Property; - newMetadata[types_1.PropertyName.DeviceNotificationType] = types_1.DeviceNotificationTypeProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetection] = types_1.DeviceMotionDetectionProperty; - metadata = newMetadata; - } - else if (this.isIndoorPanAndTiltCameraS350() && station_1.Station.isStationHomeBase3BySn(this.getStationSerial())) { - const newMetadata = { - ...metadata - }; - newMetadata[types_1.PropertyName.DeviceMotionDetection] = types_1.DeviceMotionDetectionProperty; - newMetadata[types_1.PropertyName.DeviceAudioRecording] = types_1.DeviceAudioRecordingProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetectionSensitivity] = types_1.DeviceMotionDetectionSensitivityBatteryDoorbellProperty; - newMetadata[types_1.PropertyName.DeviceStatusLed] = types_1.DeviceStatusLedIndoorS350Property; - metadata = newMetadata; - } - if (station_1.Station.isStationHomeBase3BySn(this.getStationSerial()) && (metadata[types_1.PropertyName.DeviceMotionDetectionType] !== undefined || metadata[types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions] !== undefined) && this.isCamera()) { - const newMetadata = { - ...metadata - }; - delete newMetadata[types_1.PropertyName.DeviceMotionDetectionType]; - delete newMetadata[types_1.PropertyName.DeviceLastChargingDays]; - delete newMetadata[types_1.PropertyName.DeviceLastChargingFalseEvents]; - delete newMetadata[types_1.PropertyName.DeviceLastChargingRecordedEvents]; - delete newMetadata[types_1.PropertyName.DeviceLastChargingTotalEvents]; - delete newMetadata[types_1.PropertyName.DeviceBatteryUsageLastWeek]; - newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeHuman] = types_1.DeviceMotionHB3DetectionTypeHumanProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition] = types_1.DeviceMotionHB3DetectionTypeHumanRecognitionProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetectionTypePet] = types_1.DeviceMotionHB3DetectionTypePetProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeVehicle] = types_1.DeviceMotionHB3DetectionTypeVehicleProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions] = types_1.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty; - newMetadata[types_1.PropertyName.DevicePersonDetected] = types_1.DevicePersonDetectedProperty; - newMetadata[types_1.PropertyName.DeviceMotionDetected] = types_1.DeviceMotionDetectedProperty; - newMetadata[types_1.PropertyName.DevicePetDetected] = types_1.DevicePetDetectedProperty; - newMetadata[types_1.PropertyName.DeviceSoundDetected] = types_1.DeviceSoundDetectedProperty; - newMetadata[types_1.PropertyName.DeviceCryingDetected] = types_1.DeviceCryingDetectedProperty; - newMetadata[types_1.PropertyName.DeviceIdentityPersonDetected] = types_1.DeviceIdentityPersonDetectedProperty; - newMetadata[types_1.PropertyName.DeviceStrangerPersonDetected] = types_1.DeviceStrangerPersonDetectedProperty; - newMetadata[types_1.PropertyName.DeviceVehicleDetected] = types_1.DeviceVehicleDetectedProperty; - newMetadata[types_1.PropertyName.DeviceDogDetected] = types_1.DeviceDogDetectedProperty; - newMetadata[types_1.PropertyName.DeviceDogLickDetected] = types_1.DeviceDogLickDetectedProperty; - newMetadata[types_1.PropertyName.DeviceDogPoopDetected] = types_1.DeviceDogPoopDetectedProperty; - newMetadata[types_1.PropertyName.DeviceDetectionStatisticsWorkingDays] = types_1.DeviceDetectionStatisticsWorkingDaysProperty; - newMetadata[types_1.PropertyName.DeviceDetectionStatisticsDetectedEvents] = types_1.DeviceDetectionStatisticsDetectedEventsProperty; - newMetadata[types_1.PropertyName.DeviceDetectionStatisticsRecordedEvents] = types_1.DeviceDetectionStatisticsRecordedEventsProperty; - if (!this.isSmartDrop()) { - //TODO: Check with future devices if this property overriding is correct (for example with indoor cameras etc.) - newMetadata[types_1.PropertyName.DeviceEnabled] = types_1.DeviceEnabledSoloProperty; - } - metadata = newMetadata; - } - else if (Object.keys(metadata).length === 0) { - metadata = { - ...types_1.GenericDeviceProperties - }; - } - if (!hidden) { - for (const property of Object.keys(metadata)) { - if (property.startsWith("hidden-")) - delete metadata[property]; - } - } - return metadata; - } - hasProperty(name, hidden = false) { - return this.getPropertiesMetadata(hidden)[name] !== undefined; - } - getCommands() { - const commands = types_1.DeviceCommands[this.getDeviceType()]; - if (commands === undefined) - return []; - return commands; - } - hasCommand(name) { - return this.getCommands().includes(name); - } - processPushNotification(_station, _message, _eventDurationSeconds) { - // Nothing to do - } - setCustomPropertyValue(name, value) { - const metadata = this.getPropertyMetadata(name); - if (typeof metadata.key === "string" && metadata.key.startsWith("custom_")) { - this.updateProperty(name, value); - } - } - destroy() { - this.eventTimeouts.forEach((timeout) => { - clearTimeout(timeout); - }); - this.eventTimeouts.clear(); - this.pictureEventTimeouts.forEach((timeout) => { - clearTimeout(timeout); - }); - this.pictureEventTimeouts.clear(); - } - clearEventTimeout(eventType) { - const timeout = this.eventTimeouts.get(eventType); - if (timeout !== undefined) { - clearTimeout(timeout); - this.eventTimeouts.delete(eventType); - } - } - static isSupported(type) { - return types_1.DeviceProperties[type] !== undefined ? true : false; - } - static isCamera(type) { - if (type == types_1.DeviceType.CAMERA || - type == types_1.DeviceType.CAMERA2 || - type == types_1.DeviceType.CAMERA_E || - type == types_1.DeviceType.CAMERA2C || - type == types_1.DeviceType.INDOOR_CAMERA || - type == types_1.DeviceType.INDOOR_PT_CAMERA || - type == types_1.DeviceType.FLOODLIGHT || - type == types_1.DeviceType.DOORBELL || - type == types_1.DeviceType.BATTERY_DOORBELL || - type == types_1.DeviceType.BATTERY_DOORBELL_2 || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || - type == types_1.DeviceType.BATTERY_DOORBELL_C30 || - type == types_1.DeviceType.BATTERY_DOORBELL_C31 || - type == types_1.DeviceType.DOORBELL_SOLO || - type == types_1.DeviceType.CAMERA2C_PRO || - type == types_1.DeviceType.CAMERA2_PRO || - type == types_1.DeviceType.CAMERA3 || - type == types_1.DeviceType.CAMERA3C || - type == types_1.DeviceType.CAMERA3_PRO || - type == types_1.DeviceType.PROFESSIONAL_247 || - type == types_1.DeviceType.INDOOR_CAMERA_1080 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_1080 || - type == types_1.DeviceType.OUTDOOR_PT_CAMERA || - type == types_1.DeviceType.EUFYCAM_S4 || - type == types_1.DeviceType.SOLO_CAMERA || - type == types_1.DeviceType.SOLO_CAMERA_PRO || - type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 || - type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_2K || - type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR || - type == types_1.DeviceType.SOLO_CAMERA_SOLAR || - type == types_1.DeviceType.SOLO_CAMERA_C210 || - type == types_1.DeviceType.SOLO_CAMERA_E30 || - type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P || - type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT || - type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_2K || - type == types_1.DeviceType.INDOOR_COST_DOWN_CAMERA || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425 || - type == types_1.DeviceType.WALL_LIGHT_CAM || - type == types_1.DeviceType.WALL_LIGHT_CAM_81A0 || - type == types_1.DeviceType.CAMERA_GARAGE_T8453_COMMON || - type == types_1.DeviceType.CAMERA_GARAGE_T8453 || - type == types_1.DeviceType.CAMERA_GARAGE_T8452 || - type == types_1.DeviceType.CAMERA_FG || - type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3 || - type == types_1.DeviceType.SMART_DROP) - return true; - return false; - } - static hasBattery(type) { - if (type == types_1.DeviceType.CAMERA || - type == types_1.DeviceType.CAMERA2 || - type == types_1.DeviceType.CAMERA_E || - type == types_1.DeviceType.CAMERA2C || - type == types_1.DeviceType.BATTERY_DOORBELL || - type == types_1.DeviceType.BATTERY_DOORBELL_2 || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || - type == types_1.DeviceType.BATTERY_DOORBELL_C30 || - type == types_1.DeviceType.BATTERY_DOORBELL_C31 || - type == types_1.DeviceType.CAMERA2C_PRO || - type == types_1.DeviceType.CAMERA2_PRO || - type == types_1.DeviceType.CAMERA3 || - type == types_1.DeviceType.CAMERA3C || - type == types_1.DeviceType.CAMERA3_PRO || - type == types_1.DeviceType.SOLO_CAMERA || - type == types_1.DeviceType.SOLO_CAMERA_PRO || - type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 || - type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_2K || - type == types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR || - type == types_1.DeviceType.SOLO_CAMERA_SOLAR || - type == types_1.DeviceType.SOLO_CAMERA_C210 || - type == types_1.DeviceType.SOLO_CAMERA_E30 || - type == types_1.DeviceType.LOCK_WIFI || - type == types_1.DeviceType.LOCK_WIFI_NO_FINGER || - type == types_1.DeviceType.LOCK_8503 || - type == types_1.DeviceType.LOCK_8504 || - type == types_1.DeviceType.LOCK_8530 || - type == types_1.DeviceType.LOCK_8592 || - type == types_1.DeviceType.LOCK_85A3 || - type == types_1.DeviceType.LOCK_8506 || - type == types_1.DeviceType.LOCK_8502 || - type == types_1.DeviceType.SMART_SAFE_7400 || - type == types_1.DeviceType.SMART_SAFE_7401 || - type == types_1.DeviceType.SMART_SAFE_7402 || - type == types_1.DeviceType.SMART_SAFE_7403 || - type == types_1.DeviceType.CAMERA_FG || - type == types_1.DeviceType.WALL_LIGHT_CAM_81A0 || - type == types_1.DeviceType.SMART_DROP || - type == types_1.DeviceType.OUTDOOR_PT_CAMERA || - type == types_1.DeviceType.EUFYCAM_S4) - //TODO: Add other battery devices - return true; - return false; - } - static isStation(type) { - if (type == types_1.DeviceType.STATION || type === types_1.DeviceType.MINIBASE_CHIME) - return true; - return false; - } - static isCamera1(type) { - return types_1.DeviceType.CAMERA == type; - } - static isCameraE(type) { - return types_1.DeviceType.CAMERA_E == type; - } - static isSensor(type) { - if (type == types_1.DeviceType.SENSOR || - type == types_1.DeviceType.MOTION_SENSOR) - return true; - return false; - } - static isKeyPad(type) { - return types_1.DeviceType.KEYPAD == type; - } - static isDoorbell(type) { - if (type == types_1.DeviceType.DOORBELL || - type == types_1.DeviceType.BATTERY_DOORBELL || - type == types_1.DeviceType.BATTERY_DOORBELL_2 || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || - type == types_1.DeviceType.BATTERY_DOORBELL_C30 || - type == types_1.DeviceType.BATTERY_DOORBELL_C31 || - type == types_1.DeviceType.DOORBELL_SOLO) - return true; - return false; - } - static isWiredDoorbell(type) { - if (type == types_1.DeviceType.DOORBELL) - return true; - return false; - } - static isWiredDoorbellT8200X(type, serialnumber) { - if (type == types_1.DeviceType.DOORBELL && serialnumber.startsWith("T8200") && serialnumber.length > 7 && serialnumber.charAt(6) === "6") - return true; - return false; - } - static isWiredDoorbellDual(type) { - if (type == types_1.DeviceType.DOORBELL_SOLO) - return true; - return false; - } - static isIndoorCamera(type) { - if (type == types_1.DeviceType.INDOOR_CAMERA || - type == types_1.DeviceType.INDOOR_CAMERA_1080 || - type == types_1.DeviceType.INDOOR_PT_CAMERA || - type == types_1.DeviceType.INDOOR_PT_CAMERA_1080 || - type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P || - type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT || - type == types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_2K || - type == types_1.DeviceType.INDOOR_COST_DOWN_CAMERA || - type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3) - return true; - return false; - } - static isPanAndTiltCamera(type) { - if (type == types_1.DeviceType.INDOOR_PT_CAMERA || - type == types_1.DeviceType.INDOOR_PT_CAMERA_1080 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425 || - type == types_1.DeviceType.INDOOR_COST_DOWN_CAMERA || - type == types_1.DeviceType.OUTDOOR_PT_CAMERA || - type == types_1.DeviceType.EUFYCAM_S4 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3) - return true; - return false; - } - static isOutdoorPanAndTiltCamera(type) { - if (type == types_1.DeviceType.OUTDOOR_PT_CAMERA || - type == types_1.DeviceType.EUFYCAM_S4 || - type == types_1.DeviceType.SOLO_CAMERA_E30) - return true; - return false; - } - static isIndoorPanAndTiltCameraS350(type) { - if (type == types_1.DeviceType.INDOOR_PT_CAMERA_S350 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_E30 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C210 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V2 || - type == types_1.DeviceType.INDOOR_PT_CAMERA_C220_V3) - return true; - return false; - } - static isFloodLight(type) { - if (type == types_1.DeviceType.FLOODLIGHT || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || - type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425) - return true; - return false; - } - static isFloodLightT8420X(type, serialnumber) { - if (type == types_1.DeviceType.FLOODLIGHT && serialnumber.startsWith("T8420") && serialnumber.length > 7 && serialnumber.charAt(6) === "6") - return true; - return false; - } - static isFloodLightT8423(type) { - if (type == types_1.DeviceType.FLOODLIGHT_CAMERA_8423) - return true; - return false; - } - static isFloodLightT8425(type) { - if (type == types_1.DeviceType.FLOODLIGHT_CAMERA_8425) - return true; - return false; - } - static isWallLightCam(type) { - if (type == types_1.DeviceType.WALL_LIGHT_CAM || type == types_1.DeviceType.WALL_LIGHT_CAM_81A0) - return true; - return false; - } - static isLock(type) { - return Device.isLockBle(type) || - Device.isLockWifi(type, "") || - Device.isLockBleNoFinger(type) || - Device.isLockWifiNoFinger(type) || - Device.isLockWifiR10(type) || - Device.isLockWifiR20(type) || - Device.isLockWifiVideo(type) || - Device.isLockWifiT8506(type) || - Device.isLockWifiT8502(type); - } - static isLockKeypad(type) { - return Device.isLockWifiR10Keypad(type) || Device.isLockWifiR20Keypad(type); - } - static isLockBle(type) { - return types_1.DeviceType.LOCK_BLE == type; - } - static isLockBleNoFinger(type) { - return types_1.DeviceType.LOCK_BLE_NO_FINGER == type; - } - static isLockWifi(type, serialnumber) { - return types_1.DeviceType.LOCK_WIFI == type && !Device.isLockWifiT8510P(type, serialnumber) && !Device.isLockWifiT8520P(type, serialnumber); - } - static isLockWifiNoFinger(type) { - return types_1.DeviceType.LOCK_WIFI_NO_FINGER == type; - } - static isLockWifiR10(type) { - return types_1.DeviceType.LOCK_8503 == type; - } - static isLockWifiR20(type) { - return types_1.DeviceType.LOCK_8504 == type /*|| DeviceType.LOCK_8592 == type*/; - } - static isLockWifiVideo(type) { - return types_1.DeviceType.LOCK_8530 == type; - } - static isLockWifiR10Keypad(type) { - return types_1.DeviceType.LOCK_85A3 == type; - } - static isLockWifiR20Keypad(type) { - return types_1.DeviceType.LOCK_8592 == type; - } - static isLockWifiT8506(type) { - return types_1.DeviceType.LOCK_8506 == type; - } - static isLockWifiT8502(type) { - return types_1.DeviceType.LOCK_8502 == type; - } - static isLockWifiT8510P(type, serialnumber) { - if (type == types_1.DeviceType.LOCK_WIFI && serialnumber.startsWith("T8520") && serialnumber.length > 6 && serialnumber.charAt(6) === "8") - return true; - return false; - } - static isLockWifiT8520P(type, serialnumber) { - if (type == types_1.DeviceType.LOCK_WIFI && serialnumber.startsWith("T8520") && serialnumber.length > 6 && serialnumber.charAt(6) === "9") - return true; - return false; - } - static isBatteryDoorbell1(type) { - return types_1.DeviceType.BATTERY_DOORBELL == type; - } - static isBatteryDoorbell2(type) { - return types_1.DeviceType.BATTERY_DOORBELL_2 == type; - } - static isBatteryDoorbellDual(type) { - return types_1.DeviceType.BATTERY_DOORBELL_PLUS == type; - } - static isBatteryDoorbellDualE340(type) { - return types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 == type; - } - static isBatteryDoorbellC30(type) { - return types_1.DeviceType.BATTERY_DOORBELL_C30 == type; - } - static isBatteryDoorbellC31(type) { - return types_1.DeviceType.BATTERY_DOORBELL_C31 == type; - } - static isDoorbellDual(type) { - return types_1.DeviceType.DOORBELL_SOLO == type; - } - static isBatteryDoorbell(type) { - if (type == types_1.DeviceType.BATTERY_DOORBELL || - type == types_1.DeviceType.BATTERY_DOORBELL_2 || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS || - type == types_1.DeviceType.BATTERY_DOORBELL_PLUS_E340 || - type == types_1.DeviceType.BATTERY_DOORBELL_C30 || - type == types_1.DeviceType.BATTERY_DOORBELL_C31) - return true; - return false; - } - static isSoloCamera(type) { - return types_1.DeviceType.SOLO_CAMERA == type; - } - static isSoloCameraPro(type) { - return types_1.DeviceType.SOLO_CAMERA_PRO == type; - } - static isSoloCameraSpotlight1080(type) { - return types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_1080 == type; - } - static isSoloCameraSpotlight2k(type) { - return types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_2K == type; - } - static isSoloCameraSpotlightSolar(type) { - return types_1.DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR == type; - } - static isSoloCameraSolar(type) { - return types_1.DeviceType.SOLO_CAMERA_SOLAR == type; - } - static isSoloCameraC210(type) { - return types_1.DeviceType.SOLO_CAMERA_C210 == type; - } - static isSoloCameraE30(type) { - return types_1.DeviceType.SOLO_CAMERA_E30 == type; - } - static isSoloCameras(type) { - return Device.isSoloCamera(type) || - Device.isSoloCameraPro(type) || - Device.isSoloCameraSpotlight1080(type) || - Device.isSoloCameraSpotlight2k(type) || - Device.isSoloCameraSpotlightSolar(type) || - Device.isOutdoorPanAndTiltCamera(type) || - Device.isSoloCameraSolar(type) || - Device.isSoloCameraC210(type) || - Device.isSoloCameraE30(type); - } - static isStarlight4GLTE(type) { - return types_1.DeviceType.CAMERA_FG == type; - } - static isIndoorOutdoorCamera1080p(type) { - return types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P == type; - } - static isIndoorOutdoorCamera1080pNoLight(type) { - return types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT == type; - } - static isIndoorOutdoorCamera2k(type) { - return types_1.DeviceType.INDOOR_OUTDOOR_CAMERA_2K == type; - } - static isIndoorCamMini(type) { - return types_1.DeviceType.INDOOR_COST_DOWN_CAMERA == type; - } - static isCamera1Product(type) { - return Device.isCamera1(type) || Device.isCameraE(type); - } - static isCamera2(type) { - //T8114 - return types_1.DeviceType.CAMERA2 == type; - } - static isCamera2C(type) { - //T8113 - return types_1.DeviceType.CAMERA2C == type; - } - static isCamera2Pro(type) { - //T8140 - return types_1.DeviceType.CAMERA2_PRO == type; - } - static isCamera2CPro(type) { - //T8142 - return types_1.DeviceType.CAMERA2C_PRO == type; - } - static isCamera2Product(type) { - return Device.isCamera2(type) || Device.isCamera2C(type) || Device.isCamera2Pro(type) || Device.isCamera2CPro(type); - } - static isCamera3(type) { - return types_1.DeviceType.CAMERA3 == type; - } - static isCamera3C(type) { - return types_1.DeviceType.CAMERA3C == type; - } - static isCamera3Pro(type) { - return types_1.DeviceType.CAMERA3_PRO == type; - } - static isCameraProfessional247(type) { - // T8600 - E330 - return types_1.DeviceType.PROFESSIONAL_247 == type; - } - static isCamera3Product(type) { - return Device.isCamera3(type) || Device.isCamera3C(type) || Device.isCameraProfessional247(type) || Device.isCamera3Pro(type); - } - static isEntrySensor(type) { - //T8900 - return types_1.DeviceType.SENSOR == type; - } - static isMotionSensor(type) { - return types_1.DeviceType.MOTION_SENSOR == type; - } - static isSmartDrop(type) { - return types_1.DeviceType.SMART_DROP == type; - } - static isSmartSafe(type) { - if (type == types_1.DeviceType.SMART_SAFE_7400 || - type == types_1.DeviceType.SMART_SAFE_7401 || - type == types_1.DeviceType.SMART_SAFE_7402 || - type == types_1.DeviceType.SMART_SAFE_7403) - return true; - return false; - } - static isGarageCamera(type) { - if (type == types_1.DeviceType.CAMERA_GARAGE_T8452 || - type == types_1.DeviceType.CAMERA_GARAGE_T8453 || - type == types_1.DeviceType.CAMERA_GARAGE_T8453_COMMON) - return true; - return false; - } - static isIntegratedDeviceBySn(sn) { - //TODO: Update this implementation! - return sn.startsWith("T8420") || - sn.startsWith("T820") || - sn.startsWith("T8410") || - sn.startsWith("T8400") || - sn.startsWith("T8401") || - sn.startsWith("T8411") || - sn.startsWith("T8414") || - sn.startsWith("T8130") || - sn.startsWith("T8131") || - sn.startsWith("T8171") || - sn.startsWith("T8422") || - sn.startsWith("T8423") || - sn.startsWith("T8424") || - sn.startsWith("T8426") || - sn.startsWith("T8440") || - sn.startsWith("T8441") || - sn.startsWith("T8442"); - } - static isSoloCameraBySn(sn) { - return sn.startsWith("T8130") || - sn.startsWith("T8131") || - sn.startsWith("T8122") || - sn.startsWith("T8123") || - sn.startsWith("T8124") || - sn.startsWith("T8171") || - sn.startsWith("T8134"); - } - static isSmartDropBySn(sn) { - return sn.startsWith("T8790"); - } - static isLockBySn(sn) { - return sn.startsWith("T8510") || - sn.startsWith("T8520") || - sn.startsWith("T8500") || - sn.startsWith("T8501") || - sn.startsWith("T8503") || - sn.startsWith("T8502") || - sn.startsWith("T8504") || - sn.startsWith("T8506") || - sn.startsWith("T8530"); - } - static isGarageCameraBySn(sn) { - return sn.startsWith("T8453") || - sn.startsWith("T8452"); - } - static isFloodlightBySn(sn) { - return sn.startsWith("T8420") || - sn.startsWith("T8422") || - sn.startsWith("T8423") || - sn.startsWith("T8424") || - sn.startsWith("T8426"); - //(sn.startsWith("T8420") && sn.length > 7 && sn[6] == "6"); - } - static isIndoorCameraBySn(sn) { - return sn.startsWith("T8410") || - sn.startsWith("T8400") || - sn.startsWith("T8401") || - sn.startsWith("T8411") || - sn.startsWith("T8440") || - sn.startsWith("T8441") || - sn.startsWith("T8442") || - sn.startsWith("T8414"); - } - static is4GCameraBySn(sn) { - return sn.startsWith("T8150") || - sn.startsWith("T8151") || - sn.startsWith("T8152") || - sn.startsWith("T8153"); - } - static isSmartSafeBySn(sn) { - return sn.startsWith("T7400") || - sn.startsWith("T7401") || - sn.startsWith("T7402"); - } - static isSmartTrackCard(type) { - if (type == types_1.DeviceType.SMART_TRACK_CARD) - return true; - return false; - } - static isSmartTrackLink(type) { - if (type == types_1.DeviceType.SMART_TRACK_LINK) - return true; - return false; - } - static isSmartTrack(type) { - if (type == types_1.DeviceType.SMART_TRACK_LINK || - type == types_1.DeviceType.SMART_TRACK_CARD) - return true; - return false; - } - isCamera() { - return Device.isCamera(this.rawDevice.device_type); - } - isFloodLight() { - return Device.isFloodLight(this.rawDevice.device_type); - } - isFloodLightT8420X() { - return Device.isFloodLightT8420X(this.rawDevice.device_type, this.rawDevice.device_sn); - } - isFloodLightT8423() { - return Device.isFloodLightT8423(this.rawDevice.device_type); - } - isFloodLightT8425() { - return Device.isFloodLightT8425(this.rawDevice.device_type); - } - isWallLightCam() { - return Device.isWallLightCam(this.rawDevice.device_type); - } - isDoorbell() { - return Device.isDoorbell(this.rawDevice.device_type); - } - isWiredDoorbell() { - return Device.isWiredDoorbell(this.rawDevice.device_type); - } - isWiredDoorbellT8200X() { - return Device.isWiredDoorbellT8200X(this.rawDevice.device_type, this.rawDevice.device_sn); - } - isWiredDoorbellDual() { - return Device.isWiredDoorbellDual(this.rawDevice.device_type); - } - isLock() { - return Device.isLock(this.rawDevice.device_type); - } - isLockKeypad() { - return Device.isLockKeypad(this.rawDevice.device_type); - } - isLockBle() { - return Device.isLockBle(this.rawDevice.device_type); - } - isLockBleNoFinger() { - return Device.isLockBleNoFinger(this.rawDevice.device_type); - } - isLockWifi() { - return Device.isLockWifi(this.rawDevice.device_type, this.rawDevice.device_sn); - } - isLockWifiNoFinger() { - return Device.isLockWifiNoFinger(this.rawDevice.device_type); - } - isLockWifiR10() { - return Device.isLockWifiR10(this.rawDevice.device_type); - } - isLockWifiR20() { - return Device.isLockWifiR20(this.rawDevice.device_type); - } - isLockWifiVideo() { - return Device.isLockWifiVideo(this.rawDevice.device_type); - } - isLockWifiR10Keypad() { - return Device.isLockWifiR10Keypad(this.rawDevice.device_type); - } - isLockWifiR20Keypad() { - return Device.isLockWifiR20Keypad(this.rawDevice.device_type); - } - isLockWifiT8506() { - return Device.isLockWifiT8506(this.rawDevice.device_type); - } - isLockWifiT8502() { - return Device.isLockWifiT8502(this.rawDevice.device_type); - } - isLockWifiT8510P() { - return Device.isLockWifiT8510P(this.rawDevice.device_type, this.rawDevice.device_sn); - } - isLockWifiT8520P() { - return Device.isLockWifiT8520P(this.rawDevice.device_type, this.rawDevice.device_sn); - } - isBatteryDoorbell1() { - return Device.isBatteryDoorbell1(this.rawDevice.device_type); - } - isBatteryDoorbell2() { - return Device.isBatteryDoorbell2(this.rawDevice.device_type); - } - isBatteryDoorbellDual() { - return Device.isBatteryDoorbellDual(this.rawDevice.device_type); - } - isBatteryDoorbellDualE340() { - return Device.isBatteryDoorbellDualE340(this.rawDevice.device_type); - } - isBatteryDoorbellC30() { - return Device.isBatteryDoorbellC30(this.rawDevice.device_type); - } - isBatteryDoorbellC31() { - return Device.isBatteryDoorbellC31(this.rawDevice.device_type); - } - isDoorbellDual() { - return Device.isDoorbellDual(this.rawDevice.device_type); - } - isBatteryDoorbell() { - return Device.isBatteryDoorbell(this.rawDevice.device_type); - } - isSoloCamera() { - return Device.isSoloCamera(this.rawDevice.device_type); - } - isSoloCameraPro() { - return Device.isSoloCameraPro(this.rawDevice.device_type); - } - isSoloCameraSpotlight1080() { - return Device.isSoloCameraSpotlight1080(this.rawDevice.device_type); - } - isSoloCameraSpotlight2k() { - return Device.isSoloCameraSpotlight2k(this.rawDevice.device_type); - } - isSoloCameraSpotlightSolar() { - return Device.isSoloCameraSpotlightSolar(this.rawDevice.device_type); - } - isSoloCameraSolar() { - return Device.isSoloCameraSolar(this.rawDevice.device_type); - } - isSoloCameraC210() { - return Device.isSoloCameraC210(this.rawDevice.device_type); - } - isSoloCameraE30() { - return Device.isSoloCameraE30(this.rawDevice.device_type); - } - isStarlight4GLTE() { - return Device.isStarlight4GLTE(this.rawDevice.device_type); - } - isIndoorOutdoorCamera1080p() { - return Device.isIndoorOutdoorCamera1080p(this.rawDevice.device_type); - } - isIndoorOutdoorCamera1080pNoLight() { - return Device.isIndoorOutdoorCamera1080pNoLight(this.rawDevice.device_type); - } - isIndoorOutdoorCamera2k() { - return Device.isIndoorOutdoorCamera2k(this.rawDevice.device_type); - } - isIndoorCamMini() { - return Device.isIndoorCamMini(this.rawDevice.device_type); - } - isSoloCameras() { - return Device.isSoloCameras(this.rawDevice.device_type); - } - isCamera2() { - return Device.isCamera2(this.rawDevice.device_type); - } - isCamera2C() { - return Device.isCamera2C(this.rawDevice.device_type); - } - isCamera2Pro() { - return Device.isCamera2Pro(this.rawDevice.device_type); - } - isCamera2CPro() { - return Device.isCamera2CPro(this.rawDevice.device_type); - } - isCamera2Product() { - return Device.isCamera2Product(this.rawDevice.device_type); - } - isCamera3() { - return Device.isCamera3(this.rawDevice.device_type); - } - isCamera3C() { - return Device.isCamera3C(this.rawDevice.device_type); - } - isCameraProfessional247() { - return Device.isCameraProfessional247(this.rawDevice.device_type); - } - isCamera3Pro() { - return Device.isCamera3Pro(this.rawDevice.device_type); - } - isCamera3Product() { - return Device.isCamera3Product(this.rawDevice.device_type); - } - isEntrySensor() { - return Device.isEntrySensor(this.rawDevice.device_type); - } - isKeyPad() { - return Device.isKeyPad(this.rawDevice.device_type); - } - isMotionSensor() { - return Device.isMotionSensor(this.rawDevice.device_type); - } - isIndoorCamera() { - return Device.isIndoorCamera(this.rawDevice.device_type); - } - isPanAndTiltCamera() { - return Device.isPanAndTiltCamera(this.rawDevice.device_type); - } - isOutdoorPanAndTiltCamera() { - return Device.isOutdoorPanAndTiltCamera(this.rawDevice.device_type); - } - isIndoorPanAndTiltCameraS350() { - return Device.isIndoorPanAndTiltCameraS350(this.rawDevice.device_type); - } - isSmartDrop() { - return Device.isSmartDrop(this.rawDevice.device_type); - } - isSmartSafe() { - return Device.isSmartSafe(this.rawDevice.device_type); - } - isGarageCamera() { - return Device.isGarageCamera(this.rawDevice.device_type); - } - isIntegratedDevice() { - if (this.isLock() || this.isSmartDrop()) { - return this.rawDevice.device_sn === this.rawDevice.station_sn; - } - return this.isWiredDoorbellDual() || this.isFloodLight() || this.isWiredDoorbell() || this.isIndoorCamera() || this.isSoloCameras() || this.isWallLightCam(); - } - isSmartTrack() { - return Device.isSmartTrack(this.rawDevice.device_type); - } - isSmartTrackCard() { - return Device.isSmartTrackCard(this.rawDevice.device_type); - } - isSmartTrackLink() { - return Device.isSmartTrackLink(this.rawDevice.device_type); - } - hasBattery() { - return Device.hasBattery(this.rawDevice.device_type); - } - getDeviceKey() { - return this.rawDevice.station_sn + this.rawDevice.device_channel; - } - getDeviceType() { - return this.rawDevice.device_type; - } - getHardwareVersion() { - return this.rawDevice.main_hw_version; - } - getSoftwareVersion() { - return this.rawDevice.main_sw_version; - } - getModel() { - return this.rawDevice.device_model; - } - getName() { - return this.rawDevice.device_name; - } - getSerial() { - return this.rawDevice.device_sn; - } - getStationSerial() { - return this.rawDevice.station_sn; - } - async setParameters(params) { - return this.api.setParameters(this.rawDevice.station_sn, this.rawDevice.device_sn, params); - } - getChannel() { - return this.rawDevice.device_channel; - } - //TODO: To remove - getStateID(state, level = 2) { - switch (level) { - case 0: - return `${this.getStationSerial()}.${this.getStateChannel()}`; - case 1: - return `${this.getStationSerial()}.${this.getStateChannel()}.${this.getSerial()}`; - default: - if (state) - return `${this.getStationSerial()}.${this.getStateChannel()}.${this.getSerial()}.${state}`; - throw new Error("No state value passed."); - } - } - getStateChannel() { - return "devices"; - } - getWifiRssi() { - return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); - } - getStoragePath(filename) { - return (0, utils_1.getAbsoluteFilePath)(this.rawDevice.device_type, this.rawDevice.device_channel, filename); - } - isEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceEnabled); - } -} -exports.Device = Device; -class Camera extends Device { - constructor(api, device, deviceConfig) { - super(api, device, deviceConfig); - this.properties[types_1.PropertyName.DeviceMotionDetected] = false; - this.properties[types_1.PropertyName.DevicePersonDetected] = false; - this.properties[types_1.PropertyName.DevicePersonName] = ""; - } - static async getInstance(api, device, deviceConfig) { - return new Camera(api, device, deviceConfig); - } - getStateChannel() { - return "cameras"; - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: - return value !== undefined ? (value === "0" ? true : false) : false; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Camera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - getLastCameraImageURL() { - return this.getPropertyValue(types_1.PropertyName.DevicePictureUrl); - } - getMACAddress() { - return this.rawDevice.wifi_mac; - } - async startDetection() { - // Start camera detection. - //TODO: Deprecated. Will be removed! - await this.setParameters([{ paramType: types_1.ParamType.DETECT_SWITCH, paramValue: 1 }]).catch(err => { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Camera start detection - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial() }); - }); - } - async stopDetection() { - // Stop camera detection. - await this.setParameters([{ paramType: types_1.ParamType.DETECT_SWITCH, paramValue: 0 }]); - } - getState() { - return this.getPropertyValue(types_1.PropertyName.DeviceState); - } - async close() { - //TODO: Stop other things if implemented such as detection feature - } - getLastChargingDays() { - return this.rawDevice.charging_days; - } - getLastChargingFalseEvents() { - return this.rawDevice.charging_missing; - } - getLastChargingRecordedEvents() { - return this.rawDevice.charging_reserve; - } - getLastChargingTotalEvents() { - return this.rawDevice.charing_total; - } - getBatteryValue() { - return this.getPropertyValue(types_1.PropertyName.DeviceBattery); - } - getBatteryTemperature() { - return this.getPropertyValue(types_1.PropertyName.DeviceBatteryTemp); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isAutoNightVisionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceAutoNightvision); - } - isRTSPStreamEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceRTSPStream); - } - isAntiTheftDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceAntitheftDetection); - } - getWatermark() { - return this.getPropertyValue(types_1.PropertyName.DeviceWatermark); - } - isMotionDetected() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetected); - } - isPersonDetected() { - return this.getPropertyValue(types_1.PropertyName.DevicePersonDetected); - } - getDetectedPerson() { - return this.getPropertyValue(types_1.PropertyName.DevicePersonName); - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DevicePersonDetected || - metadata.name === types_1.PropertyName.DeviceIdentityPersonDetected || - metadata.name === types_1.PropertyName.DeviceStrangerPersonDetected) { - this.emit("person detected", this, newValue, this.getPropertyValue(types_1.PropertyName.DevicePersonName)); - if (metadata.name === types_1.PropertyName.DeviceStrangerPersonDetected) - this.emit("stranger person detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceMotionDetected) { - this.emit("motion detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceCryingDetected) { - this.emit("crying detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceDogDetected) { - this.emit("dog detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceDogLickDetected) { - this.emit("dog lick detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceDogPoopDetected) { - this.emit("dog poop detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DevicePetDetected) { - this.emit("pet detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceSoundDetected) { - this.emit("sound detected", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceVehicleDetected) { - this.emit("vehicle detected", this, newValue); - } - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { - if (message.event_type === types_3.CusPushEvent.SECURITY && message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - if (message.fetch_id !== undefined) { - // Person or someone identified - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - } - // Motion detected - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Camera process push notification - CusPushEvent.SECURITY - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - else if (message.msg_type === types_1.DeviceType.HB3) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.HB3PairedDevicePushEvent.PRESS_DOORBELL: - this.updateProperty(types_1.PropertyName.DeviceRinging, true); - this.clearEventTimeout(types_1.DeviceEvent.Ringing); - this.eventTimeouts.set(types_1.DeviceEvent.Ringing, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceRinging, false); - this.eventTimeouts.delete(types_1.DeviceEvent.Ringing); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.FACE_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.HB3PairedDevicePushEvent.CRYING_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceCryingDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.CryingDetected); - this.eventTimeouts.set(types_1.DeviceEvent.CryingDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceCryingDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.CryingDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.DOG_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceDogDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.DogDetected); - this.eventTimeouts.set(types_1.DeviceEvent.DogDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceDogDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.DogDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.DOG_LICK_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceDogLickDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.DogLickDetected); - this.eventTimeouts.set(types_1.DeviceEvent.DogLickDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceDogLickDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.DogLickDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.DOG_POOP_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceDogPoopDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.DogPoopDetected); - this.eventTimeouts.set(types_1.DeviceEvent.DogPoopDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceDogPoopDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.DogPoopDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.PET_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePetDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PetDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PetDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePetDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PetDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.HB3PairedDevicePushEvent.SOUND_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceSoundDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.SoundDetected); - this.eventTimeouts.set(types_1.DeviceEvent.SoundDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceSoundDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.SoundDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.HB3PairedDevicePushEvent.VEHICLE_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceVehicleDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.VehicleDetected); - this.eventTimeouts.set(types_1.DeviceEvent.VehicleDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceVehicleDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.VehicleDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.HB3PairedDevicePushEvent.IDENTITY_PERSON_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DeviceIdentityPersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.IdentityPersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.IdentityPersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DeviceIdentityPersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.IdentityPersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.HB3PairedDevicePushEvent.STRANGER_PERSON_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DeviceStrangerPersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.StrangerPersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.StrangerPersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DeviceStrangerPersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.StrangerPersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - default: - logging_1.rootHTTPLogger.debug("Camera process push notification - Unhandled homebase3 camera push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Camera process push notification - HB3PairedDevicePushEvent - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } - } -} -exports.Camera = Camera; -class SoloCamera extends Camera { - static async getInstance(api, device, deviceConfig) { - return new SoloCamera(api, device, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: - return value !== undefined ? (value === "0" ? true : false) : false; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("SoloCamera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.IndoorPushEvent.MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.IndoorPushEvent.FACE_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - default: - logging_1.rootHTTPLogger.debug("SoloCamera process push notification - Unhandled solo camera push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`SoloCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } -} -exports.SoloCamera = SoloCamera; -class IndoorCamera extends Camera { - constructor(api, device, deviceConfig) { - super(api, device, deviceConfig); - this.properties[types_1.PropertyName.DevicePetDetected] = false; - this.properties[types_1.PropertyName.DeviceSoundDetected] = false; - this.properties[types_1.PropertyName.DeviceCryingDetected] = false; - } - static async getInstance(api, device, deviceConfig) { - return new IndoorCamera(api, device, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } - isPetDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DevicePetDetection); - } - isSoundDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceSoundDetection); - } - isPetDetected() { - return this.getPropertyValue(types_1.PropertyName.DevicePetDetected); - } - isSoundDetected() { - return this.getPropertyValue(types_1.PropertyName.DeviceSoundDetected); - } - isCryingDetected() { - return this.getPropertyValue(types_1.PropertyName.DeviceCryingDetected); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.IndoorPushEvent.MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.IndoorPushEvent.FACE_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.IndoorPushEvent.CRYING_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceCryingDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.CryingDetected); - this.eventTimeouts.set(types_1.DeviceEvent.CryingDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceCryingDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.CryingDetected); - }, eventDurationSeconds * 1000)); - this.updateProperty(types_1.PropertyName.DeviceSoundDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.SoundDetected); - this.eventTimeouts.set(types_1.DeviceEvent.SoundDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceSoundDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.SoundDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.IndoorPushEvent.SOUND_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceSoundDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.SoundDetected); - this.eventTimeouts.set(types_1.DeviceEvent.SoundDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceSoundDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.SoundDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.IndoorPushEvent.PET_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePetDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PetDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PetDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePetDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PetDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - default: - logging_1.rootHTTPLogger.debug("IndoorCamera process push notification - Unhandled indoor camera push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`IndoorCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } - destroy() { - super.destroy(); - } -} -exports.IndoorCamera = IndoorCamera; -class DoorbellCamera extends Camera { - voices; - constructor(api, device, voices, deviceConfig) { - super(api, device, deviceConfig); - this.voices = voices; - this.properties[types_1.PropertyName.DeviceRinging] = false; - } - static async getInstance(api, device, deviceConfig) { - const voices = await api.getVoices(device.device_sn); - return new DoorbellCamera(api, device, voices, deviceConfig); - } - loadMetadataVoiceStates(propertyName, metadata) { - if (metadata[propertyName] !== undefined) { - const states = {}; - for (const voice of Object.values(this.voices)) { - states[voice.voice_id] = voice.desc; - } - metadata[propertyName].states = states; - } - return metadata; - } - getVoiceName(id) { - if (this.voices[id] !== undefined) - return this.voices[id].desc; - return ""; - } - getVoices() { - return this.voices; - } - getPropertiesMetadata(hidden = false) { - let metadata = super.getPropertiesMetadata(hidden); - metadata = this.loadMetadataVoiceStates(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice, metadata); - metadata = this.loadMetadataVoiceStates(types_1.PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice, metadata); - metadata = this.loadMetadataVoiceStates(types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice, metadata); - return metadata; - } - isRinging() { - return this.getPropertyValue(types_1.PropertyName.DeviceRinging); - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceRinging) { - this.emit("rings", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DevicePackageDelivered) { - this.emit("package delivered", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DevicePackageStranded) { - this.emit("package stranded", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DevicePackageTaken) { - this.emit("package taken", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceSomeoneLoitering) { - this.emit("someone loitering", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceRadarMotionDetected) { - this.emit("radar motion detected", this, newValue); - } - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.DoorbellPushEvent.MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.DoorbellPushEvent.FACE_DETECTION: - case types_3.DoorbellPushEvent.FAMILY_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.DoorbellPushEvent.PRESS_DOORBELL: - this.updateProperty(types_1.PropertyName.DeviceRinging, true); - this.clearEventTimeout(types_1.DeviceEvent.Ringing); - this.eventTimeouts.set(types_1.DeviceEvent.Ringing, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceRinging, false); - this.eventTimeouts.delete(types_1.DeviceEvent.Ringing); - }, eventDurationSeconds * 1000)); - break; - case types_3.DoorbellPushEvent.PACKAGE_DELIVERED: - this.updateProperty(types_1.PropertyName.DevicePackageDelivered, true); - this.clearEventTimeout(types_1.DeviceEvent.PackageDelivered); - this.eventTimeouts.set(types_1.DeviceEvent.PackageDelivered, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePackageDelivered, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PackageDelivered); - }, eventDurationSeconds * 1000)); - break; - case types_3.DoorbellPushEvent.PACKAGE_STRANDED: - this.updateProperty(types_1.PropertyName.DevicePackageStranded, true); - this.clearEventTimeout(types_1.DeviceEvent.PackageStranded); - this.eventTimeouts.set(types_1.DeviceEvent.PackageStranded, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePackageStranded, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PackageStranded); - }, eventDurationSeconds * 1000)); - break; - case types_3.DoorbellPushEvent.PACKAGE_TAKEN: - this.updateProperty(types_1.PropertyName.DevicePackageTaken, true); - this.clearEventTimeout(types_1.DeviceEvent.PackageTaken); - this.eventTimeouts.set(types_1.DeviceEvent.PackageTaken, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePackageTaken, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PackageTaken); - }, eventDurationSeconds * 1000)); - break; - case types_3.DoorbellPushEvent.SOMEONE_LOITERING: - this.updateProperty(types_1.PropertyName.DeviceSomeoneLoitering, true); - this.clearEventTimeout(types_1.DeviceEvent.SomeoneLoitering); - this.eventTimeouts.set(types_1.DeviceEvent.SomeoneLoitering, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceSomeoneLoitering, false); - this.eventTimeouts.delete(types_1.DeviceEvent.SomeoneLoitering); - }, eventDurationSeconds * 1000)); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.DoorbellPushEvent.RADAR_MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceRadarMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.RadarMotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.RadarMotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceRadarMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.RadarMotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.DoorbellPushEvent.AWAY_FROM_HOME: - this.updateProperty(types_1.PropertyName.DeviceSomeoneGoing, true); - this.clearEventTimeout(types_1.DeviceEvent.SomeoneGoing); - this.eventTimeouts.set(types_1.DeviceEvent.SomeoneGoing, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceSomeoneGoing, false); - this.eventTimeouts.delete(types_1.DeviceEvent.SomeoneGoing); - }, eventDurationSeconds * 1000)); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - default: - logging_1.rootHTTPLogger.debug("DoorbellCamera process push notification - Unhandled doorbell push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`DoorbellCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } -} -exports.DoorbellCamera = DoorbellCamera; -class WiredDoorbellCamera extends DoorbellCamera { - static async getInstance(api, device, deviceConfig) { - const voices = await api.getVoices(device.device_sn); - return new WiredDoorbellCamera(api, device, voices, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isAutoNightVisionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceAutoNightvision); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } -} -exports.WiredDoorbellCamera = WiredDoorbellCamera; -class BatteryDoorbellCamera extends DoorbellCamera { - static async getInstance(api, device, deviceConfig) { - const voices = await api.getVoices(device.device_sn); - return new BatteryDoorbellCamera(api, device, voices, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } -} -exports.BatteryDoorbellCamera = BatteryDoorbellCamera; -class FloodlightCamera extends Camera { - static async getInstance(api, device, deviceConfig) { - return new FloodlightCamera(api, device, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: - if (this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || this.getDeviceType() === types_1.DeviceType.FLOODLIGHT) - return value !== undefined ? (value === "0" ? true : false) : false; - break; - case types_2.CommandType.CMD_FLOODLIGHT_SET_AUTO_CALIBRATION: - if (this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) - return value !== undefined ? (value === "0" ? true : false) : false; - break; - case types_2.CommandType.CMD_RECORD_AUDIO_SWITCH: - return value !== undefined ? (value === "0" ? true : false) : false; - case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: - if (this.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) - return value !== undefined ? (value === "1" ? true : false) : false; - return value !== undefined ? (value === "0" ? true : false) : false; - case types_2.CommandType.CMD_SET_PIRSENSITIVITY: - switch (Number.parseInt(value)) { - case types_1.FloodlightMotionTriggeredDistance.MIN: - return 1; - case types_1.FloodlightMotionTriggeredDistance.LOW: - return 2; - case types_1.FloodlightMotionTriggeredDistance.MEDIUM: - return 3; - case types_1.FloodlightMotionTriggeredDistance.HIGH: - return 4; - case types_1.FloodlightMotionTriggeredDistance.MAX: - return 5; - default: - return 5; - } - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("FloodlightCamera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== types_1.DeviceType.HB3) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.IndoorPushEvent.MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.IndoorPushEvent.FACE_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - default: - logging_1.rootHTTPLogger.debug("FloodlightCamera process push notification - Unhandled floodlight push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`FloodlightCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } -} -exports.FloodlightCamera = FloodlightCamera; -class WallLightCam extends Camera { - static async getInstance(api, device, deviceConfig) { - return new WallLightCam(api, device, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: - return value !== undefined ? (value === "0" ? true : false) : false; - case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: - return value !== undefined ? (value === "1" ? true : false) : false; - case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING: - case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING: - case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING: - { - const defaultColor = { - red: 0, - green: 0, - blue: 0 - }; - const internal = value; - return internal !== undefined ? (internal.rgb_color !== undefined ? (0, utils_2.DecimalToRGBColor)(internal.rgb_color) : defaultColor) : defaultColor; - } - case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS: { - const result = []; - for (const color of value) { - result.push((0, utils_2.DecimalToRGBColor)(color.color)); - } - return result; - } - case types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES: { - const result = []; - for (const theme of value) { - result.push({ - colors: theme.colors.map((color) => (0, utils_2.DecimalToRGBColor)(color)), - mode: theme.mode, - name: theme.name, // 1 fade 2 blink - speed: theme.speed // Control speed 500 msec to 5 sec.; 500 msec steps - }); - } - return result; - } - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("WallLightCam convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - getPropertiesMetadata(hidden = false) { - const metadata = super.getPropertiesMetadata(hidden); - const themes = this.getPropertyValue(types_1.PropertyName.DeviceLightSettingsDynamicLightingThemes); - if (themes !== undefined) { - const states = {}; - for (let i = 0; i < themes.length; i++) { - states[i] = themes[i].name; - } - metadata[types_1.PropertyName.DeviceLightSettingsManualDynamicLighting].states = states; - metadata[types_1.PropertyName.DeviceLightSettingsScheduleDynamicLighting].states = states; - metadata[types_1.PropertyName.DeviceLightSettingsMotionDynamicLighting].states = states; - } - return metadata; - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.IndoorPushEvent.MOTION_DETECTION: - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - break; - case types_3.IndoorPushEvent.FACE_DETECTION: - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - if (this.config.simultaneousDetections) { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - break; - default: - logging_1.rootHTTPLogger.debug("WallLightCam process push notification - Unhandled WallLightCam push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`WallLightCam process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } -} -exports.WallLightCam = WallLightCam; -class GarageCamera extends Camera { - static async getInstance(api, device, deviceConfig) { - return new GarageCamera(api, device, deviceConfig); - } - isLedEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceStatusLed); - } - isMotionDetectionEnabled() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetection); - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD: - return value !== undefined ? (value === "1" ? true : false) : false; - case types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS: - if (value != undefined) { - const status = Number.parseInt(value); - if (status >= 0) { - if (property.name === types_1.PropertyName.DeviceDoor1Open) { - return (status & types_1.GarageDoorState.A_OPENED) === types_1.GarageDoorState.A_OPENED; - } - else if (property.name === types_1.PropertyName.DeviceDoor2Open) { - return (status & types_1.GarageDoorState.B_OPENED) === types_1.GarageDoorState.B_OPENED; - } - } - } - return false; - case types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS: - if (value != undefined) { - const sensorsData = value; - if (property.name === types_1.PropertyName.DeviceDoorSensor1BatteryLevel) { - if (sensorsData?.data?.door_1?.power !== undefined && sensorsData?.data?.door_1?.power > 1) { - this.updateProperty(types_1.PropertyName.DeviceDoorSensor1LowBattery, false); - } - return sensorsData?.data?.door_1?.power !== undefined ? sensorsData?.data?.door_1?.power : 0; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor2BatteryLevel) { - if (sensorsData?.data?.door_2?.power !== undefined && sensorsData?.data?.door_2?.power > 1) { - this.updateProperty(types_1.PropertyName.DeviceDoorSensor1LowBattery, false); - } - return sensorsData?.data?.door_2?.power !== undefined ? sensorsData?.data?.door_2?.power : 0; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor1MacAddress) { - return sensorsData?.data?.door_1?.mac_address !== undefined ? sensorsData?.data?.door_1?.mac_address : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor2MacAddress) { - return sensorsData?.data?.door_2?.mac_address !== undefined ? sensorsData?.data?.door_2?.mac_address : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor1Name) { - return sensorsData?.data?.door_1?.name !== undefined ? sensorsData?.data?.door_1?.name : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor2Name) { - return sensorsData?.data?.door_2?.name !== undefined ? sensorsData?.data?.door_2?.name : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor1SerialNumber) { - return sensorsData?.data?.door_1?.sn !== undefined ? sensorsData?.data?.door_1?.sn : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor2SerialNumber) { - return sensorsData?.data?.door_2?.sn !== undefined ? sensorsData?.data?.door_2?.sn : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor1Version) { - return sensorsData?.data?.door_1?.version !== undefined ? sensorsData?.data?.door_1?.version : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor2Version) { - return sensorsData?.data?.door_2?.version !== undefined ? sensorsData?.data?.door_2?.version : ""; - } - else if (property.name === types_1.PropertyName.DeviceDoorControlWarning) { - return sensorsData?.data?.door_1?.playalarm !== undefined ? sensorsData?.data?.door_1?.playalarm === 1 ? true : false : false; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor1Status) { - return sensorsData?.data?.door_1?.power !== undefined ? sensorsData?.data?.door_1?.power >= 1 && sensorsData?.data?.door_1?.sn !== "" ? 1 : 0 : 0; - } - else if (property.name === types_1.PropertyName.DeviceDoorSensor2Status) { - return sensorsData?.data?.door_2?.power !== undefined ? sensorsData?.data?.door_2?.power >= 1 && sensorsData?.data?.door_2?.sn !== "" ? 1 : 0 : 0; - } - } - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("GarageCamera convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - switch (message.event_type) { - case types_3.GarageDoorPushEvent.CLOSED_DOOR_BY_APP: - case types_3.GarageDoorPushEvent.CLOSED_DOOR_WITHOUT_APP: - case types_3.GarageDoorPushEvent.TIMEOUT_CLOSED_DOOR: - if (message.door_id === 1) { - this.updateProperty(types_1.PropertyName.DeviceDoor1Open, false); - } - else if (message.door_id === 2) { - this.updateProperty(types_1.PropertyName.DeviceDoor2Open, false); - } - break; - case types_3.GarageDoorPushEvent.OPEN_DOOR_BY_APP: - case types_3.GarageDoorPushEvent.OPEN_DOOR_WITHOUT_APP: - case types_3.GarageDoorPushEvent.TIMEOUT_DOOR_OPEN_WARNING: - case types_3.GarageDoorPushEvent.TIMEOUT_DOOR_OPEN_WARNING_MINUTES: - if (message.door_id === 1) { - this.updateProperty(types_1.PropertyName.DeviceDoor1Open, true); - } - else if (message.door_id === 2) { - this.updateProperty(types_1.PropertyName.DeviceDoor2Open, true); - } - break; - case types_3.GarageDoorPushEvent.LOW_BATTERY: - //TODO: Check if low battery status resets to false after battery change - if (message.door_id === 1) { - this.updateProperty(types_1.PropertyName.DeviceDoorSensor1LowBattery, true); - } - else if (message.door_id === 2) { - this.updateProperty(types_1.PropertyName.DeviceDoorSensor2LowBattery, true); - } - break; - default: - logging_1.rootHTTPLogger.debug("GarageCamera process push notification - Unhandled GarageDoor push event", message); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`GarageCamera process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } -} -exports.GarageCamera = GarageCamera; -class Sensor extends Device { - static async getInstance(api, device, deviceConfig) { - return new Sensor(api, device, deviceConfig); - } - getStateChannel() { - return "sensors"; - } - getState() { - return this.getPropertyValue(types_1.PropertyName.DeviceState); - } -} -exports.Sensor = Sensor; -class EntrySensor extends Sensor { - static async getInstance(api, device, deviceConfig) { - return new EntrySensor(api, device, deviceConfig); - } - isSensorOpen() { - return this.getPropertyValue(types_1.PropertyName.DeviceSensorOpen); - } - getSensorChangeTime() { - return this.getPropertyValue(types_1.PropertyName.DeviceSensorChangeTime); - } - isBatteryLow() { - return this.getPropertyValue(types_1.PropertyName.DeviceBatteryLow); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { - if (message.event_type === types_3.CusPushEvent.DOOR_SENSOR && message.device_sn === this.getSerial()) { - try { - if (message.sensor_open !== undefined) { - this.updateRawProperty(types_2.CommandType.CMD_ENTRY_SENSOR_STATUS, message.sensor_open ? "1" : "0", "push"); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`EntrySensor process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceSensorOpen && metadata.key === types_2.CommandType.CMD_ENTRY_SENSOR_STATUS) { - this.emit("open", this, newValue); - } - } -} -exports.EntrySensor = EntrySensor; -class MotionSensor extends Sensor { - static MOTION_COOLDOWN_MS = 120000; - //TODO: CMD_MOTION_SENSOR_ENABLE_LED = 1607 - //TODO: CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE = 1613 - //TODO: CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE = 1610 - //TODO: CMD_MOTION_SENSOR_SET_CHIRP_TONE = 1611 - //TODO: CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY = 1609 - //TODO: CMD_MOTION_SENSOR_WORK_MODE = 1612 - /*public static isMotionDetected(millis: number): { motion: boolean, cooldown_ms: number} { - const delta = new Date().getUTCMilliseconds() - millis; - if (delta < this.MOTION_COOLDOWN_MS) { - return { motion: true, cooldown_ms: this.MOTION_COOLDOWN_MS - delta}; - } - return { motion: false, cooldown_ms: 0}; - } - - public isMotionDetected(): { motion: boolean, cooldown_ms: number} { - return MotionSensor.isMotionDetected(this.getMotionSensorPIREvent()); - }*/ - constructor(api, device, deviceConfig) { - super(api, device, deviceConfig); - this.properties[types_1.PropertyName.DeviceMotionDetected] = false; - } - static async getInstance(api, device, deviceConfig) { - return new MotionSensor(api, device, deviceConfig); - } - isMotionDetected() { - return this.getPropertyValue(types_1.PropertyName.DeviceMotionDetected); - } - getMotionSensorPIREvent() { - //TODO: Implement P2P Control Event over active station connection - return this.getPropertyValue(types_1.PropertyName.DeviceMotionSensorPIREvent); - } - isBatteryLow() { - return this.getPropertyValue(types_1.PropertyName.DeviceBatteryLow); - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceMotionDetected) { - this.emit("motion detected", this, newValue); - } - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { - if (message.event_type === types_3.CusPushEvent.MOTION_SENSOR_PIR && message.device_sn === this.getSerial()) { - try { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.MotionDetected); - this.eventTimeouts.set(types_1.DeviceEvent.MotionDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceMotionDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.MotionDetected); - }, eventDurationSeconds * 1000)); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`MotionSensor process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } -} -exports.MotionSensor = MotionSensor; -class Lock extends Device { - static VERSION_CODE_SMART_LOCK = 3; - static VERSION_CODE_LOCKV12 = 18; - static async getInstance(api, device, deviceConfig) { - return new Lock(api, device, deviceConfig); - } - getStateChannel() { - return "locks"; - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceLocked) { - this.emit("locked", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { - this.emit("low battery", this, newValue); - } - else if ((metadata.key === types_2.CommandType.CMD_DOORLOCK_GET_STATE || metadata.key === types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS) && ((oldValue !== undefined && ((oldValue === 4 && newValue !== 4) || (oldValue !== 4 && newValue === 4))) || oldValue === undefined)) { - this.updateProperty(types_1.PropertyName.DeviceLocked, newValue === 4 ? true : false); - } - } - getState() { - return this.getPropertyValue(types_1.PropertyName.DeviceState); - } - getBatteryValue() { - return this.getPropertyValue(types_1.PropertyName.DeviceBattery); - } - getWifiRssi() { - return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); - } - isLocked() { - const param = this.getLockStatus(); - return param ? (param === 4 ? true : false) : false; - } - getLockStatus() { - return this.getPropertyValue(types_1.PropertyName.DeviceLockStatus); - } - // public isBatteryLow(): PropertyValue { - // return this.getPropertyValue(PropertyName.DeviceBatteryLow); - // } - static encodeESLCmdOnOff(short_user_id, nickname, lock) { - const buf1 = Buffer.from([types_2.ESLAnkerBleConstant.a, 2]); - const buf2 = Buffer.allocUnsafe(2); - buf2.writeUInt16BE(short_user_id); - const buf3 = Buffer.from([types_2.ESLAnkerBleConstant.b, 1, lock === true ? 1 : 0, types_2.ESLAnkerBleConstant.c, 4]); - const buf4 = Buffer.from((0, utils_2.eslTimestamp)()); - const buf5 = Buffer.from([types_2.ESLAnkerBleConstant.d, nickname.length]); - const buf6 = Buffer.from(nickname); - return Buffer.concat([buf1, buf2, buf3, buf4, buf5, buf6]); - } - static encodeESLCmdQueryStatus(admin_user_id) { - const buf1 = Buffer.from([types_2.ESLAnkerBleConstant.a, admin_user_id.length]); - const buf2 = Buffer.from(admin_user_id); - const buf3 = Buffer.from([types_2.ESLAnkerBleConstant.b, 4]); - const buf4 = Buffer.from((0, utils_2.eslTimestamp)()); - return Buffer.concat([buf1, buf2, buf3, buf4]); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.event_type !== undefined) { - this.processNotification(message.event_type, message.event_time, message.device_sn, message.person_name, eventDurationSeconds, "push"); - } - } - processMQTTNotification(message, eventDurationSeconds) { - if (message.eventType === types_3.LockPushEvent.STATUS_CHANGE) { - // Lock state event - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, message.lockState, "mqtt"); - } - else if (message.eventType === types_3.LockPushEvent.OTA_STATUS) { - // OTA Status - ignore event - } - else { - this.processNotification(message.eventType, message.eventTime, this.getSerial(), message.nickName, eventDurationSeconds, "mqtt"); - } - } - processNotification(eventType, eventTime, deviceSN, personName, eventDurationSeconds, source) { - if (deviceSN === this.getSerial()) { - try { - switch (eventType) { - case types_3.LockPushEvent.APP_LOCK: - case types_3.LockPushEvent.AUTO_LOCK: - case types_3.LockPushEvent.FINGER_LOCK: - case types_3.LockPushEvent.KEYPAD_LOCK: - case types_3.LockPushEvent.MANUAL_LOCK: - case types_3.LockPushEvent.PW_LOCK: - case types_3.LockPushEvent.TEMPORARY_PW_LOCK: - { - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, "4", source); - if (!(0, utils_3.isEmpty)(personName)) { - this.updateProperty(types_1.PropertyName.DevicePersonName, personName); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(eventType)); - this.clearEventTimeout(types_1.DeviceEvent.Lock); - this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); - this.eventTimeouts.delete(types_1.DeviceEvent.Lock); - }, eventDurationSeconds * 1000)); - } - break; - } - case types_3.LockPushEvent.APP_UNLOCK: - case types_3.LockPushEvent.AUTO_UNLOCK: - case types_3.LockPushEvent.FINGERPRINT_UNLOCK: - case types_3.LockPushEvent.MANUAL_UNLOCK: - case types_3.LockPushEvent.PW_UNLOCK: - case types_3.LockPushEvent.TEMPORARY_PW_UNLOCK: - { - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, "3", source); - if (!(0, utils_3.isEmpty)(personName)) { - this.updateProperty(types_1.PropertyName.DevicePersonName, personName); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(eventType)); - this.clearEventTimeout(types_1.DeviceEvent.Lock); - this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); - this.eventTimeouts.delete(types_1.DeviceEvent.Lock); - }, eventDurationSeconds * 1000)); - } - break; - } - case types_3.LockPushEvent.LOCK_MECHANICAL_ANOMALY: - case types_3.LockPushEvent.MECHANICAL_ANOMALY: - case types_3.LockPushEvent.VIOLENT_DESTRUCTION: - case types_3.LockPushEvent.MULTIPLE_ERRORS: - { - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, "5", source); - break; - } - case types_3.LockPushEvent.LOW_POWER: - case types_3.LockPushEvent.VERY_LOW_POWER: - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LowBattery); - this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); - }, eventDurationSeconds * 1000)); - break; - // case LockPushEvent.LOW_POWE: - // this.updateRawProperty(CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, "10"); - // break; - // case LockPushEvent.VERY_LOW_POWE: - // this.updateRawProperty(CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, "5"); - // break; - default: - logging_1.rootHTTPLogger.debug("Lock process push notification - Unhandled lock notification event", eventType, eventTime, deviceSN); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Lock process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), eventType: eventType, eventTime: eventTime, eventDurationSeconds: eventDurationSeconds, source: source }); - } - } - } - /*public static decodeCommand(command: number): void { - switch (command) { - case ESLCommand.ON_OFF_LOCK: - case 8: - break; - - case ESLCommand.QUERY_STATUS_IN_LOCK: - case 17: - break; - - case ESLCommand.NOTIFY: - case 18: - break; - default: - break; - } - }*/ - static getCurrentTimeInSeconds() { - const buffer = Buffer.allocUnsafe(4); - buffer.writeUint32LE((0, utils_2.getCurrentTimeInSeconds)()); - return buffer; - } - static getUInt8Buffer(value) { - const buffer = Buffer.allocUnsafe(1); - buffer.writeUInt8(value); - return buffer; - } - static getUint16LEBuffer(value) { - const buffer = Buffer.allocUnsafe(2); - buffer.writeUint16LE(value); - return buffer; - } - static getUint16BEBuffer(value) { - const buffer = Buffer.allocUnsafe(2); - buffer.writeUint16BE(value); - return buffer; - } - static encodeCmdStatus(user_id) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id, "hex")); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdUnlock(short_user_id, value, username) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(short_user_id, "hex")); - payload.write(this.getUInt8Buffer(value)); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(username)); - return payload.getData(); - } - static encodeCmdCalibrate(user_id) { - return this.encodeCmdStatus(user_id); - } - static encodeCmdAddUser(short_user_id, passcode, username, schedule, user_permission = 4) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(short_user_id, "hex")); - payload.write(Buffer.from(passcode, "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); - payload.write(this.getUInt8Buffer(user_permission)); - payload.write(Buffer.from(username)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdAddTemporaryUser(schedule, unlimited = false) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); - payload.write(this.getUInt8Buffer(unlimited === false ? 1 : 2)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdDeleteTemporaryUser(password_id) { - return this.encodeCmdStatus(password_id); - } - static encodeCmdDeleteUser(short_user_id) { - return this.encodeCmdStatus(short_user_id); - } - static encodeCmdVerifyPw(password) { - return this.encodeCmdStatus(password); - } - static encodeCmdQueryLockRecord(index) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16LEBuffer(index)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdQueryUser(short_user_id) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(short_user_id, "hex")); - payload.write(this.getUInt8Buffer(0)); //TODO: eSLQueryAllUsers.index - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdQueryPassword(password_id) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(password_id, "hex")); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdModifyPassword(password_id, passcode) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(password_id, "hex")); - payload.write(Buffer.from(passcode, "hex")); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdUpdateSchedule(short_user_id, schedule) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(short_user_id, "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdModifyUsername(username, password_id) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(password_id, "hex")); - payload.write(Buffer.from(username)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdGetLockParam(user_id) { - return this.encodeCmdStatus(user_id); - } - static encodeCmdSetLockParamAutoLock(enabled, lockTimeSeconds) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getUint16LEBuffer(lockTimeSeconds)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static hexTime = function (time) { - const buf = Buffer.allocUnsafe(2); - buf.writeUint8(Number.parseInt(time.split(":")[0])); - buf.writeUint8(Number.parseInt(time.split(":")[1]), 1); - return buf.readUInt16BE().toString(16).padStart(4, "0"); - }; - static encodeCmdSetLockParamAutoLockSchedule(enabled, schedule_start, schedule_end) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(Buffer.from(Lock.hexTime(schedule_start), "hex")); - payload.write(Buffer.from(Lock.hexTime(schedule_end), "hex")); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdSetLockParamOneTouchLock(enabled) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdSetLockParamWrongTryProtect(enabled, lockdownTime, attempts) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getUint16LEBuffer(lockdownTime)); - payload.write(this.getUInt8Buffer(attempts)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdSetLockParamScramblePasscode(enabled) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdSetLockParamSound(value) { - const payload = new utils_1.WritePayload(); - payload.write(this.getUint16BEBuffer(types_2.CommandType.CMD_SMARTLOCK_LOCK_SOUND)); - payload.write(this.getUInt8Buffer(value)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE: - if (property.name === types_1.PropertyName.DeviceNotification) { - return value !== undefined ? (0, utils_1.isSmartLockNotification)(Number.parseInt(value), 1 /* SmartLockNotification.ENABLED */) : false; - } - else if (property.name === types_1.PropertyName.DeviceNotificationLocked) { - return value !== undefined ? (0, utils_1.isSmartLockNotification)(Number.parseInt(value), 4 /* SmartLockNotification.LOCKED */) : false; - } - else if (property.name === types_1.PropertyName.DeviceNotificationUnlocked) { - return value !== undefined ? (0, utils_1.isSmartLockNotification)(Number.parseInt(value), 2 /* SmartLockNotification.UNLOCKED */) : false; - } - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("WallLightCam convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - static encodeCmdSmartLockUnlock(adminUserId, lock, username, shortUserId) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(lock ? 0 : 1)); - payload.write(Buffer.from(username)); - payload.write(Buffer.from(shortUserId, "hex")); - return payload.getData(); - } - static encodeCmdSmartLockCalibrate(adminUserId) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - return payload.getData(); - } - static encodeCmdSetSmartLockParamWrongTryProtect(adminUserId, enabled, attempts, lockdownTime) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(2)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getUInt8Buffer(attempts)); - payload.write(this.getUint16LEBuffer(lockdownTime)); - return payload.getData(); - } - static hexTimeSmartLock = function (time) { - const buf = Buffer.allocUnsafe(2); - buf.writeUint8(Number.parseInt(time.split(":")[0])); - buf.writeUint8(Number.parseInt(time.split(":")[1]), 1); - return buf; - }; - static encodeCmdSetSmartLockParamAutoLock(adminUserId, enabled, lockTimeSeconds, schedule, scheduleStart, scheduleEnd) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(0)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getUint16LEBuffer(lockTimeSeconds)); - payload.write(this.getUInt8Buffer(schedule === true ? 1 : 0)); - payload.write(this.hexTimeSmartLock(scheduleStart)); - payload.write(this.hexTimeSmartLock(scheduleEnd)); - return payload.getData(); - } - static encodeCmdSetSmartLockParamOneTouchLock(adminUserId, enabled) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(1)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - return payload.getData(); - } - static encodeCmdSetSmartLockParamScramblePasscode(adminUserId, enabled) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(3)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - return payload.getData(); - } - static encodeCmdSetSmartLockParamSound(adminUserId, value) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(4)); - payload.write(this.getUInt8Buffer(value)); - return payload.getData(); - } - static encodeCmdSmartLockAddUser(adminUserId, shortUserId, passcode, username, schedule, userPermission = 4) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(Buffer.from(passcode, "hex")); - payload.write(this.getUInt8Buffer(userPermission)); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); - payload.write(this.getUInt8Buffer(userPermission === 5 ? 1 : 0)); - payload.write(Buffer.from(username)); - payload.write(Buffer.from(shortUserId, "hex")); - return payload.getData(); - } - static encodeCmdSmartLockDeleteUser(adminUserId, shortUserId) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(Buffer.from(shortUserId, "hex")); - return payload.getData(); - } - static encodeCmdSmartLockUpdateSchedule(adminUserId, shortUserId, username, schedule, userPermission = 4) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(userPermission)); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", "hex")); - payload.write(Buffer.from(schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", "hex")); - payload.write(this.getUInt8Buffer(userPermission === 5 ? 1 : 0)); - payload.write(Buffer.from(username)); - payload.write(Buffer.from(shortUserId, "hex")); - return payload.getData(); - } - static encodeCmdSmartLockModifyPassword(adminUserId, passwordId, passcode) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(Buffer.from(passwordId, "hex")); - payload.write(Buffer.from(passcode, "hex")); - return payload.getData(); - } - static encodeCmdSmartLockGetUserList(adminUserId) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - payload.write(this.getUInt8Buffer(0)); - return payload.getData(); - } - static encodeCmdSmartLockStatus(adminUserId) { - const payload = new utils_1.WritePayload(); - payload.write(this.getCurrentTimeInSeconds()); - payload.write(Buffer.from(adminUserId)); - return payload.getData(); - } - static encodeCmdSmartLockGetParams(adminUserId) { - return this.encodeCmdSmartLockStatus(adminUserId); - } -} -exports.Lock = Lock; -class LockKeypad extends Device { - static async getInstance(api, device, deviceConfig) { - return new LockKeypad(api, device, deviceConfig); - } - getStateChannel() { - return "lock_keypads"; - } -} -exports.LockKeypad = LockKeypad; -class Keypad extends Device { - //TODO: CMD_KEYPAD_BATTERY_CHARGER_STATE = 1655 - //TODO: CMD_KEYPAD_BATTERY_TEMP_STATE = 1654 - //TODO: CMD_KEYPAD_GET_PASSWORD = 1657 - //TODO: CMD_KEYPAD_GET_PASSWORD_LIST = 1662 - //TODO: CMD_KEYPAD_IS_PSW_SET = 1670 - //TODO: CMD_KEYPAD_SET_CUSTOM_MAP = 1660 - //TODO: CMD_KEYPAD_SET_PASSWORD = 1650 - static async getInstance(api, device, deviceConfig) { - return new Keypad(api, device, deviceConfig); - } - getStateChannel() { - return "keypads"; - } - getState() { - return this.getPropertyValue(types_1.PropertyName.DeviceState); - } - isBatteryLow() { - return this.getPropertyValue(types_1.PropertyName.DeviceBatteryLow); - } - isBatteryCharging() { - return this.getPropertyValue(types_1.PropertyName.DeviceBatteryIsCharging); - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_KEYPAD_BATTERY_CHARGER_STATE: - return value !== undefined ? (value === "0" || value === "2" ? false : true) : false; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Keypad convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } -} -exports.Keypad = Keypad; -class SmartSafe extends Device { - static IV = "052E19EB3F880512E99EBB684D4DC1FE"; - static DATA_HEADER = [-1, 9]; - static VERSION_CODE = 1; - static PUSH_NOTIFICATION_POSITION = { - [types_1.PropertyName.DeviceNotificationUnlockByKey]: 0, - [types_1.PropertyName.DeviceNotificationUnlockByPIN]: 1, - [types_1.PropertyName.DeviceNotificationUnlockByFingerprint]: 2, - [types_1.PropertyName.DeviceNotificationUnlockByApp]: 3, - [types_1.PropertyName.DeviceNotificationDualUnlock]: 4, - [types_1.PropertyName.DeviceNotificationDualLock]: 5, - [types_1.PropertyName.DeviceNotificationWrongTryProtect]: 6, - [types_1.PropertyName.DeviceNotificationJammed]: 7, - }; - static async getInstance(api, device, deviceConfig) { - return new SmartSafe(api, device, deviceConfig); - } - getStateChannel() { - return "smartsafes"; - } - static getCurrentTimeInSeconds() { - const timeInSeconds = (0, utils_2.getCurrentTimeInSeconds)(); - const arr = new Uint8Array(4); - for (let i = 0; i < 4; i++) { - arr[i] = ((timeInSeconds >> (i * 8)) & 255); - } - return Buffer.from(arr); - } - static getUInt8Buffer(value) { - const buffer = Buffer.allocUnsafe(1); - buffer.writeUInt8(value); - return buffer; - } - static getUint16LEBuffer(value) { - const buffer = Buffer.allocUnsafe(2); - buffer.writeUint16LE(value); - return buffer; - } - static encodeCmdSingleUInt8(user_id, value) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id)); - payload.write(this.getUInt8Buffer(value)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdWrongTryProtect(user_id, enabled, attempts, lockdownTime) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getUInt8Buffer(attempts)); - payload.write(this.getUInt8Buffer(lockdownTime)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdLeftOpenAlarm(user_id, enabled, duration) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id)); - payload.write(this.getUInt8Buffer(enabled === true ? 1 : 0)); - payload.write(this.getUint16LEBuffer(duration)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdDualUnlock(user_id, enabled) { - return SmartSafe.encodeCmdSingleUInt8(user_id, enabled === true ? 1 : 0); - } - static encodeCmdScramblePIN(user_id, enabled) { - return SmartSafe.encodeCmdSingleUInt8(user_id, enabled === true ? 1 : 0); - } - static encodeCmdPowerSave(user_id, enabled) { - return SmartSafe.encodeCmdSingleUInt8(user_id, enabled === true ? 1 : 0); - } - static encodeCmdInteriorBrightness(user_id, interiorBrightness, duration) { - let convertedinteriorBrightness = 0; - switch (interiorBrightness) { - case 25: - convertedinteriorBrightness = 1; - break; - case 60: - convertedinteriorBrightness = 2; - break; - case 100: - convertedinteriorBrightness = 3; - break; - } - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id)); - payload.write(this.getUInt8Buffer(convertedinteriorBrightness)); - payload.write(this.getUInt8Buffer(duration)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdTamperAlarm(user_id, option) { - return SmartSafe.encodeCmdSingleUInt8(user_id, option); - } - static encodeCmdRemoteUnlock(user_id, option) { - return SmartSafe.encodeCmdSingleUInt8(user_id, option); - } - static encodeCmdAlertVolume(user_id, volume) { - return SmartSafe.encodeCmdSingleUInt8(user_id, volume); - } - static encodeCmdPromptVolume(user_id, volume) { - return SmartSafe.encodeCmdSingleUInt8(user_id, volume); - } - static encodeCmdPushNotification(user_id, modes) { - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id)); - payload.write(this.getUint16LEBuffer(modes)); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - static encodeCmdUnlock(user_id) { - return SmartSafe.encodeCmdSingleUInt8(user_id, 1); - } - static encodeCmdVerifyPIN(user_id, pin) { - const pinBuffer = Buffer.alloc(8); - pinBuffer.write(pin); - const payload = new utils_1.WritePayload(); - payload.write(Buffer.from(user_id)); - payload.write(pinBuffer); - payload.write(this.getCurrentTimeInSeconds()); - return payload.getData(); - } - convertRawPropertyValue(property, value) { - try { - if (property.key === types_2.CommandType.CMD_SMARTSAFE_REMOTE_OPEN_TYPE) { - switch (property.name) { - case types_1.PropertyName.DeviceRemoteUnlock: - { - const booleanProperty = property; - return value !== undefined ? (value === "0" || value === "1" ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - case types_1.PropertyName.DeviceRemoteUnlockMasterPIN: - { - const booleanProperty = property; - return value !== undefined ? (value === "0" ? true : false) : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - } - else if (property.key === types_2.CommandType.CMD_SMARTSAFE_NOTIF) { - const booleanProperty = property; - return value !== undefined ? ((Number.parseInt(value) >> SmartSafe.PUSH_NOTIFICATION_POSITION[property.name]) & 1) === 1 : booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("SmartSafe convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - shakeEvent(event, eventDurationSeconds) { - this.updateProperty(types_1.PropertyName.DeviceShakeAlertEvent, event); - this.updateProperty(types_1.PropertyName.DeviceShakeAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.ShakeAlarm); - this.eventTimeouts.set(types_1.DeviceEvent.ShakeAlarm, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceShakeAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.ShakeAlarm); - }, eventDurationSeconds * 1000)); - } - alarm911Event(event, eventDurationSeconds) { - this.updateProperty(types_1.PropertyName.Device911AlertEvent, event); - this.updateProperty(types_1.PropertyName.Device911Alert, true); - this.clearEventTimeout(types_1.DeviceEvent.Alarm911); - this.eventTimeouts.set(types_1.DeviceEvent.Alarm911, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.Device911Alert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.Alarm911); - }, eventDurationSeconds * 1000)); - } - jammedEvent(eventDurationSeconds) { - this.updateProperty(types_1.PropertyName.DeviceJammedAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.Jammed); - this.eventTimeouts.set(types_1.DeviceEvent.Jammed, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceJammedAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.Jammed); - }, eventDurationSeconds * 1000)); - } - lowBatteryEvent(eventDurationSeconds) { - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LowBattery); - this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); - }, eventDurationSeconds * 1000)); - } - wrongTryProtectAlarmEvent(eventDurationSeconds) { - this.updateProperty(types_1.PropertyName.DeviceWrongTryProtectAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.WrontTryProtectAlarm); - this.eventTimeouts.set(types_1.DeviceEvent.WrontTryProtectAlarm, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceWrongTryProtectAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.WrontTryProtectAlarm); - }, eventDurationSeconds * 1000)); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.event_type !== undefined) { - if (message.station_sn === this.getSerial()) { - try { - switch (message.event_type) { - //TODO: Finish smart safe push notification handling implementation - case types_3.SmartSafeEvent.LOCK_STATUS: - { - const eventValues = message.event_value; - if (eventValues.action === 0) { - this.updateRawProperty(types_2.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "0", "push"); - /* - type values: - 1: Unlocked by PIN - 2: Unlocked by User - 3: Unlocked by key - 4: Unlocked by App - 5: Unlocked by Dual Unlock - */ - } - else if (eventValues.action === 1) { - this.updateRawProperty(types_2.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "1", "push"); - } - else if (eventValues.action === 2) { - this.jammedEvent(eventDurationSeconds); - } - else if (eventValues.action === 3) { - this.lowBatteryEvent(eventDurationSeconds); - } - break; - } - case types_3.SmartSafeEvent.ALARM_911: - { - const eventValue = message.event_value; - this.alarm911Event(eventValue, eventDurationSeconds); - break; - } - case types_3.SmartSafeEvent.SHAKE_ALARM: - { - const eventValue = message.event_value; - this.shakeEvent(eventValue, eventDurationSeconds); - break; - } - case types_3.SmartSafeEvent.LONG_TIME_NOT_CLOSE: - { - const eventValue = message.event_value; - if (eventValue === 1) { - this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LongTimeNotClose); - this.eventTimeouts.set(types_1.DeviceEvent.LongTimeNotClose, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LongTimeNotClose); - }, eventDurationSeconds * 1000)); - } - break; - } - case types_3.SmartSafeEvent.LOW_POWER: - { - this.lowBatteryEvent(eventDurationSeconds); - break; - } - case types_3.SmartSafeEvent.INPUT_ERR_MAX: - { - this.wrongTryProtectAlarmEvent(eventDurationSeconds); - break; - } - default: - logging_1.rootHTTPLogger.debug("SmartSafe process push notification - Unhandled smart safe notification event", message.event_type, message.event_time, message.device_sn); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`SmartSafe process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceLocked && metadata.key === types_2.CommandType.CMD_SMARTSAFE_LOCK_STATUS) { - this.emit("locked", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceJammedAlert) { - this.emit("jammed", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { - this.emit("low battery", this, newValue); - } - else if (metadata.name === types_1.PropertyName.Device911Alert) { - this.emit("911 alarm", this, newValue, this.getPropertyValue(types_1.PropertyName.Device911AlertEvent)); - } - else if (metadata.name === types_1.PropertyName.DeviceShakeAlert) { - this.emit("shake alarm", this, newValue, this.getPropertyValue(types_1.PropertyName.DeviceShakeAlertEvent)); - } - else if (metadata.name === types_1.PropertyName.DeviceLongTimeNotCloseAlert) { - this.emit("long time not close", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceWrongTryProtectAlert) { - this.emit("wrong try-protect alarm", this, newValue); - } - } - getState() { - return this.getPropertyValue(types_1.PropertyName.DeviceState); - } - getBatteryValue() { - return this.getPropertyValue(types_1.PropertyName.DeviceBattery); - } - getWifiRssi() { - return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); - } - isLocked() { - return this.getPropertyValue(types_1.PropertyName.DeviceLocked); - } -} -exports.SmartSafe = SmartSafe; -class Tracker extends Device { - static async getInstance(api, device, deviceConfig) { - return new Tracker(api, device, deviceConfig); - } - getStateChannel() { - return "tracker"; - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.TrackerCommandType.COMMAND_NEW_LOCATION: - { - if (value !== undefined && typeof value === "string") { - const items = value.split(","); - if (items.length === 3) { - switch (property.name) { - case types_1.PropertyName.DeviceLocationCoordinates: - return `${items[1]},${items[0]}`; - case types_1.PropertyName.DeviceLocationLastUpdate: - return Number.parseInt(items[2]); - default: break; - } - } - } - break; - } - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Tracker convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - async setFindPhone(value) { - try { - const property = this.getPropertyMetadata(types_1.PropertyName.DeviceFindPhone); - (0, utils_3.validValue)(property, value); - return await this.setParameters([{ - paramType: types_2.TrackerCommandType.COMMAND_TYPE_FINDMYPHONE, - paramValue: value ? "1" : "0" - }]); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Tracker set find phone - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), value: value }); - } - return false; - } - async setLeftBehindAlarm(value) { - try { - const property = this.getPropertyMetadata(types_1.PropertyName.DeviceLeftBehindAlarm); - (0, utils_3.validValue)(property, value); - return await this.setParameters([{ - paramType: types_2.TrackerCommandType.COMMAND_ANTILOST, - paramValue: value ? "1" : "0" - }]); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Tracker set left behind alarm - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), value: value }); - } - return false; - } - async setTrackerType(value) { - try { - const property = this.getPropertyMetadata(types_1.PropertyName.DeviceTrackerType); - (0, utils_3.validValue)(property, value); - return await this.setParameters([{ - paramType: types_2.TrackerCommandType.TYPE_ICON_INDEX, - paramValue: value.toString() - }]); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("Tracker set tracker type - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), value: value }); - } - return false; - } -} -exports.Tracker = Tracker; -class DoorbellLock extends DoorbellCamera { - static async getInstance(api, device, deviceConfig) { - const voices = await api.getVoices(device.device_sn); - return new DoorbellLock(api, device, voices, deviceConfig); - } - getStateChannel() { - return "locks"; - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceLocked) { - this.emit("locked", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { - this.emit("low battery", this, newValue); - } - else if ((metadata.key === types_2.CommandType.CMD_DOORLOCK_GET_STATE || metadata.key === types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS) && ((oldValue !== undefined && ((oldValue === 4 && newValue !== 4) || (oldValue !== 4 && newValue === 4))) || oldValue === undefined)) { - this.updateProperty(types_1.PropertyName.DeviceLocked, newValue === 4 ? true : false); - } - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP: - return value !== undefined ? (value === "0" ? true : false) : false; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.error("DoorbellLock convert raw property - Error", { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), property: property, value: value }); - } - return super.convertRawPropertyValue(property, value); - } - getState() { - return this.getPropertyValue(types_1.PropertyName.DeviceState); - } - getBatteryValue() { - return this.getPropertyValue(types_1.PropertyName.DeviceBattery); - } - getWifiRssi() { - return this.getPropertyValue(types_1.PropertyName.DeviceWifiRSSI); - } - isLocked() { - const param = this.getLockStatus(); - return param ? (param === 4 ? true : false) : false; - } - getLockStatus() { - return this.getPropertyValue(types_1.PropertyName.DeviceLockStatus); - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.event_type !== undefined && message.device_sn === this.getSerial()) { - try { - switch (message.event_type) { - case types_3.LockPushEvent.APP_LOCK: - case types_3.LockPushEvent.AUTO_LOCK: - case types_3.LockPushEvent.FINGER_LOCK: - case types_3.LockPushEvent.KEYPAD_LOCK: - case types_3.LockPushEvent.MANUAL_LOCK: - case types_3.LockPushEvent.PW_LOCK: - case types_3.LockPushEvent.TEMPORARY_PW_LOCK: - { - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, "4", "push"); - if (!(0, utils_3.isEmpty)(message.person_name)) { - this.updateProperty(types_1.PropertyName.DevicePersonName, message.person_name); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(message.event_type)); - this.clearEventTimeout(types_1.DeviceEvent.Lock); - this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); - this.eventTimeouts.delete(types_1.DeviceEvent.Lock); - }, eventDurationSeconds * 1000)); - } - break; - } - case types_3.LockPushEvent.APP_UNLOCK: - case types_3.LockPushEvent.AUTO_UNLOCK: - case types_3.LockPushEvent.FINGERPRINT_UNLOCK: - case types_3.LockPushEvent.MANUAL_UNLOCK: - case types_3.LockPushEvent.PW_UNLOCK: - case types_3.LockPushEvent.TEMPORARY_PW_UNLOCK: - { - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, "3", "push"); - if (!(0, utils_3.isEmpty)(message.person_name)) { - this.updateProperty(types_1.PropertyName.DevicePersonName, message.person_name); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, (0, utils_1.getLockEventType)(message.event_type)); - this.clearEventTimeout(types_1.DeviceEvent.Lock); - this.eventTimeouts.set(types_1.DeviceEvent.Lock, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DeviceLockEventOrigin, 0); - this.eventTimeouts.delete(types_1.DeviceEvent.Lock); - }, eventDurationSeconds * 1000)); - } - break; - } - case types_3.LockPushEvent.LOCK_MECHANICAL_ANOMALY: - case types_3.LockPushEvent.MECHANICAL_ANOMALY: - case types_3.LockPushEvent.VIOLENT_DESTRUCTION: - case types_3.LockPushEvent.MULTIPLE_ERRORS: - { - const cmdType = this.isLockBle() || this.isLockBleNoFinger() ? types_2.CommandType.CMD_DOORLOCK_GET_STATE : types_2.CommandType.CMD_SMARTLOCK_QUERY_STATUS; - this.updateRawProperty(cmdType, "5", "push"); - break; - } - case types_3.LockPushEvent.LOW_POWER: - case types_3.LockPushEvent.VERY_LOW_POWER: - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LowBattery); - this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); - }, eventDurationSeconds * 1000)); - break; - case types_3.LockPushEvent.DOOR_OPEN_LEFT: //TODO: Implement event - break; - case types_3.LockPushEvent.DOOR_TAMPER: //TODO: Implement event - break; - case types_3.LockPushEvent.DOOR_STATE_ERROR: //TODO: Implement event - break; - default: - logging_1.rootHTTPLogger.debug("DoorbellLock process push notification - Unhandled lock notification event", { eventType: message.event_type, eventTime: message.event_time, deviceSN: this.getSerial() }); - break; - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`DoorbellLock process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), eventType: message.event_type, eventTime: message.event_time, eventDurationSeconds: eventDurationSeconds }); - } - } - } -} -exports.DoorbellLock = DoorbellLock; -class SmartDrop extends Camera { - static async getInstance(api, device, deviceConfig) { - return new SmartDrop(api, device, deviceConfig); - } - getStateChannel() { - return "boxes"; - } - processPushNotification(station, message, eventDurationSeconds) { - super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { - if (message.device_sn === this.getSerial()) { - try { - (0, utils_1.loadEventImage)(station, this.api, this, message, this.pictureEventTimeouts); - if (message.event_type === types_3.CusPushEvent.SMART_DROP) { - switch (message.open) { - case types_3.SmartDropOpen.OPEN: - // Open - this.updateRawProperty(types_2.CommandType.CMD_SMART_DROP_OPEN, "1", "push"); - switch (message.openType) { - case types_3.SmartDropOpenedBy.APP: - // Open remotely via App - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 1); - break; - case types_3.SmartDropOpenedBy.PIN: - // Open with PIN - if (message.pin === "0") { - // Master PIN - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 2); - } - else { - // Delivery PIN - // who: message.person_name - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 3); - this.updateProperty(types_1.PropertyName.DeviceOpenedByName, message.person_name !== undefined ? message.person_name : ""); - } - break; - case types_3.SmartDropOpenedBy.WITHOUT_KEY: - // Opened without key - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 4); - break; - case types_3.SmartDropOpenedBy.EMERGENCY_RELEASE_BUTTON: - // Opened via emergency release button - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 5); - break; - case types_3.SmartDropOpenedBy.KEY: - // Opened with key - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 6); - break; - default: - logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event (openType)", message); - break; - } - break; - case types_3.SmartDropOpen.CLOSED: - // Closed - this.updateRawProperty(types_2.CommandType.CMD_SMART_DROP_OPEN, "0", "push"); - break; - case types_3.SmartDropOpen.LID_STUCK: - // The lid may be stuck - this.updateProperty(types_1.PropertyName.DeviceLidStuckAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LidStuckAlert); - this.eventTimeouts.set(types_1.DeviceEvent.LidStuckAlert, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLidStuckAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LidStuckAlert); - }, eventDurationSeconds * 1000)); - break; - case types_3.SmartDropOpen.PIN_INCORRECT: - // Someone had entered incorrect PIN - this.updateProperty(types_1.PropertyName.DevicePinIncorrectAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.PinIncorrectAlert); - this.eventTimeouts.set(types_1.DeviceEvent.PinIncorrectAlert, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePinIncorrectAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PinIncorrectAlert); - }, eventDurationSeconds * 1000)); - break; - case types_3.SmartDropOpen.LEFT_OPENED: - // Has been left opened for 1 minute - this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LongTimeNotClose); - this.eventTimeouts.set(types_1.DeviceEvent.LongTimeNotClose, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLongTimeNotCloseAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LongTimeNotClose); - }, eventDurationSeconds * 1000)); - break; - case types_3.SmartDropOpen.LOW_TEMPERATURE_WARNING: - // Low temperature warning - this.updateProperty(types_1.PropertyName.DeviceLowTemperatureAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LowTemperatureAlert); - this.eventTimeouts.set(types_1.DeviceEvent.LowTemperatureAlert, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLowTemperatureAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LowTemperatureAlert); - }, eventDurationSeconds * 1000)); - break; - default: - logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event (1)", message); - break; - } - } - else if (message.event_type !== 0) { - switch (message.event_type) { - case types_3.SmartDropPushEvent.LOW_BATTERY: - // Low battery warning - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.LowBattery); - this.eventTimeouts.set(types_1.DeviceEvent.LowBattery, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceLowBatteryAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.LowBattery); - }, eventDurationSeconds * 1000)); - break; - case types_3.SmartDropPushEvent.OVERHEATING_WARNING: - // Overheating warning - this.updateProperty(types_1.PropertyName.DeviceHighTemperatureAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.HighTemperatureAlert); - this.eventTimeouts.set(types_1.DeviceEvent.HighTemperatureAlert, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceHighTemperatureAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.HighTemperatureAlert); - }, eventDurationSeconds * 1000)); - break; - case types_3.SmartDropPushEvent.TAMPERED_WARNING: - if (message.type === 2) { - // Warning have been tampered - this.updateProperty(types_1.PropertyName.DeviceTamperingAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.TamperingAlert); - this.eventTimeouts.set(types_1.DeviceEvent.TamperingAlert, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceTamperingAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.TamperingAlert); - }, eventDurationSeconds * 1000)); - } - break; - case types_3.SmartDropPushEvent.BATTERY_FULLY_CHARGED: - // Battery fully charged - this.updateProperty(types_1.PropertyName.DeviceBatteryFullyChargedAlert, true); - this.clearEventTimeout(types_1.DeviceEvent.BatteryFullyChargedAlert); - this.eventTimeouts.set(types_1.DeviceEvent.BatteryFullyChargedAlert, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DeviceBatteryFullyChargedAlert, false); - this.eventTimeouts.delete(types_1.DeviceEvent.BatteryFullyChargedAlert); - }, eventDurationSeconds * 1000)); - break; - case types_3.SmartDropPushEvent.PERSON_DETECTED: - //Someone has been spotted - this.updateProperty(types_1.PropertyName.DevicePersonName, !(0, utils_3.isEmpty)(message.person_name) ? message.person_name : "Unknown"); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, true); - this.clearEventTimeout(types_1.DeviceEvent.PersonDetected); - this.eventTimeouts.set(types_1.DeviceEvent.PersonDetected, setTimeout(async () => { - this.updateProperty(types_1.PropertyName.DevicePersonName, ""); - this.updateProperty(types_1.PropertyName.DevicePersonDetected, false); - this.eventTimeouts.delete(types_1.DeviceEvent.PersonDetected); - }, eventDurationSeconds * 1000)); - break; - default: - logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event (2)", message); - } - } - else { - logging_1.rootHTTPLogger.debug("SmartDrop process push notification - Unhandled SmartDrop push event type", message); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootHTTPLogger.debug(`SmartDrop process push notification - Error`, { error: (0, utils_3.getError)(error), deviceSN: this.getSerial(), message: JSON.stringify(message), eventDurationSeconds: eventDurationSeconds }); - } - } - } - } - handlePropertyChange(metadata, oldValue, newValue) { - super.handlePropertyChange(metadata, oldValue, newValue); - if (metadata.name === types_1.PropertyName.DeviceOpen) { - const open = newValue; - if (open === false) { - this.updateProperty(types_1.PropertyName.DeviceOpenedByType, 0); - this.updateProperty(types_1.PropertyName.DeviceOpenedByName, ""); - } - this.emit("open", this, open); - } - else if (metadata.name === types_1.PropertyName.DeviceDeliveries) { - this.updateProperty(types_1.PropertyName.DevicePackageDelivered, newValue > 0); - } - else if (metadata.name === types_1.PropertyName.DevicePackageDelivered) { - this.emit("package delivered", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLowBatteryAlert) { - this.emit("low battery", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceTamperingAlert) { - this.emit("tampering", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLongTimeNotCloseAlert) { - this.emit("long time not close", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLowTemperatureAlert) { - this.emit("low temperature", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceHighTemperatureAlert) { - this.emit("high temperature", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DevicePinIncorrectAlert) { - this.emit("pin incorrect", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceLidStuckAlert) { - this.emit("lid stuck", this, newValue); - } - else if (metadata.name === types_1.PropertyName.DeviceBatteryFullyChargedAlert) { - this.emit("battery fully charged", this, newValue); - } - } -} -exports.SmartDrop = SmartDrop; -class UnknownDevice extends Device { - static async getInstance(api, device, deviceConfig) { - return new UnknownDevice(api, device, deviceConfig); - } - getStateChannel() { - return "unknown"; - } -} -exports.UnknownDevice = UnknownDevice; -//# sourceMappingURL=device.js.map \ No newline at end of file diff --git a/build/http/device.js.map b/build/http/device.js.map deleted file mode 100644 index e2abdf4a..00000000 --- a/build/http/device.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/http/device.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/error.d.ts b/build/http/error.d.ts deleted file mode 100644 index 8e7d2b76..00000000 --- a/build/http/error.d.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { BaseError, Jsonable } from "../error"; -export declare class InvalidPropertyError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class LivestreamAlreadyRunningError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class LivestreamNotRunningError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class PropertyNotSupportedError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ApiResponseCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ApiInvalidResponseError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ApiHTTPResponseCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ApiGenericError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ApiBaseLoadError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ApiRequestError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ImageBaseCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ImageSeedError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} diff --git a/build/http/error.js b/build/http/error.js deleted file mode 100644 index 3227215b..00000000 --- a/build/http/error.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ImageSeedError = exports.ImageBaseCodeError = exports.ApiRequestError = exports.ApiBaseLoadError = exports.ApiGenericError = exports.ApiHTTPResponseCodeError = exports.ApiInvalidResponseError = exports.ApiResponseCodeError = exports.PropertyNotSupportedError = exports.LivestreamNotRunningError = exports.LivestreamAlreadyRunningError = exports.InvalidPropertyError = void 0; -const error_1 = require("../error"); -class InvalidPropertyError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = InvalidPropertyError.name; - } -} -exports.InvalidPropertyError = InvalidPropertyError; -class LivestreamAlreadyRunningError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = LivestreamAlreadyRunningError.name; - } -} -exports.LivestreamAlreadyRunningError = LivestreamAlreadyRunningError; -class LivestreamNotRunningError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = LivestreamNotRunningError.name; - } -} -exports.LivestreamNotRunningError = LivestreamNotRunningError; -class PropertyNotSupportedError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = PropertyNotSupportedError.name; - } -} -exports.PropertyNotSupportedError = PropertyNotSupportedError; -class ApiResponseCodeError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ApiResponseCodeError.name; - } -} -exports.ApiResponseCodeError = ApiResponseCodeError; -class ApiInvalidResponseError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ApiInvalidResponseError.name; - } -} -exports.ApiInvalidResponseError = ApiInvalidResponseError; -class ApiHTTPResponseCodeError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ApiHTTPResponseCodeError.name; - } -} -exports.ApiHTTPResponseCodeError = ApiHTTPResponseCodeError; -class ApiGenericError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ApiGenericError.name; - } -} -exports.ApiGenericError = ApiGenericError; -class ApiBaseLoadError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ApiBaseLoadError.name; - } -} -exports.ApiBaseLoadError = ApiBaseLoadError; -class ApiRequestError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ApiRequestError.name; - } -} -exports.ApiRequestError = ApiRequestError; -class ImageBaseCodeError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ImageBaseCodeError.name; - } -} -exports.ImageBaseCodeError = ImageBaseCodeError; -class ImageSeedError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ImageSeedError.name; - } -} -exports.ImageSeedError = ImageSeedError; -//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/http/error.js.map b/build/http/error.js.map deleted file mode 100644 index de4bb01e..00000000 --- a/build/http/error.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/http/error.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/index.d.ts b/build/http/index.d.ts deleted file mode 100644 index 359509da..00000000 --- a/build/http/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./api"; -export * from "./cache"; -export * from "./device"; -export * from "./interfaces"; -export * from "./models"; -export * from "./parameter"; -export * from "./station"; -export * from "./types"; -export * from "./error"; -export { isGreaterEqualMinVersion, getAbsoluteFilePath } from "./utils"; diff --git a/build/http/index.js b/build/http/index.js deleted file mode 100644 index 58c93f59..00000000 --- a/build/http/index.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getAbsoluteFilePath = exports.isGreaterEqualMinVersion = void 0; -__exportStar(require("./api"), exports); -__exportStar(require("./cache"), exports); -__exportStar(require("./device"), exports); -__exportStar(require("./interfaces"), exports); -__exportStar(require("./models"), exports); -__exportStar(require("./parameter"), exports); -__exportStar(require("./station"), exports); -__exportStar(require("./types"), exports); -__exportStar(require("./error"), exports); -var utils_1 = require("./utils"); -Object.defineProperty(exports, "isGreaterEqualMinVersion", { enumerable: true, get: function () { return utils_1.isGreaterEqualMinVersion; } }); -Object.defineProperty(exports, "getAbsoluteFilePath", { enumerable: true, get: function () { return utils_1.getAbsoluteFilePath; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/http/index.js.map b/build/http/index.js.map deleted file mode 100644 index bb46301b..00000000 --- a/build/http/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,iCAAuE;AAA9D,iHAAA,wBAAwB,OAAA;AAAE,4GAAA,mBAAmB,OAAA"} \ No newline at end of file diff --git a/build/http/interfaces.d.ts b/build/http/interfaces.d.ts deleted file mode 100644 index 6c56de98..00000000 --- a/build/http/interfaces.d.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { Readable } from "stream"; -import type { Method } from "got" with { - "resolution-mode": "import" -}; -import type { ImageFileExtension } from "image-type" with { - "resolution-mode": "import" -}; -import { DatabaseCountByDate, DatabaseQueryLatestInfo, DatabaseQueryLocal, StreamMetadata } from "../p2p/interfaces"; -import { CommandResult, StorageInfoBodyHB3 } from "../p2p/models"; -import { AlarmEvent, DatabaseReturnCode, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent, TFCardStatus } from "../p2p/types"; -import { Camera, Device } from "./device"; -import { Cipher, Voice, Invite, DeviceListResponse, StationListResponse, HouseListResponse } from "./models"; -import { Station } from "./station"; -import { CommandName, PropertyName, SourceType } from "./types"; -import { TalkbackStream } from "../p2p/talkback"; -export type PropertyValue = number | boolean | string | object; -export interface PropertyValues { - [index: string]: PropertyValue; -} -export interface DeviceConfig { - simultaneousDetections?: boolean; -} -export interface RawValue { - value: string; - source: SourceType; -} -export interface RawValues { - [index: number]: RawValue; -} -export interface Devices { - [index: string]: Device; -} -export interface Cameras { - [index: string]: Camera; -} -export interface Stations { - [index: string]: Station; -} -export interface Houses { - [index: string]: HouseListResponse; -} -export interface Hubs { - [index: string]: StationListResponse; -} -export interface FullDevices { - [index: string]: DeviceListResponse; -} -export interface Ciphers { - [index: number]: Cipher; -} -export interface Voices { - [index: number]: Voice; -} -export interface Invites { - [index: number]: Invite; -} -export interface HTTPApiRequest { - method: Method; - endpoint: string | URL; - responseType?: "text" | "json" | "buffer"; - data?: any; -} -export type PropertyMetadataType = "number" | "boolean" | "string" | "object"; -export interface PropertyMetadataAny { - key: number | string; - name: PropertyName; - type: PropertyMetadataType; - default?: any; - readable: boolean; - writeable: boolean; - description?: string; - label?: string; - commandId?: number; -} -export interface PropertyMetadataNumeric extends PropertyMetadataAny { - type: "number"; - min?: number; - max?: number; - steps?: number; - default?: number; - states?: Record; - unit?: string; -} -export interface PropertyMetadataBoolean extends PropertyMetadataAny { - type: "boolean"; - default?: boolean; -} -export interface PropertyMetadataString extends PropertyMetadataAny { - type: "string"; - minLength?: number; - maxLength?: number; - default?: string; - format?: RegExp; -} -export interface PropertyMetadataObject extends PropertyMetadataAny { - type: "object"; - isValidObject?: (obj: any) => boolean; - default?: any; -} -export interface IndexedProperty { - [index: string]: PropertyMetadataAny; -} -export interface Properties { - [index: number]: IndexedProperty; -} -export interface Commands { - [index: number]: Array; -} -export interface HTTPApiPersistentData { - user_id: string; - email: string; - nick_name: string; - device_public_keys: { - [index: string]: string; - }; - clientPrivateKey: string; - serverPublicKey: string; -} -export interface CaptchaOptions { - captchaCode: string; - captchaId: string; -} -export interface LoginOptions { - verifyCode?: string; - captcha?: CaptchaOptions; - force: boolean; -} -export interface Schedule { - startDateTime?: Date; - endDateTime?: Date; - week?: { - monday: boolean; - tuesday: boolean; - wednesday: boolean; - thursday: boolean; - friday: boolean; - saturday: boolean; - sunday: boolean; - }; -} -export interface ImageType { - ext: ImageFileExtension | "unknown"; - mime: string; -} -export interface Picture { - data: Buffer; - type: ImageType; -} -export interface HTTPApiEvents { - "devices": (devices: FullDevices) => void; - "hubs": (hubs: Hubs) => void; - "houses": (houses: Houses) => void; - "connect": () => void; - "close": () => void; - "connection error": (error: Error) => void; - "tfa request": () => void; - "captcha request": (id: string, captcha: string) => void; - "auth token invalidated": () => void; -} -export interface StationEvents { - "connect": (station: Station) => void; - "close": (station: Station) => void; - "connection error": (station: Station, error: Error) => void; - "raw device property changed": (deviceSN: string, params: RawValues) => void; - "property changed": (station: Station, name: string, value: PropertyValue, ready: boolean) => void; - "raw property changed": (station: Station, type: number, value: string) => void; - "command result": (station: Station, result: CommandResult) => void; - "download start": (station: Station, channel: number, metadata: StreamMetadata, videostream: Readable, audiostream: Readable) => void; - "download finish": (station: Station, channel: number) => void; - "livestream start": (station: Station, channel: number, metadata: StreamMetadata, videostream: Readable, audiostream: Readable) => void; - "livestream stop": (station: Station, channel: number) => void; - "livestream error": (station: Station, channel: number, error: Error) => void; - "rtsp livestream start": (station: Station, channel: number) => void; - "rtsp livestream stop": (station: Station, channel: number) => void; - "rtsp url": (station: Station, channel: number, value: string) => void; - "guard mode": (station: Station, guardMode: number) => void; - "current mode": (station: Station, currentMode: number) => void; - "alarm event": (station: Station, alarmEvent: AlarmEvent) => void; - "ready": (station: Station) => void; - "runtime state": (station: Station, channel: number, batteryLevel: number, temperature: number) => void; - "charging state": (station: Station, channel: number, chargeType: number, batteryLevel: number) => void; - "wifi rssi": (station: Station, channel: number, rssi: number) => void; - "floodlight manual switch": (station: Station, channel: number, enabled: boolean) => void; - "alarm delay event": (station: Station, alarmDelayEvent: AlarmEvent, alarmDelay: number) => void; - "alarm arm delay event": (station: Station, armDelay: number) => void; - "alarm armed event": (station: Station) => void; - "talkback started": (station: Station, channel: number, talkbackStream: TalkbackStream) => void; - "talkback stopped": (station: Station, channel: number) => void; - "talkback error": (station: Station, channel: number, error: Error) => void; - "secondary command result": (station: Station, result: CommandResult) => void; - "device shake alarm": (deviceSN: string, event: SmartSafeShakeAlarmEvent) => void; - "device 911 alarm": (deviceSN: string, event: SmartSafeAlarm911Event) => void; - "device jammed": (deviceSN: string) => void; - "device low battery": (deviceSN: string) => void; - "device wrong try-protect alarm": (deviceSN: string) => void; - "device pin verified": (deviceSN: string, successfull: boolean) => void; - "sd info ex": (station: Station, sdStatus: TFCardStatus, sdCapacity: number, sdCapacityAvailable: number) => void; - "image download": (station: Station, file: string, image: Buffer) => void; - "database query latest": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; - "database query local": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; - "database count by date": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; - "database delete": (station: Station, returnCode: DatabaseReturnCode, failedIds: Array) => void; - "sensor status": (station: Station, channel: number, status: number) => void; - "garage door status": (station: Station, channel: number, doorId: number, status: number) => void; - "storage info hb3": (station: Station, channel: number, storageInfo: StorageInfoBodyHB3) => void; -} -export interface DeviceEvents { - "property changed": (device: Device, name: string, value: PropertyValue, ready: boolean) => void; - "raw property changed": (device: Device, type: number, value: string) => void; - "motion detected": (device: Device, state: boolean) => void; - "person detected": (device: Device, state: boolean, person: string) => void; - "pet detected": (device: Device, state: boolean) => void; - "sound detected": (device: Device, state: boolean) => void; - "crying detected": (device: Device, state: boolean) => void; - "vehicle detected": (device: Device, state: boolean) => void; - "dog detected": (device: Device, state: boolean) => void; - "dog lick detected": (device: Device, state: boolean) => void; - "dog poop detected": (device: Device, state: boolean) => void; - "stranger person detected": (device: Device, state: boolean) => void; - "rings": (device: Device, state: boolean) => void; - "locked": (device: Device, state: boolean) => void; - "open": (device: Device, state: boolean) => void; - "ready": (device: Device) => void; - "package delivered": (device: Device, state: boolean) => void; - "package stranded": (device: Device, state: boolean) => void; - "package taken": (device: Device, state: boolean) => void; - "someone loitering": (device: Device, state: boolean) => void; - "radar motion detected": (device: Device, state: boolean) => void; - "911 alarm": (device: Device, state: boolean, detail: SmartSafeAlarm911Event) => void; - "shake alarm": (device: Device, state: boolean, detail: SmartSafeShakeAlarmEvent) => void; - "wrong try-protect alarm": (device: Device, state: boolean) => void; - "long time not close": (device: Device, state: boolean) => void; - "low battery": (device: Device, state: boolean) => void; - "jammed": (device: Device, state: boolean) => void; - "tampering": (device: Device, state: boolean) => void; - "low temperature": (device: Device, state: boolean) => void; - "high temperature": (device: Device, state: boolean) => void; - "pin incorrect": (device: Device, state: boolean) => void; - "lid stuck": (device: Device, state: boolean) => void; - "battery fully charged": (device: Device, state: boolean) => void; -} diff --git a/build/http/interfaces.js b/build/http/interfaces.js deleted file mode 100644 index db919115..00000000 --- a/build/http/interfaces.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/http/interfaces.js.map b/build/http/interfaces.js.map deleted file mode 100644 index 7edafefc..00000000 --- a/build/http/interfaces.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/http/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/http/models.d.ts b/build/http/models.d.ts deleted file mode 100644 index 1d7cf25d..00000000 --- a/build/http/models.d.ts +++ /dev/null @@ -1,608 +0,0 @@ -import { UserPasswordType, UserType } from "./types"; -export interface ApiResponse { - status: number; - statusText: string; - data: any; - headers: any; -} -export interface ResultResponse { - code: number; - msg: string; - data?: any; - outline?: any; -} -export interface LoginResultResponse { - user_id: string; - email: string; - nick_name: string; - auth_token: string; - token_expires_at: number; - avatar: string; - invitation_code: string; - inviter_code: string; - verify_code_url: string; - mac_addr: string; - domain: string; - ab_code: string; - geo_key: string; - privilege: number; - phone: string; - phone_code: string; - server_secret_info: { - public_key: string; - } | null; - params: Array<{ - param_type: number; - param_value: string; - }> | null; - trust_list: Array; -} -export interface CaptchaResponse { - captcha_id: string; - item: string; -} -export interface LoginRequest { - ab: string; - client_secret_info: { - public_key: string; - }; - enc: number; - email: string; - password: string; - time_zone: number; - verify_code?: string; - captcha_id?: string; - answer?: string; - transaction: string; -} -export interface Member { - family_id: number; - station_sn: string; - admin_user_id: string; - member_user_id: string; - short_user_id: string; - member_type: number; - permissions: number; - member_nick: string; - action_user_id: string; - fence_state: number; - extra: string; - member_avatar: string; - house_id: string; - create_time: number; - update_time: number; - status: number; - email: string; - nick_name: string; - avatar: string; - action_user_email: string; - action_user_name: string; -} -export interface StationListDevice { - device_id: number; - is_init_complete: boolean; - device_sn: string; - device_name: string; - device_model: string; - time_zone: string; - device_type: number; - device_channel: number; - station_sn: string; - schedule: string; - schedulex: string; - wifi_mac: string; - sub1g_mac: string; - main_sw_version: string; - main_hw_version: string; - sec_sw_version: string; - sec_hw_version: string; - sector_id: number; - event_num: number; - wifi_ssid: string; - ip_addr: string; - main_sw_time: number; - sec_sw_time: number; - bind_time: number; - local_ip: string; - language: string; - sku_number: string; - lot_number: string; - cpu_id: string; - create_time: number; - update_time: number; - status: number; -} -export interface StationListResponse { - readonly [index: string]: unknown; - station_id: number; - station_sn: string; - station_name: string; - station_model: string; - time_zone: string; - wifi_ssid: string; - ip_addr: string; - wifi_mac: string; - sub1g_mac: string; - main_sw_version: string; - main_hw_version: string; - sec_sw_version: string; - sec_hw_version: string; - volume: string; - main_sw_time: number; - sec_sw_time: number; - bt_mac: string; - setup_code: string; - setup_id: string; - device_type: number; - event_num: number; - sku_number: string; - lot_number: string; - create_time: number; - update_time: number; - status: number; - station_status: number; - status_change_time: number; - p2p_did: string; - push_did: string; - p2p_license: string; - push_license: string; - ndt_did: string; - ndt_license: string; - wakeup_flag: number; - p2p_conn: string; - app_conn: string; - wipn_enc_dec_key: string; - wipn_ndt_aes128key: string; - query_server_did: string; - prefix: string; - wakeup_key: string; - member: Member; - params: Array; - devices: Array; - sensor_info: null; - is_init_complete: boolean; - virtual_version: string; - house_id?: string; -} -export interface ParameterResponse { - param_id: number; - station_sn: string; - param_type: number; - param_value: string; - create_time: number; - update_time: number; - status: number; -} -export interface DeviceResponse { - device_id: number; - is_init_complete: boolean; - device_sn: string; - device_name: string; - device_model: string; - time_zone: string; - device_type: number; - device_channel: number; - station_sn: string; - schedule: string; - schedulex: string; - wifi_mac: string; - sub1g_mac: string; - main_sw_version: string; - main_hw_version: string; - sec_sw_version: string; - sec_hw_version: string; - sector_id: number; - event_num: number; - wifi_ssid: string; - ip_addr: string; - main_sw_time: number; - sec_sw_time: number; - bind_time: number; - cover_path: string; - cover_time: number; - local_ip: string; - language: string; - sku_number: string; - lot_number: string; - create_time: number; - update_time: number; - status: number; -} -export interface DeviceRequest { - device_sn: string; - num: number; - orderby: string; - page: number; - station_sn: string; -} -export interface DeviceListResponse { - readonly [index: string]: unknown; - device_id: number; - is_init_complete: boolean; - device_sn: string; - device_name: string; - device_model: string; - time_zone: string; - device_type: number; - device_channel: number; - station_sn: string; - schedule: string; - schedulex: string; - wifi_mac: string; - sub1g_mac: string; - main_sw_version: string; - main_hw_version: string; - sec_sw_version: string; - sec_hw_version: string; - sector_id: number; - event_num: number; - wifi_ssid: string; - ip_addr: string; - volume: string; - main_sw_time: number; - sec_sw_time: number; - bind_time: number; - bt_mac: string; - cover_path: string; - cover_time: number; - local_ip: string; - language: string; - sku_number: string; - lot_number: string; - cpu_id: string; - create_time: number; - update_time: number; - status: number; - svr_domain: string; - svr_port: number; - station_conn: { - station_sn: string; - station_name: string; - station_model: string; - main_sw_version: string; - main_hw_version: string; - p2p_did: string; - push_did: string; - ndt_did: string; - p2p_conn: string; - app_conn: string; - binded: false; - setup_code: string; - setup_id: string; - bt_mac: string; - wifi_mac: string; - dsk_key: string; - expiration: number; - }; - family_num: number; - member: Member; - permission: any; - params: Array; - pir_total: number; - pir_none: number; - pir_missing: number; - week_pir_total: number; - week_pir_none: number; - month_pir_total: number; - month_pir_none: number; - charging_days: number; - charing_total: number; - charging_reserve: number; - charging_missing: number; - battery_usage_last_week: number; - virtual_version: string; - relate_devices: any; - house_id?: string; -} -export interface DskKeyResponse { - enabled: boolean; - dsk_keys: Array<{ - station_sn: string; - dsk_key: string; - expiration: number; - about_to_be_replaced: boolean; - }>; -} -export interface EventRecordResponse { - monitor_id: number; - transfer_monitor_id: number; - station_sn: string; - device_sn: string; - storage_type: number; - storage_path: string; - hevc_storage_path: string; - cloud_path: string; - frame_num: number; - thumb_path: string; - thumb_data: string; - start_time: number; - end_time: number; - cipher_id: number; - cipher_user_id: string; - has_human: number; - volume: string; - vision: number; - device_name: string; - device_type: number; - video_type: number; - extra: string; - user_range_id: number; - viewed: boolean; - create_time: number; - update_time: number; - status: number; - station_name: string; - p2p_did: string; - push_did: string; - p2p_license: string; - push_license: string; - ndt_did: string; - ndt_license: string; - wakeup_flag: number; - p2p_conn: string; - app_conn: string; - wipn_enc_dec_key: string; - wipn_ndt_aes128key: string; - query_server_did: string; - prefix: string; - wakeup_key: string; - ai_faces: Array<{ - is_stranger: number; - face_url: string; - owner_id: string; - user_range_id: number; - }>; - is_favorite: boolean; - storage_alias: number; -} -export interface EventRecordRequest { - device_sn: string; - end_time: number; - id: number; - id_type: number; - is_favorite: boolean; - num: number; - pullup: boolean; - shared: boolean; - start_time: number; - station_sn: string; - storage: number; -} -export interface StreamRequest { - device_sn: string; - station_sn: string; - proto?: number; -} -export interface TrustDevice { - open_udid: string; - phone_model: string; - is_current_device: number; -} -export interface Cipher { - cipher_id: number; - user_id: string; - private_key: string; -} -export interface Voice { - voice_id: number; - user_id: string; - desc: string; - device_sn: string; - voice_link: string; - voice_type: number; - key_prefix: string; -} -export interface DeviceInvite { - device_sn: string; - checked: boolean; -} -export interface Invite { - invite_id: number; - station_sn: string; - email: string; - devices: Array; - action_user_id: string; - member_nick: string; - member_type: number; - permissions: number; - create_time: number; - update_time: number; - status: number; - action_user_email: string; - action_user_nick: string; -} -export interface ConfirmInvite { - device_sns: Array; - invite_id: number; - station_sn: string; -} -export interface SensorHistoryEntry { - trigger_time: number; - create_time: number; - status: string; -} -export interface HouseUser { - id: number; - house_id: string; - email: string; - avatar: string; - user_id: string; - admin_user_id: string; - state: string; - role_type: number; -} -export interface HouseDetail { - house_id: string; - house_name: string; - is_default: number; - id: number; - geofence_id: number; - address: string; - latitude: number; - longitude: number; - radius_range: number; - away_mode: number; - home_mode: number; - location_msg: number; - create_time: number; - house_users: Array; - house_stations: any; -} -export interface HouseListResponse { - readonly [index: string]: unknown; - house_id: string; - user_id: string; - admin_user_id: string; - role_type: number; - house_name: string; - is_default: number; - geofence_id: number; - address: string; - latitude: number; - longitude: number; - radius_range: number; - location_msg: number; - create_time: number; - away_mode: number; - home_mode: number; -} -export interface HouseInviteListResponse { - readonly [index: string]: unknown; - id: number; - house_name: string; - action_user_nick: string; - action_user_email: string; - house_id: string; - email: string; - user_id: string; - role_type: number; -} -export interface ConfirmHouseInvite { - house_id: string; - invite_id: number; - is_inviter: number; - user_id: string; -} -export interface PassportProfileResponse { - user_id: string; - email: string; - nick_name: string; - avatar: string; - invitation_code: string; - inviter_code: string; - verify_code_url: string; - mac_addr: string; - country: { - id: number; - name: string; - code: string; - }; -} -export interface StationSecuritySettings { - account_id: string; - count_down_alarm: StationSecuritySettingsDelayDetails; - count_down_arm: StationSecuritySettingsDelayDetails; - devices: StationSecuritySettingsDeviceDetails; -} -export interface StationSecuritySettingsDelayDetails { - account_id: string; - channel_list: number[]; - delay_time: number; -} -export interface StationSecuritySettingsDeviceDetails { - action: number; - device_channel: number; -} -export interface SnoozeDetail { - snooze_time: number; - snooze_chime?: boolean; - snooze_motion?: boolean; - snooze_homebase?: boolean; -} -export interface RawSchedule { - endDay: string; - week: string; - startDay: string; - startTime: string; - endTime: string; -} -export interface UserPassword { - expiration_time: number; - is_permanent: number; - password: string; - password_id: string; - password_type: UserPasswordType; - name: string; - schedule: RawSchedule; -} -export interface User { - avatar: string; - password_list: Array; - user_id: string; - short_user_id: string; - user_name: string; - user_type: UserType; - is_show: boolean; -} -export interface UsersResponse { - device_sn: string; - user_list: Array; -} -export interface AddUserResponse { - user_id: string; - short_user_id: string; -} -export interface GarageDoorSensorsProperty { - cmd: number; - data: { - door_1: { - power: number; - mac_address: string; - version: string; - name: string; - sn: string; - playalarm: number; - ota: number; - needota: number; - }; - door_2: { - power: number; - mac_address: string; - version: string; - name: string; - sn: string; - playalarm: number; - ota: number; - needota: number; - }; - }; -} -export interface FloodlightDetectionRangeT8425Property { - cur_mode: number; - test_mode: number; - mode0: Array<{ - id: number; - sst: number; - }>; - mode1: Array<{ - id: number; - sst: number; - }>; - mode2: Array<{ - id: number; - sst: number; - }>; -} -export interface FloodlightLightSettingsBrightnessScheduleT8425Property { - sunset2rise: number; - longtitude: string; - latitude: string; - brightness: number; - schedule: Array; -} -export interface FloodlightLightSettingsMotionT8425Property { - brightness: number; - enable: number; - mode: number; - time: number; -} diff --git a/build/http/models.js b/build/http/models.js deleted file mode 100644 index b2dccd68..00000000 --- a/build/http/models.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/build/http/models.js.map b/build/http/models.js.map deleted file mode 100644 index 800216d7..00000000 --- a/build/http/models.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/http/models.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/http/parameter.d.ts b/build/http/parameter.d.ts deleted file mode 100644 index 2c6c3fb9..00000000 --- a/build/http/parameter.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Category } from "typescript-logging-category-style"; -export declare class ParameterHelper { - static readValue(serialNumber: string, type: number, value: string, log: Category): string | undefined; - static writeValue(type: number, value: string): string; -} diff --git a/build/http/parameter.js b/build/http/parameter.js deleted file mode 100644 index ffe0ec07..00000000 --- a/build/http/parameter.js +++ /dev/null @@ -1,103 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ParameterHelper = void 0; -const types_1 = require("../p2p/types"); -const utils_1 = require("../p2p/utils"); -const utils_2 = require("../utils"); -const types_2 = require("./types"); -const utils_3 = require("./utils"); -const error_1 = require("../error"); -class ParameterHelper { - static readValue(serialNumber, type, value, log) { - if (value) { - if (type === types_2.ParamType.SNOOZE_MODE || - type === types_2.ParamType.CAMERA_MOTION_ZONES || - type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY || - type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN || - type === types_1.CommandType.ARM_DELAY_HOME || - type === types_1.CommandType.ARM_DELAY_AWAY || - type === types_1.CommandType.ARM_DELAY_CUS1 || - type === types_1.CommandType.ARM_DELAY_CUS2 || - type === types_1.CommandType.ARM_DELAY_CUS3 || - type === types_1.CommandType.ARM_DELAY_OFF || - type === types_1.CommandType.CELLULAR_INFO || - type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING || - type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING || - type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING || - type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS || - type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES || - type === types_1.CommandType.CMD_INDOOR_DET_SET_ACTIVE_ZONE || - type === types_1.CommandType.CMD_SET_PRIVACYPARAM || - type === types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2 || - type === types_1.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2 || - type === types_1.CommandType.CMD_SET_CROSS_TRACKING_CAMERA_LIST || - type === types_1.CommandType.CMD_SET_CROSS_TRACKING_GROUP_LIST || - type === types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425 || - type === types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425 || - type === types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425) { - if (typeof value === "string") { - const parsedValue = (0, utils_2.parseJSON)((0, utils_1.getNullTerminatedString)((0, utils_1.decodeBase64)(value), "utf-8"), log); - if (parsedValue === undefined) { - log.debug("Non-parsable parameter value received from eufy cloud. Will be ignored.", { serialNumber: serialNumber, type: type, value: value }); - } - return parsedValue; - } - else { - return value; //return object - } - } - else if (type === types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE || - type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY || - type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE || - type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME || - type === types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE || - type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME || - type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE || - type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME || - type === types_1.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH || - type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE || - type === types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS || - type === types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS) { - if (typeof value === "string") { - const parsedValue = (0, utils_2.parseJSON)(value, log); - if (parsedValue === undefined) { - log.debug("Non-parsable parameter value received from eufy cloud. Will be ignored.", { serialNumber: serialNumber, type: type, value: value }); - } - return parsedValue; - } - else { - return value; //return object - } - } - else if (type === types_1.TrackerCommandType.COMMAND_NEW_LOCATION || - type === types_1.TrackerCommandType.LOCATION_NEW_ADDRESS) { - try { - const decrypted = (0, utils_3.decryptTrackerData)(Buffer.from(value, "hex"), Buffer.from(serialNumber)); - if (decrypted !== undefined) { - return decrypted.toString("utf8").trim(); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - log.debug("Non-parsable parameter value received from eufy cloud. Will be ignored.", { serialNumber: serialNumber, type: type, value: value, error: (0, utils_2.getError)(error) }); - } - return ""; - } - } - return value; - } - static writeValue(type, value) { - if (value) { - if (type === types_2.ParamType.SNOOZE_MODE || - type === types_2.ParamType.CAMERA_MOTION_ZONES || - type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY || - type === types_1.CommandType.CMD_SET_DOORSENSOR_ALWAYS_OPEN) { - return Buffer.from(JSON.stringify(value)).toString("base64"); - } - return value; - } - return ""; - } -} -exports.ParameterHelper = ParameterHelper; -//# sourceMappingURL=parameter.js.map \ No newline at end of file diff --git a/build/http/parameter.js.map b/build/http/parameter.js.map deleted file mode 100644 index 87b7a925..00000000 --- a/build/http/parameter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/http/parameter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/station.d.ts b/build/http/station.d.ts deleted file mode 100644 index a651d21b..00000000 --- a/build/http/station.d.ts +++ /dev/null @@ -1,364 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { HTTPApi } from "./api"; -import { AlarmTone, NotificationSwitchMode, DeviceType, FloodlightMotionTriggeredDistance, GuardMode, NotificationType, PowerSource, PropertyName, TimeFormat, CommandName, VideoTypeStoreToNAS, HB3DetectionTypes, WalllightNotificationType, DailyLightingType, MotionActivationMode, LightingActiveMode, SourceType, T8170DetectionTypes, IndoorS350NotificationTypes, SoloCameraDetectionTypes, MotionDetectionRangeType, ViewModeType, FloodlightT8425NotificationTypes, PresetPositionType, IndoorS350DetectionTypes } from "./types"; -import { SnoozeDetail, StationListResponse } from "./models"; -import { IndexedProperty, PropertyMetadataAny, PropertyValue, PropertyValues, RawValues, StationEvents, Schedule } from "./interfaces"; -import { CrossTrackingGroupEntry, DynamicLighting, MotionZone, RGBColor } from "../p2p/interfaces"; -import { CalibrateGarageType, FilterDetectType, FilterEventType, FilterStorageType, P2PConnectionType, PanTiltDirection, VideoCodec, WatermarkSetting1, WatermarkSetting2, WatermarkSetting3, WatermarkSetting4, WatermarkSetting5 } from "../p2p/types"; -import { Device } from "./device"; -import { PushMessage } from "../push/models"; -export declare class Station extends TypedEmitter { - private api; - private rawStation; - private p2pSession; - private properties; - private rawProperties; - private ready; - private lockPublicKey; - private currentDelay; - private reconnectTimeout?; - private terminating; - private p2pConnectionType; - static readonly CHANNEL: number; - static readonly CHANNEL_INDOOR: number; - private pinVerified; - protected constructor(api: HTTPApi, station: StationListResponse, ipAddress?: string, listeningPort?: number, publicKey?: string, enableEmbeddedPKCS1Support?: boolean); - protected initializeState(): void; - initialize(): void; - static getInstance(api: HTTPApi, stationData: StationListResponse, ipAddress?: string, listeningPort?: number, enableEmbeddedPKCS1Support?: boolean): Promise; - getStateID(state: string, level?: number): string; - getStateChannel(): string; - getRawStation(): StationListResponse; - update(station: StationListResponse): void; - updateProperty(name: string, value: PropertyValue, force?: boolean): boolean; - updateRawProperties(values: RawValues): void; - protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void; - updateRawProperty(type: number, value: string, source: SourceType): boolean; - protected convertRawPropertyValue(property: PropertyMetadataAny, value: string): PropertyValue; - getPropertyMetadata(name: string, hidden?: boolean): PropertyMetadataAny; - getPropertyValue(name: string): PropertyValue; - hasPropertyValue(name: string): boolean; - getRawProperty(type: number): string | undefined; - getRawProperties(): RawValues; - getProperties(): PropertyValues; - getPropertiesMetadata(hidden?: boolean): IndexedProperty; - hasProperty(name: string, hidden?: boolean): boolean; - getCommands(): Array; - hasCommand(name: CommandName): boolean; - static getChannel(type: number): number; - static isStation(type: number): boolean; - isStation(): boolean; - static isStationHomeBase3(type: number): boolean; - static isStationHomeBase3BySn(sn: string): boolean; - isStationHomeBase3(): boolean; - isIntegratedDevice(): boolean; - isP2PConnectableDevice(): 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; - 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): void; - getCameraInfo(): void; - getStorageInfoEx(): void; - private onAlarmMode; - private getArmDelay; - private _getDeviceSerial; - private _handleCameraInfoParameters; - private onCameraInfo; - private onCommandResponse; - private onSecondaryCommandResponse; - private onConnect; - private onDisconnect; - private onTimeout; - private getCurrentDelay; - private resetCurrentDelay; - private scheduleReconnect; - rebootHUB(): void; - setStatusLed(device: Device, value: boolean): void; - setAutoNightVision(device: Device, value: boolean): void; - setNightVision(device: Device, value: number): void; - setMotionDetection(device: Device, value: boolean): void; - setSoundDetection(device: Device, value: boolean): void; - setSoundDetectionType(device: Device, value: number): void; - setSoundDetectionSensitivity(device: Device, value: number): void; - setPetDetection(device: Device, value: boolean): void; - panAndTilt(device: Device, direction: PanTiltDirection, command?: number): void; - switchLight(device: Device, value: boolean): void; - setMotionDetectionSensitivity(device: Device, value: number): void; - setMotionDetectionType(device: Device, value: number): void; - setMotionDetectionTypeHB3(device: Device, type: HB3DetectionTypes | T8170DetectionTypes | SoloCameraDetectionTypes | IndoorS350DetectionTypes, value: boolean): void; - setMotionZone(device: Device, value: MotionZone): void; - setMotionTracking(device: Device, value: boolean): void; - setPanAndTiltRotationSpeed(device: Device, value: number): void; - setMicMute(device: Device, value: boolean): void; - setAudioRecording(device: Device, value: boolean): void; - enableSpeaker(device: Device, value: boolean): void; - setSpeakerVolume(device: Device, value: number): void; - setRingtoneVolume(device: Device, value: number): void; - enableIndoorChime(device: Device, value: boolean): void; - enableHomebaseChime(device: Device, value: boolean): void; - setHomebaseChimeRingtoneVolume(device: Device, value: number): void; - setHomebaseChimeRingtoneType(device: Device, value: number): void; - setNotificationType(device: Device, value: NotificationType | WalllightNotificationType): void; - setNotificationPerson(device: Device, value: boolean): void; - setNotificationPet(device: Device, value: boolean): void; - setNotificationAllOtherMotion(device: Device, value: boolean): void; - setNotificationAllSound(device: Device, value: boolean): void; - setNotificationCrying(device: Device, value: boolean): void; - setNotificationRing(device: Device, value: boolean): void; - setNotificationMotion(device: Device, value: boolean): void; - setPowerSource(device: Device, value: PowerSource): void; - setPowerWorkingMode(device: Device, value: number): void; - setRecordingClipLength(device: Device, value: number): void; - setRecordingRetriggerInterval(device: Device, value: number): void; - setRecordingEndClipMotionStops(device: Device, value: boolean): void; - setVideoStreamingQuality(device: Device, value: number): void; - setVideoRecordingQuality(device: Device, value: number): void; - setWDR(device: Device, value: boolean): void; - setFloodlightLightSettingsEnable(device: Device, value: boolean): void; - setFloodlightLightSettingsBrightnessManual(device: Device, value: number): void; - setFloodlightLightSettingsBrightnessMotion(device: Device, value: number): void; - setFloodlightLightSettingsBrightnessSchedule(device: Device, value: number): void; - setFloodlightLightSettingsMotionTriggered(device: Device, value: boolean): void; - setFloodlightLightSettingsMotionTriggeredDistance(device: Device, value: FloodlightMotionTriggeredDistance): void; - setFloodlightLightSettingsMotionTriggeredTimer(device: Device, seconds: number): void; - triggerStationAlarmSound(seconds: number): void; - resetStationAlarmSound(): void; - triggerDeviceAlarmSound(device: Device, seconds: number): void; - resetDeviceAlarmSound(device: Device): void; - setStationAlarmRingtoneVolume(value: number): void; - setStationAlarmTone(value: AlarmTone): void; - setStationPromptVolume(value: number): void; - setStationNotificationSwitchMode(mode: NotificationSwitchMode, value: boolean): void; - setStationNotificationStartAlarmDelay(value: boolean): void; - setStationTimeFormat(value: TimeFormat): void; - setRTSPStream(device: Device, value: boolean): void; - setAntiTheftDetection(device: Device, value: boolean): void; - setWatermark(device: Device, value: WatermarkSetting1 | WatermarkSetting2 | WatermarkSetting3 | WatermarkSetting4 | WatermarkSetting5): void; - enableDevice(device: Device, value: boolean): void; - startDownload(device: Device, path: string, cipher_id?: number): Promise; - cancelDownload(device: Device): void; - startLivestream(device: Device, videoCodec?: VideoCodec): void; - stopLivestream(device: Device): void; - isLiveStreaming(device: Device): boolean; - isDownloading(device: Device): boolean; - quickResponse(device: Device, voice_id: number): void; - setChirpVolume(device: Device, value: number): void; - setChirpTone(device: Device, value: number): void; - setHDR(device: Device, value: boolean): void; - setDistortionCorrection(device: Device, value: boolean): void; - setRingRecord(device: Device, value: number): void; - lockDevice(device: Device, value: boolean): void; - setStationSwitchModeWithAccessCode(value: boolean): void; - setStationAutoEndAlarm(value: boolean): void; - setStationTurnOffAlarmWithButton(value: boolean): void; - startRTSPStream(device: Device): void; - stopRTSPStream(device: Device): void; - setMotionDetectionRange(device: Device, type: MotionDetectionRangeType): void; - setMotionDetectionRangeStandardSensitivity(device: Device, sensitivity: number): void; - setMotionDetectionRangeAdvancedLeftSensitivity(device: Device, sensitivity: number): void; - setMotionDetectionRangeAdvancedMiddleSensitivity(device: Device, sensitivity: number): void; - setMotionDetectionRangeAdvancedRightSensitivity(device: Device, sensitivity: number): void; - setMotionDetectionTestMode(device: Device, enabled: boolean): void; - setMotionTrackingSensitivity(device: Device, sensitivity: number): void; - setMotionAutoCruise(device: Device, enabled: boolean): void; - setMotionOutOfViewDetection(device: Device, enabled: boolean): void; - setLightSettingsColorTemperatureManual(device: Device, value: number): void; - setLightSettingsColorTemperatureMotion(device: Device, value: number): void; - setLightSettingsColorTemperatureSchedule(device: Device, value: number): void; - setLightSettingsMotionActivationMode(device: Device, value: MotionActivationMode): void; - setVideoNightvisionImageAdjustment(device: Device, enabled: boolean): void; - setVideoColorNightvision(device: Device, enabled: boolean): void; - setAutoCalibration(device: Device, enabled: boolean): 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): void; - private convertAdvancedLockSettingValue; - private convertAdvancedLockSettingValueT8530; - private getAdvancedLockSettingsPayload; - private getAdvancedLockSettingsPayloadT8530; - private getAdvancedLockSettingName; - private getAdvancedLockSettingNameT8530; - setAdvancedLockParams(device: Device, property: PropertyName, value: PropertyValue): void; - setLoiteringDetection(device: Device, value: boolean): void; - setLoiteringDetectionRange(device: Device, value: number): void; - setLoiteringDetectionLength(device: Device, value: number): void; - private _setMotionDetectionSensitivity; - private _getMotionDetectionSensitivityAdvanced; - setMotionDetectionSensitivityMode(device: Device, value: number): void; - setMotionDetectionSensitivityStandard(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedA(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedB(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedC(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedD(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedE(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedF(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedG(device: Device, value: number): void; - setMotionDetectionSensitivityAdvancedH(device: Device, value: number): void; - private _setLoiteringCustomResponse; - setLoiteringCustomResponseAutoVoiceResponse(device: Device, value: boolean): void; - setLoiteringCustomResponseAutoVoiceResponseVoice(device: Device, value: number): void; - setLoiteringCustomResponseHomeBaseNotification(device: Device, value: boolean): void; - setLoiteringCustomResponsePhoneNotification(device: Device, value: boolean): void; - setLoiteringCustomResponseTimeFrom(device: Device, value: string): void; - setLoiteringCustomResponseTimeTo(device: Device, value: string): void; - setDeliveryGuard(device: Device, value: boolean): void; - setDeliveryGuardPackageGuarding(device: Device, value: boolean): void; - setDeliveryGuardPackageGuardingVoiceResponseVoice(device: Device, value: number): void; - private setDeliveryGuardPackageGuardingActivatedTime; - setDeliveryGuardPackageGuardingActivatedTimeFrom(device: Device, value: string): void; - setDeliveryGuardPackageGuardingActivatedTimeTo(device: Device, value: string): void; - setDeliveryGuardUncollectedPackageAlert(device: Device, value: boolean): void; - setDeliveryGuardUncollectedPackageAlertTimeToCheck(device: Device, value: string): void; - setDeliveryGuardPackageLiveCheckAssistance(device: Device, value: boolean): void; - setDualCamWatchViewMode(device: Device, value: ViewModeType): void; - private _setRingAutoResponse; - setRingAutoResponse(device: Device, value: boolean): void; - setRingAutoResponseVoiceResponse(device: Device, value: boolean): void; - setRingAutoResponseVoiceResponseVoice(device: Device, value: number): void; - setRingAutoResponseTimeFrom(device: Device, value: string): void; - setRingAutoResponseTimeTo(device: Device, value: string): void; - setNotificationRadarDetector(device: Device, value: boolean): void; - calibrate(device: Device): void; - setContinuousRecording(device: Device, value: boolean): void; - setContinuousRecordingType(device: Device, value: number): void; - enableDefaultAngle(device: Device, value: boolean): void; - setDefaultAngleIdleTime(device: Device, value: number): void; - setDefaultAngle(device: Device): void; - setPrivacyAngle(device: Device): void; - setNotificationIntervalTime(device: Device, value: number): void; - setSoundDetectionRoundLook(device: Device, value: boolean): void; - startTalkback(device: Device): void; - stopTalkback(device: Device): void; - private onTalkbackStarted; - private onTalkbackStopped; - private onTalkbackError; - isTalkbackOngoing(device: Device): boolean; - setScramblePasscode(device: Device, value: boolean): void; - setWrongTryProtection(device: Device, value: boolean): void; - setWrongTryAttempts(device: Device, value: number): void; - setWrongTryLockdownTime(device: Device, value: number): void; - private _sendSmartSafeCommand; - setSmartSafeParams(device: Device, property: PropertyName, value: PropertyValue): void; - unlock(device: Device): void; - verifyPIN(device: Device, pin: string): void; - private onDeviceShakeAlarm; - private onDevice911Alarm; - private onDeviceJammed; - private onDeviceLowBattery; - private onDeviceWrongTryProtectAlarm; - private onSdInfoEx; - setVideoTypeStoreToNAS(device: Device, value: VideoTypeStoreToNAS): void; - snooze(device: Device, value: SnoozeDetail): void; - addUser(device: Device, username: string, shortUserId: string, passcode: string, schedule?: Schedule): void; - deleteUser(device: Device, username: string, shortUserId: string): void; - updateUserSchedule(device: Device, username: string, shortUserId: string, schedule: Schedule): void; - updateUserPasscode(device: Device, username: string, passwordId: string, passcode: string): void; - setLockV12Params(device: Device, property: PropertyName, value: PropertyValue): void; - setSmartLockParams(device: Device, property: PropertyName, value: PropertyValue): void; - setAutoLock(device: Device, value: boolean): void; - setAutoLockSchedule(device: Device, value: boolean): void; - setAutoLockScheduleStartTime(device: Device, value: string): void; - setAutoLockScheduleEndTime(device: Device, value: string): void; - setAutoLockTimer(device: Device, value: number): void; - setOneTouchLocking(device: Device, value: boolean): void; - setSound(device: Device, value: number): void; - setNotification(device: Device, value: boolean): void; - setNotificationLocked(device: Device, value: boolean): void; - setNotificationUnlocked(device: Device, value: boolean): void; - private _sendLockV12P2PCommand; - queryAllUserId(device: Device): void; - chimeHomebase(value: number): void; - private onImageDownload; - downloadImage(cover_path: string): void; - private onTFCardStatus; - databaseQueryLatestInfo(failureCallback?: () => void): void; - databaseQueryLocal(serialNumbers: Array, startDate: Date, endDate: Date, eventType?: FilterEventType, detectionType?: FilterDetectType, storageType?: FilterStorageType): void; - databaseDelete(ids: Array): void; - databaseCountByDate(startDate: Date, endDate: Date): void; - private onDatabaseQueryLatest; - private onDatabaseQueryLocal; - private onDatabaseCountByDate; - private onDatabaseDelete; - private onSensorStatus; - setMotionDetectionTypeHuman(device: Device, value: boolean): void; - setMotionDetectionTypeAllOtherMotions(device: Device, value: boolean): void; - private _setLightSettingsLightingActiveMode; - setLightSettingsManualLightingActiveMode(device: Device, value: LightingActiveMode): void; - setLightSettingsManualDailyLighting(device: Device, value: DailyLightingType): void; - setLightSettingsManualColoredLighting(device: Device, value: RGBColor): void; - setLightSettingsManualDynamicLighting(device: Device, value: number): void; - setLightSettingsMotionLightingActiveMode(device: Device, value: LightingActiveMode): void; - setLightSettingsMotionDailyLighting(device: Device, value: DailyLightingType): void; - setLightSettingsMotionColoredLighting(device: Device, value: RGBColor): void; - setLightSettingsMotionDynamicLighting(device: Device, value: number): void; - setLightSettingsScheduleLightingActiveMode(device: Device, value: LightingActiveMode): void; - setLightSettingsScheduleDailyLighting(device: Device, value: DailyLightingType): void; - setLightSettingsScheduleColoredLighting(device: Device, value: RGBColor): void; - setLightSettingsScheduleDynamicLighting(device: Device, value: number): void; - setLightSettingsColoredLightingColors(device: Device, value: Array): void; - setLightSettingsDynamicLightingThemes(device: Device, value: Array): void; - setDoorControlWarning(device: Device, value: boolean): void; - openDoor(device: Device, value: boolean, doorId?: number): void; - private onGarageDoorStatus; - calibrateGarageDoor(device: Device, doorId: number, type: CalibrateGarageType): void; - private onStorageInfoHB3; - setMirrorMode(device: Device, value: boolean): void; - setFlickerAdjustment(device: Device, value: number): void; - setCrossCameraTracking(value: boolean): void; - setContinuousTrackingTime(value: number): void; - setTrackingAssistance(value: boolean): void; - setCrossTrackingCameraList(value: Array): void; - setCrossTrackingGroupList(value: Array): void; - setNotificationIndoor(device: Device, type: IndoorS350NotificationTypes, value: boolean): void; - setNotificationFloodlightT8425(device: Device, type: FloodlightT8425NotificationTypes, value: boolean): void; - presetPosition(device: Device, position: PresetPositionType): void; - savePresetPosition(device: Device, position: PresetPositionType): void; - deletePresetPosition(device: Device, position: PresetPositionType): void; - setLeavingDetection(device: Device, value: boolean): void; - private _setLeavingReactions; - setLeavingReactionNotification(device: Device, value: boolean): void; - setLeavingReactionStartTime(device: Device, value: string): void; - setLeavingReactionEndTime(device: Device, value: string): void; - setBeepVolume(device: Device, value: number): void; - setNightvisionOptimization(device: Device, value: boolean): void; - setNightvisionOptimizationSide(device: Device, value: number): void; - getLockParameters(): void; - getLockStatus(): void; - private onSequenceError; - updateUsername(device: Device, username: string, passwordId: string): void; - setOpenMethod(device: Device, value: number): void; - setMotionActivatedPrompt(device: Device, value: boolean): void; - open(device: Device): void; -} diff --git a/build/http/station.js b/build/http/station.js deleted file mode 100644 index 29324dec..00000000 --- a/build/http/station.js +++ /dev/null @@ -1,10561 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Station = void 0; -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const date_and_time_1 = __importDefault(require("date-and-time")); -const types_1 = require("./types"); -const parameter_1 = require("./parameter"); -const utils_1 = require("./utils"); -const session_1 = require("../p2p/session"); -const types_2 = require("../p2p/types"); -const device_1 = require("./device"); -const utils_2 = require("../p2p/utils"); -const error_1 = require("../error"); -const types_3 = require("../push/types"); -const error_2 = require("./error"); -const utils_3 = require("../utils"); -const repl_1 = require("repl"); -const logging_1 = require("../logging"); -class Station extends tiny_typed_emitter_1.TypedEmitter { - api; - rawStation; - p2pSession; - properties = {}; - rawProperties = {}; - ready = false; - lockPublicKey; - currentDelay = 0; - reconnectTimeout; - terminating = false; - p2pConnectionType = types_2.P2PConnectionType.QUICKEST; - static CHANNEL = 255; - static CHANNEL_INDOOR = 1000; - pinVerified = false; - constructor(api, station, ipAddress, listeningPort = 0, publicKey = "", enableEmbeddedPKCS1Support = false) { - super(); - this.api = api; - this.rawStation = station; - this.lockPublicKey = publicKey; - this.p2pSession = new session_1.P2PClientProtocol(this.rawStation, this.api, ipAddress, listeningPort, publicKey, enableEmbeddedPKCS1Support); - this.p2pSession.on("connect", (address) => this.onConnect(address)); - this.p2pSession.on("close", () => this.onDisconnect()); - this.p2pSession.on("timeout", () => this.onTimeout()); - this.p2pSession.on("command", (result) => this.onCommandResponse(result)); - this.p2pSession.on("alarm mode", (mode) => this.onAlarmMode(mode)); - this.p2pSession.on("camera info", (cameraInfo) => this.onCameraInfo(cameraInfo)); - this.p2pSession.on("download started", (channel, metadata, videoStream, audioStream) => this.onStartDownload(channel, metadata, videoStream, audioStream)); - this.p2pSession.on("download finished", (channel) => this.onFinishDownload(channel)); - this.p2pSession.on("livestream started", (channel, metadata, videoStream, audioStream) => this.onStartLivestream(channel, metadata, videoStream, audioStream)); - this.p2pSession.on("livestream stopped", (channel) => this.onStopLivestream(channel)); - this.p2pSession.on("livestream error", (channel, error) => this.onErrorLivestream(channel, error)); - this.p2pSession.on("wifi rssi", (channel, rssi) => this.onWifiRssiChanged(channel, rssi)); - this.p2pSession.on("rtsp livestream started", (channel) => this.onStartRTSPLivestream(channel)); - this.p2pSession.on("rtsp livestream stopped", (channel) => this.onStopRTSPLivestream(channel)); - this.p2pSession.on("rtsp url", (channel, rtspUrl) => this.onRTSPUrl(channel, rtspUrl)); - this.p2pSession.on("parameter", (channel, param, value) => this.onParameter(channel, param, value)); - this.p2pSession.on("runtime state", (channel, batteryLevel, temperature) => this.onRuntimeState(channel, batteryLevel, temperature)); - this.p2pSession.on("charging state", (channel, chargeType, batteryLevel) => this.onChargingState(channel, chargeType, batteryLevel)); - this.p2pSession.on("floodlight manual switch", (channel, enabled) => this.onFloodlightManualSwitch(channel, enabled)); - this.p2pSession.on("alarm delay", (alarmDelayEvent, alarmDelay) => this.onAlarmDelay(alarmDelayEvent, alarmDelay)); - this.p2pSession.on("alarm armed", () => this.onAlarmArmed()); - this.p2pSession.on("alarm event", (alarmEvent) => this.onAlarmEvent(alarmEvent)); - this.p2pSession.on("talkback started", (channel, talkbackStream) => this.onTalkbackStarted(channel, talkbackStream)); - this.p2pSession.on("talkback stopped", (channel) => this.onTalkbackStopped(channel)); - this.p2pSession.on("talkback error", (channel, error) => this.onTalkbackError(channel, error)); - this.p2pSession.on("secondary command", (result) => this.onSecondaryCommandResponse(result)); - this.p2pSession.on("shake alarm", (channel, event) => this.onDeviceShakeAlarm(channel, event)); - this.p2pSession.on("911 alarm", (channel, event) => this.onDevice911Alarm(channel, event)); - this.p2pSession.on("jammed", (channel) => this.onDeviceJammed(channel)); - this.p2pSession.on("low battery", (channel) => this.onDeviceLowBattery(channel)); - this.p2pSession.on("wrong try-protect alarm", (channel) => this.onDeviceWrongTryProtectAlarm(channel)); - this.p2pSession.on("sd info ex", (sdStatus, sdCapacity, sdCapacityAvailable) => this.onSdInfoEx(sdStatus, sdCapacity, sdCapacityAvailable)); - this.p2pSession.on("image download", (file, image) => this.onImageDownload(file, image)); - this.p2pSession.on("tfcard status", (channel, status) => this.onTFCardStatus(channel, status)); - this.p2pSession.on("database query latest", (returnCode, data) => this.onDatabaseQueryLatest(returnCode, data)); - this.p2pSession.on("database query local", (returnCode, data) => this.onDatabaseQueryLocal(returnCode, data)); - this.p2pSession.on("database count by date", (returnCode, data) => this.onDatabaseCountByDate(returnCode, data)); - this.p2pSession.on("database delete", (returnCode, failedIds) => this.onDatabaseDelete(returnCode, failedIds)); - this.p2pSession.on("sensor status", (channel, status) => this.onSensorStatus(channel, status)); - this.p2pSession.on("garage door status", (channel, doorId, status) => this.onGarageDoorStatus(channel, doorId, status)); - this.p2pSession.on("storage info hb3", (channel, storageInfo) => this.onStorageInfoHB3(channel, storageInfo)); - this.p2pSession.on("sequence error", (channel, command, sequence, serialnumber) => this.onSequenceError(channel, command, sequence, serialnumber)); - } - initializeState() { - this.update(this.rawStation); - this.ready = true; - setImmediate(() => { - this.emit("ready", this); - }); - } - initialize() { - this.initializeState(); - } - static async getInstance(api, stationData, ipAddress, listeningPort, enableEmbeddedPKCS1Support) { - let publicKey; - if (device_1.Device.isLock(stationData.device_type) && !device_1.Device.isLockWifiT8506(stationData.device_type) && !device_1.Device.isLockWifiT8502(stationData.device_type) && !device_1.Device.isLockWifiT8510P(stationData.device_type, stationData.station_sn) && !device_1.Device.isLockWifiT8520P(stationData.device_type, stationData.station_sn)) { - publicKey = await api.getPublicKey(stationData.station_sn, types_1.PublicKeyType.LOCK); - } - return new Station(api, stationData, ipAddress, listeningPort, publicKey, enableEmbeddedPKCS1Support); - } - //TODO: To remove - getStateID(state, level = 2) { - switch (level) { - case 0: - return `${this.getSerial()}`; - case 1: - return `${this.getSerial()}.${this.getStateChannel()}`; - default: - if (state) - return `${this.getSerial()}.${this.getStateChannel()}.${state}`; - throw new Error("No state value passed."); - } - } - getStateChannel() { - return "station"; - } - getRawStation() { - return this.rawStation; - } - update(station) { - this.rawStation = station; - this.p2pSession.updateRawStation(station); - const metadata = this.getPropertiesMetadata(true); - for (const property of Object.values(metadata)) { - if (this.rawStation[property.key] !== undefined && typeof property.key === "string") { - this.updateProperty(property.name, this.convertRawPropertyValue(property, this.rawStation[property.key])); - } - else if (this.properties[property.name] === undefined && property.default !== undefined && !this.ready) { - this.updateProperty(property.name, property.default); - } - } - if (this.rawStation.params) { - this.rawStation.params.forEach(param => { - this.updateRawProperty(param.param_type, param.param_value, "http"); - }); - } - logging_1.rootHTTPLogger.debug("Update station cloud properties", { stationSN: this.getSerial(), properties: this.properties }); - } - updateProperty(name, value, force = false) { - if ((this.properties[name] !== undefined && this.properties[name] !== value) - || this.properties[name] === undefined || force) { - const oldValue = this.properties[name]; - this.properties[name] = value; - this.emit("property changed", this, name, value, this.ready); - try { - this.handlePropertyChange(this.getPropertyMetadata(name, true), oldValue, this.properties[name]); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - if (error instanceof error_2.InvalidPropertyError) { - logging_1.rootHTTPLogger.error(`Station update property - Invalid Property error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), propertyName: name, propertyValue: value, force: force }); - } - else { - logging_1.rootHTTPLogger.error(`Station update property - Property error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), propertyName: name, propertyValue: value, force: force }); - } - } - return true; - } - return false; - } - updateRawProperties(values) { - Object.keys(values).forEach(paramtype => { - const param_type = Number.parseInt(paramtype); - this.updateRawProperty(param_type, values[param_type].value, values[param_type].source); - }); - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - handlePropertyChange(metadata, oldValue, newValue) { - if (metadata.name === types_1.PropertyName.StationCurrentMode) { - //TODO: Finish implementation! - if (newValue === types_1.AlarmMode.DISARMED) { - if (this.hasProperty(types_1.PropertyName.StationAlarmArmed)) { - this.updateProperty(types_1.PropertyName.StationAlarmArmed, false); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelay, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelayType)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelayType, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarm)) { - this.updateProperty(types_1.PropertyName.StationAlarm, false); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmType)) { - this.updateProperty(types_1.PropertyName.StationAlarmType, 0); - } - } /*else if (this.hasProperty(PropertyName.StationAlarmArmed)) { //TODO: Type !== HB3 or STATION - this.updateProperty(PropertyName.StationAlarmArmed, this.isAlarmArmable(newValue as AlarmMode)); - }*/ - } - } - updateRawProperty(type, value, source) { - const parsedValue = parameter_1.ParameterHelper.readValue(this.getSerial(), type, value, logging_1.rootHTTPLogger); - if (parsedValue !== undefined && - ((this.rawProperties[type] !== undefined && this.rawProperties[type].value !== parsedValue && (0, utils_1.isPrioritySourceType)(this.rawProperties[type].source, source)) || this.rawProperties[type] === undefined)) { - this.rawProperties[type] = { - value: parsedValue, - source: source - }; - if (this.ready) { - this.emit("raw property changed", this, type, this.rawProperties[type].value); - try { - if (type === types_1.ParamType.GUARD_MODE) { - this.emit("guard mode", this, Number.parseInt(parsedValue)); - } - else if (type === types_2.CommandType.CMD_GET_ALARM_MODE) { - this.emit("current mode", this, Number.parseInt(parsedValue)); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station update raw property - Number conversion error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), type: type, value: value, source: source }); - } - } - const metadata = this.getPropertiesMetadata(true); - for (const property of Object.values(metadata)) { - if (property.key === type) { - try { - this.updateProperty(property.name, this.convertRawPropertyValue(property, this.rawProperties[type].value)); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - if (error instanceof error_2.PropertyNotSupportedError) { - logging_1.rootHTTPLogger.debug("Station update raw property - Property not supported error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), type: type, value: value, source: source }); - } - else { - logging_1.rootHTTPLogger.error("Station update raw property - Property error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), type: type, value: value, source: source }); - } - } - } - } - return true; - } - return false; - } - convertRawPropertyValue(property, value) { - try { - switch (property.key) { - case types_2.CommandType.CMD_GET_HUB_LAN_IP: - return value !== undefined ? ((0, utils_2.isPrivateIp)(value) ? value : "") : ""; - case types_2.CommandType.CMD_SET_ARMING: - return Number.parseInt(value !== undefined ? value : "-1"); - case types_2.CommandType.CMD_GET_ALARM_MODE: - { - const guard_mode = this.getGuardMode(); - return Number.parseInt(value !== undefined ? value : guard_mode !== undefined && guard_mode !== types_1.GuardMode.SCHEDULE && guard_mode !== types_1.GuardMode.GEO ? guard_mode : types_1.GuardMode.UNKNOWN.toString()); - } - case types_2.CommandType.CMD_HUB_NOTIFY_MODE: - { - switch (property.name) { - case types_1.PropertyName.StationNotificationSwitchModeSchedule: - if (!(0, utils_1.isGreaterEqualMinVersion)("2.1.1.6", this.getSoftwareVersion())) { - return value !== undefined ? (value === "1" ? true : false) : false; - } - return value !== undefined ? (0, utils_1.isNotificationSwitchMode)(Number.parseInt(value), types_1.NotificationSwitchMode.SCHEDULE) : false; - case types_1.PropertyName.StationNotificationSwitchModeGeofence: - if (!(0, utils_1.isGreaterEqualMinVersion)("2.1.1.6", this.getSoftwareVersion())) { - throw new error_2.PropertyNotSupportedError("Property not supported for station with this software version", { context: { propertName: property.name, station: this.getSerial(), softwareVersion: this.getSoftwareVersion() } }); - } - return value !== undefined ? (0, utils_1.isNotificationSwitchMode)(Number.parseInt(value), types_1.NotificationSwitchMode.GEOFENCE) : false; - case types_1.PropertyName.StationNotificationSwitchModeApp: - if (!(0, utils_1.isGreaterEqualMinVersion)("2.1.1.6", this.getSoftwareVersion())) { - throw new error_2.PropertyNotSupportedError("Property not supported for station with this software version", { context: { propertName: property.name, station: this.getSerial(), softwareVersion: this.getSoftwareVersion() } }); - } - return value !== undefined ? (0, utils_1.isNotificationSwitchMode)(Number.parseInt(value), types_1.NotificationSwitchMode.APP) : false; - case types_1.PropertyName.StationNotificationSwitchModeKeypad: - if (!(0, utils_1.isGreaterEqualMinVersion)("2.1.1.6", this.getSoftwareVersion())) { - throw new error_2.PropertyNotSupportedError("Property not supported for station with this software version", { context: { propertName: property.name, station: this.getSerial(), softwareVersion: this.getSoftwareVersion() } }); - } - return value !== undefined ? (0, utils_1.isNotificationSwitchMode)(Number.parseInt(value), types_1.NotificationSwitchMode.KEYPAD) : false; - } - } - case types_2.CommandType.CMD_HUB_NOTIFY_ALARM: - return value !== undefined ? (value === "1" ? true : false) : false; - case types_2.CommandType.CMD_HUB_ALARM_TONE: - try { - return value !== undefined ? Number.parseInt(value) : 1; - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station convert raw property - CMD_HUB_ALARM_TONE Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - return 1; - } - case types_2.CommandType.CMD_SET_HUB_SPK_VOLUME: - try { - return value !== undefined ? Number.parseInt(value) : 26; - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station convert raw property - CMD_SET_HUB_SPK_VOLUME Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - return 26; - } - case types_2.CommandType.CMD_SET_PROMPT_VOLUME: - try { - return value !== undefined ? Number.parseInt(value) : 26; - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station convert raw property - CMD_SET_PROMPT_VOLUME Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - return 26; - } - case types_2.CommandType.CMD_SET_HUB_OSD: - try { - return value !== undefined ? Number.parseInt(value) : 0; - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station convert raw property - CMD_SET_HUB_OSD Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - return 0; - } - case types_2.CommandType.CMD_SET_HUB_ALARM_AUTO_END: - return value !== undefined ? value !== "0" ? false : true : false; - case types_2.CommandType.CMD_SET_HUB_ALARM_CLOSE: - return value !== undefined ? value === "1" ? false : true : false; - } - if (property.name === types_1.PropertyName.Model && device_1.Device.isLockWifiT8510P(this.getDeviceType(), this.getSerial())) { - return "T8510P"; - } - else if (property.type === "number") { - const numericProperty = property; - try { - return value !== undefined ? Number.parseInt(value) : (numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0)); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.warn("Station convert raw property - PropertyMetadataNumeric Convert Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - return numericProperty.default !== undefined ? numericProperty.default : (numericProperty.min !== undefined ? numericProperty.min : 0); - } - } - else if (property.type === "boolean") { - const booleanProperty = property; - try { - return value !== undefined ? (typeof value === "number" ? !!value : (value === "1" || value.toLowerCase() === "true" ? true : false)) : (booleanProperty.default !== undefined ? booleanProperty.default : false); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.warn("Station convert raw property - PropertyMetadataBoolean Convert Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - return booleanProperty.default !== undefined ? booleanProperty.default : false; - } - } - else if (property.type === "string") { - const stringProperty = property; - return value !== undefined ? value : (stringProperty.default !== undefined ? stringProperty.default : ""); - } - else if (property.type === "object") { - const objectProperty = property; - return value !== undefined ? value : (objectProperty.default !== undefined ? objectProperty.default : undefined); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error("Station convert raw property - Error", { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), property: property, value: value }); - } - return value; - } - getPropertyMetadata(name, hidden = false) { - const property = this.getPropertiesMetadata(hidden)[name]; - if (property !== undefined) - return property; - throw new error_2.InvalidPropertyError("Property name is not valid", { context: { name: name } }); - } - getPropertyValue(name) { - if (name === types_1.PropertyName.StationCurrentMode) { - const guard_mode = this.properties[types_1.PropertyName.StationGuardMode]; - return this.properties[types_1.PropertyName.StationCurrentMode] !== undefined ? this.properties[types_1.PropertyName.StationCurrentMode] : guard_mode !== undefined && guard_mode !== types_1.GuardMode.SCHEDULE && guard_mode !== types_1.GuardMode.GEO ? guard_mode : types_1.GuardMode.UNKNOWN; - } - return this.properties[name]; - } - hasPropertyValue(name) { - return this.getPropertyValue(name) !== undefined; - } - getRawProperty(type) { - return this.rawProperties[type]?.value; - } - getRawProperties() { - return this.rawProperties; - } - getProperties() { - const result = {}; - for (const property of Object.keys(this.properties)) { - if (!property.startsWith("hidden-")) - result[property] = this.properties[property]; - } - return result; - } - getPropertiesMetadata(hidden = false) { - let metadata = { - ...types_1.StationProperties[this.getDeviceType()] - }; - if (Object.keys(metadata).length === 0) { - metadata = { - ...types_1.BaseStationProperties - }; - } - if (this.hasDeviceWithType(types_1.DeviceType.KEYPAD)) { - metadata[types_1.PropertyName.StationGuardMode] = types_1.StationGuardModeKeyPadProperty; - metadata[types_1.PropertyName.StationCurrentMode] = types_1.StationCurrentModeKeyPadProperty; - metadata[types_1.PropertyName.StationSwitchModeWithAccessCode] = types_1.StationSwitchModeWithAccessCodeProperty; - metadata[types_1.PropertyName.StationAutoEndAlarm] = types_1.StationAutoEndAlarmProperty; - metadata[types_1.PropertyName.StationTurnOffAlarmWithButton] = types_1.StationTurnOffAlarmWithButtonProperty; - } - if (!hidden) { - for (const property of Object.keys(metadata)) { - if (property.startsWith("hidden-")) - delete metadata[property]; - } - } - return metadata; - } - hasProperty(name, hidden = false) { - return this.getPropertiesMetadata(hidden)[name] !== undefined; - } - getCommands() { - const commands = types_1.StationCommands[this.getDeviceType()]; - if (commands === undefined) - return []; - return commands; - } - hasCommand(name) { - return this.getCommands().includes(name); - } - static getChannel(type) { - return Station.isStation(type) === true ? (device_1.Device.isIndoorCamera(type) ? Station.CHANNEL_INDOOR : Station.CHANNEL) : 0; - } - static isStation(type) { - return type === types_1.DeviceType.STATION || type === types_1.DeviceType.HB3 || type === types_1.DeviceType.MINIBASE_CHIME; - } - isStation() { - return Station.isStation(this.rawStation.device_type); - } - static isStationHomeBase3(type) { - return type === types_1.DeviceType.HB3; - } - static isStationHomeBase3BySn(sn) { - return sn.startsWith("T8030"); - } - isStationHomeBase3() { - return Station.isStationHomeBase3(this.rawStation.device_type); - } - isIntegratedDevice() { - //TODO: Recheck this implementation considering HomeBase 3 integration - if (device_1.Device.isLock(this.getDeviceType()) || device_1.Device.isSmartDrop(this.getDeviceType()) || device_1.Device.isSmartSafe(this.getDeviceType())) { - if (this.rawStation.devices?.length === 1) - return this.rawStation.devices[0]?.device_sn === this.rawStation.station_sn; - else - return true; - } - return device_1.Device.isWiredDoorbellDual(this.getDeviceType()) || device_1.Device.isFloodLight(this.getDeviceType()) || device_1.Device.isWiredDoorbell(this.getDeviceType()) || device_1.Device.isIndoorCamera(this.getDeviceType()) || device_1.Device.isSoloCameras(this.getDeviceType()) || device_1.Device.isWallLightCam(this.getDeviceType()) || device_1.Device.isStarlight4GLTE(this.getDeviceType()) || device_1.Device.isSoloCameraPro(this.getDeviceType()); - } - isP2PConnectableDevice() { - if (device_1.Device.isSmartTrack(this.getDeviceType()) || (!device_1.Device.isSupported(this.getDeviceType()) && !this.isStation())) { - if (!device_1.Device.isSupported(this.getDeviceType()) && !this.isStation()) { - logging_1.rootHTTPLogger.debug("Station not supported, no connection over p2p will be initiated", { stationSN: this.getSerial(), type: this.getDeviceType() }); - } - return false; - } - return true; - } - getDeviceType() { - return this.rawStation.device_type; - } - getHardwareVersion() { - return this.rawStation.main_hw_version; - } - getMACAddress() { - return this.rawStation.wifi_mac; - } - getModel() { - return this.rawStation.station_model; - } - getName() { - return this.rawStation.station_name; - } - getSerial() { - return this.rawStation.station_sn; - } - getSoftwareVersion() { - return this.rawStation.main_sw_version; - } - getIPAddress() { - return this.rawStation.ip_addr; - } - getLANIPAddress() { - return this.getPropertyValue(types_1.PropertyName.StationLANIpAddress); - } - getGuardMode() { - return this.getPropertyValue(types_1.PropertyName.StationGuardMode); - } - getCurrentMode() { - const guard_mode = this.getGuardMode(); - return this.getPropertyValue(types_1.PropertyName.StationCurrentMode) !== undefined ? this.getPropertyValue(types_1.PropertyName.StationCurrentMode) : guard_mode !== undefined && guard_mode !== types_1.GuardMode.SCHEDULE && guard_mode !== types_1.GuardMode.GEO ? guard_mode : types_1.GuardMode.UNKNOWN; - } - processPushNotification(message) { - if (message.type !== undefined && message.event_type !== undefined) { - if (message.event_type === types_3.CusPushEvent.MODE_SWITCH && message.station_sn === this.getSerial()) { - logging_1.rootHTTPLogger.info("Received push notification for changing guard mode", { guard_mode: message.station_guard_mode, current_mode: message.station_current_mode, stationSN: message.station_sn }); - try { - if (message.station_guard_mode !== undefined) - this.updateRawProperty(types_1.ParamType.GUARD_MODE, message.station_guard_mode.toString(), "push"); - if (message.station_current_mode !== undefined) - this.updateRawProperty(types_2.CommandType.CMD_GET_ALARM_MODE, message.station_current_mode.toString(), "push"); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Station process push notification - MODE_SWITCH event error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), message: JSON.stringify(message) }); - } - } - else if (message.event_type === types_3.CusPushEvent.ALARM && message.station_sn === this.getSerial() && !this.isStation()) { - logging_1.rootHTTPLogger.info("Received push notification for alarm event", { stationSN: message.station_sn, alarmType: message.alarm_type }); - if (message.alarm_type !== undefined) { - this.onAlarmEvent(message.alarm_type); - } - } - } - else if (message.msg_type === types_3.CusPushEvent.TFCARD && message.station_sn === this.getSerial() && message.tfcard_status !== undefined) { - this.updateRawProperty(types_2.CommandType.CMD_GET_TFCARD_STATUS, message.tfcard_status.toString(), "push"); - } - } - isConnected() { - return this.p2pSession.isConnected(); - } - close() { - this.terminating = true; - if (this.reconnectTimeout) { - clearTimeout(this.reconnectTimeout); - this.reconnectTimeout = undefined; - } - if (this.p2pSession.isConnected()) { - logging_1.rootHTTPLogger.info(`Disconnect from station ${this.getSerial()}`); - this.p2pSession.close(); - } - } - isEnergySavingDevice() { - return this.p2pSession.isEnergySavingDevice(); - } - async connect() { - if (!this.p2pSession.isConnected() && !this.p2pSession.isConnecting()) { - logging_1.rootHTTPLogger.debug(`Connecting to station ${this.getSerial()}...`, { stationSN: this.getSerial(), p2pConnectionType: types_2.P2PConnectionType[this.p2pConnectionType] }); - this.p2pSession.setConnectionType(this.p2pConnectionType); - await this.p2pSession.connect(); - } - } - onFinishDownload(channel) { - this.emit("download finish", this, channel); - } - onStartDownload(channel, metadata, videoStream, audioStream) { - this.emit("download start", this, channel, metadata, videoStream, audioStream); - } - onStopLivestream(channel) { - this.emit("livestream stop", this, channel); - } - onErrorLivestream(channel, error) { - this.emit("livestream error", this, channel, error); - } - onStartLivestream(channel, metadata, videoStream, audioStream) { - this.emit("livestream start", this, channel, metadata, videoStream, audioStream); - } - onStopRTSPLivestream(channel) { - this.emit("rtsp livestream stop", this, channel); - } - onStartRTSPLivestream(channel) { - this.emit("rtsp livestream start", this, channel); - } - onWifiRssiChanged(channel, rssi) { - this.emit("wifi rssi", this, channel, rssi); - } - onRTSPUrl(channel, rtspUrl) { - this.emit("rtsp url", this, channel, rtspUrl); - } - onParameter(channel, param, value) { - const params = {}; - const parsedValue = parameter_1.ParameterHelper.readValue(this.getSerial(), param, value, logging_1.rootHTTPLogger); - if (parsedValue !== undefined) { - params[param] = { - value: parsedValue, - source: "p2p" - }; - this.emit("raw device property changed", this._getDeviceSerial(channel), params); - } - } - onAlarmDelay(alarmDelayEvent, alarmDelay) { - this.emit("alarm delay event", this, alarmDelayEvent, alarmDelay); - if (this.hasProperty(types_1.PropertyName.StationAlarmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelay, alarmDelay); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelayType)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelayType, alarmDelayEvent); - } - } - onAlarmArmed() { - this.emit("alarm armed event", this); - if (this.hasProperty(types_1.PropertyName.StationAlarmArmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmArmDelay, 0); - } - /*if (this.hasProperty(PropertyName.StationAlarmArmed) && this.hasProperty(PropertyName.StationCurrentMode)) { - this.updateProperty(PropertyName.StationAlarmArmed, this.isAlarmArmable(this.getPropertyValue(PropertyName.StationCurrentMode) as AlarmMode)); - }*/ - if (this.hasProperty(types_1.PropertyName.StationAlarmArmed)) { - this.updateProperty(types_1.PropertyName.StationAlarmArmed, true); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelay, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelayType)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelayType, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarm)) { - this.updateProperty(types_1.PropertyName.StationAlarm, false); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmType)) { - this.updateProperty(types_1.PropertyName.StationAlarmType, 0); - } - } - onAlarmEvent(alarmEvent) { - this.emit("alarm event", this, alarmEvent); - if (this.hasProperty(types_1.PropertyName.StationAlarmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelay, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelayType)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelayType, 0); - } - switch (alarmEvent) { - case types_2.AlarmEvent.DEV_STOP: - case types_2.AlarmEvent.HUB_STOP: - case types_2.AlarmEvent.HUB_STOP_BY_APP: - case types_2.AlarmEvent.HUB_STOP_BY_HAND: - case types_2.AlarmEvent.HUB_STOP_BY_KEYPAD: - if (this.hasProperty(types_1.PropertyName.StationAlarm)) { - this.updateProperty(types_1.PropertyName.StationAlarm, false); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmType)) { - this.updateProperty(types_1.PropertyName.StationAlarmType, 0); - } - break; - default: - if (this.hasProperty(types_1.PropertyName.StationAlarm)) { - this.updateProperty(types_1.PropertyName.StationAlarm, true); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmType)) { - this.updateProperty(types_1.PropertyName.StationAlarmType, alarmEvent); - } - break; - } - } - setGuardMode(mode) { - const propertyData = { - name: types_1.PropertyName.StationGuardMode, - value: mode - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, mode); - logging_1.rootHTTPLogger.debug(`Station set guard mode - sending command`, { stationSN: this.getSerial(), mode: mode }); - if ((((0, utils_1.isGreaterEqualMinVersion)("2.0.7.9", this.getSoftwareVersion()) && !device_1.Device.isIntegratedDeviceBySn(this.getSerial())) || device_1.Device.isSoloCameraBySn(this.getSerial())) || this.rawStation.device_type === types_1.DeviceType.HB3) { - logging_1.rootHTTPLogger.debug(`Station set guard mode - Using CMD_SET_PAYLOAD`, { stationSN: this.getSerial(), mode: mode, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_ARMING, - "mValue3": 0, - "payload": { - "mode_type": mode, - "user_name": this.rawStation.member.nick_name - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - else { - logging_1.rootHTTPLogger.debug(`Station set guard mode - Using CMD_SET_ARMING`, { stationSN: this.getSerial(), mode: mode }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_SET_ARMING, - value: mode, - strValue: this.rawStation.member.admin_user_id, - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - } - getCameraInfo() { - logging_1.rootHTTPLogger.debug(`Station send get camera info command`, { stationSN: this.getSerial() }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_CAMERA_INFO, - value: 255, - channel: Station.CHANNEL - }); - } - getStorageInfoEx() { - logging_1.rootHTTPLogger.debug(`Station send get storage info command`, { stationSN: this.getSerial() }); - if (this.isStation() && this.rawStation.device_type !== types_1.DeviceType.HB3 && (0, utils_1.isGreaterEqualMinVersion)("3.2.7.6", this.getSoftwareVersion())) { - this.p2pSession.sendCommandWithoutData(types_2.CommandType.CMD_SDINFO_EX, Station.CHANNEL); - } - else if (this.rawStation.device_type === types_1.DeviceType.HB3) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_STORAGE_INFO_HB3, - "mChannel": 0, - "mValue3": 0, - "payload": { - "version": 0.0, - "cmd": 11001.0, - } - }), - }); - } - else { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SDINFO_EX, - value: 0, - valueSub: 0, - channel: Station.CHANNEL, - strValue: this.rawStation.member.admin_user_id - }); - } - } - onAlarmMode(mode) { - logging_1.rootHTTPLogger.debug(`Station alarm mode changed`, { stationSN: this.getSerial(), mode: mode }); - this.updateRawProperty(types_2.CommandType.CMD_GET_ALARM_MODE, mode.toString(), "p2p"); - const armDelay = this.getArmDelay(mode); - if (armDelay > 0) { - this.emit("alarm arm delay event", this, armDelay); - if (this.hasProperty(types_1.PropertyName.StationAlarmArmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmArmDelay, armDelay); - } - } - if (mode === types_1.AlarmMode.DISARMED) { - if (this.hasProperty(types_1.PropertyName.StationAlarmArmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmArmDelay, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmArmed)) { - this.updateProperty(types_1.PropertyName.StationAlarmArmed, false); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelay)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelay, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmDelayType)) { - this.updateProperty(types_1.PropertyName.StationAlarmDelayType, 0); - } - if (this.hasProperty(types_1.PropertyName.StationAlarm)) { - this.updateProperty(types_1.PropertyName.StationAlarm, false); - } - if (this.hasProperty(types_1.PropertyName.StationAlarmType)) { - this.updateProperty(types_1.PropertyName.StationAlarmType, 0); - } - } - // Trigger refresh Guard Mode - this.getCameraInfo(); - } - getArmDelay(mode) { - let propertyName; - switch (mode) { - case types_1.AlarmMode.HOME: - propertyName = types_1.PropertyName.StationHomeSecuritySettings; - break; - case types_1.AlarmMode.AWAY: - propertyName = types_1.PropertyName.StationAwaySecuritySettings; - break; - case types_1.AlarmMode.CUSTOM1: - propertyName = types_1.PropertyName.StationCustom1SecuritySettings; - break; - case types_1.AlarmMode.CUSTOM2: - propertyName = types_1.PropertyName.StationCustom2SecuritySettings; - break; - case types_1.AlarmMode.CUSTOM3: - propertyName = types_1.PropertyName.StationCustom3SecuritySettings; - break; - } - if (propertyName !== undefined && this.hasPropertyValue(propertyName) && this.getPropertyValue(propertyName) !== "") { - const settings = this.getPropertyValue(propertyName); - try { - if (settings.count_down_arm?.channel_list?.length > 0 && settings.count_down_arm?.delay_time > 0) { - return settings.count_down_arm.delay_time; - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Station get arm delay - Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), mode: mode, propertyName: propertyName, settings: settings }); - } - } - return 0; - } - /*private getGuardModeActionSetting(mode: AlarmMode): number { - //TODO: This settings are only available on the device properties... - let value = 0; - try { - switch (mode) { - case AlarmMode.HOME: - value = Number.parseInt(this.getRawProperty(CommandType.CMD_GET_HOME_ACTION)); - break; - case AlarmMode.AWAY: - value = Number.parseInt(this.getRawProperty(CommandType.CMD_GET_AWAY_ACTION)); - break; - case AlarmMode.CUSTOM1: - value = Number.parseInt(this.getRawProperty(CommandType.CMD_GET_CUSTOM1_ACTION)); - break; - case AlarmMode.CUSTOM2: - value = Number.parseInt(this.getRawProperty(CommandType.CMD_GET_CUSTOM2_ACTION)); - break; - case AlarmMode.CUSTOM3: - value = Number.parseInt(this.getRawProperty(CommandType.CMD_GET_CUSTOM3_ACTION)); - break; - } - } catch (err) { - const error = ensureError(err); - rootHTTPLogger.debug(`Station get guard mode action setting - Error`, { error: getError(error), stationSN: this.getSerial(), mode: mode }); - } - return value; - } - - private isAlarmArmable(mode: AlarmMode): boolean { - const action = this.getGuardModeActionSetting(mode); - if ((action & GuardModeSecuritySettingsAction.CAMERA_ALARM) == GuardModeSecuritySettingsAction.CAMERA_ALARM || - (action & GuardModeSecuritySettingsAction.HOMEBASE_ALARM) == GuardModeSecuritySettingsAction.HOMEBASE_ALARM || - (action & GuardModeSecuritySettingsAction.LIGHT_ALARM) == GuardModeSecuritySettingsAction.LIGHT_ALARM) { - return true; - } - return false; - }*/ - _getDeviceSerial(channel) { - if (this.rawStation.devices) - for (const device of this.rawStation.devices) { - if (device.device_channel === channel) - return device.device_sn; - } - return ""; - } - _handleCameraInfoParameters(devices, channel, type, value) { - if (channel === Station.CHANNEL || channel === Station.CHANNEL_INDOOR || (this.isIntegratedDevice() && this.getDeviceType() !== types_1.DeviceType.HB3)) { - this.updateRawProperty(type, value, "p2p"); - if (type === types_2.CommandType.CMD_GET_ALARM_MODE) { - if (this.getDeviceType() !== types_1.DeviceType.STATION && this.getDeviceType() !== types_1.DeviceType.HB3) - // Trigger refresh Guard Mode - this.api.refreshStationData(); - } - if (this.isIntegratedDevice()) { - const device_sn = this.getSerial(); - if (!devices[device_sn]) { - devices[device_sn] = {}; - } - const parsedValue = parameter_1.ParameterHelper.readValue(device_sn, type, value, logging_1.rootHTTPLogger); - if (parsedValue !== undefined) { - devices[device_sn][type] = { - value: parsedValue, - source: "p2p" - }; - } - } - } - else { - const device_sn = this._getDeviceSerial(channel); - if (device_sn !== "") { - if (!devices[device_sn]) { - devices[device_sn] = {}; - } - const parsedValue = parameter_1.ParameterHelper.readValue(device_sn, type, value, logging_1.rootHTTPLogger); - if (parsedValue !== undefined) { - devices[device_sn][type] = { - value: parsedValue, - source: "p2p" - }; - } - } - } - } - onCameraInfo(cameraInfo) { - logging_1.rootHTTPLogger.debug("Station got camera info", { station: this.getSerial(), cameraInfo: cameraInfo }); - const devices = {}; - cameraInfo.params.forEach(param => { - this._handleCameraInfoParameters(devices, param.dev_type, param.param_type, param.param_value); - }); - if (Array.isArray(cameraInfo.db_bypass_str)) { - cameraInfo.db_bypass_str?.forEach(param => { - this._handleCameraInfoParameters(devices, param.channel, param.param_type, Buffer.from(param.param_value, "base64").toString()); - }); - } - Object.keys(devices).forEach(device => { - this.emit("raw device property changed", device, devices[device]); - }); - } - onCommandResponse(result) { - logging_1.rootHTTPLogger.debug("Station got p2p command response", { station: this.getSerial(), commandType: result.command_type, channel: result.channel, returnCodeName: types_2.ErrorCode[result.return_code], returnCode: result.return_code, customData: result.customData }); - this.emit("command result", this, result); - } - onSecondaryCommandResponse(result) { - logging_1.rootHTTPLogger.debug("Station got p2p secondary command response", { station: this.getSerial(), commandType: result.command_type, channel: result.channel, returnCode: result.return_code, customData: result.customData }); - this.emit("secondary command result", this, result); - if (result.command_type === types_2.CommandType.CMD_SMARTSAFE_SETTINGS && result.customData?.command?.name === "deviceVerifyPIN") { - if (result.return_code === 0) { - // Verify PIN was successfull for this session - this.pinVerified = true; - } - else { - this.pinVerified = false; - } - this.emit("device pin verified", this.getSerial(), this.pinVerified); - } - } - onConnect(address) { - this.terminating = false; - this.resetCurrentDelay(); - logging_1.rootHTTPLogger.info(`Connected to station ${this.getSerial()} on host ${address.host} and port ${address.port}`); - if (this.hasCommand(types_1.CommandName.StationDatabaseQueryLatestInfo)) { - this.databaseQueryLatestInfo(); - } - this.emit("connect", this); - } - onDisconnect() { - logging_1.rootHTTPLogger.info(`Disconnected from station ${this.getSerial()}`); - this.emit("close", this); - this.pinVerified = false; - if (!this.isEnergySavingDevice() && !this.terminating) - this.scheduleReconnect(); - } - onTimeout() { - logging_1.rootHTTPLogger.info(`Timeout connecting to station ${this.getSerial()}`); - this.emit("connection error", this, new error_1.StationConnectTimeoutError("Timeout connecting to station", { context: { station: this.getSerial() } })); - this.scheduleReconnect(); - } - getCurrentDelay() { - const delay = this.currentDelay == 0 ? 5000 : this.currentDelay; - if (this.currentDelay < 60000) - this.currentDelay += 10000; - if (this.currentDelay >= 60000 && this.currentDelay < 600000) - this.currentDelay += 60000; - return delay; - } - resetCurrentDelay() { - this.currentDelay = 0; - } - scheduleReconnect() { - if (!this.reconnectTimeout) { - const delay = this.getCurrentDelay(); - logging_1.rootHTTPLogger.debug(`Station schedule reconnect`, { stationSN: this.getSerial(), delay: delay }); - this.reconnectTimeout = setTimeout(() => { - this.reconnectTimeout = undefined; - this.connect(); - }, delay); - } - } - rebootHUB() { - const commandData = { - name: types_1.CommandName.StationReboot - }; - if (!this.hasCommand(types_1.CommandName.StationReboot)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station reboot - sending command`, { stationSN: this.getSerial() }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_HUB_REBOOT, - value: 0, - strValue: this.rawStation.member.admin_user_id, - channel: Station.CHANNEL - }, { - command: commandData - }); - } - setStatusLed(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceStatusLed, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set status led - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isCamera2Product() || device.isCamera3Product() || device.getDeviceType() === types_1.DeviceType.CAMERA || device.getDeviceType() === types_1.DeviceType.CAMERA_E || device.isCameraProfessional247()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_DEV_LED_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_LIVEVIEW_LED_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_LED_SWITCH, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.isFloodLightT8425() || (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT && !device.isFloodLightT8420X()) || device.isGarageCamera() || (device.isIndoorPanAndTiltCameraS350() && this.isStationHomeBase3()) || (device.isSoloCameras() && this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_DEV_LED_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorPanAndTiltCameraS350()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_LED_SWITCH, - "data": { - "enable": 0, - "quality": 0, - "status": 0, - "value": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isStarlight4GLTE()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_LED_SWITCH, - "data": { - "value": value === true ? 1 : 0, - "transaction": `${new Date().getTime()}` - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorCamera() || device.isFloodLight()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_LED_SWITCH, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "mediaAccountInfo": { - "deviceChannel": device.getChannel(), - "device_sn": device.getSerial(), - "device_type": -1, - "mDeviceName": device.getName(), - "mDidStr": this.rawStation.p2p_did, - "mHubSn": this.getSerial(), - "mInitStr": this.rawStation.app_conn, - "mReceiveVersion": "", - "mTimeInfo": "", - "mVersionName": "" - }, - "transaction": `${new Date().getTime()}` - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_DEV_LED_SWITCH, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isSoloCameras() && !this.isStationHomeBase3()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_LED_SWITCH, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "url": "", - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "mediaAccountInfo": { - "deviceChannel": device.getChannel(), - "device_sn": device.getSerial(), - "device_type": -1, - "mDeviceName": device.getName(), - "mDidStr": this.rawStation.p2p_did, - "mHubSn": this.getSerial(), - "mInitStr": this.rawStation.app_conn, - "mReceiveVersion": "", - "mTimeInfo": "", - "mVersionName": "" - }, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbellDualE340() || device.isBatteryDoorbellC30() || device.isBatteryDoorbellC31()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "light_enable": value === true ? 1 : 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbell() || device.isWiredDoorbellDual()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, - "mValue3": 0, - "payload": { - "light_enable": value === true ? 1 : 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_LED_NIGHT_OPEN, - "data": { - "status": value === true ? 1 : 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoNightVision(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoNightvision, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set auto night vision - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_NIGHT_VISION_TYPE, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isSoloCameraC210() || device.isSoloCameraSolar()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_NIGHT_VISION_TYPE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "night_sion": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_IRCUT_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - setNightVision(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNightvision, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set night vision - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isCameraProfessional247() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_NIGHT_VISION_TYPE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "night_sion": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_NIGHT_VISION_TYPE, - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "night_sion": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - setMotionDetection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isSoloCameraSolar() || device.isOutdoorPanAndTiltCamera() || device.isSoloCameraC210() || (device.isIndoorPanAndTiltCameraS350() && !this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE, - "data": { - "enable": 0, - "quality": 0, - "status": value === true ? 1 : 0, - "value": 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCameraProfessional247()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE, - "data": { - "channel": device.getChannel(), - "enable": 0, - "index": 0, - "status": value === true ? 1 : 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if ((device.isIndoorCamera() && !device.isIndoorPanAndTiltCameraS350()) || (device.isFloodLight() && device.getDeviceType() !== types_1.DeviceType.FLOODLIGHT) || device.isFloodLightT8420X() || device.isWiredDoorbellT8200X() || device.isStarlight4GLTE() || device.isGarageCamera() || device.isSoloCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": value === true ? 1 : 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isSoloCameras() || device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_MOTION_DETECTION_PACKAGE, - "data": { - "enable": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_PIR_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - setSoundDetection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSoundDetection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set sound detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": value === true ? 1 : 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setSoundDetectionType(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSoundDetectionType, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set sound detection type - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": value, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setSoundDetectionSensitivity(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSoundDetectionSensitivity, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set sound detection sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX, - "data": { - "enable": 0, - "index": value, - "status": 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setPetDetection(device, value) { - const propertyData = { - name: types_1.PropertyName.DevicePetDetection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set pet detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_PET_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": value === true ? 1 : 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - panAndTilt(device, direction, command = 1) { - const commandData = { - name: types_1.CommandName.DevicePanAndTilt, - value: direction - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DevicePanAndTilt)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!(direction in types_2.PanTiltDirection)) { - throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station pan and tilt - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), direction: types_2.PanTiltDirection[direction], command }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_ROTATE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "cmd_type": direction === types_2.PanTiltDirection.ROTATE360 ? -1 : command, - "rotate_type": direction, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isOutdoorPanAndTiltCamera() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - if (direction === types_2.PanTiltDirection.ROTATE360) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_OUTDOOR_ROTATE, - "data": { - "curise_type": 10, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_ROTATE, - "data": { - "cmd_type": command, - "rotate_type": direction, - "zoom": 1.0, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_ROTATE, - "data": { - "cmd_type": command, - "rotate_type": direction, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - switchLight(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLight, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station switch light - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if ((device.isFloodLight() && !device.isFloodLightT8425()) || device.isSoloCameraSpotlight1080() || device.isSoloCameraSpotlight2k() || - device.isSoloCameraSpotlightSolar() || device.isCamera2C() || device.isCamera2CPro() || - device.isIndoorOutdoorCamera1080p() || device.isIndoorOutdoorCamera2k() || device.isCamera3() || device.isCamera3C() || device.isCameraProfessional247() || device.isCamera3Pro()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbellDualE340() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH, - "data": { - "time": 0, - "type": 2, - "value": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isStarlight4GLTE()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH, - "data": { - "time": 60, - "type": 2, - "value": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH, - "data": { - "value": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionSensitivity(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivity, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion detection sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if ((device.isFloodLight() && device.getDeviceType() !== types_1.DeviceType.FLOODLIGHT && !device.isFloodLightT8425()) || (device.isIndoorCamera() && !device.isIndoorPanAndTiltCameraS350()) || device.isFloodLightT8420X() || device.isGarageCamera() || (device.isIndoorPanAndTiltCameraS350() && !this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX, - "data": { - "enable": 0, - "index": value, - "status": 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isOutdoorPanAndTiltCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_PIR_SENSITIVITY, - "data": { - "enable": 0, - "quality": 0, - "status": 0, - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if ((device.isSoloCameras() && !this.isStationHomeBase3()) || device.isWiredDoorbellT8200X() || device.isStarlight4GLTE()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_PIR_SENSITIVITY, - "data": { - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_MOTION_SENSITIVITY, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbellDualE340() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_MOTION_SENSITIVITY, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "sensitivity": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if ((device.isBatteryDoorbell() && !device.isBatteryDoorbellDual()) || device.isWiredDoorbellDual() || device.isBatteryDoorbell() && device.isBatteryDoorbellC30()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_MOTION_SENSITIVITY, - "payload": { - "channel": device.getChannel(), - "sensitivity": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCamera2Product()) { - let convertedValue; - switch (value) { - case 1: - convertedValue = 192; - break; - case 2: - convertedValue = 118; - break; - case 3: - convertedValue = 72; - break; - case 4: - convertedValue = 46; - break; - case 5: - convertedValue = 30; - break; - case 6: - convertedValue = 20; - break; - case 7: - convertedValue = 14; - break; - default: - convertedValue = 46; - break; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_PIRSENSITIVITY, - value: convertedValue, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.getDeviceType() === types_1.DeviceType.CAMERA || device.getDeviceType() === types_1.DeviceType.CAMERA_E) { - const convertedValue = 200 - ((value - 1) * 2); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_PIRSENSITIVITY, - value: convertedValue, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - let intMode; - let intSensitivity; - switch (value) { - case 1: - intMode = 3; - intSensitivity = 2; - break; - case 2: - intMode = 1; - intSensitivity = 1; - break; - case 3: - intMode = 1; - intSensitivity = 2; - break; - case 4: - intMode = 1; - intSensitivity = 3; - break; - case 5: - intMode = 2; - intSensitivity = 1; - break; - default: - intMode = 1; - intSensitivity = 3; - break; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_MOTION_DETECTION_PACKAGE, - "data": { - "mode": intMode, - "sensitivity": intSensitivity, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_MDSENSITIVITY, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCamera3Product() || device.isSmartDrop() || (device.isSoloCameras() && this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_PIRSENSITIVITY, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionType(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionType, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion detection type - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isCamera2Product() || device.isBatteryDoorbell() || device.getDeviceType() === types_1.DeviceType.CAMERA || - device.getDeviceType() === types_1.DeviceType.CAMERA_E || device.isSoloCameras() || - device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.isWiredDoorbellDual() || device.isStarlight4GLTE() || device.isGarageCamera() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_DEV_PUSHMSG_MODE, - value: value, - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLight() || device.isIndoorCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": value, - "value": 0, - "voiceID": 0, - "zonecount": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbellT8200X()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_DETECT_TYPE, - "data": { - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionTypeHB3(device, type, value) { - const propertyData = { - name: type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION ? types_1.PropertyName.DeviceMotionDetectionTypeHumanRecognition : type === types_1.HB3DetectionTypes.HUMAN_DETECTION || type === types_1.T8170DetectionTypes.HUMAN_DETECTION ? types_1.PropertyName.DeviceMotionDetectionTypeHuman : type === types_1.HB3DetectionTypes.PET_DETECTION ? types_1.PropertyName.DeviceMotionDetectionTypePet : type === types_1.HB3DetectionTypes.VEHICLE_DETECTION ? types_1.PropertyName.DeviceMotionDetectionTypeVehicle : types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion detection type HB3 - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), type: type, value: value }); - if (this.getDeviceType() === types_1.DeviceType.HB3) { - try { - if (!Object.values(types_1.HB3DetectionTypes).includes(type)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.HB3DetectionTypes).filter((value) => typeof value === "number")); - return; - } - const aiDetectionType = device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) !== undefined ? device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) : "0"; - let newAiDetectionType = (0, utils_1.getHB3DetectionMode)(Number.parseInt(aiDetectionType), type, value); - if (newAiDetectionType === 0) { - newAiDetectionType = type; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - "mChannel": 0, //device.getChannel(), - "mValue3": 0, - "payload": { - "ai_detect_type": newAiDetectionType, - "channel": device.getChannel(), - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, newAiDetectionType.toString(), "p2p"); - } - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`setMotionDetectionTypeHB3 Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), deviceSN: device.getSerial() }); - } - } - else if (device.isOutdoorPanAndTiltCamera()) { - try { - if (!Object.values(types_1.T8170DetectionTypes).includes(type)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.T8170DetectionTypes).filter((value) => typeof value === "number")); - return; - } - const aiDetectionType = device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) !== undefined ? device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) : "0"; - let newAiDetectionType = (0, utils_1.getT8170DetectionMode)(Number.parseInt(aiDetectionType), type, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "ai_detect_type": newAiDetectionType, - "channel": device.getChannel(), - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, newAiDetectionType.toString(), "p2p"); - } - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`setMotionDetectionTypeHB3 T8170DetectionTypes Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), deviceSN: device.getSerial() }); - } - } - else if (device.isSoloCameras()) { - try { - if (!Object.values(types_1.SoloCameraDetectionTypes).includes(type)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.SoloCameraDetectionTypes).filter((value) => typeof value === "number")); - return; - } - let newAiDetectionType = type; - if (!value) { - newAiDetectionType = type === types_1.SoloCameraDetectionTypes.ALL_OTHER_MOTION ? types_1.SoloCameraDetectionTypes.HUMAN_DETECTION : types_1.SoloCameraDetectionTypes.ALL_OTHER_MOTION; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "ai_detect_type": newAiDetectionType, - "channel": device.getChannel(), - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, newAiDetectionType.toString(), "p2p"); - } - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`setMotionDetectionTypeHB3 SoloCameraDetectionTypes Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), deviceSN: device.getSerial() }); - } - } - else if (device.isIndoorPanAndTiltCameraS350()) { - try { - if (!Object.values(types_1.IndoorS350DetectionTypes).includes(type)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.IndoorS350DetectionTypes).filter((value) => typeof value === "number")); - return; - } - const aiDetectionType = device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) !== undefined ? device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) : "0"; - let newAiDetectionType = (0, utils_1.getIndoorS350DetectionMode)(Number.parseInt(aiDetectionType), type, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "ai_detect_type": newAiDetectionType, - "channel": device.getChannel(), - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, newAiDetectionType.toString(), "p2p"); - } - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`setMotionDetectionTypeHB3 IndoorS350DetectionTypes Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), deviceSN: device.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionZone(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionZone, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion zone - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DET_SET_ACTIVE_ZONE, - "data": value - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setMotionTracking(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionTracking, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion tracking - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PAN_MOTION_TRACK, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setPanAndTiltRotationSpeed(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRotationSpeed, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set pan and tilt rotation speed - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PAN_SPEED, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setMicMute(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMicrophone, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set mic mute - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEV_MIC_MUTE, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setAudioRecording(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAudioRecording, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set audio recording - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "enable": value === true ? 1 : 0, - "index": 0, - "status": 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT && !device.isFloodLightT8420X()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_RECORD_AUDIO_SWITCH, - "payload": { - "storage_audio_switch": value === true ? 0 : 1, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isOutdoorPanAndTiltCamera() || (device.isIndoorPanAndTiltCameraS350() && !this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, - "data": { - "enable": value === true ? 1 : 0, - "quality": 0, - "status": 0, - "value": 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if ((device.isFloodLight() && !device.isFloodLightT8425()) || (device.isIndoorCamera() && !device.isIndoorPanAndTiltCameraS350()) || (device.isSoloCameras() && !this.isStationHomeBase3()) || device.isStarlight4GLTE()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, - "data": { - "enable": value === true ? 1 : 0, - "index": 0, - "status": 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbellDualE340() || device.isSmartDrop() || device.isLockWifiVideo() || device.isCameraProfessional247() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425() || (device.isSoloCameras() && this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "record_mute": value === true ? 0 : 1, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCamera2Product() || device.isCamera3Product() || device.isBatteryDoorbell() || device.getDeviceType() === types_1.DeviceType.CAMERA || device.getDeviceType() === types_1.DeviceType.CAMERA_E || device.isWiredDoorbellDual()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_AUDIO_MUTE_RECORD, - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "record_mute": value === true ? 0 : 1, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbellT8200X()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, - "data": { - "enable": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_AUDIO_RECORDING, - "data": { - "status": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - enableSpeaker(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSpeaker, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station enable speaker - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEV_SPEAKER_MUTE, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setSpeakerVolume(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSpeakerVolume, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set speaker volume - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SPEAKER_VOLUME, - "data": value - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEV_SPEAKER_VOLUME, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - setRingtoneVolume(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRingtoneVolume, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set ringtone volume - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell() || device.isWiredDoorbellDual() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbellT8200X()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_T8200X_SET_RINGTONE_VOLUME, - "data": { - "status": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_RINGTONE_VOLUME, - "data": { - "volume": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - enableIndoorChime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceChimeIndoor, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station enable indoor chime - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_INDOOR_CHIME, - "data": { - "status": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - enableHomebaseChime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceChimeHomebase, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station enable homebase chime - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell() || device.isLockWifiVideo() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_BAT_DOORBELL_CHIME_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setHomebaseChimeRingtoneVolume(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceChimeHomebaseRingtoneVolume, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set homebase chime ringtone volume - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_DINGDONG_V, - "mValue3": 0, - "payload": { - "dingdong_volume": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_DINGDONG_V, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "dingdong_volume": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setHomebaseChimeRingtoneType(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceChimeHomebaseRingtoneType, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set homebase chime ringtone type - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_DINGDONG_R, - "mValue3": 0, - "payload": { - "dingdong_ringtone": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_DINGDONG_R, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "dingdong_ringtone": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationType(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationType, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification type - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if ((device.isFloodLight() && !device.isFloodLightT8425()) || (device.isIndoorCamera() && !device.isIndoorPanAndTiltCameraS350()) || (device.isSoloCameras() && !this.isStationHomeBase3()) || device.isStarlight4GLTE() || device.isGarageCamera()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorPanAndTiltCameraS350() && !this.isStationHomeBase3()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, - "data": { - "enable": 0, - "quality": 0, - "status": 0, - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbellT8200X()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, - "data": { - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - if (!Object.values(types_1.WalllightNotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.WalllightNotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbellDualE340() || device.isLockWifiVideo()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "notification_motion_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationMotion) === true ? 1 : 0, - "notification_ring_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationRing) === true ? 1 : 0, - "notification_style": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbell() || device.isWiredDoorbellDual()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - "mValue3": 0, - "payload": { - "notification_motion_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationMotion) === true ? 1 : 0, - "notification_ring_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationRing) === true ? 1 : 0, - "notification_style": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCameraProfessional247() || (device.isIndoorPanAndTiltCameraS350() && this.isStationHomeBase3()) || device.isFloodLightT8425() || (device.isSoloCameras() && this.isStationHomeBase3())) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_PUSH_EFFECT, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "notification_style": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCamera2Product() || device.getDeviceType() === types_1.DeviceType.CAMERA || device.getDeviceType() === types_1.DeviceType.CAMERA_E || device.isCamera3Product()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_PUSH_EFFECT, - "mValue3": 0, - "payload": { - "notification_style": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - if (!Object.values(types_1.NotificationType).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_1.NotificationType).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_NOTIFICATION_TYPE, - "data": { - "style": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationPerson(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationPerson, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification person - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorCamera() || device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_AI_PERSON_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationPet(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationPet, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification pet - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_AI_PET_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationAllOtherMotion(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationAllOtherMotion, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification all other motion - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorCamera() || device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_AI_MOTION_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationAllSound(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationAllSound, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification all sound - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_AI_SOUND_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationCrying(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationCrying, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification crying - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_AI_CRYING_ENABLE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value === true ? 1 : 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationRing(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationRing, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification ring - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell() || device.isWiredDoorbellDual()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - "mValue3": 0, - "payload": { - "notification_ring_onoff": value === true ? 1 : 0, - "notification_motion_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationMotion) === true ? 1 : 0, - "notification_style": device.getPropertyValue(types_1.PropertyName.DeviceNotificationType), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "notification_ring_onoff": value === true ? 1 : 0, - "notification_motion_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationMotion) === true ? 1 : 0, - "notification_style": device.getPropertyValue(types_1.PropertyName.DeviceNotificationType), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_NOTIFICATION_RING, - "data": { - "type": value === true ? (device.getPropertyValue(types_1.PropertyName.DeviceNotificationMotion) === true ? 3 : 1) : (device.getPropertyValue(types_1.PropertyName.DeviceNotificationMotion) === true ? 2 : 0), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationMotion(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationMotion, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification motion - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbell() || device.isWiredDoorbellDual()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - "mValue3": 0, - "payload": { - "notification_motion_onoff": value === true ? 1 : 0, - "notification_ring_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationRing) === true ? 1 : 0, - "notification_style": device.getPropertyValue(types_1.PropertyName.DeviceNotificationType), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "notification_motion_onoff": value === true ? 1 : 0, - "notification_ring_onoff": device.getPropertyValue(types_1.PropertyName.DeviceNotificationRing) === true ? 1 : 0, - "notification_style": device.getPropertyValue(types_1.PropertyName.DeviceNotificationType), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_NOTIFICATION_RING, - "data": { - "type": value === true ? (device.getPropertyValue(types_1.PropertyName.DeviceNotificationRing) === true ? 3 : 2) : (device.getPropertyValue(types_1.PropertyName.DeviceNotificationRing) === true ? 1 : 0), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setPowerSource(device, value) { - const propertyData = { - name: types_1.PropertyName.DevicePowerSource, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set power source - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isStarlight4GLTE()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_POWER_CHARGE, - "data": { - "enable": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isOutdoorPanAndTiltCamera() || (device.isSoloCameras() && !this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_POWER_CHARGE, - "data": { - "enable": value, - "quality": 0, - "status": 0, - "value": 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_POWER_CHARGE, - "mValue3": 0, - "payload": { - "charge_mode": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - setPowerWorkingMode(device, value) { - const propertyData = { - name: types_1.PropertyName.DevicePowerWorkingMode, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set power working mode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_PIR_POWERMODE, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setRecordingClipLength(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRecordingClipLength, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set recording clip length - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_DEV_RECORD_TIMEOUT, - value: value, - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setRecordingRetriggerInterval(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRecordingRetriggerInterval, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set recording retrigger interval - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_DEV_RECORD_INTERVAL, - value: value, - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setRecordingEndClipMotionStops(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRecordingEndClipMotionStops, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set recording end clip motion stops - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_DEV_RECORD_AUTOSTOP, - value: value === true ? 0 : 1, - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setVideoStreamingQuality(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoStreamingQuality, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set video streaming quality - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "mode": -1, - "primary_view": -1, - "quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isOutdoorPanAndTiltCamera() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "mode": 0, - "primary_view": 0, - "quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorCamera() || (device.isSoloCameras() && !this.isStationHomeBase3()) || device.isFloodLight() || device.isWiredDoorbell() || device.isStarlight4GLTE() || device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_VIDEO_QUALITY, - "data": { - "quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_RESOLUTION, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbell() || device.isCamera2CPro() || device.isWiredDoorbellDual() || device.isCamera3() || device.isCamera3C() || device.isCamera3Pro() || device.isSmartDrop() || device.isLockWifiVideo() || device.isCameraProfessional247() || (device.isSoloCameras() && this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setVideoRecordingQuality(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoRecordingQuality, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set video recording quality - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "mode": -1, - "primary_view": -1, - "quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isOutdoorPanAndTiltCamera() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "mode": 0, - "primary_view": 0, - "quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorCamera() || device.isWiredDoorbell() || device.isFloodLight() || (device.isSoloCameras() && !this.isStationHomeBase3()) || device.isStarlight4GLTE() || device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_VIDEO_RECORDING_QUALITY, - "data": { - "quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_RECORD_QUALITY, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isCamera2CPro() || device.isCamera3() || device.isCamera3C() || device.isCameraProfessional247() || device.isCamera3Pro()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_RECORD_QUALITY, - "mValue3": 0, - "payload": { - "record_quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if ((device.isSoloCameras() && this.isStationHomeBase3()) || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_RECORD_QUALITY, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "record_quality": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setWDR(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoWDR, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set wdr - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_BAT_DOORBELL_WDR_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setFloodlightLightSettingsEnable(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsEnable, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings enable - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_FLOODLIGHT_TOTAL_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setFloodlightLightSettingsBrightnessManual(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsBrightnessManual, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings brightness manual - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isFloodLight() || device.isSoloCameraSpotlight1080() || device.isSoloCameraSpotlight2k() || - device.isSoloCameraSpotlightSolar() || device.isCamera2C() || device.isCamera2CPro() || - device.isIndoorOutdoorCamera1080p() || device.isIndoorOutdoorCamera2k() || device.isCamera3() || device.isCamera3C() || device.isCamera3Pro() || device.isOutdoorPanAndTiltCamera() || device.isCameraProfessional247()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_FLOODLIGHT_BRIGHT_VALUE, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_FLOODLIGHT_BRIGHT_VALUE, - "data": { - "type": 0, - "value": value, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setFloodlightLightSettingsBrightnessMotion(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsBrightnessMotion, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings brightness motion - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425); - if (rawProperty !== undefined) { - const payload = { - ...rawProperty, - brightness: value, - }; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": payload - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set light settings brightness motion - Needed raw property "${types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else if (device.isFloodLight()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR, - "data": { - "type": 0, - "value": value, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setFloodlightLightSettingsBrightnessSchedule(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsBrightnessSchedule, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings brightness schedule - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "brightness": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLight()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH, - "data": { - "type": 0, - "value": value, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setFloodlightLightSettingsMotionTriggered(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionTriggered, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings motion triggered - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425); - if (rawProperty !== undefined) { - const payload = { - ...rawProperty, - enable: value === true ? 1 : 0, - }; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": payload - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set light settings motion triggered - Needed raw property "${types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else if (device.isFloodLight()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_LIGHT_CTRL_PIR_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_LIGHT_CTRL_PIR_SWITCH, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setFloodlightLightSettingsMotionTriggeredDistance(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionTriggeredDistance, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - let newValue; - switch (value) { - case 1: - newValue = types_1.FloodlightMotionTriggeredDistance.MIN; - break; - case 2: - newValue = types_1.FloodlightMotionTriggeredDistance.LOW; - break; - case 3: - newValue = types_1.FloodlightMotionTriggeredDistance.MEDIUM; - break; - case 4: - newValue = types_1.FloodlightMotionTriggeredDistance.HIGH; - break; - case 5: - newValue = types_1.FloodlightMotionTriggeredDistance.MAX; - break; - default: - throw new error_1.InvalidPropertyValueError("Invalid value for this property", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set light settings motion triggered distance - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: newValue }); - if (device.isFloodLight()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_PIRSENSITIVITY, - value: newValue, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setFloodlightLightSettingsMotionTriggeredTimer(device, seconds) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionTriggeredTimer, - value: seconds - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, seconds); - logging_1.rootHTTPLogger.debug(`Station set light settings motion triggered timer - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: seconds }); - if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425); - if (rawProperty !== undefined) { - const payload = { - ...rawProperty, - time: seconds - }; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": payload - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set light settings motion triggered timer - Needed raw property "${types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else if (device.isFloodLight()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_LIGHT_CTRL_PIR_TIME, - value: seconds, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_LIGHT_CTRL_PIR_TIME, - "data": seconds, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - triggerStationAlarmSound(seconds) { - const commandData = { - name: types_1.CommandName.StationTriggerAlarmSound, - value: seconds - }; - if (!this.hasCommand(types_1.CommandName.StationTriggerAlarmSound)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station trigger station alarm sound - sending command`, { stationSN: this.getSerial(), value: seconds }); - if (!(0, utils_1.isGreaterEqualMinVersion)("2.0.7.9", this.getSoftwareVersion()) || device_1.Device.isIntegratedDeviceBySn(this.getSerial())) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_TONE_FILE, - value: 2, - valueSub: seconds, - strValue: this.rawStation.member.admin_user_id, - channel: Station.CHANNEL - }, { - command: commandData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_TONE_FILE, - "mValue3": 0, - "payload": { - "time_out": seconds, - "user_name": this.rawStation.member.nick_name, - } - }), - channel: Station.CHANNEL - }, { - command: commandData - }); - } - } - resetStationAlarmSound() { - this.triggerStationAlarmSound(0); - } - triggerDeviceAlarmSound(device, seconds) { - const commandData = { - name: types_1.CommandName.DeviceTriggerAlarmSound, - value: seconds - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceTriggerAlarmSound)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station trigger device alarm sound - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: seconds }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_TONE_FILE, - value: seconds, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - command: commandData - }); - } - resetDeviceAlarmSound(device) { - this.triggerDeviceAlarmSound(device, 0); - } - setStationAlarmRingtoneVolume(value) { - const propertyData = { - name: types_1.PropertyName.StationAlarmVolume, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station alarm ringtone volume - sending command`, { stationSN: this.getSerial(), value: value }); - if (device_1.Device.isWallLightCam(this.getDeviceType())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_ALERT_VOLUME, - "data": value - }), - channel: 0 - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_SET_HUB_SPK_VOLUME, - value: value, - strValue: this.rawStation.member.admin_user_id, - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - } - setStationAlarmTone(value) { - const propertyData = { - name: types_1.PropertyName.StationAlarmTone, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station alarm tone - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_HUB_ALARM_TONE, - "mValue3": 0, - "payload": { - "type": value, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - setStationPromptVolume(value) { - const propertyData = { - name: types_1.PropertyName.StationPromptVolume, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station prompt volume - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_PROMPT_VOLUME, - "mValue3": 0, - "payload": { - "value": value, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - setStationNotificationSwitchMode(mode, value) { - const propertyData = { - name: mode === types_1.NotificationSwitchMode.APP ? types_1.PropertyName.StationNotificationSwitchModeApp : mode === types_1.NotificationSwitchMode.GEOFENCE ? types_1.PropertyName.StationNotificationSwitchModeGeofence : mode === types_1.NotificationSwitchMode.KEYPAD ? types_1.PropertyName.StationNotificationSwitchModeKeypad : mode === types_1.NotificationSwitchMode.SCHEDULE ? types_1.PropertyName.StationNotificationSwitchModeSchedule : "", - value: value - }; - if ((!this.hasProperty(types_1.PropertyName.StationNotificationSwitchModeApp) && mode === types_1.NotificationSwitchMode.APP) || - (!this.hasProperty(types_1.PropertyName.StationNotificationSwitchModeGeofence) && mode === types_1.NotificationSwitchMode.GEOFENCE) || - (!this.hasProperty(types_1.PropertyName.StationNotificationSwitchModeKeypad) && mode === types_1.NotificationSwitchMode.KEYPAD) || - (!this.hasProperty(types_1.PropertyName.StationNotificationSwitchModeSchedule) && mode === types_1.NotificationSwitchMode.SCHEDULE)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station notification switch mode - sending command`, { stationSN: this.getSerial(), mode: mode, value: value }); - if (this.isStation() && (0, utils_1.isGreaterEqualMinVersion)("2.1.1.6", this.getSoftwareVersion())) { - let oldvalue = 0; - const rawproperty = this.getRawProperty(types_2.CommandType.CMD_HUB_NOTIFY_MODE); - if (rawproperty !== undefined) { - try { - oldvalue = Number.parseInt(rawproperty); - } - catch (error) { - } - } - const pushMode = (0, utils_1.switchNotificationMode)(oldvalue, mode, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_HUB_NOTIFY_MODE, - "mValue3": 0, - "payload": { - "arm_push_mode": pushMode, - "notify_alarm_delay": this.getPropertyValue(types_1.PropertyName.StationNotificationStartAlarmDelay) !== undefined ? (this.getPropertyValue(types_1.PropertyName.StationNotificationStartAlarmDelay) === true ? 1 : 0) : 0, - "notify_mode": 0, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData, - onSuccess: () => { - this.updateRawProperty(types_2.CommandType.CMD_HUB_NOTIFY_MODE, pushMode.toString(), "p2p"); - } - }); - } - else if (this.getDeviceType() === types_1.DeviceType.OUTDOOR_PT_CAMERA || device_1.Device.isSoloCameraC210(this.getDeviceType())) { - let oldvalue = 0; - const rawproperty = this.getRawProperty(types_2.CommandType.CMD_HUB_NOTIFY_MODE); - if (rawproperty !== undefined) { - try { - oldvalue = Number.parseInt(rawproperty); - } - catch (error) { - } - } - const pushMode = (0, utils_1.switchNotificationMode)(oldvalue, mode, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_HUB_NOTIFY_MODE, - "mChannel": 0, - "mValue3": 0, - "payload": { - "arm_push_mode": pushMode, - "notify_alarm_delay": 0, - "notify_mode": 0, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData, - onSuccess: () => { - this.updateRawProperty(types_2.CommandType.CMD_HUB_NOTIFY_MODE, pushMode.toString(), "p2p"); - } - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_HUB_NOTIFY_MODE, - "mValue3": 0, - "payload": { - //"arm_push_mode": 0, - "notify_alarm_delay": this.getPropertyValue(types_1.PropertyName.StationNotificationStartAlarmDelay) !== undefined ? (this.getPropertyValue(types_1.PropertyName.StationNotificationStartAlarmDelay) === true ? 1 : 0) : 0, - "notify_mode": value === true ? 1 : 0, // 0 or 1 - } - }), - channel: Station.CHANNEL - }, { - property: propertyData, - onSuccess: () => { - this.updateRawProperty(types_2.CommandType.CMD_HUB_NOTIFY_MODE, String(value === true ? 1 : 0), "p2p"); - } - }); - } - } - setStationNotificationStartAlarmDelay(value) { - const propertyData = { - name: types_1.PropertyName.StationNotificationStartAlarmDelay, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - let pushmode = 0; - const rawproperty = this.getRawProperty(types_2.CommandType.CMD_HUB_NOTIFY_MODE); - if (rawproperty !== undefined) { - try { - pushmode = Number.parseInt(rawproperty); - } - catch (error) { - } - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station notification start alarm delay - sending command`, { stationSN: this.getSerial(), value: value }); - if ((0, utils_1.isGreaterEqualMinVersion)("2.1.1.6", this.getSoftwareVersion())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_HUB_NOTIFY_ALARM, - "mValue3": 0, - "payload": { - "arm_push_mode": pushmode, - "notify_alarm_delay": value === true ? 1 : 0, - "notify_mode": 0, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_HUB_NOTIFY_MODE, - "mValue3": 0, - "payload": { - //"arm_push_mode": 0, - "notify_alarm_delay": value === true ? 1 : 0, - "notify_mode": pushmode, // 0 or 1 - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - } - setStationTimeFormat(value) { - const propertyData = { - name: types_1.PropertyName.StationTimeFormat, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station time format - sending command`, { stationSN: this.getSerial(), value: value }); - if (device_1.Device.isWallLightCam(this.getDeviceType())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_HUB_OSD, - "data": value - }), - channel: 0 - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_SET_HUB_OSD, - value: value, - strValue: this.rawStation.member.admin_user_id, - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - } - setRTSPStream(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRTSPStream, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set rtsp stream - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_NAS_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setAntiTheftDetection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAntitheftDetection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set anti theft detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_EAS_SWITCH, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setWatermark(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceWatermark, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set watermark - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isCamera2Product() || device.isCamera3Product() || device.isSoloCameraSolar() || device.isOutdoorPanAndTiltCamera() || device.isCameraProfessional247() || device.isIndoorPanAndTiltCameraS350() || device.isSoloCameraC210() || device.isFloodLightT8425()) { - if (!Object.values(types_2.WatermarkSetting3).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_2.WatermarkSetting3).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_OSD, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isSoloCameras() || device.isWiredDoorbell() || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.isStarlight4GLTE()) { - if (!Object.values(types_2.WatermarkSetting1).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_2.WatermarkSetting1).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_OSD, - value: value, - valueSub: 0, - strValue: this.rawStation.member.admin_user_id, - channel: 0 - }, { - property: propertyData - }); - } - else if (device.isIndoorCamera() || device.isFloodLight()) { - if (!Object.values(types_2.WatermarkSetting4).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_2.WatermarkSetting4).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_OSD, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbell() || device.getDeviceType() === types_1.DeviceType.CAMERA || device.getDeviceType() === types_1.DeviceType.CAMERA_E || device.isWiredDoorbellDual() || device.isLockWifiVideo()) { - if (!Object.values(types_2.WatermarkSetting2).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values: `, Object.values(types_2.WatermarkSetting2).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_OSD, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - if (!Object.values(types_2.WatermarkSetting1).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_2.WatermarkSetting1).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_DEVS_OSD, - "data": value - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isGarageCamera()) { - if (!Object.values(types_2.WatermarkSetting5).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, Object.values(types_2.WatermarkSetting5).filter((value) => typeof value === "number")); - return; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_OSD, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isSmartDrop()) { - if (!Object.values(types_2.WatermarkSetting1).includes(value)) { - logging_1.rootHTTPLogger.error(`The device ${device.getSerial()} accepts only this type of values:`, types_2.WatermarkSetting1); - return; - } - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_DEVS_OSD, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - enableDevice(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceEnabled, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - let param_value = value === true ? 0 : 1; - if ((device.isIndoorCamera() && !device.isIndoorCamMini() && !device.isIndoorPanAndTiltCameraS350()) || (device.isWiredDoorbell() && !device.isWiredDoorbellT8200X()) || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8422 || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || device.isFloodLightT8420X()) - param_value = value === true ? 1 : 0; - logging_1.rootHTTPLogger.debug(`Station enable device - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorCamMini()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE, - "data": { - "value": param_value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorPanAndTiltCameraS350()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE_S350, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "switch": param_value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorCamera() && (0, utils_1.isGreaterEqualMinVersion)("2.3.1.0", device.getSoftwareVersion()) && Station.isStationHomeBase3BySn(device.getStationSerial())) { - param_value = value === true ? 0 : 1; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE_S350, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "switch": param_value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_DEVS_SWITCH, - value: param_value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - async startDownload(device, path, cipher_id) { - const commandData = { - name: types_1.CommandName.DeviceStartDownload, - value: { - path: path, - cipher_id: cipher_id - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceStartDownload)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station start download - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), path: path, cipherID: cipher_id }); - if (this.getDeviceType() === types_1.DeviceType.HB3) { - //TODO: Implement HB3 Support! Actually doesn't work and returns return_code -104 (ERROR_INVALID_ACCOUNT). It could be that we need the new encrypted p2p protocol to make this work... - const rsa_key = this.p2pSession.getDownloadRSAPrivateKey(); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOWNLOAD_VIDEO, - value: JSON.stringify({ - account_id: this.rawStation.member.admin_user_id, - cmd: types_2.CommandType.CMD_DOWNLOAD_VIDEO, - mChannel: device.getChannel(), - mValue3: types_2.CommandType.CMD_DOWNLOAD_VIDEO, - payload: { - filepath: path, - key: rsa_key?.exportKey("components-public").n.subarray(1).toString("hex").toUpperCase(), - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (cipher_id !== undefined) { - const cipher = await this.api.getCipher(/*this.rawStation.station_sn, */ cipher_id, this.rawStation.member.admin_user_id); - if (Object.keys(cipher).length > 0) { - this.p2pSession.setDownloadRSAPrivateKeyPem(cipher.private_key); - this.p2pSession.sendCommandWithString({ - commandType: types_2.CommandType.CMD_DOWNLOAD_VIDEO, - strValue: path, - strValueSub: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - logging_1.rootHTTPLogger.warn(`Cancelled download of video "${path}" from Station ${this.getSerial()}, because RSA certificate couldn't be loaded`); - this.emit("command result", this, { - channel: device.getChannel(), - command_type: types_2.CommandType.CMD_DOWNLOAD_VIDEO, - return_code: types_2.ErrorCode.ERROR_INVALID_PARAM, - customData: { - command: commandData - } - }); - } - } - else { - this.p2pSession.sendCommandWithString({ - commandType: types_2.CommandType.CMD_DOWNLOAD_VIDEO, - strValue: path, - strValueSub: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - command: commandData - }); - } - /* else { - rootHTTPLogger.warn(`Cancelled download of video "${path}" from Station ${this.getSerial()}, because cipher_id is missing`); - this.emit("command result", this, { - channel: device.getChannel(), - command_type: CommandType.CMD_DOWNLOAD_VIDEO, - return_code: ErrorCode.ERROR_INVALID_PARAM, - customData: { - command: commandData - } - }); - }*/ - } - cancelDownload(device) { - const commandData = { - name: types_1.CommandName.DeviceCancelDownload - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceCancelDownload)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station cancel download - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_DOWNLOAD_CANCEL, - value: device.getChannel(), - strValueSub: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - command: commandData - }); - } - startLivestream(device, videoCodec = types_2.VideoCodec.H264) { - const commandData = { - name: types_1.CommandName.DeviceStartLivestream, - value: videoCodec - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceStartLivestream)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (this.isLiveStreaming(device)) { - throw new error_2.LivestreamAlreadyRunningError("Livestream for device is already running", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec }); - const rsa_key = this.p2pSession.getRSAPrivateKey(); - if (device.isSmartDrop()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command (smart drop)`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "mChannel": 0, - "mValue3": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "payload": { - "ClientOS": "Android", - "camera_type": 0, - "entrytype": 0, - "key": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "streamtype": videoCodec === types_2.VideoCodec.H264 ? 1 : 2, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isOutdoorPanAndTiltCamera()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_DOORBELL_SET_PAYLOAD (1)`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_START_LIVESTREAM, - "data": { - "accountId": this.rawStation.member.admin_user_id, - "camera_type": 0, - "encryptkey": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "entrytype": 0, - "streamtype": videoCodec - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isSoloCameras() || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8424 || device.isWiredDoorbellT8200X() || device.isWallLightCam() || device.isGarageCamera()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_DOORBELL_SET_PAYLOAD (2)`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_START_LIVESTREAM, - "data": { - "accountId": this.rawStation.member.admin_user_id, - "encryptkey": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "streamtype": videoCodec - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if ((device.isIndoorPanAndTiltCameraS350() && this.isStationHomeBase3()) || device.isFloodLightT8425()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_SET_PAYLOAD`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "mChannel": device.getChannel(), - "mValue3": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "payload": { - "ClientOS": "Android", - "accountId": this.rawStation.member.admin_user_id, - "camera_type": 0, - "entrytype": 0, - "key": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "streamtype": videoCodec === types_2.VideoCodec.H264 ? 1 : 2, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isIndoorPanAndTiltCameraS350()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_DOORBELL_SET_PAYLOAD (4)`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_START_LIVESTREAM, - "data": { - "accountId": this.rawStation.member.admin_user_id, - "camera_type": 0, - "encryptkey": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "entrytype": 0, - "msg_id": 86, - "streamtype": videoCodec - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isWiredDoorbell() || (device.isFloodLight() && device.getDeviceType() !== types_1.DeviceType.FLOODLIGHT) || device.isIndoorCamera() || (device.getSerial().startsWith("T8420") && (0, utils_1.isGreaterEqualMinVersion)("2.0.4.8", this.getSoftwareVersion()))) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_DOORBELL_SET_PAYLOAD (3)`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_START_LIVESTREAM, - "data": { - "account_id": this.rawStation.member.admin_user_id, - "encryptkey": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "streamtype": videoCodec - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isCameraProfessional247()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_SET_PAYLOAD`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "mValue3": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "payload": { - "ClientOS": "Android", - "camera_type": 0, - "entrytype": 0, - "key": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "streamtype": videoCodec === types_2.VideoCodec.H264 ? 1 : 2, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - if ((device_1.Device.isIntegratedDeviceBySn(this.getSerial()) || !(0, utils_1.isGreaterEqualMinVersion)("2.0.9.7", this.getSoftwareVersion())) && (!this.getSerial().startsWith("T8420") || !(0, utils_1.isGreaterEqualMinVersion)("1.0.0.25", this.getSoftwareVersion())) || device.isLockWifiVideo()) { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_START_REALTIME_MEDIA`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_START_REALTIME_MEDIA, - value: device.getChannel(), - strValue: rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - logging_1.rootHTTPLogger.debug(`Station start livestream - sending command using CMD_SET_PAYLOAD`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), videoCodec: videoCodec, main_sw_version: this.getSoftwareVersion() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "mValue3": types_2.CommandType.CMD_START_REALTIME_MEDIA, - "payload": { - "ClientOS": "Android", - "key": rsa_key?.exportKey("components-public").n.subarray(1).toString("hex"), - "streamtype": videoCodec === types_2.VideoCodec.H264 ? 1 : 2, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - } - stopLivestream(device) { - const commandData = { - name: types_1.CommandName.DeviceStopLivestream - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceStopLivestream)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!this.isLiveStreaming(device)) { - throw new error_2.LivestreamNotRunningError("Livestream for device is not running", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station stop livestream - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_STOP_REALTIME_MEDIA, - value: device.getChannel(), - channel: device.getChannel() - }, { - command: commandData - }); - } - isLiveStreaming(device) { - if (device.getStationSerial() !== this.getSerial()) - return false; - return this.p2pSession.isLiveStreaming(device.getChannel()); - } - isDownloading(device) { - if (device.getStationSerial() !== this.getSerial()) - return false; - return this.p2pSession.isDownloading(device.getChannel()); - } - quickResponse(device, voice_id) { - const commandData = { - name: types_1.CommandName.DeviceQuickResponse, - value: voice_id - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceQuickResponse)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station quick response - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), voiceID: voice_id }); - if (device.isBatteryDoorbell() || device.isLockWifiVideo()) { - logging_1.rootHTTPLogger.debug(`Station quick response - sending command using CMD_BAT_DOORBELL_QUICK_RESPONSE`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), voiceID: voice_id }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_BAT_DOORBELL_QUICK_RESPONSE, - value: voice_id, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isWiredDoorbell()) { - logging_1.rootHTTPLogger.debug(`Station quick response - sending command using CMD_DOORBELL_SET_PAYLOAD`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), voiceID: voice_id }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_QUICK_RESPONSE, - "data": { - "voiceID": voice_id - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - } - setChirpVolume(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceChirpVolume, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set chirp volume - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isEntrySensor()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SENSOR_SET_CHIRP_VOLUME, - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "volume": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setChirpTone(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceChirpTone, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set chirp tone - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isEntrySensor()) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SENSOR_SET_CHIRP_TONE, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setHDR(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoHDR, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set hdr - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_HDR, - "data": { - "status": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDistortionCorrection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoDistortionCorrection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set distortion correction - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_DISTORTION_CORRECTION, - "data": { - "status": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setRingRecord(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoRingRecord, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set ring record - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWiredDoorbell()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_1.ParamType.COMMAND_VIDEO_RING_RECORD, - "data": { - "status": value - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - lockDevice(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLocked, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station lock device - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockBleNoFinger() || device.isLockBle()) { - const key = (0, utils_2.generateBasicLockAESKey)(this.rawStation.member.admin_user_id, this.getSerial()); - const iv = (0, utils_2.getLockVectorBytes)(this.getSerial()); - const lockCmd = device_1.Lock.encodeESLCmdOnOff(Number.parseInt(this.rawStation.member.short_user_id), this.rawStation.member.nick_name, value); - const payload = { - channel: device.getChannel(), - lock_cmd: types_2.ESLBleCommand.ON_OFF_LOCK, - lock_payload: lockCmd.toString("base64"), - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const encPayload = (0, utils_2.encryptLockAESData)(key, iv, (0, utils_2.encodeLockPayload)(JSON.stringify(payload))); - logging_1.rootHTTPLogger.debug("Station lock device - Locking/unlocking device...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: payload, encPayload: encPayload.toString("hex") }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORLOCK_DATA_PASS_THROUGH, - "mValue3": 0, - "payload": { - "payload": encPayload.toString("base64") - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const nestedPayload = { - shortUserId: this.rawStation.member.short_user_id, - slOperation: value === true ? 1 : 0, - userId: this.rawStation.member.admin_user_id, - userName: this.rawStation.member.nick_name, - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_ON_OFF_LOCK, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_ON_OFF_LOCK, command.aesKey); - logging_1.rootHTTPLogger.debug("Station lock device - Locking/unlocking device...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - property: propertyData - }); - } - else if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_ON_OFF_LOCK, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "shortUserId": this.rawStation.member.short_user_id, - "slOperation": value === true ? 1 : 0, - "userId": this.rawStation.member.admin_user_id, - "userName": this.rawStation.member.nick_name, - } - }), - channel: device.getChannel(), - }, { - property: propertyData - }); - logging_1.rootHTTPLogger.debug("Station lock device - Locking/unlocking device...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.ON_OFF_LOCK, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdUnlock(this.rawStation.member.short_user_id, value === true ? 1 : 0, this.rawStation.member.nick_name)); - logging_1.rootHTTPLogger.debug("Station lock device - Locking/unlocking device...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this._sendLockV12P2PCommand(command, { - property: propertyData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.ON_OFF_LOCK, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockUnlock(this.rawStation.member.admin_user_id, value, this.rawStation.member.nick_name, this.rawStation.member.short_user_id)); - logging_1.rootHTTPLogger.debug("Station lock device - Locking/unlocking device...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setStationSwitchModeWithAccessCode(value) { - const propertyData = { - name: types_1.PropertyName.StationNotificationSwitchModeGeofence, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station switch mode with access code - sending command`, { stationSN: this.getSerial(), value: value }); - if (this.isStation()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_KEYPAD_PSW_OPEN, - "mValue3": 0, - "payload": { - "psw_required": value === true ? 1 : 0, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - } - setStationAutoEndAlarm(value) { - const propertyData = { - name: types_1.PropertyName.StationAutoEndAlarm, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station station auto end alarm - sending command`, { stationSN: this.getSerial(), value: value }); - if (this.isStation()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_HUB_ALARM_AUTO_END, - "mValue3": 0, - "payload": { - "value": value === true ? 0 : 2147483647, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - } - setStationTurnOffAlarmWithButton(value) { - const propertyData = { - name: types_1.PropertyName.StationTurnOffAlarmWithButton, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set station turn off alarm with button - sending command`, { stationSN: this.getSerial(), value: value }); - if (this.isStation()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_HUB_ALARM_CLOSE, - "mValue3": 0, - "payload": { - "value": value === true ? 0 : 1, - } - }), - channel: Station.CHANNEL - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { propertyName: propertyData.name, propertyValue: propertyData.value, station: this.getSerial() } }); - } - } - startRTSPStream(device) { - const rtspStreamProperty = device.getPropertyValue(types_1.PropertyName.DeviceRTSPStream); - if (rtspStreamProperty !== undefined && rtspStreamProperty !== true) { - throw new error_1.RTSPPropertyNotEnabledError("RTSP setting for this device must be enabled first, to enable this functionality!", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: types_1.PropertyName.DeviceRTSPStream, propertyValue: rtspStreamProperty } }); - } - const propertyData = { - name: types_1.PropertyName.DeviceRTSPStream, - value: rtspStreamProperty - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(types_1.PropertyName.DeviceRTSPStream)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station start rtsp stream - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_NAS_TEST, - value: 1, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - stopRTSPStream(device) { - const rtspStreamProperty = device.getPropertyValue(types_1.PropertyName.DeviceRTSPStream); - if (rtspStreamProperty !== undefined && rtspStreamProperty !== true) { - throw new error_1.RTSPPropertyNotEnabledError("RTSP setting for this device must be enabled first, to enable this functionality!", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: types_1.PropertyName.DeviceRTSPStream, propertyValue: rtspStreamProperty } }); - } - const propertyData = { - name: types_1.PropertyName.DeviceRTSPStream, - value: rtspStreamProperty - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(types_1.PropertyName.DeviceRTSPStream)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station stop rtsp stream - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_NAS_TEST, - value: 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setMotionDetectionRange(device, type) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionRange, - value: type - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, type); - logging_1.rootHTTPLogger.debug(`Station set motion detection range - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: type }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE, - "data": { - "value": type, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425); - if (rawProperty !== undefined) { - const payload = { - ...rawProperty, - }; - const currentMode = type === 0 ? payload.mode0 : type === 1 ? payload.mode1 : type === 2 ? payload.mode2 : undefined; - if (currentMode !== undefined && Array.isArray(currentMode) && currentMode.length === 4) { - payload.cur_mode = type; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "cur_mode": payload.cur_mode, - "param": currentMode, - "test_mode": 2, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} has unexpected value`, { stationSN: this.getSerial(), rawProperty: rawProperty }); - } - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionRangeStandardSensitivity(device, sensitivity) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionRangeStandardSensitivity, - value: sensitivity - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, sensitivity); - logging_1.rootHTTPLogger.debug(`Station set motion detection range standard sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: sensitivity }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY, - "data": { - "value": sensitivity, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425); - if (rawProperty !== undefined) { - if (rawProperty.mode0 !== undefined && Array.isArray(rawProperty.mode0) && rawProperty.mode0.length === 4) { - const payload = { - ...rawProperty, - }; - payload.cur_mode = types_1.MotionDetectionRangeType.STANDARD; - payload.mode0[payload.mode0.findIndex((element) => element.id === 1)].sst = sensitivity; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "cur_mode": payload.cur_mode, - "param": payload.mode0.slice(0, 2), - "test_mode": 2, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range standard sensitivity - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} has unexpected value`, { stationSN: this.getSerial(), rawProperty: rawProperty }); - } - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range standard sensitivity - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionRangeAdvancedLeftSensitivity(device, sensitivity) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity, - value: sensitivity - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, sensitivity); - logging_1.rootHTTPLogger.debug(`Station motion detection range advanced left sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: sensitivity }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY, - "data": { - "value": sensitivity, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425); - if (rawProperty !== undefined) { - if (rawProperty.mode1 !== undefined && Array.isArray(rawProperty.mode1) && rawProperty.mode1.length === 4) { - const payload = { - ...rawProperty, - }; - payload.cur_mode = types_1.MotionDetectionRangeType.ADVANCED; - payload.mode1[payload.mode0.findIndex((element) => element.id === 1)].sst = sensitivity; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "cur_mode": payload.cur_mode, - "param": payload.mode1, - "test_mode": 2, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range advanced left sensitivity - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} has unexpected value`, { stationSN: this.getSerial(), rawProperty: rawProperty }); - } - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range advanced left sensitivity - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionRangeAdvancedMiddleSensitivity(device, sensitivity) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity, - value: sensitivity - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, sensitivity); - logging_1.rootHTTPLogger.debug(`Station set motion detection range advanced middle sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: sensitivity }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY, - "data": { - "value": sensitivity, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionRangeAdvancedRightSensitivity(device, sensitivity) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity, - value: sensitivity - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, sensitivity); - logging_1.rootHTTPLogger.debug(`Station set motion detection range advanced right sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: sensitivity }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY, - "data": { - "value": sensitivity, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425); - if (rawProperty !== undefined) { - if (rawProperty.mode1 !== undefined && Array.isArray(rawProperty.mode1) && rawProperty.mode1.length === 4) { - const payload = { - ...rawProperty, - }; - payload.cur_mode = types_1.MotionDetectionRangeType.ADVANCED; - payload.mode1[payload.mode0.findIndex((element) => element.id === 2)].sst = sensitivity; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "cur_mode": payload.cur_mode, - "param": payload.mode1, - "test_mode": 2, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range advanced right sensitivity - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} has unexpected value`, { stationSN: this.getSerial(), rawProperty: rawProperty }); - } - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection range advanced right sensitivity - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionTestMode(device, enabled) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionTestMode, - value: enabled - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, enabled); - logging_1.rootHTTPLogger.debug(`Station set motion detection test mode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: enabled }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.getDeviceType() === types_1.DeviceType.FLOODLIGHT) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_PIR_TEST_MODE, - value: enabled === true ? 1 : 2, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425); - if (rawProperty !== undefined && rawProperty.cur_mode !== undefined) { - const payload = { - ...rawProperty, - }; - const currentMode = payload.cur_mode === 0 ? payload.mode0 : payload.cur_mode === 1 ? payload.mode1 : payload.cur_mode === 2 ? payload.mode2 : undefined; - if (currentMode !== undefined && Array.isArray(currentMode) && currentMode.length === 4) { - payload.test_mode = enabled === true ? 1 : 0; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "cur_mode": payload.cur_mode, - "param": currentMode, - "test_mode": payload.test_mode, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection test mode - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} has unexpected value`, { stationSN: this.getSerial(), rawProperty: rawProperty }); - } - } - else { - logging_1.rootHTTPLogger.error(`Station set motion detection test mode - Needed raw property "${types_2.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionTrackingSensitivity(device, sensitivity) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionTrackingSensitivity, - value: sensitivity - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, sensitivity); - logging_1.rootHTTPLogger.debug(`Station set motion tracking sensitivity - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: sensitivity }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY, - "data": { - "value": sensitivity, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionAutoCruise(device, enabled) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionAutoCruise, - value: enabled - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, enabled); - logging_1.rootHTTPLogger.debug(`Station set motion auto cruise - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: enabled }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423 || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE, - "data": { - "value": enabled === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionOutOfViewDetection(device, enabled) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionOutOfViewDetection, - value: enabled - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, enabled); - logging_1.rootHTTPLogger.debug(`Station set motion out of view detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: enabled }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION, - "data": { - "value": enabled === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "deviceSn": device.getSerial(), - "value": enabled === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsColorTemperatureManual(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsColorTemperatureManual, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings color temperature manual - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL, - "data": { - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsColorTemperatureMotion(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsColorTemperatureMotion, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings color temperature motion - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION, - "data": { - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsColorTemperatureSchedule(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsColorTemperatureSchedule, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings color temperature schedule - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE, - "data": { - "value": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsMotionActivationMode(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionActivationMode, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings motion activation mode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isFloodLightT8425()) { - const rawProperty = device.getRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425); - if (rawProperty !== undefined) { - const payload = { - ...rawProperty, - mode: value, - }; - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": payload - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, payload, "p2p"); - } - }); - } - else { - logging_1.rootHTTPLogger.error(`Station set light settings motion activation mode - Needed raw property "${types_2.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425}" on device ${device.getSerial()} is undefined`, { stationSN: this.getSerial() }); - } - } - else if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_FLOODLIGHT_STREET_LAMP, - value: value, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_SET_FLOODLIGHT_STREET_LAMP, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setVideoNightvisionImageAdjustment(device, enabled) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoNightvisionImageAdjustment, - value: enabled - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, enabled); - logging_1.rootHTTPLogger.debug(`Station set video night vision image adjustment - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: enabled }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT, - "data": { - "value": enabled === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setVideoColorNightvision(device, enabled) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoColorNightvision, - value: enabled - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, enabled); - logging_1.rootHTTPLogger.debug(`Station set video color night vision - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: enabled }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION, - "data": { - "value": enabled === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoCalibration(device, enabled) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoCalibration, - value: enabled - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, enabled); - logging_1.rootHTTPLogger.debug(`Station set auto calibration - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: enabled }); - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_AUTO_CALIBRATION, - "data": { - "value": enabled === true ? 0 : 1, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_AUTO_CALIBRATION, - "data": { - "onoff": enabled === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - isRTSPLiveStreaming(device) { - return this.p2pSession.isRTSPLiveStreaming(device.getChannel()); - } - setConnectionType(type) { - this.p2pConnectionType = type; - } - getConnectionType() { - return this.p2pConnectionType; - } - onRuntimeState(channel, batteryLevel, temperature) { - this.emit("runtime state", this, channel, batteryLevel, temperature); - } - onChargingState(channel, chargeType, batteryLevel) { - this.emit("charging state", this, channel, chargeType, batteryLevel); - } - hasDevice(deviceSN) { - if (this.rawStation.devices) - for (const device of this.rawStation.devices) { - if (device.device_sn === deviceSN) - return true; - } - return false; - } - hasDeviceWithType(deviceType) { - if (this.rawStation.devices) - for (const device of this.rawStation.devices) { - if (device.device_type === deviceType) - return true; - } - return false; - } - onFloodlightManualSwitch(channel, enabled) { - this.emit("floodlight manual switch", this, channel, enabled); - } - calibrateLock(device) { - const commandData = { - name: types_1.CommandName.DeviceLockCalibration - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!this.hasCommand(types_1.CommandName.DeviceLockCalibration)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station calibrate lock - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const nestedPayload = { - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_CALIBRATE_LOCK, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_CALIBRATE_LOCK, command.aesKey); - logging_1.rootHTTPLogger.debug("Station calibrate lock - Calibrate lock...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - command: commandData - }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.CALIBRATE_LOCK, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdCalibrate(this.rawStation.member.admin_user_id)); - logging_1.rootHTTPLogger.debug("Station calibrate lock - Calibrate lock...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this._sendLockV12P2PCommand(command, { - command: commandData - }); - } - else if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_CALIBRATE_LOCK, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": {} - }), - channel: device.getChannel(), - }, { - command: commandData - }); - logging_1.rootHTTPLogger.debug("Station calibrate lock - Calibrate lock...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.ON_OFF_LOCK, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockCalibrate(this.rawStation.member.admin_user_id)); - logging_1.rootHTTPLogger.debug("Station calibrate lock - Calibrate lock...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - } - convertAdvancedLockSettingValue(property, value) { - switch (property) { - case types_1.PropertyName.DeviceAutoLock: - case types_1.PropertyName.DeviceNotification: - case types_1.PropertyName.DeviceNotificationLocked: - case types_1.PropertyName.DeviceOneTouchLocking: - case types_1.PropertyName.DeviceAutoLockSchedule: - case types_1.PropertyName.DeviceScramblePasscode: - case types_1.PropertyName.DeviceNotificationUnlocked: - case types_1.PropertyName.DeviceWrongTryProtection: - return value === true ? 1 : 0; - case types_1.PropertyName.DeviceWrongTryLockdownTime: - case types_1.PropertyName.DeviceSound: - case types_1.PropertyName.DeviceWrongTryAttempts: - case types_1.PropertyName.DeviceAutoLockTimer: - return value; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: - const autoLockSchedule = value.split(":"); - return `${Number.parseInt(autoLockSchedule[0]).toString(16).padStart(2, "0")}${Number.parseInt(autoLockSchedule[1]).toString(16).padStart(2, "0")}`; - } - return ""; - } - convertAdvancedLockSettingValueT8530(property, value) { - switch (property) { - case types_1.PropertyName.DeviceAutoLock: - case types_1.PropertyName.DeviceNotificationLocked: - case types_1.PropertyName.DeviceNotificationUnlocked: - case types_1.PropertyName.DeviceOneTouchLocking: - case types_1.PropertyName.DeviceAutoLockSchedule: - case types_1.PropertyName.DeviceScramblePasscode: - case types_1.PropertyName.DeviceWrongTryProtection: - case types_1.PropertyName.DeviceNightvisionOptimization: - return value === true ? 1 : 0; - case types_1.PropertyName.DeviceWrongTryLockdownTime: - case types_1.PropertyName.DeviceBeepVolume: - case types_1.PropertyName.DeviceWrongTryAttempts: - case types_1.PropertyName.DeviceAutoLockTimer: - case types_1.PropertyName.DeviceNightvisionOptimizationSide: - return value; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: - const autoLockSchedule = value.split(":"); - return `${Number.parseInt(autoLockSchedule[0]).toString(16).padStart(2, "0")}${Number.parseInt(autoLockSchedule[1]).toString(16).padStart(2, "0")}`; - } - return ""; - } - getAdvancedLockSettingsPayload(command, device) { - switch (command) { - case types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME: - case types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME: - command = types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE; - break; - case types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER: - command = types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK; - break; - case types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS: - case types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN: - command = types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT; - break; - case types_2.CommandType.CMD_SMARTLOCK_NOTIFICATION_LOCKED: - case types_2.CommandType.CMD_SMARTLOCK_NOTIFICATION_UNLOCKED: - command = types_2.CommandType.CMD_SMARTLOCK_NOTIFICATION; - break; - } - return { - autoLockTime: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceAutoLockTimer, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer)), - isAutoLock: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceAutoLock, device.getPropertyValue(types_1.PropertyName.DeviceAutoLock)), - isLockNotification: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceNotificationLocked, device.getPropertyValue(types_1.PropertyName.DeviceNotificationLocked)), - isNotification: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceNotification, device.getPropertyValue(types_1.PropertyName.DeviceNotification)), - isOneTouchLock: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceOneTouchLocking, device.getPropertyValue(types_1.PropertyName.DeviceOneTouchLocking)), - isSchedule: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceAutoLockSchedule, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule)), - isScramblePasscode: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceScramblePasscode, device.getPropertyValue(types_1.PropertyName.DeviceScramblePasscode)), - isUnLockNotification: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceNotificationUnlocked, device.getPropertyValue(types_1.PropertyName.DeviceNotificationUnlocked)), - isWrongTryProtect: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceWrongTryProtection, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection)), - lockDownTime: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceWrongTryLockdownTime, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime)), - lockSound: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceSound, device.getPropertyValue(types_1.PropertyName.DeviceSound)), - paramType: command, - scheduleEnd: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)), - scheduleStart: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime)), - wrongTryTime: this.convertAdvancedLockSettingValue(types_1.PropertyName.DeviceWrongTryAttempts, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts)), - seq_num: this.p2pSession.incLockSequenceNumber() - }; - } - getAdvancedLockSettingsPayloadT8530(command, device) { - switch (command) { - case types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME: - case types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME: - command = types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE; - break; - case types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER: - command = types_2.CommandType.CMD_SMARTLOCK_AUTO_LOCK; - break; - case types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS: - case types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN: - command = types_2.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT; - break; - case types_2.CommandType.CMD_SMARTLOCK_NOTIFICATION_LOCKED: - case types_2.CommandType.CMD_SMARTLOCK_NOTIFICATION_UNLOCKED: - command = types_2.CommandType.CMD_SMARTLOCK_NOTIFICATION; - break; - case types_2.CommandType.CMD_SMARTLOCK_VOLUME: - command = types_2.CommandType.CMD_SMARTLOCK_VOLUME; - break; - } - return { - autoLockTime: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceAutoLockTimer, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer)), - isAutoLock: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceAutoLock, device.getPropertyValue(types_1.PropertyName.DeviceAutoLock)), - isLockNotification: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceNotificationLocked, device.getPropertyValue(types_1.PropertyName.DeviceNotificationLocked)), - isNotification: 1, // unused constant - isOneTouchLock: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceOneTouchLocking, device.getPropertyValue(types_1.PropertyName.DeviceOneTouchLocking)), - isSchedule: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceAutoLockSchedule, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule)), - isScramblePasscode: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceScramblePasscode, device.getPropertyValue(types_1.PropertyName.DeviceScramblePasscode)), - isUnLockNotification: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceNotificationUnlocked, device.getPropertyValue(types_1.PropertyName.DeviceNotificationUnlocked)), - isWrongTryProtect: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceWrongTryProtection, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection)), - lockDownTime: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceWrongTryLockdownTime, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime)), - lockOpenDirection: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceNightvisionOptimizationSide, device.getPropertyValue(types_1.PropertyName.DeviceNightvisionOptimizationSide)), - lockSound: 1, // unused constant - lockVolume: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceBeepVolume, device.getPropertyValue(types_1.PropertyName.DeviceBeepVolume)), - nightVisionEnhance: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceNightvisionOptimization, device.getPropertyValue(types_1.PropertyName.DeviceNightvisionOptimization)), - openLeftAlarmEnable: 0, // unused constant - openLeftAlarmScheduleEnd: "0600", // unused constant - openLeftAlarmScheduleStart: "1700", // unused constant - openLeftAlarmScheduled: 0, // unused constant - openLeftAlarmTimer: 3, // unused constant - openLeftAlarmWays: 5, // unused constant - paramType: command, - scheduleEnd: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceAutoLockScheduleEndTime, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)), - scheduleStart: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceAutoLockScheduleStartTime, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime)), - tamperAlarmEnable: 0, // unused constant - tamperAlarmScheduleEnd: "0600", // unused constant - tamperAlarmScheduleStart: "1700", // unused constant - tamperAlarmScheduled: 0, // unused constant - tamperAlarmWays: 5, // unused constant - wrongTryTime: this.convertAdvancedLockSettingValueT8530(types_1.PropertyName.DeviceWrongTryAttempts, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts)), - }; - } - getAdvancedLockSettingName(property) { - switch (property) { - case types_1.PropertyName.DeviceAutoLock: return "isAutoLock"; - case types_1.PropertyName.DeviceAutoLockTimer: return "autoLockTime"; - case types_1.PropertyName.DeviceNotification: return "isNotification"; - case types_1.PropertyName.DeviceNotificationLocked: return "isLockNotification"; - case types_1.PropertyName.DeviceOneTouchLocking: return "isOneTouchLock"; - case types_1.PropertyName.DeviceAutoLockSchedule: return "isSchedule"; - case types_1.PropertyName.DeviceScramblePasscode: return "isScramblePasscode"; - case types_1.PropertyName.DeviceNotificationUnlocked: return "isUnLockNotification"; - case types_1.PropertyName.DeviceWrongTryProtection: return "isWrongTryProtect"; - case types_1.PropertyName.DeviceWrongTryLockdownTime: return "lockDownTime"; - case types_1.PropertyName.DeviceSound: return "lockSound"; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: return "scheduleEnd"; - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: return "scheduleStart"; - case types_1.PropertyName.DeviceWrongTryAttempts: return "wrongTryTime"; - } - return ""; - } - getAdvancedLockSettingNameT8530(property) { - switch (property) { - case types_1.PropertyName.DeviceAutoLock: return "isAutoLock"; - case types_1.PropertyName.DeviceAutoLockTimer: return "autoLockTime"; - case types_1.PropertyName.DeviceNotificationLocked: return "isLockNotification"; - case types_1.PropertyName.DeviceNotificationUnlocked: return "isUnLockNotification"; - case types_1.PropertyName.DeviceOneTouchLocking: return "isOneTouchLock"; - case types_1.PropertyName.DeviceAutoLockSchedule: return "isSchedule"; - case types_1.PropertyName.DeviceScramblePasscode: return "isScramblePasscode"; - case types_1.PropertyName.DeviceWrongTryProtection: return "isWrongTryProtect"; - case types_1.PropertyName.DeviceWrongTryLockdownTime: return "lockDownTime"; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: return "scheduleEnd"; - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: return "scheduleStart"; - case types_1.PropertyName.DeviceWrongTryAttempts: return "wrongTryTime"; - case types_1.PropertyName.DeviceNightvisionOptimizationSide: return "lockOpenDirection"; - case types_1.PropertyName.DeviceBeepVolume: return "lockVolume"; - case types_1.PropertyName.DeviceNightvisionOptimization: return "nightVisionEnhance"; - } - return ""; - } - setAdvancedLockParams(device, property, value) { - const propertyData = { - name: property, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const propertyMetadata = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(propertyMetadata, value); - logging_1.rootHTTPLogger.debug(`Station set advanced lock params - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const payload = this.getAdvancedLockSettingsPayload(device.getPropertyMetadata(property).key, device); - const p2pParamName = this.getAdvancedLockSettingName(property); - if (p2pParamName !== "") { - payload[p2pParamName] = this.convertAdvancedLockSettingValue(property, value); - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_SET_LOCK_PARAM, device.getChannel(), this.lockPublicKey, payload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_SET_LOCK_PARAM, command.aesKey); - logging_1.rootHTTPLogger.debug("Station set advanced lock params - Set lock param...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, property: property, value: value, payload: command, nestedPayload: payload }); - this.p2pSession.sendCommandWithStringPayload(command, { - property: propertyData - }); - } - else { - logging_1.rootHTTPLogger.warn(`Internal lock property for property ${property} not identified for ${device.getSerial()}`, { p2pParamName: p2pParamName }); - throw new error_2.InvalidPropertyError("Internal lock property for property not identified for this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - else if (device.isLockWifiVideo()) { - const payload = this.getAdvancedLockSettingsPayloadT8530(device.getPropertyMetadata(property).key, device); - const p2pParamName = this.getAdvancedLockSettingNameT8530(property); - if (p2pParamName !== "") { - payload[p2pParamName] = this.convertAdvancedLockSettingValueT8530(property, value); - logging_1.rootHTTPLogger.debug("Station set advanced lock params - Set lock param...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, property: property, value: value, payload: payload }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_SET_LOCK_PARAM, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": payload, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - logging_1.rootHTTPLogger.warn(`Internal lock property for property ${property} not identified for ${device.getSerial()}`, { p2pParamName: p2pParamName }); - throw new error_2.InvalidPropertyError("Internal lock property for property not identified for this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLoiteringDetection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringDetection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set loitering detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_SWITCH, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "radar_wd_switch": value === true ? 1 : 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLoiteringDetectionRange(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringDetectionRange, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set loitering detection range - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "radar_wd_distance": value - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLoiteringDetectionLength(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringDetectionLength, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set loitering detection length - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "radar_wd_time": value - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _setMotionDetectionSensitivity(device, propertyData, mode, blocklist) { - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set motion detection sensitivty - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), propertyData: propertyData, mode: mode, blocklist: blocklist }); - if (device.isBatteryDoorbellDual() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "block_list": blocklist, - "model": mode, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _getMotionDetectionSensitivityAdvanced(device) { - return [ - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedA), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedB), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedC), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedD), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedE), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedF), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedG), - device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedH), - ]; - } - setMotionDetectionSensitivityMode(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityMode, - value: value - }; - let distances; - if (device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityMode) === types_1.MotionDetectionMode.STANDARD) { - distances = Array(8).fill(device.getPropertyValue(types_1.PropertyName.DeviceMotionDetectionSensitivityStandard)); - } - else { - distances = this._getMotionDetectionSensitivityAdvanced(device); - } - this._setMotionDetectionSensitivity(device, propertyData, value, (0, utils_1.getBlocklist)(distances)); - } - setMotionDetectionSensitivityStandard(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityStandard, - value: value - }; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.STANDARD, (0, utils_1.getBlocklist)(Array(8).fill(value))); - } - setMotionDetectionSensitivityAdvancedA(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedA, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[0] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedB(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedB, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[1] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedC(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedC, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[2] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedD(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedD, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[3] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedE(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedE, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[4] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedF(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedF, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[5] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedG(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedG, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[6] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - setMotionDetectionSensitivityAdvancedH(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionSensitivityAdvancedH, - value: value - }; - const blocklist = this._getMotionDetectionSensitivityAdvanced(device); - blocklist[7] = value; - this._setMotionDetectionSensitivity(device, propertyData, types_1.MotionDetectionMode.ADVANCED, (0, utils_1.getBlocklist)(blocklist)); - } - _setLoiteringCustomResponse(device, propertyData, voiceID, autoVoiceResponse, homebaseAlert, pushNotification, startTime, endTime) { - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set loitering custom response - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), propertyData: propertyData, voiceID: voiceID, autoVoiceResponse: autoVoiceResponse, homebaseAlert: homebaseAlert, pushNotification: pushNotification, startTime: startTime, endTime: endTime }); - if (device.isBatteryDoorbellDual() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "num": 1, - "setting": [{ - "active": 0, - "auto_voice_id": voiceID, - "auto_voice_name": device.getVoiceName(voiceID), - "auto_voice_resp": autoVoiceResponse === true ? 1 : 0, - "end_hour": endTime.split(":")[0], - "end_min": endTime.split(":")[1], - "familiar_id": 0, - "homebase_alert": homebaseAlert === true ? 1 : 0, - "push_notify": pushNotification === true ? 1 : 0, - "start_hour": startTime.split(":")[0], - "start_min": startTime.split(":")[1], - }] - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLoiteringCustomResponseAutoVoiceResponse(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse, - value: value - }; - this._setLoiteringCustomResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice), value, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo)); - } - setLoiteringCustomResponseAutoVoiceResponseVoice(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice, - value: value - }; - this._setLoiteringCustomResponse(device, propertyData, value, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo)); - } - setLoiteringCustomResponseHomeBaseNotification(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification, - value: value - }; - this._setLoiteringCustomResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse), value, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo)); - } - setLoiteringCustomResponsePhoneNotification(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification, - value: value - }; - this._setLoiteringCustomResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification), value, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo)); - } - setLoiteringCustomResponseTimeFrom(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom, - value: value - }; - this._setLoiteringCustomResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification), value, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo)); - } - setLoiteringCustomResponseTimeTo(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLoiteringCustomResponseTimeTo, - value: value - }; - this._setLoiteringCustomResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponsePhoneNotification), device.getPropertyValue(types_1.PropertyName.DeviceLoiteringCustomResponseTimeFrom), value); - } - setDeliveryGuard(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuard, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "ai_bottom_switch": value === true ? 1024 : 0, - "ai_front_switch": 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDeliveryGuardPackageGuarding(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardPackageGuarding, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard package guarding - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "package_guard_switch": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDeliveryGuardPackageGuardingVoiceResponseVoice(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard package guarding voice response voice - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "auto_voice_id": value, - "auto_voice_name": device.getVoiceName(value), - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDeliveryGuardPackageGuardingActivatedTime(device, propertyData, startTime, endTime) { - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard guarding activated time - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), propertyData: propertyData, startTime: repl_1.start, endTime: endTime }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "end_h": endTime.split(":")[0], - "end_m": endTime.split(":")[1], - "start_h": startTime.split(":")[0], - "start_m": startTime.split(":")[1], - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDeliveryGuardPackageGuardingActivatedTimeFrom(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom, - value: value - }; - this.setDeliveryGuardPackageGuardingActivatedTime(device, propertyData, value, device.getPropertyValue(types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo)); - } - setDeliveryGuardPackageGuardingActivatedTimeTo(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo, - value: value - }; - this.setDeliveryGuardPackageGuardingActivatedTime(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom), value); - } - setDeliveryGuardUncollectedPackageAlert(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardUncollectedPackageAlert, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard uncollected package alert - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "package_strand_switch": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDeliveryGuardUncollectedPackageAlertTimeToCheck(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard uncollected package alert time to check - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "start_h": value.split(":")[0], - "start_m": value.split(":")[1], - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDeliveryGuardPackageLiveCheckAssistance(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set delivery guard package live check assistance - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "package_assitant_switch": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDualCamWatchViewMode(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDualCamWatchViewMode, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set dual cam watch view mode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "restore": 1, - "video_type": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isBatteryDoorbellDualE340() || device.isOutdoorPanAndTiltCamera() || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE2, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "restore": 1, - "video_type": value, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _setRingAutoResponse(device, propertyData, enabled, voiceID, autoVoiceResponse, startTime, endTime) { - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set ring auto response - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), propertyData: propertyData, enabled: enabled, voiceID: voiceID, autoVoiceResponse: autoVoiceResponse, startTime: startTime, endTime: endTime }); - if (device.isBatteryDoorbellDual() || device.isWiredDoorbellDual() || device.isBatteryDoorbellDualE340()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "num": 1, - "setting": [{ - "active": enabled === true ? 1 : 0, - "auto_voice_id": voiceID, - "auto_voice_name": device.getVoiceName(voiceID), - "auto_voice_resp": autoVoiceResponse === true ? 1 : 0, - "end_hour": endTime.split(":")[0], - "end_min": endTime.split(":")[1], - "familiar_id": 0, - "start_hour": startTime.split(":")[0], - "start_min": startTime.split(":")[1], - }] - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setRingAutoResponse(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRingAutoResponse, - value: value - }; - this._setRingAutoResponse(device, propertyData, value, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeTo)); - } - setRingAutoResponseVoiceResponse(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRingAutoResponseVoiceResponse, - value: value - }; - this._setRingAutoResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponse), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice), value, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeTo)); - } - setRingAutoResponseVoiceResponseVoice(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice, - value: value - }; - this._setRingAutoResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponse), value, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeFrom), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeTo)); - } - setRingAutoResponseTimeFrom(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRingAutoResponseTimeFrom, - value: value - }; - this._setRingAutoResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponse), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponse), value, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeTo)); - } - setRingAutoResponseTimeTo(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceRingAutoResponseTimeTo, - value: value - }; - this._setRingAutoResponse(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponse), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponseVoice), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseVoiceResponse), device.getPropertyValue(types_1.PropertyName.DeviceRingAutoResponseTimeFrom), value); - } - setNotificationRadarDetector(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationRadarDetector, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification radar detector - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isBatteryDoorbellDual()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "radar_human_detect": value === true ? 1 : 0, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - calibrate(device) { - const commandData = { - name: types_1.CommandName.DeviceCalibrate - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceCalibrate)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station calibrate - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - if (device.isPanAndTiltCamera()) { - if (device.getDeviceType() === types_1.DeviceType.FLOODLIGHT_CAMERA_8423) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_PAN_CALIBRATION, - "mValue3": 0, - "payload": {}, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isOutdoorPanAndTiltCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_OUTDOOR_PAN_CALIBRATION, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "res": 0, - }, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PAN_CALIBRATION, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_PAN_CALIBRATION - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - } - setContinuousRecording(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceContinuousRecording, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set continuous recording - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_CONTINUE_ENABLE, - "data": { - "enable": value === true ? 1 : 0, - "index": 0, - "status": 0, - "type": 0, - "value": 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setContinuousRecordingType(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceContinuousRecordingType, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set continuous recording type - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_CONTINUE_TYPE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": value, - "value": 0, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - enableDefaultAngle(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDefaultAngle, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station enable default angle - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DEFAULT_ANGLE_ENABLE, - "data": { - "value": value === true ? device.getPropertyValue(types_1.PropertyName.DeviceDefaultAngleIdleTime) : 0, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setDefaultAngleIdleTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDefaultAngleIdleTime, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set default angle idle time - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME, - "data": { - "value": value, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - setDefaultAngle(device) { - const commandData = { - name: types_1.CommandName.DeviceSetDefaultAngle - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceSetDefaultAngle)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station set default angle - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_DEFAULT_ANGLE_SET, - "data": { - "value": 0, - }, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - setPrivacyAngle(device) { - const commandData = { - name: types_1.CommandName.DeviceSetPrivacyAngle - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceSetPrivacyAngle)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station set privacy angle - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_PRIVACY_ANGLE, - "data": { - "value": 0, - }, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - setNotificationIntervalTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationIntervalTime, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification interval time - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_DEV_RECORD_INTERVAL, - value: value, - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setSoundDetectionRoundLook(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSoundDetectionRoundLook, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set sound detection round look - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isIndoorPanAndTiltCameraS350()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "onoff": value === true ? 1 : 0, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK, - "data": { - "value": value === true ? 1 : 0, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - } - startTalkback(device) { - const commandData = { - name: types_1.CommandName.DeviceStartTalkback - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceStartTalkback)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!this.isLiveStreaming(device)) { - throw new error_2.LivestreamNotRunningError("Livestream for device is not running", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station start talkback - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - if ((device.isIndoorCamera() && !device.isIndoorPanAndTiltCameraS350()) || (device.isSoloCamera() && !this.isStationHomeBase3()) || (device.isFloodLight() && !device.isFloodLightT8425()) || device.isWiredDoorbell() || device.isStarlight4GLTE() || device.isWallLightCam() || device.isGarageCamera() || device.isOutdoorPanAndTiltCamera() || (device.isIndoorPanAndTiltCameraS350() && !this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.IndoorSoloSmartdropCommandType.CMD_START_SPEAK, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if ((device.isBatteryDoorbell() && (0, utils_1.isGreaterEqualMinVersion)("2.0.6.8", this.getSoftwareVersion())) || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425() || (device.isSoloCamera() && this.isStationHomeBase3()) || device.isLockWifiVideo() || device.isSmartDrop()) { - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_START_TALKBACK, - value: 0, - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - this.p2pSession.startTalkback(device.getChannel()); - this.emit("command result", this, { - channel: device.getChannel(), - command_type: types_2.CommandType.CMD_START_TALKBACK, - return_code: 0, - customData: { - command: commandData - } - }); - } - } - stopTalkback(device) { - const commandData = { - name: types_1.CommandName.DeviceStopTalkback - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceStopTalkback)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!this.isLiveStreaming(device)) { - throw new error_2.LivestreamNotRunningError("Livestream for device is not running", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station stop talkback - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - if ((device.isIndoorCamera() && !device.isIndoorPanAndTiltCameraS350()) || (device.isSoloCamera() && !this.isStationHomeBase3()) || (device.isFloodLight() && !device.isFloodLightT8425()) || device.isWiredDoorbell() || device.isStarlight4GLTE() || device.isWallLightCam() || device.isGarageCamera() || device.isOutdoorPanAndTiltCamera() || (device.isIndoorPanAndTiltCameraS350() && !this.isStationHomeBase3())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.IndoorSoloSmartdropCommandType.CMD_END_SPEAK, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if ((device.isBatteryDoorbell() && (0, utils_1.isGreaterEqualMinVersion)("2.0.6.8", this.getSoftwareVersion())) || device.isIndoorPanAndTiltCameraS350() || device.isFloodLightT8425() || (device.isSoloCamera() && this.isStationHomeBase3()) || device.isLockWifiVideo() || device.isSmartDrop()) { - this.p2pSession.sendCommandWithInt({ - commandType: types_2.CommandType.CMD_STOP_TALKBACK, - value: 0, - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - this.p2pSession.stopTalkback(device.getChannel()); - this.emit("command result", this, { - channel: device.getChannel(), - command_type: types_2.CommandType.CMD_STOP_TALKBACK, - return_code: 0, - customData: { - command: commandData - } - }); - } - } - onTalkbackStarted(channel, talkbackStream) { - this.emit("talkback started", this, channel, talkbackStream); - } - onTalkbackStopped(channel) { - this.emit("talkback stopped", this, channel); - } - onTalkbackError(channel, error) { - this.emit("talkback error", this, channel, error); - } - isTalkbackOngoing(device) { - if (device.getStationSerial() !== this.getSerial()) - return false; - return this.p2pSession.isTalkbackOngoing(device.getChannel()); - } - setScramblePasscode(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceScramblePasscode, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set scramble passcode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceScramblePasscode, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceScramblePasscode, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceScramblePasscode, value); - } - else if (device.isSmartSafe()) { - this.setSmartSafeParams(device, types_1.PropertyName.DeviceScramblePasscode, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setWrongTryProtection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceWrongTryProtection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set wrong try protection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceWrongTryProtection, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceWrongTryProtection, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceWrongTryProtection, value); - } - else if (device.isSmartSafe()) { - this.setSmartSafeParams(device, types_1.PropertyName.DeviceWrongTryProtection, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setWrongTryAttempts(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceWrongTryAttempts, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set wrong try attempts - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceWrongTryAttempts, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceWrongTryAttempts, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceWrongTryAttempts, value); - } - else if (device.isSmartSafe()) { - this.setSmartSafeParams(device, types_1.PropertyName.DeviceWrongTryAttempts, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setWrongTryLockdownTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceWrongTryLockdownTime, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set wrong try lockdown time - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceWrongTryLockdownTime, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceWrongTryLockdownTime, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceWrongTryLockdownTime, value); - } - else if (device.isSmartSafe()) { - this.setSmartSafeParams(device, types_1.PropertyName.DeviceWrongTryLockdownTime, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _sendSmartSafeCommand(device, command, data, customData) { - const payload = (0, utils_2.getSmartSafeP2PCommand)(device.getSerial(), this.rawStation.member.admin_user_id, types_2.CommandType.CMD_SMARTSAFE_SETTINGS, command, device.getChannel(), this.p2pSession.incLockSequenceNumber(), data); - this.p2pSession.sendCommandWithStringPayload(payload, customData); - } - setSmartSafeParams(device, property, value) { - const propertyData = { - name: property, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const propertyMetadata = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(propertyMetadata, value); - logging_1.rootHTTPLogger.debug(`Station set smart safe params - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value }); - if (device.isSmartSafe()) { - let payload; - let command; - switch (property) { - case types_1.PropertyName.DeviceWrongTryProtection: - payload = device_1.SmartSafe.encodeCmdWrongTryProtect(this.rawStation.member.admin_user_id, value, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts), device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime) / 60); - command = types_2.SmartSafeCommandCode.SET_CRACK_PROTECT; - break; - case types_1.PropertyName.DeviceWrongTryAttempts: - payload = device_1.SmartSafe.encodeCmdWrongTryProtect(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection), value, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime) / 60); - command = types_2.SmartSafeCommandCode.SET_CRACK_PROTECT; - break; - case types_1.PropertyName.DeviceWrongTryLockdownTime: - payload = device_1.SmartSafe.encodeCmdWrongTryProtect(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection), device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts), value / 60); - command = types_2.SmartSafeCommandCode.SET_CRACK_PROTECT; - break; - case types_1.PropertyName.DeviceLeftOpenAlarm: - payload = device_1.SmartSafe.encodeCmdLeftOpenAlarm(this.rawStation.member.admin_user_id, value, device.getPropertyValue(types_1.PropertyName.DeviceLeftOpenAlarmDuration)); - command = types_2.SmartSafeCommandCode.SET_LOCK_ALARM; - break; - case types_1.PropertyName.DeviceLeftOpenAlarmDuration: - payload = device_1.SmartSafe.encodeCmdLeftOpenAlarm(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceLeftOpenAlarm), value); - command = types_2.SmartSafeCommandCode.SET_LOCK_ALARM; - break; - case types_1.PropertyName.DeviceDualUnlock: - payload = device_1.SmartSafe.encodeCmdDualUnlock(this.rawStation.member.admin_user_id, value); - command = types_2.SmartSafeCommandCode.SET_DUAL_UNLOCK; - break; - case types_1.PropertyName.DevicePowerSave: - payload = device_1.SmartSafe.encodeCmdPowerSave(this.rawStation.member.admin_user_id, value); - command = types_2.SmartSafeCommandCode.SET_POWERSAVE; - break; - case types_1.PropertyName.DeviceInteriorBrightness: - payload = device_1.SmartSafe.encodeCmdInteriorBrightness(this.rawStation.member.admin_user_id, value, device.getPropertyValue(types_1.PropertyName.DeviceInteriorBrightnessDuration)); - command = types_2.SmartSafeCommandCode.SET_LIGHT; - break; - case types_1.PropertyName.DeviceInteriorBrightnessDuration: - payload = device_1.SmartSafe.encodeCmdInteriorBrightness(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceInteriorBrightness), value); - command = types_2.SmartSafeCommandCode.SET_LIGHT; - break; - case types_1.PropertyName.DeviceTamperAlarm: - payload = device_1.SmartSafe.encodeCmdTamperAlarm(this.rawStation.member.admin_user_id, value); - command = types_2.SmartSafeCommandCode.SET_SHAKE; - break; - case types_1.PropertyName.DeviceRemoteUnlock: - case types_1.PropertyName.DeviceRemoteUnlockMasterPIN: - { - if (!this.pinVerified && value === true) { - throw new error_1.PinNotVerifiedError("You need to call verifyPIN with correct PIN first to enable this property", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - let newValue = 2; - const remoteUnlock = property === types_1.PropertyName.DeviceRemoteUnlock ? value : device.getPropertyValue(types_1.PropertyName.DeviceRemoteUnlock); - const remoteUnlockMasterPIN = property === types_1.PropertyName.DeviceRemoteUnlockMasterPIN ? value : device.getPropertyValue(types_1.PropertyName.DeviceRemoteUnlockMasterPIN); - if (remoteUnlock && remoteUnlockMasterPIN) { - newValue = 0; - } - else if (remoteUnlock) { - newValue = 1; - } - payload = device_1.SmartSafe.encodeCmdRemoteUnlock(this.rawStation.member.admin_user_id, newValue); - command = types_2.SmartSafeCommandCode.SET_UNLOCK_MODE; - break; - } - case types_1.PropertyName.DevicePromptVolume: - payload = device_1.SmartSafe.encodeCmdPromptVolume(this.rawStation.member.admin_user_id, value); - command = types_2.SmartSafeCommandCode.SET_VOLUME; - break; - case types_1.PropertyName.DeviceAlarmVolume: - payload = device_1.SmartSafe.encodeCmdAlertVolume(this.rawStation.member.admin_user_id, value); - command = types_2.SmartSafeCommandCode.SET_VOLUME_ALERT; - break; - case types_1.PropertyName.DeviceNotificationUnlockByKey: - case types_1.PropertyName.DeviceNotificationUnlockByPIN: - case types_1.PropertyName.DeviceNotificationUnlockByFingerprint: - case types_1.PropertyName.DeviceNotificationUnlockByApp: - case types_1.PropertyName.DeviceNotificationDualUnlock: - case types_1.PropertyName.DeviceNotificationDualLock: - case types_1.PropertyName.DeviceNotificationWrongTryProtect: - case types_1.PropertyName.DeviceNotificationJammed: - const settingsValues = [ - property === types_1.PropertyName.DeviceNotificationUnlockByKey ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationUnlockByKey), - property === types_1.PropertyName.DeviceNotificationUnlockByPIN ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationUnlockByPIN), - property === types_1.PropertyName.DeviceNotificationUnlockByFingerprint ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationUnlockByFingerprint), - property === types_1.PropertyName.DeviceNotificationUnlockByApp ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationUnlockByApp), - property === types_1.PropertyName.DeviceNotificationDualUnlock ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationDualUnlock), - property === types_1.PropertyName.DeviceNotificationDualLock ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationDualLock), - property === types_1.PropertyName.DeviceNotificationWrongTryProtect ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationWrongTryProtect), - property === types_1.PropertyName.DeviceNotificationJammed ? value : device.getPropertyValue(types_1.PropertyName.DeviceNotificationJammed), - ]; - let modes = 0; - for (let pos = 0; pos < settingsValues.length; pos++) { - if (settingsValues[pos]) { - modes = (modes | (1 << pos)); - } - } - payload = device_1.SmartSafe.encodeCmdPushNotification(this.rawStation.member.admin_user_id, modes); - command = types_2.SmartSafeCommandCode.SET_PUSH; - break; - case types_1.PropertyName.DeviceScramblePasscode: - payload = device_1.SmartSafe.encodeCmdScramblePIN(this.rawStation.member.admin_user_id, value); - command = types_2.SmartSafeCommandCode.SET_SCRAMBLE_PASSWORD; - break; - default: - payload = Buffer.from([]); - command = types_2.SmartSafeCommandCode.DEFAULT; - break; - } - logging_1.rootHTTPLogger.debug(`Station set smart safe params - payload`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value, payload: payload.toString("hex") }); - this._sendSmartSafeCommand(device, command, payload, { property: propertyData }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - unlock(device) { - const commandData = { - name: types_1.CommandName.DeviceUnlock - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceUnlock)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - const payload = device_1.SmartSafe.encodeCmdUnlock(this.rawStation.member.admin_user_id); - logging_1.rootHTTPLogger.debug(`Station unlock - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), payload: payload.toString("hex") }); - this._sendSmartSafeCommand(device, types_2.SmartSafeCommandCode.UNLOCK, payload, { command: commandData }); - } - verifyPIN(device, pin) { - const commandData = { - name: types_1.CommandName.DeviceVerifyPIN - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceVerifyPIN)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!/^[1-6]{4,8}$/.test(pin)) { - throw new error_1.InvalidCommandValueError("PIN should contain only numbers (1-6) and be between 4 and 8 long", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - const payload = device_1.SmartSafe.encodeCmdVerifyPIN(this.rawStation.member.admin_user_id, pin); - logging_1.rootHTTPLogger.debug(`Station verify pin - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), payload: payload.toString("hex") }); - this._sendSmartSafeCommand(device, types_2.SmartSafeCommandCode.SET_VERIFY_PIN, payload, { command: commandData }); - } - onDeviceShakeAlarm(channel, event) { - this.emit("device shake alarm", this._getDeviceSerial(channel), event); - } - onDevice911Alarm(channel, event) { - this.emit("device 911 alarm", this._getDeviceSerial(channel), event); - } - onDeviceJammed(channel) { - this.emit("device jammed", this._getDeviceSerial(channel)); - } - onDeviceLowBattery(channel) { - this.emit("device low battery", this._getDeviceSerial(channel)); - } - onDeviceWrongTryProtectAlarm(channel) { - this.emit("device wrong try-protect alarm", this._getDeviceSerial(channel)); - } - onSdInfoEx(sdStatus, sdCapacity, sdAvailableCapacity) { - this.emit("sd info ex", this, sdStatus, sdCapacity, sdAvailableCapacity); - } - setVideoTypeStoreToNAS(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceVideoTypeStoreToNAS, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - if (device.getPropertyValue(types_1.PropertyName.DeviceContinuousRecording) !== true && value === types_1.VideoTypeStoreToNAS.ContinuousRecording) { - this.setContinuousRecording(device, true); - } - logging_1.rootHTTPLogger.debug(`Station set video type store to nas - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_INDOOR_NAS_STORAGE_TYPE, - "data": { - "enable": 0, - "index": 0, - "status": 0, - "type": 0, - "value": value, - "voiceID": 0, - "zonecount": 0, - "transaction": `${new Date().getTime()}`, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - snooze(device, value) { - const commandData = { - name: types_1.CommandName.DeviceSnooze, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceSnooze)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station snooze - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isDoorbell() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_SNOOZE_MODE, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "snooze_time": value.snooze_time, - "startTime": `${Math.trunc(new Date().getTime() / 1000)}`, - "chime_onoff": value.snooze_chime !== undefined && value.snooze_chime ? 1 : 0, - "motion_notify_onoff": value.snooze_motion !== undefined && value.snooze_motion ? 1 : 0, - "homebase_onoff": value.snooze_homebase !== undefined && value.snooze_homebase ? 1 : 0, - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_SNOOZE_MODE, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "snooze_time": value.snooze_time - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - addUser(device, username, shortUserId, passcode, schedule) { - const commandData = { - name: types_1.CommandName.DeviceAddUser, - value: { - username: username, - shortUserId: shortUserId, - passcode: passcode, - schedule: schedule, - deviceSN: device.getSerial() - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceAddUser)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!/^\d{4,8}$/.test(passcode)) { - throw new error_1.InvalidCommandValueError("Passcode should contain only numbers and be between 4 and 8 long", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station add user - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), username: username, shortUserId: shortUserId, schedule: schedule }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - // passcode: min 4 max 8 - // passcode: 13579753 => 3133353739373533 - // 04.09.2022 11:36 - // 01.01.2023 19:36 - // Mon-Sunday Wednsday No! - // {"endDay":"e7070101","endTime":"1324","passcode":"3133353739373533","startDay":"00000000","startTime":"0b24","userId":"0009","week":"77","seq_num":662} - //log.b 2: payloadStr: {"endDay":"ffffffff","endTime":"ffff","passcode":"3233353438333333","startDay":"00000000","startTime":"0000","userId":"0008","week":"ff","seq_num":657} - //log.b 2: ESLP2pResponse: {"channel":0,"command_type":1950,"payload":"w36zICk5a8pXZ8I6L4ldeI6ZQPWmbEEVZHctBfW0Zx0\u003d","payloadLen":30,"sn":"T8520Q2021340AD6"} - //log.b 2: payload full:{"code":0,"passwordId":"0008"} payloadLength:30 - const nestedPayload = { - endDay: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", - endTime: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", - passcode: (0, utils_1.encodePasscode)(passcode), - startDay: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", - startTime: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", - userId: shortUserId, - week: schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_ADD_PW, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_ADD_PW, command.aesKey); - logging_1.rootHTTPLogger.debug("Add user...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - command: commandData - }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.ADD_PW, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdAddUser(shortUserId, (0, utils_1.encodePasscode)(passcode).padEnd(16, "0"), username, schedule)); - logging_1.rootHTTPLogger.debug("Add user...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this._sendLockV12P2PCommand(command, { - command: commandData - }); - } - else if (device.isLockWifiVideo()) { - const command = { - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_ADD_PW, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "endDay": schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", - "endTime": schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", - "passcode": (0, utils_1.encodePasscode)(passcode).padEnd(16, "0"), - "startDay": schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", - "startTime": schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", - "userId": shortUserId, - "week": schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", - } - }; - logging_1.rootHTTPLogger.debug("Add user...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify(command), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.ADD_PW, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockAddUser(this.rawStation.member.admin_user_id, shortUserId, (0, utils_1.encodePasscode)(passcode), username, schedule)); - logging_1.rootHTTPLogger.debug("Station smart lock device - Add user...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - } - deleteUser(device, username, shortUserId) { - const commandData = { - name: types_1.CommandName.DeviceDeleteUser, - value: { - username: username, - shortUserId: shortUserId, - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceDeleteUser)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station delete user - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), username: username, shortUserId: shortUserId }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const nestedPayload = { - userId: shortUserId, - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_DELETE_USER, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_DELETE_USER, command.aesKey); - logging_1.rootHTTPLogger.debug("Station delete user - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - command: commandData - }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.DELETE_USER, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdDeleteUser(shortUserId)); - logging_1.rootHTTPLogger.debug("Station delete user - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this._sendLockV12P2PCommand(command, { - command: commandData - }); - } - else if (device.isLockWifiVideo()) { - const command = { - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_DELETE_USER, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "userId": shortUserId, - } - }; - logging_1.rootHTTPLogger.debug("Station delete user - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify(command), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.DELETE_USER, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockDeleteUser(this.rawStation.member.admin_user_id, shortUserId)); - logging_1.rootHTTPLogger.debug("Station delete user - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - } - updateUserSchedule(device, username, shortUserId, schedule) { - const commandData = { - name: types_1.CommandName.DeviceUpdateUserSchedule, - value: { - username: username, - shortUserId: shortUserId, - schedule: schedule - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceUpdateUserSchedule)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station update user schedule - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), username: username, shortUserId: shortUserId, schedule: schedule }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const nestedPayload = { - endDay: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", - endTime: schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", - startDay: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", - startTime: schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", - userId: shortUserId, - week: schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_UPDATE_USER_TIME, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_UPDATE_USER_TIME, command.aesKey); - logging_1.rootHTTPLogger.debug("Station update user schedule - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - command: commandData - }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.UPDATE_USER_TIME, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdUpdateSchedule(shortUserId, schedule)); - logging_1.rootHTTPLogger.debug("Station update user schedule - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this._sendLockV12P2PCommand(command, { - command: commandData - }); - } - else if (device.isLockWifiVideo()) { - const command = { - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_UPDATE_USER_TIME, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "endDay": schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexDate)(schedule.endDateTime) : "ffffffff", - "endTime": schedule !== undefined && schedule.endDateTime !== undefined ? (0, utils_1.hexTime)(schedule.endDateTime) : "ffff", - "startDay": schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexDate)(schedule.startDateTime) : "00000000", - "startTime": schedule !== undefined && schedule.startDateTime !== undefined ? (0, utils_1.hexTime)(schedule.startDateTime) : "0000", - "userId": shortUserId, - "week": schedule !== undefined && schedule.week !== undefined ? (0, utils_1.hexWeek)(schedule) : "ff", - } - }; - logging_1.rootHTTPLogger.debug("Station update user schedule - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify(command), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.UPDATE_USER_TIME, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockUpdateSchedule(this.rawStation.member.admin_user_id, shortUserId, username, schedule)); - logging_1.rootHTTPLogger.debug("Station update user schedule - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - } - updateUserPasscode(device, username, passwordId, passcode) { - const commandData = { - name: types_1.CommandName.DeviceUpdateUserPasscode, - value: { - username: username, - passwordId: passwordId, - passcode: passcode - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceUpdateUserPasscode)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commonValue: commandData.value } }); - } - if (passcode.length < 4 || passcode.length > 8 || !/^\d+$/.test(passcode)) { - throw new error_1.InvalidCommandValueError("Passcode should contain only numbers and be between 4 and 8 long", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station update user passcode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), username: username, passwordId: passwordId }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const nestedPayload = { - passcode: (0, utils_1.encodePasscode)(passcode), - passwordId: passwordId, - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_UPDATE_PW, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_UPDATE_PW, command.aesKey); - logging_1.rootHTTPLogger.debug("Station update user passcode - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - command: commandData - }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.UPDATE_PW, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdModifyPassword(passwordId, (0, utils_1.encodePasscode)(passcode).padEnd(16, "0"))); - logging_1.rootHTTPLogger.debug("Station update user passcode - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this._sendLockV12P2PCommand(command, { - command: commandData - }); - } - else if (device.isLockWifiVideo()) { - const command = { - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_UPDATE_PW, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "passcode": (0, utils_1.encodePasscode)(passcode).padEnd(16, "0"), - "passwordId": passwordId, - } - }; - logging_1.rootHTTPLogger.debug("Station update user passcode - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify(command), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.UPDATE_PW, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockModifyPassword(this.rawStation.member.admin_user_id, passwordId, (0, utils_1.encodePasscode)(passcode))); - logging_1.rootHTTPLogger.debug("Station update user passcode - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - } - setLockV12Params(device, property, value) { - const propertyData = { - name: property, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const propertyMetadata = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(propertyMetadata, value); - logging_1.rootHTTPLogger.debug(`Station set lock v12 settings - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value }); - if (device.isLockWifiR10() || device.isLockWifiR20()) { - let payload; - switch (property) { - case types_1.PropertyName.DeviceWrongTryProtection: - payload = device_1.Lock.encodeCmdSetLockParamWrongTryProtect(value, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime), device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts)); - break; - case types_1.PropertyName.DeviceWrongTryAttempts: - payload = device_1.Lock.encodeCmdSetLockParamWrongTryProtect(device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection), device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime), value); - break; - case types_1.PropertyName.DeviceWrongTryLockdownTime: - payload = device_1.Lock.encodeCmdSetLockParamWrongTryProtect(device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection), value, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts)); - break; - case types_1.PropertyName.DeviceAutoLock: - payload = device_1.Lock.encodeCmdSetLockParamAutoLock(value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer)); - break; - case types_1.PropertyName.DeviceAutoLockTimer: - payload = device_1.Lock.encodeCmdSetLockParamAutoLock(device.getPropertyValue(types_1.PropertyName.DeviceAutoLock), value); - break; - case types_1.PropertyName.DeviceAutoLockSchedule: - payload = device_1.Lock.encodeCmdSetLockParamAutoLockSchedule(value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)); - break; - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: - payload = device_1.Lock.encodeCmdSetLockParamAutoLockSchedule(device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule), value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)); - break; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: - payload = device_1.Lock.encodeCmdSetLockParamAutoLockSchedule(device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime), value); - break; - case types_1.PropertyName.DeviceOneTouchLocking: - payload = device_1.Lock.encodeCmdSetLockParamOneTouchLock(value); - break; - case types_1.PropertyName.DeviceScramblePasscode: - payload = device_1.Lock.encodeCmdSetLockParamScramblePasscode(value); - break; - case types_1.PropertyName.DeviceSound: - payload = device_1.Lock.encodeCmdSetLockParamSound(value); - break; - default: - payload = Buffer.from([]); - break; - } - logging_1.rootHTTPLogger.debug(`Station set lock v12 settings - payload`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value, payload: payload.toString("hex") }); - const lockCommand = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.SET_LOCK_PARAM, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), payload); - this._sendLockV12P2PCommand(lockCommand, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setSmartLockParams(device, property, value) { - const propertyData = { - name: property, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const propertyMetadata = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(propertyMetadata, value); - logging_1.rootHTTPLogger.debug(`Station set smart lock settings - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value }); - if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - let payload; - switch (property) { - case types_1.PropertyName.DeviceWrongTryProtection: - payload = device_1.Lock.encodeCmdSetSmartLockParamWrongTryProtect(this.rawStation.member.admin_user_id, value, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts), device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime)); - break; - case types_1.PropertyName.DeviceWrongTryAttempts: - payload = device_1.Lock.encodeCmdSetSmartLockParamWrongTryProtect(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection), value, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryLockdownTime)); - break; - case types_1.PropertyName.DeviceWrongTryLockdownTime: - payload = device_1.Lock.encodeCmdSetSmartLockParamWrongTryProtect(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceWrongTryProtection), device.getPropertyValue(types_1.PropertyName.DeviceWrongTryAttempts), value); - break; - case types_1.PropertyName.DeviceAutoLock: - payload = device_1.Lock.encodeCmdSetSmartLockParamAutoLock(this.rawStation.member.admin_user_id, value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)); - break; - case types_1.PropertyName.DeviceAutoLockTimer: - payload = device_1.Lock.encodeCmdSetSmartLockParamAutoLock(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceAutoLock), value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)); - break; - case types_1.PropertyName.DeviceAutoLockSchedule: - payload = device_1.Lock.encodeCmdSetSmartLockParamAutoLock(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceAutoLock), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer), value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)); - break; - case types_1.PropertyName.DeviceAutoLockScheduleStartTime: - payload = device_1.Lock.encodeCmdSetSmartLockParamAutoLock(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceAutoLock), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule), value, device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleEndTime)); - break; - case types_1.PropertyName.DeviceAutoLockScheduleEndTime: - payload = device_1.Lock.encodeCmdSetSmartLockParamAutoLock(this.rawStation.member.admin_user_id, device.getPropertyValue(types_1.PropertyName.DeviceAutoLock), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockTimer), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockSchedule), device.getPropertyValue(types_1.PropertyName.DeviceAutoLockScheduleStartTime), value); - break; - case types_1.PropertyName.DeviceOneTouchLocking: - payload = device_1.Lock.encodeCmdSetSmartLockParamOneTouchLock(this.rawStation.member.admin_user_id, value); - break; - case types_1.PropertyName.DeviceScramblePasscode: - payload = device_1.Lock.encodeCmdSetSmartLockParamScramblePasscode(this.rawStation.member.admin_user_id, value); - break; - case types_1.PropertyName.DeviceSound: - payload = device_1.Lock.encodeCmdSetSmartLockParamSound(this.rawStation.member.admin_user_id, value); - break; - default: - payload = Buffer.from([]); - break; - } - logging_1.rootHTTPLogger.debug(`Station set smart lock settings - payload`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), property: property, value: value, payload: payload.toString("hex") }); - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.SET_LOCK_PARAM, device.getChannel(), this.p2pSession.incLockSequenceNumber(), payload); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoLock(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoLock, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set auto lock - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceAutoLock, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceAutoLock, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceAutoLock, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoLockSchedule(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoLockSchedule, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set auto lock schedule - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceAutoLockSchedule, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceAutoLockSchedule, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceAutoLockSchedule, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoLockScheduleStartTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoLockScheduleStartTime, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set auto lock schedule start time - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceAutoLockScheduleStartTime, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceAutoLockScheduleStartTime, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceAutoLockScheduleStartTime, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoLockScheduleEndTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoLockScheduleEndTime, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set auto lock schedule end time - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceAutoLockScheduleEndTime, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceAutoLockScheduleEndTime, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceAutoLockScheduleEndTime, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setAutoLockTimer(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceAutoLockTimer, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set auto lock timer - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceAutoLockTimer, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceAutoLockTimer, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceAutoLockTimer, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setOneTouchLocking(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceOneTouchLocking, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set one touch locking - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceOneTouchLocking, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceOneTouchLocking, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceOneTouchLocking, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setSound(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceSound, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set sound - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceSound, value); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - this.setLockV12Params(device, types_1.PropertyName.DeviceSound, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - this.setSmartLockParams(device, types_1.PropertyName.DeviceSound, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotification(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotification, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set notification - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceNotification, value); - } - else if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_NOTIFICATION, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P() || device.isLockWifiR10() || device.isLockWifiR20()) { - let oldvalue = 0; - const rawproperty = device.getRawProperty(types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE); - if (rawproperty !== undefined) { - try { - oldvalue = Number.parseInt(rawproperty); - } - catch (error) { - } - } - const notification = (0, utils_1.switchSmartLockNotification)(oldvalue, 1 /* SmartLockNotification.ENABLED */, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "mode": notification, - } - }), - channel: 0 - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, notification.toString(), "p2p"); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationLocked(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationLocked, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set notification locked - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceNotificationLocked, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P() || device.isLockWifiR10() || device.isLockWifiR20()) { - let oldvalue = 0; - const rawproperty = device.getRawProperty(types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE); - if (rawproperty !== undefined) { - try { - oldvalue = Number.parseInt(rawproperty); - } - catch (error) { - } - } - const notification = (0, utils_1.switchSmartLockNotification)(oldvalue, 4 /* SmartLockNotification.LOCKED */, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "mode": notification, - } - }), - channel: 0 - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, notification.toString(), "p2p"); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationUnlocked(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNotificationUnlocked, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set notification unlocked - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifi() || device.isLockWifiNoFinger() || device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceNotificationUnlocked, value); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P() || device.isLockWifiR10() || device.isLockWifiR20()) { - let oldvalue = 0; - const rawproperty = device.getRawProperty(types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE); - if (rawproperty !== undefined) { - try { - oldvalue = Number.parseInt(rawproperty); - } - catch (error) { - } - } - const notification = (0, utils_1.switchSmartLockNotification)(oldvalue, 2 /* SmartLockNotification.UNLOCKED */, value); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "mode": notification, - } - }), - channel: 0 - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, notification.toString(), "p2p"); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _sendLockV12P2PCommand(command, customData) { - this.p2pSession.setLockAESKey(command.bleCommand, command.aesKey); - this.p2pSession.sendCommandWithStringPayload(command.payload, customData); - } - queryAllUserId(device) { - const commandData = { - name: types_1.CommandName.DeviceQueryAllUserId - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(commandData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station query all user id - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - if (device.isLockBleNoFinger() || device.isLockBle()) { - throw new error_1.NotSupportedError("This functionality is not implemented by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - //TODO: Finish implementation of query all user id for LockBleNoFinger / LockBle - /*const key = generateBasicLockAESKey(this.rawStation.member.admin_user_id, this.getSerial()); - const iv = getLockVectorBytes(this.getSerial()); - const lockCmd = Lock.encodeESLCmdOnOff(Number.parseInt(this.rawStation.member.short_user_id), this.rawStation.member.nick_name, value); - const payload: ESLStationP2PThroughData = { - channel: device.getChannel(), - lock_cmd: ESLBleCommand.ON_OFF_LOCK, - lock_payload: lockCmd.toString("base64"), - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const encPayload = encryptLockAESData(key, iv, encodeLockPayload(JSON.stringify(payload))); - - rootHTTPLogger.debug("Locking/unlocking device...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: payload, encPayload: encPayload.toString("hex") }); - - this.p2pSession.sendCommandWithStringPayload({ - commandType: CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": CommandType.CMD_DOORLOCK_DATA_PASS_THROUGH, - "mValue3": 0, - "payload": { - "payload": encPayload.toString("base64") - } - }), - channel: device.getChannel() - }, { - property: propertyData - });*/ - } - else if (device.isLockWifi() || device.isLockWifiNoFinger()) { - const nestedPayload = { - seq_num: this.p2pSession.incLockSequenceNumber() - }; - const command = (0, utils_2.getLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.CommandType.P2P_GET_USER_AND_PW_ID, device.getChannel(), this.lockPublicKey, nestedPayload); - this.p2pSession.setLockAESKey(types_2.CommandType.P2P_GET_USER_AND_PW_ID, command.aesKey); - logging_1.rootHTTPLogger.debug("Querying all user id...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command, nestedPayload: nestedPayload }); - this.p2pSession.sendCommandWithStringPayload(command, { - command: commandData - }); - } - else if (device.isLockWifiR10() || device.isLockWifiR20()) { - throw new error_1.NotSupportedError("This functionality is not implemented by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - //TODO: Finish implementation of query all user id for r10 / r20 - /*const command = getLockV12P2PCommand( - this.rawStation.station_sn, - this.rawStation.member.admin_user_id, - ESLCommand.GET_USER_ID_AND_PW_ID, - device.getChannel(), - this.lockPublicKey, - this.p2pSession.incLockSequenceNumber(), - Lock.encodeCmd(this.rawStation.member.short_user_id, value === true ? 1 : 0, this.rawStation.member.nick_name) - ); - rootHTTPLogger.debug("Querying all user id...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - - this._sendLockV12P2PCommand(command, { - command: commandData - });*/ - } - else if (device.isLockWifiVideo()) { - logging_1.rootHTTPLogger.debug("Querying all user id...", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_GET_USER_AND_PW_ID, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": {} - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else if (device.isLockWifiT8506() || device.isLockWifiT8502() || device.isLockWifiT8510P() || device.isLockWifiT8520P()) { - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.QUERY_ALL_USERS, device.getChannel(), this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockGetUserList(this.rawStation.member.admin_user_id)); - logging_1.rootHTTPLogger.debug("Station get user list - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command.payload }); - this.p2pSession.sendCommandWithStringPayload(command.payload, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - } - chimeHomebase(value) { - const commandData = { - name: types_1.CommandName.StationChime, - value: value - }; - if (!this.hasCommand(commandData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, station: this.getSerial() } }); - } - if (this.rawStation.devices !== undefined) { - this.rawStation.devices.forEach((device) => { - if (device_1.Device.isDoorbell(device.device_type)) { - throw new error_1.NotSupportedError("This functionality is only supported on stations without registered Doorbells on it", { context: { commandName: commandData.name, station: this.getSerial() } }); - } - }); - } - logging_1.rootHTTPLogger.debug(`Station chime homebase - sending command`, { stationSN: this.getSerial(), value: value }); - if (this.isStation()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_BAT_DOORBELL_DINGDONG_R, - "mValue3": 0, - "payload": { - "dingdong_ringtone": value, - } - }), - channel: 0 - }, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, commandValue: commandData.value, station: this.getSerial() } }); - } - } - onImageDownload(file, image) { - this.emit("image download", this, file, image); - } - downloadImage(cover_path) { - const commandData = { - name: types_1.CommandName.StationDownloadImage, - value: cover_path - }; - if (!this.hasCommand(types_1.CommandName.StationDownloadImage)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, commandValue: commandData.value, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station download image - sending command`, { stationSN: this.getSerial(), value: cover_path }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - account_id: this.rawStation.member.admin_user_id, - cmd: types_2.CommandType.CMD_DATABASE_IMAGE, - mChannel: Station.CHANNEL, //TODO: Check indoor devices - payload: [{ "file": cover_path }], - "transaction": cover_path - }), - channel: Station.CHANNEL, //TODO: Check indoor devices - strValueSub: this.rawStation.member.admin_user_id, - }, { - command: commandData, - }); - } - onTFCardStatus(channel, status) { - this.updateRawProperty(types_2.CommandType.CMD_GET_TFCARD_STATUS, status.toString(), "p2p"); - } - databaseQueryLatestInfo(failureCallback) { - const commandData = { - name: types_1.CommandName.StationDatabaseQueryLatestInfo, - }; - if (!this.hasCommand(commandData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station database query latest info - sending command`, { stationSN: this.getSerial() }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DATABASE, - "mChannel": 0, - "mValue3": 0, - "payload": { - "cmd": types_2.CommandType.CMD_DATABASE_QUERY_LATEST_INFO, - "table": "history_record_info", - "transaction": `${new Date().getTime()}` - } - }), - channel: 0 - }, { - command: commandData, - onFailure: failureCallback - }); - } - databaseQueryLocal(serialNumbers, startDate, endDate, eventType = 0, detectionType = 0, storageType = 0) { - const commandData = { - name: types_1.CommandName.StationDatabaseQueryLocal, - value: { - serialNumbers: serialNumbers, - eventType: eventType, - detectionType: detectionType - } - }; - if (!this.hasCommand(commandData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, commandValue: commandData.value, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station database query local - sending command`, { stationSN: this.getSerial(), serialNumbers: serialNumbers, startDate: startDate, endDate: endDate, eventType: eventType, detectionType: detectionType, storageType: storageType }); - const devices = []; - for (const serial of serialNumbers) { - devices.push({ device_sn: serial }); - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DATABASE, - "mChannel": 0, - "mValue3": 0, - "payload": { - "cmd": types_2.CommandType.CMD_DATABASE_QUERY_LOCAL, - "payload": { - "count": 20, - "detection_type": detectionType, - "device_info": devices, - "end_date": date_and_time_1.default.format(endDate, "YYYYMMDD"), - "event_type": eventType, - "flag": 0, - "res_unzip": 1, - "start_date": date_and_time_1.default.format(startDate, "YYYYMMDD"), - "start_time": `${date_and_time_1.default.format(endDate, "YYYYMMDD")}000000`, - "storage_cloud": storageType === types_2.FilterStorageType.NONE || (storageType !== types_2.FilterStorageType.LOCAL && storageType !== types_2.FilterStorageType.CLOUD) ? -1 : storageType, - "ai_type": 0 - }, - "table": "history_record_info", - "transaction": `${new Date().getTime()}` - } - }), - channel: 0 - }, { - command: commandData - }); - } - databaseDelete(ids) { - const commandData = { - name: types_1.CommandName.StationDatabaseDelete, - value: ids - }; - if (!this.hasCommand(commandData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, commandValue: commandData.value, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station database delete - sending command`, { stationSN: this.getSerial(), ids: ids }); - const lids = []; - for (const id of ids) { - lids.push({ "id": id }); - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DATABASE, - "mChannel": 0, - "mValue3": 0, - "payload": { - "cmd": types_2.CommandType.CMD_DATABASE_DELETE, - "payload": lids, - "table": "history_record_info", - "transaction": `${new Date().getTime()}` - } - }), - channel: 0 - }, { - command: commandData - }); - } - databaseCountByDate(startDate, endDate) { - const commandData = { - name: types_1.CommandName.StationDatabaseCountByDate, - value: { - startDate: startDate, - endDate: endDate - } - }; - if (!this.hasCommand(commandData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported", { context: { commandName: commandData.name, commandValue: commandData.value, station: this.getSerial() } }); - } - logging_1.rootHTTPLogger.debug(`Station database count by date - sending command`, { stationSN: this.getSerial(), startDate: startDate, endDate: endDate }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_DATABASE, - "mChannel": 0, - "mValue3": 0, - "payload": { - "cmd": types_2.CommandType.CMD_DATABASE_COUNT_BY_DATE, - "payload": { - "end_date": date_and_time_1.default.format(endDate, "YYYYMMDD"), - "start_date": date_and_time_1.default.format(startDate, "YYYYMMDD"), - }, - "table": "history_record_info", - "transaction": `${new Date().getTime()}` - } - }), - channel: 0 - }, { - command: commandData - }); - } - onDatabaseQueryLatest(returnCode, data) { - this.emit("database query latest", this, returnCode, data); - } - onDatabaseQueryLocal(returnCode, data) { - this.emit("database query local", this, returnCode, data); - } - onDatabaseCountByDate(returnCode, data) { - this.emit("database count by date", this, returnCode, data); - } - onDatabaseDelete(returnCode, failedIds) { - this.emit("database delete", this, returnCode, failedIds); - } - onSensorStatus(channel, status) { - this.emit("sensor status", this, channel, status); - } - setMotionDetectionTypeHuman(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionTypeHuman, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion detection type human - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setMotionDetectionTypeAllOtherMotions(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionDetectionTypeAllOtherMotions, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion detection type all other motions - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL, - "data": value === true ? 1 : 0, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _setLightSettingsLightingActiveMode(device, propertyName, value, type) { - const propertyData = { - name: propertyName, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set set light settings lighting active mode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), propertyName: propertyName, value: value, type: type }); - if (device.isWallLightCam()) { - switch (value) { - case types_1.LightingActiveMode.DAILY: { - let currentProperty = types_1.PropertyName.DeviceLightSettingsManualDailyLighting; - if (type === "schedule") { - currentProperty = types_1.PropertyName.DeviceLightSettingsScheduleDailyLighting; - } - else if (type === "motion") { - currentProperty = types_1.PropertyName.DeviceLightSettingsMotionDailyLighting; - } - let currentPropertyValue = device.getPropertyValue(currentProperty); - if (!(currentPropertyValue in types_1.DailyLightingType)) { - currentPropertyValue = types_1.DailyLightingType.COLD; - } - //TODO: Force cloud api refresh or updateProperty of currentPropertyValue? - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": type === "manual" ? types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING : type === "schedule" ? types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING : types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING, - "data": currentPropertyValue, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(currentProperty, currentPropertyValue); - } - }); - break; - } - case types_1.LightingActiveMode.COLORED: { - let currentProperty = types_1.PropertyName.DeviceLightSettingsManualColoredLighting; - if (type === "schedule") { - currentProperty = types_1.PropertyName.DeviceLightSettingsScheduleColoredLighting; - } - else if (type === "motion") { - currentProperty = types_1.PropertyName.DeviceLightSettingsMotionColoredLighting; - } - let currentPropertyValue = device.getPropertyValue(currentProperty); - const colors = device.getPropertyValue(types_1.PropertyName.DeviceLightSettingsColoredLightingColors); - if (!colors.some(color => color.red === currentPropertyValue.red && color.green === currentPropertyValue.green && color.blue === currentPropertyValue.blue)) { - currentPropertyValue = colors[0]; - } - //TODO: Force cloud api refresh or updateProperty of currentPropertyValue? - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": type === "manual" ? types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING : type === "schedule" ? types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING : types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING, - "data": { - "rgb_color": (0, utils_2.RGBColorToDecimal)(currentPropertyValue) - }, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(currentProperty, currentPropertyValue); - } - }); - break; - } - case types_1.LightingActiveMode.DYNAMIC: { - let currentProperty = types_1.PropertyName.DeviceLightSettingsManualDynamicLighting; - if (type === "schedule") { - currentProperty = types_1.PropertyName.DeviceLightSettingsScheduleDynamicLighting; - } - else if (type === "motion") { - currentProperty = types_1.PropertyName.DeviceLightSettingsMotionDynamicLighting; - } - let currentPropertyValue = device.getPropertyValue(currentProperty); - const range = device.getPropertyValue(types_1.PropertyName.DeviceLightSettingsDynamicLightingThemes).length; - if (currentPropertyValue < 0 || currentPropertyValue >= range) { - currentPropertyValue = 0; - } - //TODO: Force cloud api refresh or updateProperty of currentPropertyValue? - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": type === "manual" ? types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING : type === "schedule" ? types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING : types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING, - "data": currentPropertyValue, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(currentProperty, currentPropertyValue); - } - }); - break; - } - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsManualLightingActiveMode(device, value) { - this._setLightSettingsLightingActiveMode(device, types_1.PropertyName.DeviceLightSettingsManualLightingActiveMode, value, "manual"); - } - setLightSettingsManualDailyLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsManualDailyLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings manual daily lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsManualLightingActiveMode, types_1.LightingActiveMode.DAILY); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsManualColoredLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsManualColoredLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - const colors = device.getPropertyValue(types_1.PropertyName.DeviceLightSettingsColoredLightingColors); - if (!colors.some(color => color.red === value.red && color.green === value.green && color.blue === value.blue)) { - throw new error_1.InvalidPropertyValueError("Invalid value for this property", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set light settings manual colored lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING, - "data": { - "rgb_color": (0, utils_2.RGBColorToDecimal)(value) - }, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsManualLightingActiveMode, types_1.LightingActiveMode.COLORED); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsManualDynamicLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsManualDynamicLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings manual dynamic lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsManualLightingActiveMode, types_1.LightingActiveMode.DYNAMIC); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsMotionLightingActiveMode(device, value) { - this._setLightSettingsLightingActiveMode(device, types_1.PropertyName.DeviceLightSettingsMotionLightingActiveMode, value, "motion"); - } - setLightSettingsMotionDailyLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionDailyLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings motion daily lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsMotionActivationMode, types_1.LightingActiveMode.DAILY); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsMotionColoredLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionColoredLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - const colors = device.getPropertyValue(types_1.PropertyName.DeviceLightSettingsColoredLightingColors); - if (!colors.some(color => color.red === value.red && color.green === value.green && color.blue === value.blue)) { - throw new error_1.InvalidPropertyValueError("Invalid value for this property", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set light settings motion colored lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING, - "data": { - "rgb_color": (0, utils_2.RGBColorToDecimal)(value) - }, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsMotionActivationMode, types_1.LightingActiveMode.COLORED); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsMotionDynamicLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsMotionDynamicLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings motion dynamic lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsMotionActivationMode, types_1.LightingActiveMode.DYNAMIC); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsScheduleLightingActiveMode(device, value) { - this._setLightSettingsLightingActiveMode(device, types_1.PropertyName.DeviceLightSettingsScheduleLightingActiveMode, value, "schedule"); - } - setLightSettingsScheduleDailyLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsScheduleDailyLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings schedule daily lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsScheduleLightingActiveMode, types_1.LightingActiveMode.DAILY); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsScheduleColoredLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsScheduleColoredLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - const colors = device.getPropertyValue(types_1.PropertyName.DeviceLightSettingsColoredLightingColors); - if (!colors.some(color => color.red === value.red && color.green === value.green && color.blue === value.blue)) { - throw new error_1.InvalidPropertyValueError("Invalid value for this property", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set light settings schedule colored lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING, - "data": { - "rgb_color": (0, utils_2.RGBColorToDecimal)(value) - }, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsScheduleLightingActiveMode, types_1.LightingActiveMode.COLORED); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsScheduleDynamicLighting(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsScheduleDynamicLighting, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings schedule dynamic lighting - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING, - "data": value, - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateProperty(types_1.PropertyName.DeviceLightSettingsScheduleLightingActiveMode, types_1.LightingActiveMode.DYNAMIC); - } - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsColoredLightingColors(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsColoredLightingColors, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings colored lighting colors - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - const colors = [{ "color": 16760832 }, { "color": 16744448 }, { "color": 16728320 }, { "color": 16720384 }, { "color": 16711696 }, { "color": 3927961 }, { "color": 1568995 }, { "color": 485368 }, { "color": 9983 }, { "color": 4664060 }]; - if (value.length > 0 && value.length <= 15) { - let count = 0; - for (let i = 0; i < colors.length; i++) { - if ((0, utils_2.RGBColorToDecimal)(value[i]) === colors[i].color) { - count++; - } - else { - break; - } - } - if (value.length - count + colors.length > 15) { - throw new error_1.InvalidPropertyValueError("This property can contain a maximum of 15 items, of which the first 10 are fixed. You can either deliver the first 10 static items with the maximum 5 freely selectable items or only the maximum 5 freely selectable items.", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - else { - for (let i = count; i < value.length - count + 10; i++) { - colors.push({ color: (0, utils_2.RGBColorToDecimal)(value[i]) }); - } - } - } - else { - throw new error_1.InvalidPropertyValueError("This property can contain a maximum of 15 items, of which the first 10 are fixed. You can either deliver the first 10 static items with the maximum 5 freely selectable items or only the maximum 5 freely selectable items.", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS, - "data": colors, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLightSettingsDynamicLightingThemes(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLightSettingsDynamicLightingThemes, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set light settings dynamic lighting themes - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isWallLightCam()) { - const themes = [{ "name": "Aurora", "mode": 1, "id": 0, "speed": 4000, "colors": [65321, 65468, 28671, 9215, 42239] }, { "name": "Warmth", "mode": 1, "id": 1, "speed": 4000, "colors": [16758528, 16744448, 16732160, 16719360, 16742144] }, { "name": "Let's Party", "mode": 2, "id": 2, "speed": 500, "colors": [16718080, 16756736, 65298, 40703, 4980991] }]; - if (value.length > 0 && value.length <= 23) { - let count = 0; - for (let i = 0; i < themes.length; i++) { - if (value[i].name === themes[i].name) { - count++; - } - else { - break; - } - } - if (value.length - count + themes.length > 23) { - throw new error_1.InvalidPropertyValueError("This property can contain a maximum of 23 items, of which the first 3 are fixed. You can either deliver the first 3 static items with the maximum 20 freely selectable items or only the maximum 20 freely selectable items.", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - else { - for (let i = count; i < value.length - count + 3; i++) { - themes.push({ - id: i, - colors: value[i].colors.map((color) => (0, utils_2.RGBColorToDecimal)(color)), - mode: value[i].mode, - name: value[i].name, - speed: value[i].speed - }); - } - } - } - else { - throw new error_1.InvalidPropertyValueError("This property can contain a maximum of 23 items, of which the first 3 are fixed. You can either deliver the first 3 static items with the maximum 20 freely selectable items or only the maximum 20 freely selectable items.", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES, - "data": themes, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setDoorControlWarning(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceDoorControlWarning, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set door control warning - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING, - "data": { - "doorid": 1, - "value": value === true ? 1 : 0, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - openDoor(device, value, doorId = 1) { - const propertyData = { - name: doorId === 1 ? types_1.PropertyName.DeviceDoor1Open : types_1.PropertyName.DeviceDoor2Open, - value: { - value: value, - doorId: doorId - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station open door - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value, doorId: doorId }); - if (device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, - "data": { - "cmdType": 0, - "disable_push": 0, - "source": 0, - "type": doorId === 1 ? (value === true ? 1 : 0) : (value === true ? 3 : 2), - "user_name": this.rawStation.member.nick_name, - }, - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - onGarageDoorStatus(channel, doorId, status) { - this.emit("garage door status", this, channel, doorId, status); - } - calibrateGarageDoor(device, doorId, type) { - const commandData = { - name: types_1.CommandName.DeviceCalibrateGarageDoor - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceCalibrateGarageDoor)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station calibrate garage door - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), doorId: doorId, type: type }); - if (device.isGarageCamera()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_CAMERA_GARAGE_DOOR_CALIBRATE, - "data": { - "door_id": doorId, - "type": type - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - } - onStorageInfoHB3(channel, storageInfo) { - this.emit("storage info hb3", this, channel, storageInfo); - } - setMirrorMode(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceImageMirrored, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set mirror mode - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithIntString({ - commandType: types_2.CommandType.CMD_SET_MIRRORMODE, - value: value === true ? 1 : 0, - valueSub: device.getChannel(), - strValue: this.rawStation.member.admin_user_id, - channel: device.getChannel() - }, { - property: propertyData - }); - } - setFlickerAdjustment(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceFlickerAdjustment, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set flicker adjustment - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_FLICKER_ADJUSTMENT, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "value": value - } - }), - channel: device.getChannel(), - }, { - property: propertyData - }); - } - setCrossCameraTracking(value) { - const propertyData = { - name: types_1.PropertyName.StationCrossCameraTracking, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set cross camera tracking - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_CROSS_CAMERA_TRACKING, - "mChannel": 0, - "mValue3": 0, - "payload": { - "value": value === true ? 1 : 0, - } - }), - channel: 0, - }, { - property: propertyData - }); - } - setContinuousTrackingTime(value) { - const propertyData = { - name: types_1.PropertyName.StationContinuousTrackingTime, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set continuous tracking time - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_CONTINUOUS_TRACKING_TIME, - "mChannel": 0, - "mValue3": 0, - "payload": { - "value": value - } - }), - channel: 0, - }, { - property: propertyData - }); - } - setTrackingAssistance(value) { - const propertyData = { - name: types_1.PropertyName.StationTrackingAssistance, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set tracking assistance - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_TRACKING_ASSISTANCE, - "mChannel": 0, - "mValue3": 0, - "payload": { - "value": value === true ? 1 : 0, - } - }), - channel: 0, - }, { - property: propertyData - }); - } - setCrossTrackingCameraList(value) { - const propertyData = { - name: types_1.PropertyName.StationCrossTrackingCameraList, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set cross tracking camera list - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_CROSS_TRACKING_CAMERA_LIST, - "mChannel": 0, - "mValue3": 0, - "payload": value - }), - channel: 0, - }, { - property: propertyData - }); - } - setCrossTrackingGroupList(value) { - const propertyData = { - name: types_1.PropertyName.StationCrossTrackingGroupList, - value: value - }; - if (!this.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = this.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set cross tracking group list - sending command`, { stationSN: this.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_CROSS_TRACKING_GROUP_LIST, - "mChannel": 0, - "mValue3": 0, - "payload": value - }), - channel: 0, - }, { - property: propertyData - }); - } - setNotificationIndoor(device, type, value) { - const propertyData = { - name: type === types_1.IndoorS350NotificationTypes.ALL_OTHER_MOTION ? types_1.PropertyName.DeviceNotificationAllOtherMotion : type === types_1.IndoorS350NotificationTypes.HUMAN ? types_1.PropertyName.DeviceNotificationPerson : type === types_1.IndoorS350NotificationTypes.PET ? types_1.PropertyName.DeviceNotificationPet : type === types_1.IndoorS350NotificationTypes.CRYING ? types_1.PropertyName.DeviceNotificationCrying : types_1.PropertyName.DeviceNotificationAllSound, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification type indoor - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), type: type, value: value }); - if (device.isIndoorPanAndTiltCameraS350()) { - try { - const notification = device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) !== undefined ? device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) : "0"; - let newNotification = (0, utils_1.getIndoorNotification)(Number.parseInt(notification), type, value); - if (newNotification === 0) { - newNotification = type; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "onoff": newNotification, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, newNotification.toString(), "p2p"); - } - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`setNotificationIndoor Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), deviceSN: device.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNotificationFloodlightT8425(device, type, value) { - const propertyData = { - name: type === types_1.FloodlightT8425NotificationTypes.ALL_OTHER_MOTION ? types_1.PropertyName.DeviceNotificationAllOtherMotion : type === types_1.FloodlightT8425NotificationTypes.HUMAN ? types_1.PropertyName.DeviceNotificationPerson : type === types_1.FloodlightT8425NotificationTypes.PET ? types_1.PropertyName.DeviceNotificationPet : types_1.PropertyName.DeviceNotificationVehicle, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set notification type floodlight T8425 - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), type: type, value: value }); - if (device.isFloodLightT8425()) { - try { - const notification = device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) !== undefined ? device.getRawProperty(device.getPropertyMetadata(propertyData.name).key) : "0"; - let newNotification = (0, utils_1.getFloodLightT8425Notification)(Number.parseInt(notification), type, value); - if (newNotification < 312) { - newNotification = 312; - } - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "onoff": newNotification, - } - }), - channel: device.getChannel() - }, { - property: propertyData, - onSuccess: () => { - device.updateRawProperty(types_2.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, newNotification.toString(), "p2p"); - } - }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.error(`setNotificationFloodlightT8425 Error`, { error: (0, utils_3.getError)(error), stationSN: this.getSerial(), deviceSN: device.getSerial() }); - } - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - presetPosition(device, position) { - const commandData = { - name: types_1.CommandName.DevicePresetPosition, - value: position - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DevicePresetPosition)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!(position in types_1.PresetPositionType)) { - throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station preset position - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), preset: types_1.PresetPositionType[position] }); - if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8423()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION, - "data": { - "value": position, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - savePresetPosition(device, position) { - const commandData = { - name: types_1.CommandName.DeviceSavePresetPosition, - value: position - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceSavePresetPosition)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!(position in types_1.PresetPositionType)) { - throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station save preset position - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), preset: types_1.PresetPositionType[position] }); - if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8423()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION, - "data": { - "value": position, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - deletePresetPosition(device, position) { - const commandData = { - name: types_1.CommandName.DeviceDeletePresetPosition, - value: position - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceDeletePresetPosition)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!(position in types_1.PresetPositionType)) { - throw new error_1.InvalidCommandValueError("Invalid value for this command", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station delete preset position - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), preset: types_1.PresetPositionType[position] }); - if (device.isFloodLightT8425() || device.isIndoorPanAndTiltCameraS350() || device.isOutdoorPanAndTiltCamera() || device.isFloodLightT8423()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_DOORBELL_SET_PAYLOAD, - value: JSON.stringify({ - "commandType": types_2.CommandType.CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION, - "data": { - "value": position, - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - } - setLeavingDetection(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLeavingDetection, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set leaving detection - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isGarageCamera() || device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_MOTION_SET_LEAVING_DETECTION, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "leaving_detection_switch": value ? 1 : 0 - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - _setLeavingReactions(device, propertyData, pushNotification, startTime, endTime) { - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, propertyData.value); - logging_1.rootHTTPLogger.debug(`Station set leaving reactions - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), propertyData: propertyData, pushNotification: pushNotification, startTime: startTime, endTime: endTime }); - if (device.isLockWifiVideo()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "end_hour": endTime.split(":")[0], - "end_min": endTime.split(":")[1], - "push_notify": pushNotification === true ? 1 : 0, - "start_hour": startTime.split(":")[0], - "start_min": startTime.split(":")[1], - } - }), - channel: device.getChannel() - }, { - property: propertyData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setLeavingReactionNotification(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLeavingReactionNotification, - value: value - }; - this._setLeavingReactions(device, propertyData, value, device.getPropertyValue(types_1.PropertyName.DeviceLeavingReactionStartTime), device.getPropertyValue(types_1.PropertyName.DeviceLeavingReactionEndTime)); - } - setLeavingReactionStartTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLeavingReactionStartTime, - value: value - }; - this._setLeavingReactions(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLeavingReactionNotification), value, device.getPropertyValue(types_1.PropertyName.DeviceLeavingReactionEndTime)); - } - setLeavingReactionEndTime(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceLeavingReactionEndTime, - value: value - }; - this._setLeavingReactions(device, propertyData, device.getPropertyValue(types_1.PropertyName.DeviceLeavingReactionNotification), device.getPropertyValue(types_1.PropertyName.DeviceLeavingReactionStartTime), value); - } - setBeepVolume(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceBeepVolume, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set beep volume - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceBeepVolume, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNightvisionOptimization(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNightvisionOptimization, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set nightvision optimization - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceNightvisionOptimization, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - setNightvisionOptimizationSide(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceNightvisionOptimizationSide, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station set nightvision optimization - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - if (device.isLockWifiVideo()) { - this.setAdvancedLockParams(device, types_1.PropertyName.DeviceNightvisionOptimizationSide, value); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - } - getLockParameters() { - //TODO: Implement support for other Locks - if (device_1.Device.isLockWifiT8506(this.getDeviceType()) || device_1.Device.isLockWifiT8502(this.getDeviceType()) || device_1.Device.isLockWifiT8510P(this.getDeviceType(), this.getSerial()) || device_1.Device.isLockWifiT8520P(this.getDeviceType(), this.getSerial())) { - logging_1.rootHTTPLogger.debug(`Station smart lock send get lock parameters command`, { stationSN: this.getSerial() }); - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.GET_LOCK_PARAM, 0, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockGetParams(this.rawStation.member.admin_user_id)); - this.p2pSession.sendCommandWithStringPayload(command.payload); - } - else if (device_1.Device.isLockWifiR10(this.getDeviceType()) || device_1.Device.isLockWifiR20(this.getDeviceType())) { - logging_1.rootHTTPLogger.debug(`Station lock v12 send get lock parameters command`, { stationSN: this.getSerial() }); - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.GET_LOCK_PARAM, 0, this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdGetLockParam(this.rawStation.member.admin_user_id)); - this._sendLockV12P2PCommand(command); - } - } - getLockStatus() { - //TODO: Implement support for other Locks - if (device_1.Device.isLockWifiT8506(this.getDeviceType()) || device_1.Device.isLockWifiT8502(this.getDeviceType()) || device_1.Device.isLockWifiT8510P(this.getDeviceType(), this.getSerial()) || device_1.Device.isLockWifiT8520P(this.getDeviceType(), this.getSerial())) { - logging_1.rootHTTPLogger.debug(`Station smart lock send get lock status command`, { stationSN: this.getSerial() }); - const command = (0, utils_2.getSmartLockP2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.SmartLockCommand.QUERY_STATUS_IN_LOCK, 0, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdSmartLockStatus(this.rawStation.member.admin_user_id)); - this.p2pSession.sendCommandWithStringPayload(command.payload); - } - else if (device_1.Device.isLockWifiR10(this.getDeviceType()) || device_1.Device.isLockWifiR20(this.getDeviceType())) { - logging_1.rootHTTPLogger.debug(`Station lock v12 send get lock status command`, { stationSN: this.getSerial() }); - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.QUERY_STATUS_IN_LOCK, 0, this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdStatus(this.rawStation.member.admin_user_id)); - this._sendLockV12P2PCommand(command); - } - else if (device_1.Device.isLockWifi(this.getDeviceType(), this.getSerial()) || device_1.Device.isLockWifiNoFinger(this.getDeviceType())) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.P2P_QUERY_STATUS_IN_LOCK, - "mChannel": 0, - "mValue3": 0, - "payload": { - "timezone": this.rawStation.time_zone === undefined || this.rawStation.time_zone === "" ? (0, utils_1.getAdvancedLockTimezone)(this.rawStation.station_sn) : this.rawStation.time_zone, - } - }), - channel: 0 - }); - } - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - onSequenceError(channel, command, sequence, serialnumber) { - //TODO: Implement command retry for lock devices in case von sequence mismatch error - logging_1.rootHTTPLogger.debug(`Station lock sequence error`, { stationSN: this.getSerial(), channel: channel, command: command, sequence: sequence, serialnumber: serialnumber }); - } - updateUsername(device, username, passwordId) { - const commandData = { - name: types_1.CommandName.DeviceUpdateUsername, - value: { - username: username, - passwordId: passwordId, - } - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceUpdateUsername)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - logging_1.rootHTTPLogger.debug(`Station update username - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), username: username, passwordId: passwordId }); - if (device.isLockWifiR10() || device.isLockWifiR20()) { - const command = (0, utils_2.getLockV12P2PCommand)(this.rawStation.station_sn, this.rawStation.member.admin_user_id, types_2.ESLCommand.MODIFY_NAME, device.getChannel(), this.lockPublicKey, this.p2pSession.incLockSequenceNumber(), device_1.Lock.encodeCmdModifyUsername(username, passwordId)); - logging_1.rootHTTPLogger.debug("Station update username - payload", { station: this.getSerial(), device: device.getSerial(), admin_user_id: this.rawStation.member.admin_user_id, payload: command }); - this._sendLockV12P2PCommand(command, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name, commandValue: commandData.value } }); - } - } - setOpenMethod(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceOpenMethod, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set open method - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SMART_DROP_DELIVERY_MODE, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "isDeniedDelivery": 0, - "userIndex": 0, - "workmode": value, - } - }), - channel: device.getChannel(), - }, { - property: propertyData - }); - } - setMotionActivatedPrompt(device, value) { - const propertyData = { - name: types_1.PropertyName.DeviceMotionActivatedPrompt, - value: value - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - if (!device.hasProperty(propertyData.name)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), propertyName: propertyData.name, propertyValue: propertyData.value } }); - } - const property = device.getPropertyMetadata(propertyData.name); - (0, utils_3.validValue)(property, value); - logging_1.rootHTTPLogger.debug(`Station set motion activated prompt - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial(), value: value }); - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "channel": device.getChannel(), - "enable": value === true ? 1 : 0, - } - }), - channel: device.getChannel(), - }, { - property: propertyData - }); - } - open(device) { - const commandData = { - name: types_1.CommandName.DeviceOpen - }; - if (device.getStationSerial() !== this.getSerial()) { - throw new error_1.WrongStationError("Device is not managed by this station", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - if (!device.hasCommand(types_1.CommandName.DeviceOpen)) { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - logging_1.rootHTTPLogger.debug(`Station open - sending command`, { stationSN: this.getSerial(), deviceSN: device.getSerial() }); - if (device.isSmartDrop()) { - this.p2pSession.sendCommandWithStringPayload({ - commandType: types_2.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - "account_id": this.rawStation.member.admin_user_id, - "cmd": types_2.CommandType.CMD_SMART_DROP_OPEN_LID, - "mChannel": device.getChannel(), - "mValue3": 0, - "payload": { - "isOpen": 1, - "userIndex": 0. - } - }), - channel: device.getChannel() - }, { - command: commandData - }); - } - else { - throw new error_1.NotSupportedError("This functionality is not implemented or supported by this device", { context: { device: device.getSerial(), station: this.getSerial(), commandName: commandData.name } }); - } - } -} -exports.Station = Station; -//# sourceMappingURL=station.js.map \ No newline at end of file diff --git a/build/http/station.js.map b/build/http/station.js.map deleted file mode 100644 index ef0a422d..00000000 --- a/build/http/station.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"station.js","sourceRoot":"","sources":["../../src/http/station.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/types.d.ts b/build/http/types.d.ts deleted file mode 100644 index e88ae598..00000000 --- a/build/http/types.d.ts +++ /dev/null @@ -1,1335 +0,0 @@ -import { Commands, IndexedProperty, Properties, PropertyMetadataBoolean, PropertyMetadataNumeric, PropertyMetadataObject, PropertyMetadataString } from "./interfaces"; -export type SourceType = "p2p" | "http" | "push" | "mqtt"; -export declare enum DeviceType { - STATION = 0, - CAMERA = 1, - SENSOR = 2, - FLOODLIGHT = 3, - CAMERA_E = 4, - DOORBELL = 5, - BATTERY_DOORBELL = 7, - CAMERA2C = 8, - CAMERA2 = 9, - MOTION_SENSOR = 10, - KEYPAD = 11, - CAMERA2_PRO = 14, - CAMERA2C_PRO = 15, - BATTERY_DOORBELL_2 = 16, - HB3 = 18, - CAMERA3 = 19, - CAMERA3C = 23, - PROFESSIONAL_247 = 24,// T8600 - MINIBASE_CHIME = 25, - CAMERA3_PRO = 26, - INDOOR_CAMERA = 30, - INDOOR_PT_CAMERA = 31, - SOLO_CAMERA = 32, - SOLO_CAMERA_PRO = 33, - INDOOR_CAMERA_1080 = 34, - INDOOR_PT_CAMERA_1080 = 35, - FLOODLIGHT_CAMERA_8422 = 37, - FLOODLIGHT_CAMERA_8423 = 38, - FLOODLIGHT_CAMERA_8424 = 39, - INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT = 44, - INDOOR_OUTDOOR_CAMERA_2K = 45, - INDOOR_OUTDOOR_CAMERA_1080P = 46, - FLOODLIGHT_CAMERA_8425 = 47, - OUTDOOR_PT_CAMERA = 48,//S340 - LOCK_BLE = 50, - LOCK_WIFI = 51, - LOCK_BLE_NO_FINGER = 52, - LOCK_WIFI_NO_FINGER = 53, - LOCK_8503 = 54,//Smart Lock R10 - LOCK_8530 = 55, - LOCK_85A3 = 56, - LOCK_8592 = 57, - LOCK_8504 = 58,//Smart Lock R20 - SOLO_CAMERA_SPOTLIGHT_1080 = 60, - SOLO_CAMERA_SPOTLIGHT_2K = 61, - SOLO_CAMERA_SPOTLIGHT_SOLAR = 62, - SOLO_CAMERA_SOLAR = 63, - SOLO_CAMERA_C210 = 64, - FLOODLIGHT_CAMERA_8426 = 87,//E30 - SOLO_CAMERA_E30 = 88, - EUFYCAM_S4 = 89,// T8172 - Outdoor PTZ Dual Camera (no floodlight) - SMART_DROP = 90, - BATTERY_DOORBELL_PLUS = 91, - DOORBELL_SOLO = 93, - BATTERY_DOORBELL_PLUS_E340 = 94, - BATTERY_DOORBELL_C30 = 95, - BATTERY_DOORBELL_C31 = 96, - INDOOR_COST_DOWN_CAMERA = 100, - CAMERA_GUN = 101, - CAMERA_SNAIL = 102, - INDOOR_PT_CAMERA_S350 = 104, - INDOOR_PT_CAMERA_E30 = 105, - CAMERA_FG = 110,//T8150 - CAMERA_GARAGE_T8453_COMMON = 131, - CAMERA_GARAGE_T8452 = 132, - CAMERA_GARAGE_T8453 = 133, - SMART_SAFE_7400 = 140, - SMART_SAFE_7401 = 141, - SMART_SAFE_7402 = 142, - SMART_SAFE_7403 = 143, - WALL_LIGHT_CAM = 151, - SMART_TRACK_LINK = 157,//T87B0 - SMART_TRACK_CARD = 159,//T87B2 - LOCK_8502 = 180, - LOCK_8506 = 184, - WALL_LIGHT_CAM_81A0 = 10005, - INDOOR_PT_CAMERA_C220 = 10008,// T8W11C - INDOOR_PT_CAMERA_C210 = 10009,// T8419 / T8W11P? - INDOOR_PT_CAMERA_C220_V2 = 10010,// T8W11C (Type 10010) - INDOOR_PT_CAMERA_C220_V3 = 10011 -} -export declare enum ParamType { - CHIME_STATE = 2015, - DETECT_EXPOSURE = 2023, - DETECT_MODE = 2004, - DETECT_MOTION_SENSITIVE = 2005, - DETECT_SCENARIO = 2028, - DETECT_SWITCH = 2027, - DETECT_ZONE = 2006, - DOORBELL_AUDIO_RECODE = 2042, - DOORBELL_BRIGHTNESS = 2032, - DOORBELL_DISTORTION = 2033, - DOORBELL_HDR = 2029, - DOORBELL_IR_MODE = 2030, - DOORBELL_LED_NIGHT_MODE = 2039, - DOORBELL_MOTION_ADVANCE_OPTION = 2041, - DOORBELL_MOTION_NOTIFICATION = 2035, - DOORBELL_NOTIFICATION_JUMP_MODE = 2038, - DOORBELL_NOTIFICATION_OPEN = 2036, - DOORBELL_RECORD_QUALITY = 2034, - DOORBELL_RING_RECORD = 2040, - DOORBELL_SNOOZE_START_TIME = 2037, - DOORBELL_VIDEO_QUALITY = 2031, - DOORBELL_CHIME_MODE = 100000, - NIGHT_VISUAL = 2002, - OPEN_DEVICE = 2001, - RINGING_VOLUME = 2022, - SDCARD = 2010, - UN_DETECT_ZONE = 2007, - VOLUME = 2003, - COMMAND_LED_NIGHT_OPEN = 1026, - COMMAND_MOTION_DETECTION_PACKAGE = 1016, - COMMAND_HDR = 1019, - COMMAND_DISTORTION_CORRECTION = 1022, - COMMAND_VIDEO_QUALITY = 1020, - COMMAND_VIDEO_RECORDING_QUALITY = 1023, - COMMAND_VIDEO_RING_RECORD = 1027, - COMMAND_AUDIO_RECORDING = 1029, - COMMAND_INDOOR_CHIME = 1006, - COMMAND_RINGTONE_VOLUME = 1012, - COMMAND_NOTIFICATION_RING = 1031, - COMMAND_NOTIFICATION_TYPE = 1030, - COMMAND_QUICK_RESPONSE = 1004, - COMMAND_START_LIVESTREAM = 1000, - COMMAND_STREAM_INFO = 1005, - COMMAND_VOLTAGE_INFO = 1015, - SNOOZE_MODE = 1271,// The value is base64 encoded - WATERMARK_MODE = 1214,// 1 - hide, 2 - show - DEVICE_UPGRADE_NOW = 1134, - CAMERA_UPGRADE_NOW = 1133, - DEFAULT_SCHEDULE_MODE = 1257,// 0 - Away, 1 - Home, 63 - Disarmed - GUARD_MODE = 1224,// 0 - Away, 1 - Home, 63 - Disarmed, 2 - Schedule - FLOODLIGHT_MANUAL_SWITCH = 1400, - FLOODLIGHT_MANUAL_BRIGHTNESS = 1401,// The range is 22-100 - FLOODLIGHT_MOTION_BRIGHTNESS = 1412,// The range is 22-100 - FLOODLIGHT_SCHEDULE_BRIGHTNESS = 1413,// The range is 22-100 - FLOODLIGHT_MOTION_SENSITIVTY = 1272,// The range is 1-5 - CAMERA_SPEAKER_VOLUME = 1230, - CAMERA_RECORD_ENABLE_AUDIO = 1366,// Enable microphone - CAMERA_RECORD_RETRIGGER_INTERVAL = 1250,// In seconds - CAMERA_RECORD_CLIP_LENGTH = 1249,// In seconds - CAMERA_IR_CUT = 1013, - CAMERA_PIR = 1011, - CAMERA_WIFI_RSSI = 1142, - CAMERA_MOTION_ZONES = 1204, - PUSH_MSG_MODE = 1252,// 0 to ??? - PRIVATE_MODE = 99904, - CUSTOM_RTSP_URL = 999991 -} -export declare enum AlarmMode { - AWAY = 0, - HOME = 1, - CUSTOM1 = 3, - CUSTOM2 = 4, - CUSTOM3 = 5, - DISARMED = 63 -} -export declare enum GuardMode { - UNKNOWN = -1, - AWAY = 0, - HOME = 1, - DISARMED = 63, - SCHEDULE = 2, - GEO = 47, - CUSTOM1 = 3, - CUSTOM2 = 4, - CUSTOM3 = 5, - OFF = 6 -} -export declare enum ResponseErrorCode { - CODE_CONNECT_ERROR = 997, - CODE_ERROR_PIN = 36006, - CODE_MULTI_ALARM = 36002, - CODE_NEED_VERIFY_CODE = 26052, - CODE_NETWORK_ERROR = 998, - CODE_PHONE_NONE_SUPPORT = 26058, - CODE_SERVER_ERROR = 999, - CODE_SERVER_UNDER_MAINTENANCE = 424, - CODE_VERIFY_CODE_ERROR = 26050, - CODE_VERIFY_CODE_EXPIRED = 26051, - CODE_VERIFY_CODE_MAX = 26053, - CODE_VERIFY_CODE_NONE_MATCH = 26054, - CODE_VERIFY_PASSWORD_ERROR = 26055, - CODE_WHATEVER_ERROR = 0, - CODE_EMAIL_LIMIT_EXCEED = 25077, - CODE_GIVE_AWAY_EXPIRED = 25075, - CODE_GIVE_AWAY_INVALID = 25076, - CODE_GIVE_AWAY_NOT_EXIST = 25079, - CODE_GIVE_AWAY_PACKAGE_NOT_MATCH = 25078, - CODE_GIVE_AWAY_PACKAGE_TYPE_NOT_MATCH = 25080, - CODE_GIVE_AWAY_RECORD_EXIST = 25074, - CODE_INPUT_PARAM_INVALID = 10000, - CODE_MAX_FORGET_PASSWORD_ERROR = 100035, - CODE_MAX_LOGIN_LIMIT = 100028, - CODE_MAX_REGISTER_ERROR = 100034, - EMAIL_NOT_REGISTERED_ERROR = 22008, - LOGIN_CAPTCHA_ERROR = 100033, - LOGIN_DECRYPTION_FAIL = 100030, - LOGIN_ENCRYPTION_FAIL = 100029, - LOGIN_INVALID_TOUCH_ID = 26047, - LOGIN_NEED_CAPTCHA = 100032, - MULTIPLE_EMAIL_PASSWORD_ERROR = 26006, - MULTIPLE_INACTIVATED_ERROR = 26015, - MULTIPLE_REGISTRATION_ERROR = 26000, - RESP_ERROR_CODE_SESSION_TIMEOUT = 401, - CODE_REQUEST_TOO_FAST = 250999 -} -export declare enum VerfyCodeTypes { - TYPE_SMS = 0, - TYPE_PUSH = 1, - TYPE_EMAIL = 2 -} -export declare enum StorageType { - NONE = 0, - LOCAL = 1, - CLOUD = 2, - LOCAL_AND_CLOUD = 3 -} -export declare enum PowerSource { - BATTERY = 0, - SOLAR_PANEL = 1 -} -export declare enum PublicKeyType { - SERVER = 1, - LOCK = 2 -} -export declare enum FloodlightMotionTriggeredDistance { - MIN = 66, - LOW = 76, - MEDIUM = 86, - HIGH = 91, - MAX = 96 -} -export declare enum NotificationType { - MOST_EFFICIENT = 1, - INCLUDE_THUMBNAIL = 2, - FULL_EFFECT = 3 -} -export declare enum WalllightNotificationType { - ONLY_TEXT = 1, - WITH_THUMBNAIL = 2 -} -export declare enum AlarmTone { - ALARM_TONE1 = 1, - ALARM_TONE2 = 2 -} -export declare enum NotificationSwitchMode { - APP = 16, - GEOFENCE = 32, - SCHEDULE = 64, - KEYPAD = 128 -} -export declare enum GuardModeSecuritySettingsAction { - VIDEO_RECORDING = 1, - CAMERA_ALARM = 2, - HOMEBASE_ALARM = 4, - NOTIFICATON = 8, - PRIVACY = 16, - LIGHT_ALARM = 32, - PROFESSIONAL_SECURITY = 64 -} -export declare enum TimeFormat { - FORMAT_12H = 0, - FORMAT_24H = 1 -} -export declare enum SignalLevel { - NO_SIGNAL = 0, - WEAK = 1, - NORMAL = 2, - STRONG = 3, - FULL = 4 -} -export declare enum MotionDetectionMode { - STANDARD = 0, - ADVANCED = 1 -} -export declare enum VideoTypeStoreToNAS { - Events = 0, - ContinuousRecording = 1 -} -export declare enum DualCamStreamMode { - SINGLE_MAIN = 0, - SINGLE_SECOND = 1, - PIP_MAIN_UPPER_LEFT = 2, - PIP_MAIN_UPPER_RIGHT = 3, - PIP_MAIN_LOWER_LEFT = 4, - PIP_MAIN_LOWER_RIGHT = 5, - PIP_SECOND_UPPER_LEFT = 6, - PIP_SECOND_UPPER_RIGHT = 7, - PIP_SECOND_LOWER_LEFT = 8, - PIP_SECOND_LOWER_RIGHT = 9, - SPLICE_LEFT = 10, - SPLICE_RIGHT = 11, - SPLICE_ABOVE = 12, - SPLICE_UNDER = 13, - SPLICE_MIRROR = 14 -} -export declare enum UserType { - NORMAL = 0, - ADMIN = 1, - SUPER_ADMIN = 2, - ENTRY_ONLY = 4 -} -export declare enum UserPasswordType { - PIN = 1, - FINGERPRINT = 2 -} -export declare enum HB3DetectionTypes { - HUMAN_DETECTION = 2, - VEHICLE_DETECTION = 4, - PET_DETECTION = 8, - ALL_OTHER_MOTION = 32768, - HUMAN_RECOGNITION = 131072 -} -export declare enum T8170DetectionTypes { - HUMAN_DETECTION = 3, - VEHICLE_DETECTION = 4, - ALL_OTHER_MOTION = 32768 -} -export declare enum SoloCameraDetectionTypes { - HUMAN_DETECTION = 3, - ALL_OTHER_MOTION = 32771 -} -export declare enum IndoorS350DetectionTypes { - HUMAN_DETECTION = 3, - PET_DETECTION = 8, - ALL_OTHER_MOTION = 32768 -} -export declare enum IndoorDetectionTypes { - PERSON_DETECTION = 1, - PET_DETECTION = 2, - ALL_MOTION = 4 -} -export declare enum IndoorMiniDetectionTypes { - PERSON_DETECTION = 1, - ALL_MOTION = 4 -} -export declare enum IndoorS350NotificationTypes { - ALL_OTHER_MOTION = 801, - HUMAN = 802, - PET = 804, - CRYING = 808, - ALL_SOUND = 816 -} -export declare enum FloodlightT8425NotificationTypes { - ALL_OTHER_MOTION = 1, - HUMAN = 2, - PET = 4, - VEHICLE = 512 -} -export declare enum VideoType { - RECEIVED_RING = 1000, - MISSED_RING = 1001, - MOTION = 1002, - PERSON = 1003, - PET = 1004, - CRYING = 1005, - SOUND = 1006, - PUTDOWN_PACKAGE = 65536, - TAKE_PACKAGE = 131072, - DETECT_PACKAGE = 262144, - RECEIVED_RING_ACK = 524288, - RECEIVED_RING_MISS = 1048576, - RECEIVED_CAR_GUARD = 2097152 -} -export declare enum MediaType { - NONE = -1, - H264 = 0, - H265 = 1 -} -export declare enum RecordType { - MOTION = 256, - PERSON = 512, - PET = 1024, - CRY = 2048, - SOUND = 4096, - VEHICLE = 16384, - CAR_GUARD = 131072 -} -export declare enum MicStatus { - CLOSED = 0, - OPENED = 1 -} -export declare enum TriggerType { - MOTION1 = 0, - MOTION2 = 1, - MOTION3 = 2, - PERSON = 4, - RING = 8, - SENSOR = 16, - UNKNOWN = 32, - MISSED_RING = 64, - ANSWER_RING = 128 -} -export declare enum LightingActiveMode { - DAILY = 0, - COLORED = 1, - DYNAMIC = 2 -} -export declare enum DailyLightingType { - COLD = 0, - WARM = 1, - VERY_WARM = 2 -} -export declare enum MotionActivationMode { - SMART = 0, - FAST = 1 -} -export declare enum DynamicLightingEffect { - FADE = 1, - BLINK = 2 -} -export declare enum GarageDoorState { - A_CLOSED = 2, - A_CLOSING = -102, - A_NO_MOTOR = -108, - A_OPENED = 1, - A_OPENING = -101, - A_UNKNOWN = 16, - B_CLOSED = 8, - B_CLOSING = -104, - B_NO_MOTOR = -109, - B_OPENED = 4, - B_OPENING = -103, - B_UNKNOWN = 32, - UNKNOWN = 0 -} -export declare enum TrackerType { - TRACKER = 0, - KEY = 1, - WALLET = 2, - BAG = 3, - REMOTE = 4, - CAMERA = 5, - HEADPHONES = 6, - TOY = 7, - SUITCASE = 8, - HANDBAG = 9 -} -export declare enum MotionDetectionRangeType { - STANDARD = 0, - ADVANCED = 1, - AUTOMATIC = 2 -} -export declare enum ViewModeType { - SINGLE_VIEW = 0, - DUAL_VIEW = 12 -} -export declare enum PresetPositionType { - PRESET_1 = 0, - PRESET_2 = 1, - PRESET_3 = 2, - PRESET_4 = 3 -} -export declare const enum SmartLockNotification { - ENABLED = 1, - UNLOCKED = 2, - LOCKED = 4 -} -export interface EventFilterType { - deviceSN?: string; - stationSN?: string; - storageType?: StorageType; -} -export declare enum DeviceEvent { - MotionDetected = 0, - PersonDetected = 1, - PetDetected = 2, - SoundDetected = 3, - CryingDetected = 4, - Ringing = 5, - PackageDelivered = 6, - PackageTaken = 7, - PackageStranded = 8, - SomeoneLoitering = 9, - RadarMotionDetected = 10, - SomeoneGoing = 11, - LeftOpen = 12, - Jammed = 13, - Alarm911 = 14, - LowBattery = 15, - LongTimeNotClose = 16, - ShakeAlarm = 17, - WrontTryProtectAlarm = 18, - IdentityPersonDetected = 19, - StrangerPersonDetected = 20, - VehicleDetected = 21, - DogDetected = 22, - DogLickDetected = 23, - DogPoopDetected = 24, - Lock = 25, - TamperingAlert = 26, - LowTemperatureAlert = 27, - HighTemperatureAlert = 28, - LidStuckAlert = 29, - PinIncorrectAlert = 30, - BatteryFullyChargedAlert = 31 -} -export declare enum PropertyName { - Name = "name", - Model = "model", - SerialNumber = "serialNumber", - HardwareVersion = "hardwareVersion", - SoftwareVersion = "softwareVersion", - Type = "type", - DeviceStationSN = "stationSerialNumber", - DeviceBattery = "battery", - DeviceBatteryTemp = "batteryTemperature", - DeviceBatteryLow = "batteryLow", - DeviceBatteryIsCharging = "batteryIsCharging", - DeviceLastChargingDays = "lastChargingDays", - DeviceLastChargingTotalEvents = "lastChargingTotalEvents", - DeviceLastChargingRecordedEvents = "lastChargingRecordedEvents", - DeviceLastChargingFalseEvents = "lastChargingFalseEvents", - DeviceBatteryUsageLastWeek = "batteryUsageLastWeek", - DeviceWifiRSSI = "wifiRssi", - DeviceWifiSignalLevel = "wifiSignalLevel", - DeviceEnabled = "enabled", - DeviceAntitheftDetection = "antitheftDetection", - DeviceAutoNightvision = "autoNightvision", - DeviceNightvision = "nightvision", - DeviceStatusLed = "statusLed", - DeviceMotionDetection = "motionDetection", - DeviceMotionDetectionType = "motionDetectionType", - DeviceMotionDetectionSensitivity = "motionDetectionSensitivity", - DeviceMotionZone = "motionZone", - DeviceMotionDetectionRange = "motionDetectionRange",// Flooglight T8423 - DeviceMotionDetectionRangeStandardSensitivity = "motionDetectionRangeStandardSensitivity",// Flooglight T8423 - DeviceMotionDetectionRangeAdvancedLeftSensitivity = "motionDetectionRangeAdvancedLeftSensitivity",// Flooglight T8423 - DeviceMotionDetectionRangeAdvancedMiddleSensitivity = "motionDetectionRangeAdvancedMiddleSensitivity",// Flooglight T8423 - DeviceMotionDetectionRangeAdvancedRightSensitivity = "motionDetectionRangeAdvancedRightSensitivity",// Flooglight T8423 - DeviceMotionDetectionTestMode = "motionDetectionTestMode",// Flooglight T8420, T8423 - DeviceMotionDetectionTypeHuman = "motionDetectionTypeHuman", - DeviceMotionDetectionTypeHumanRecognition = "motionDetectionTypeHumanRecognition", - DeviceMotionDetectionTypePet = "motionDetectionTypePet", - DeviceMotionDetectionTypeVehicle = "motionDetectionTypeVehicle", - DeviceMotionDetectionTypeAllOtherMotions = "motionDetectionTypeAllOtherMotions", - DeviceMotionDetected = "motionDetected", - DeviceMotionTracking = "motionTracking", - DeviceMotionTrackingSensitivity = "motionTrackingSensitivity",// Flooglight T8423 - DeviceMotionAutoCruise = "motionAutoCruise",// Flooglight T8423 - DeviceMotionOutOfViewDetection = "motionOutOfViewDetection",// Flooglight T8423 - DevicePersonDetected = "personDetected", - DevicePersonName = "personName", - DeviceRTSPStream = "rtspStream", - DeviceRTSPStreamUrl = "rtspStreamUrl", - DeviceWatermark = "watermark", - DevicePictureUrl = "hidden-pictureUrl", - DevicePicture = "picture", - DeviceState = "state", - DevicePetDetection = "petDetection", - DevicePetDetected = "petDetected", - DeviceSoundDetection = "soundDetection", - DeviceSoundDetectionType = "soundDetectionType", - DeviceSoundDetectionSensitivity = "soundDetectionSensitivity", - DeviceSoundDetected = "soundDetected", - DeviceCryingDetected = "cryingDetected", - DeviceSensorOpen = "sensorOpen", - DeviceSensorChangeTime = "sensorChangeTime", - DeviceMotionSensorPIREvent = "motionSensorPirEvent", - DeviceLocked = "locked", - DeviceRinging = "ringing", - DeviceLockStatus = "lockStatus", - DeviceLight = "light", - DeviceMicrophone = "microphone", - DeviceSpeaker = "speaker", - DeviceSpeakerVolume = "speakerVolume", - DeviceRingtoneVolume = "ringtoneVolume", - DeviceAudioRecording = "audioRecording", - DevicePowerSource = "powerSource", - DevicePowerWorkingMode = "powerWorkingMode", - DeviceChargingStatus = "chargingStatus", - DeviceRecordingEndClipMotionStops = "recordingEndClipMotionStops", - DeviceRecordingClipLength = "recordingClipLength", - DeviceRecordingRetriggerInterval = "recordingRetriggerInterval", - DeviceVideoStreamingQuality = "videoStreamingQuality", - DeviceVideoRecordingQuality = "videoRecordingQuality", - DeviceVideoWDR = "videoWdr", - DeviceLightSettingsEnable = "lightSettingsEnable", - DeviceLightSettingsBrightnessManual = "lightSettingsBrightnessManual", - DeviceLightSettingsColorTemperatureManual = "lightSettingsColorTemperatureManual",// Flooglight T8423 - DeviceLightSettingsBrightnessMotion = "lightSettingsBrightnessMotion", - DeviceLightSettingsColorTemperatureMotion = "lightSettingsColorTemperatureMotion",// Flooglight T8423 - DeviceLightSettingsBrightnessSchedule = "lightSettingsBrightnessSchedule", - DeviceLightSettingsColorTemperatureSchedule = "lightSettingsColorTemperatureSchedule",// Flooglight T8423 - DeviceLightSettingsMotionTriggered = "lightSettingsMotionTriggered", - DeviceLightSettingsMotionActivationMode = "lightSettingsMotionActivationMode",// Flooglight T8423 / Walllight T84A1 - DeviceLightSettingsMotionTriggeredDistance = "lightSettingsMotionTriggeredDistance", - DeviceLightSettingsMotionTriggeredTimer = "lightSettingsMotionTriggeredTimer", - DeviceLightSettingsManualLightingActiveMode = "lightSettingsManualLightingActiveMode",// Walllight T84A1 - DeviceLightSettingsManualDailyLighting = "lightSettingsManualDailyLighting",// Walllight T84A1 - DeviceLightSettingsManualColoredLighting = "lightSettingsManualColoredLighting",// Walllight T84A1 - DeviceLightSettingsManualDynamicLighting = "lightSettingsManualDynamicLighting",// Walllight T84A1 - DeviceLightSettingsMotionLightingActiveMode = "lightSettingsMotionLightingActiveMode",// Walllight T84A1 - DeviceLightSettingsMotionDailyLighting = "lightSettingsMotionDailyLighting",// Walllight T84A1 - DeviceLightSettingsMotionColoredLighting = "lightSettingsMotionColoredLighting",// Walllight T84A1 - DeviceLightSettingsMotionDynamicLighting = "lightSettingsMotionDynamicLighting",// Walllight T84A1 - DeviceLightSettingsScheduleLightingActiveMode = "lightSettingsScheduleLightingActiveMode",// Walllight T84A1 - DeviceLightSettingsScheduleDailyLighting = "lightSettingsScheduleDailyLighting",// Walllight T84A1 - DeviceLightSettingsScheduleColoredLighting = "lightSettingsScheduleColoredLighting",// Walllight T84A1 - DeviceLightSettingsScheduleDynamicLighting = "lightSettingsScheduleDynamicLighting",// Walllight T84A1 - DeviceLightSettingsColoredLightingColors = "lightSettingsColoredLightingColors",// Walllight T84A1 - DeviceLightSettingsDynamicLightingThemes = "lightSettingsDynamicLightingThemes",// Walllight T84A1 - DeviceChimeIndoor = "chimeIndoor",//BatteryDoorbell, WiredDoorbell - DeviceChimeHomebase = "chimeHomebase",//BatteryDoorbell - DeviceChimeHomebaseRingtoneVolume = "chimeHomebaseRingtoneVolume",//BatteryDoorbell - DeviceChimeHomebaseRingtoneType = "chimeHomebaseRingtoneType",//BatteryDoorbell - DeviceNotificationType = "notificationType", - DeviceRotationSpeed = "rotationSpeed", - DeviceImageMirrored = "imageMirrored", - DeviceNotificationPerson = "notificationPerson",//Indoor - DeviceNotificationPet = "notificationPet",//Indoor - DeviceNotificationAllOtherMotion = "notificationAllOtherMotion",//Indoor - DeviceNotificationCrying = "notificationCrying",//Indoor - DeviceNotificationAllSound = "notificationAllSound",//Indoor - DeviceNotificationIntervalTime = "notificationIntervalTime",//Indoor - DeviceNotificationRing = "notificationRing",//BatteryDoorbell - DeviceNotificationMotion = "notificationMotion",//BatteryDoorbell - DeviceNotificationRadarDetector = "notificationRadarDetector",//BatteryDoorbell Dual - DeviceNotificationVehicle = "notificationVehicle",//Floodlight - DeviceContinuousRecording = "continuousRecording", - DeviceContinuousRecordingType = "continuousRecordingType", - DeviceChirpVolume = "chirpVolume", - DeviceChirpTone = "chirpTone", - DeviceVideoHDR = "videoHdr",// Wired Doorbell - DeviceVideoDistortionCorrection = "videoDistortionCorrection",// Wired Doorbell - DeviceVideoRingRecord = "videoRingRecord",// Wired Doorbell - DeviceVideoNightvisionImageAdjustment = "videoNightvisionImageAdjustment",// Flooglight T8423 - DeviceVideoColorNightvision = "videoColorNightvision",// Flooglight T8423 - DeviceAutoCalibration = "autoCalibration",// Flooglight T8423 - DeviceAutoLock = "autoLock", - DeviceAutoLockTimer = "autoLockTimer", - DeviceAutoLockSchedule = "autoLockSchedule", - DeviceAutoLockScheduleStartTime = "autoLockScheduleStartTime", - DeviceAutoLockScheduleEndTime = "autoLockScheduleEndTime", - DeviceOneTouchLocking = "oneTouchLocking", - DeviceWrongTryProtection = "wrongTryProtection", - DeviceWrongTryAttempts = "wrongTryAttempts", - DeviceWrongTryLockdownTime = "wrongTryLockdownTime", - DeviceScramblePasscode = "scramblePasscode", - DeviceSound = "sound", - DeviceNotification = "notification", - DeviceNotificationUnlocked = "notificationUnlocked", - DeviceNotificationLocked = "notificationLocked", - DeviceLoiteringDetection = "loiteringDetection", - DeviceLoiteringDetectionRange = "loiteringDetectionRange", - DeviceLoiteringDetectionLength = "loiteringDetectionLength", - DeviceMotionDetectionSensitivityMode = "motionDetectionSensitivityMode", - DeviceMotionDetectionSensitivityStandard = "motionDetectionSensitivityStandard", - DeviceMotionDetectionSensitivityAdvancedA = "motionDetectionSensitivityAdvancedA", - DeviceMotionDetectionSensitivityAdvancedB = "motionDetectionSensitivityAdvancedB", - DeviceMotionDetectionSensitivityAdvancedC = "motionDetectionSensitivityAdvancedC", - DeviceMotionDetectionSensitivityAdvancedD = "motionDetectionSensitivityAdvancedD", - DeviceMotionDetectionSensitivityAdvancedE = "motionDetectionSensitivityAdvancedE", - DeviceMotionDetectionSensitivityAdvancedF = "motionDetectionSensitivityAdvancedF", - DeviceMotionDetectionSensitivityAdvancedG = "motionDetectionSensitivityAdvancedG", - DeviceMotionDetectionSensitivityAdvancedH = "motionDetectionSensitivityAdvancedH", - DeviceLoiteringCustomResponsePhoneNotification = "loiteringCustomResponsePhoneNotification", - DeviceLoiteringCustomResponseAutoVoiceResponse = "loiteringCustomResponseAutoVoiceResponse", - DeviceLoiteringCustomResponseAutoVoiceResponseVoice = "loiteringCustomResponseAutoVoiceResponseVoice", - DeviceLoiteringCustomResponseHomeBaseNotification = "loiteringCustomResponseHomeBaseNotification", - DeviceLoiteringCustomResponseTimeFrom = "loiteringCustomResponseTimeFrom", - DeviceLoiteringCustomResponseTimeTo = "loiteringCustomResponseTimeTo", - DeviceDeliveryGuard = "deliveryGuard", - DeviceDeliveryGuardPackageGuarding = "deliveryGuardPackageGuarding", - DeviceDeliveryGuardPackageGuardingVoiceResponseVoice = "deliveryGuardPackageGuardingVoiceResponseVoice", - DeviceDeliveryGuardPackageGuardingActivatedTimeFrom = "deliveryGuardPackageGuardingActivatedTimeFrom", - DeviceDeliveryGuardPackageGuardingActivatedTimeTo = "deliveryGuardPackageGuardingActivatedTimeTo", - DeviceDeliveryGuardUncollectedPackageAlert = "deliveryGuardUncollectedPackageAlert", - DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck = "deliveryGuardUncollectedPackageAlertTimeToCheck", - DeviceDeliveryGuardPackageLiveCheckAssistance = "deliveryGuardPackageLiveCheckAssistance", - DeviceDualCamWatchViewMode = "dualCamWatchViewMode", - DeviceRingAutoResponse = "ringAutoResponse", - DeviceRingAutoResponseVoiceResponse = "ringAutoResponseVoiceResponse", - DeviceRingAutoResponseVoiceResponseVoice = "ringAutoResponseVoiceResponseVoice", - DeviceRingAutoResponseTimeFrom = "ringAutoResponseTimeFrom", - DeviceRingAutoResponseTimeTo = "ringAutoResponseTimeTo", - DeviceDefaultAngle = "defaultAngle", - DeviceDefaultAngleIdleTime = "defaultAngleIdleTime", - DeviceSoundDetectionRoundLook = "soundDetectionRoundLook", - DevicePackageDelivered = "packageDelivered", - DevicePackageStranded = "packageStranded", - DevicePackageTaken = "packageTaken", - DeviceSomeoneLoitering = "someoneLoitering", - DeviceRadarMotionDetected = "radarMotionDetected", - DeviceLeftOpenAlarm = "leftOpenAlarm", - DeviceLeftOpenAlarmDuration = "leftOpenAlarmDuration", - DeviceDualUnlock = "dualUnlock", - DevicePowerSave = "powerSave", - DeviceInteriorBrightness = "interiorBrightness", - DeviceInteriorBrightnessDuration = "interiorBrightnessDuration", - DeviceTamperAlarm = "tamperAlarm", - DeviceRemoteUnlock = "remoteUnlock", - DeviceRemoteUnlockMasterPIN = "remoteUnlockMasterPIN", - DeviceAlarmVolume = "alarmVolume", - DevicePromptVolume = "promptVolume", - DeviceNotificationUnlockByKey = "notificationUnlockByKey", - DeviceNotificationUnlockByPIN = "notificationUnlockByPIN", - DeviceNotificationUnlockByFingerprint = "notificationUnlockByFingerprint", - DeviceNotificationUnlockByApp = "notificationUnlockByApp", - DeviceNotificationDualUnlock = "notificationDualUnlock", - DeviceNotificationDualLock = "notificationDualLock", - DeviceNotificationWrongTryProtect = "notificationWrongTryProtect", - DeviceNotificationJammed = "notificationJammed", - DeviceJammedAlert = "jammedAlert", - Device911Alert = "911Alert", - Device911AlertEvent = "911AlertEvent", - DeviceShakeAlert = "shakeAlert", - DeviceShakeAlertEvent = "shakeAlertEvent", - DeviceLowBatteryAlert = "lowBatteryAlert", - DeviceLongTimeNotCloseAlert = "longTimeNotCloseAlert", - DeviceWrongTryProtectAlert = "wrongTryProtectAlert", - DeviceVideoTypeStoreToNAS = "videoTypeStoreToNAS", - DeviceSnooze = "snooze", - DeviceSnoozeTime = "snoozeTime", - DeviceSnoozeStartTime = "snoozeStartTime", - DeviceSnoozeHomebase = "snoozeHomebase", - DeviceSnoozeMotion = "snoozeMotion", - DeviceSnoozeChime = "snoozeStartChime", - DeviceIdentityPersonDetected = "identityPersonDetected", - DeviceStrangerPersonDetected = "strangerPersonDetected", - DeviceVehicleDetected = "vehicleDetected", - DeviceDogDetected = "dogDetected", - DeviceDogLickDetected = "dogLickDetected", - DeviceDogPoopDetected = "dogPoopDetected", - DeviceDetectionStatisticsWorkingDays = "detectionStatisticsWorkingDays", - DeviceDetectionStatisticsDetectedEvents = "detectionStatisticsDetectedEvents", - DeviceDetectionStatisticsRecordedEvents = "detectionStatisticsRecordedEvents", - DeviceCellularRSSI = "cellularRSSI", - DeviceCellularSignalLevel = "cellularSignalLevel", - DeviceCellularSignal = "cellularSignal", - DeviceCellularBand = "cellularBand", - DeviceCellularIMEI = "cellularIMEI", - DeviceCellularICCID = "cellularICCID", - DeviceDoorControlWarning = "doorControlWarning", - DeviceDoor1Open = "door1Open", - DeviceDoor2Open = "door2Open", - DeviceDoorSensor1Status = "doorSensor1Status", - DeviceDoorSensor2Status = "doorSensor2Status", - DeviceDoorSensor1MacAddress = "doorSensor1MacAddress", - DeviceDoorSensor2MacAddress = "doorSensor2MacAddress", - DeviceDoorSensor1Name = "doorSensor1Name", - DeviceDoorSensor2Name = "doorSensor2Name", - DeviceDoorSensor1SerialNumber = "doorSensor1SerialNumber", - DeviceDoorSensor2SerialNumber = "doorSensor2SerialNumber", - DeviceDoorSensor1Version = "doorSensor1Version", - DeviceDoorSensor2Version = "doorSensor2Version", - DeviceDoorSensor1LowBattery = "doorSensor1LowBattery", - DeviceDoorSensor2LowBattery = "doorSensor2LowBattery", - DeviceDoorSensor1BatteryLevel = "doorSensor1BatteryLevel", - DeviceDoorSensor2BatteryLevel = "doorSensor2BatteryLevel", - DeviceLocationCoordinates = "locationCoordinates", - DeviceLocationAddress = "locationAddress", - DeviceLocationLastUpdate = "locationLastUpdate", - DeviceTrackerType = "trackerType", - DeviceLeftBehindAlarm = "leftBehindAlarm", - DeviceFindPhone = "findPhone", - DeviceFlickerAdjustment = "flickerAdjustment", - DeviceLeavingDetection = "leavingDetection", - DeviceLeavingReactionNotification = "leavingReactionNotification", - DeviceLeavingReactionStartTime = "leavingReactionStartTime", - DeviceLeavingReactionEndTime = "leavingReactionEndTime", - DeviceSomeoneGoing = "someoneGoing", - DeviceLockEventOrigin = "lockEventOrigin", - DeviceBeepVolume = "beepVolume", - DeviceNightvisionOptimization = "nightvisionOptimization", - DeviceNightvisionOptimizationSide = "nightvisionOptimizationSide", - DeviceOpenMethod = "openMethod", - DeviceMotionActivatedPrompt = "motionActivatedPrompt", - DeviceOpen = "open", - DeviceOpenedByType = "openedByType", - DeviceOpenedByName = "openedByName", - DeviceTamperingAlert = "tamperingAlert", - DeviceLowTemperatureAlert = "lowTemperatureAlert", - DeviceHighTemperatureAlert = "highTemperatureAlert", - DeviceLidStuckAlert = "lidStuckAlert", - DevicePinIncorrectAlert = "pinIncorrectAlert", - DeviceBatteryFullyChargedAlert = "batteryFullyChargedAlert", - DeviceIsDeliveryDenied = "isDeliveryDenied", - DeviceHasMasterPin = "hasMasterPin", - DeviceDeliveries = "deliveries", - DeviceHiddenMotionDetectionSensitivity = "hidden-motionDetectionSensitivity", - DeviceHiddenMotionDetectionMode = "hidden-motionDetectionMode", - StationLANIpAddress = "lanIpAddress", - StationMacAddress = "macAddress", - StationGuardMode = "guardMode", - StationCurrentMode = "currentMode", - StationTimeFormat = "timeFormat", - StationTimeZone = "timeZone", - StationAlarmVolume = "alarmVolume", - StationAlarmTone = "alarmTone", - StationPromptVolume = "promptVolume", - StationNotificationSwitchModeSchedule = "notificationSwitchModeSchedule", - StationNotificationSwitchModeGeofence = "notificationSwitchModeGeofence", - StationNotificationSwitchModeApp = "notificationSwitchModeApp", - StationNotificationSwitchModeKeypad = "notificationSwitchModeKeypad", - StationNotificationStartAlarmDelay = "notificationStartAlarmDelay", - StationSwitchModeWithAccessCode = "switchModeWithAccessCode", - StationAutoEndAlarm = "autoEndAlarm", - StationTurnOffAlarmWithButton = "turnOffAlarmWithButton", - StationHomeSecuritySettings = "hidden-stationHomeSecuritySettings", - StationAwaySecuritySettings = "hidden-stationAwaySecuritySettings", - StationCustom1SecuritySettings = "hidden-stationCustom1SecuritySettings", - StationCustom2SecuritySettings = "hidden-stationCustom2SecuritySettings", - StationCustom3SecuritySettings = "hidden-stationCustom3SecuritySettings", - StationOffSecuritySettings = "hidden-stationOffSecuritySettings", - StationAlarm = "alarm", - StationAlarmType = "alarmType", - StationAlarmArmed = "alarmArmed", - StationAlarmArmDelay = "alarmArmDelay", - StationAlarmDelay = "alarmDelay", - StationAlarmDelayType = "alarmDelayType", - StationSdStatus = "sdStatus", - StationSdCapacity = "sdCapacity", - StationSdCapacityAvailable = "sdCapacityAvailable", - StationStorageInfoEmmc = "storageInfoEmmc", - StationStorageInfoHdd = "storageInfoHdd", - StationCrossCameraTracking = "crossCameraTracking", - StationContinuousTrackingTime = "continuousTrackingTime", - StationTrackingAssistance = "trackingAssistance", - StationCrossTrackingCameraList = "crossTrackingCameraList", - StationCrossTrackingGroupList = "crossTrackingGroupList" -} -export declare const DeviceNameProperty: PropertyMetadataString; -export declare const DeviceModelProperty: PropertyMetadataString; -export declare const DeviceSerialNumberProperty: PropertyMetadataString; -export declare const GenericHWVersionProperty: PropertyMetadataString; -export declare const GenericSWVersionProperty: PropertyMetadataString; -export declare const GenericTypeProperty: PropertyMetadataNumeric; -export declare const BaseDeviceProperties: IndexedProperty; -export declare const GenericDeviceProperties: IndexedProperty; -export declare const DeviceBatteryProperty: PropertyMetadataNumeric; -export declare const DeviceBatteryLockProperty: PropertyMetadataNumeric; -export declare const DeviceBatteryTrackerProperty: PropertyMetadataNumeric; -export declare const DeviceBatteryLowMotionSensorProperty: PropertyMetadataBoolean; -export declare const DeviceBatteryLowKeypadProperty: PropertyMetadataBoolean; -export declare const DeviceBatteryLowSensorProperty: PropertyMetadataBoolean; -export declare const DeviceBatteryTempProperty: PropertyMetadataNumeric; -export declare const DeviceBatteryIsChargingKeypadProperty: PropertyMetadataBoolean; -export declare const DeviceAntitheftDetectionProperty: PropertyMetadataBoolean; -export declare const DeviceAutoNightvisionProperty: PropertyMetadataBoolean; -export declare const DeviceAutoNightvisionWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceAutoNightvisionSoloProperty: PropertyMetadataBoolean; -export declare const DeviceNightvisionProperty: PropertyMetadataNumeric; -export declare const DeviceNightvisionS350Property: PropertyMetadataNumeric; -export declare const DeviceWifiRSSIProperty: PropertyMetadataNumeric; -export declare const DeviceWifiSignalLevelProperty: PropertyMetadataNumeric; -export declare const DeviceCellularRSSIProperty: PropertyMetadataNumeric; -export declare const DeviceCellularSignalLevelProperty: PropertyMetadataNumeric; -export declare const DeviceCellularSignalProperty: PropertyMetadataString; -export declare const DeviceCellularBandProperty: PropertyMetadataString; -export declare const DeviceCellularIMEIProperty: PropertyMetadataString; -export declare const DeviceCellularICCIDProperty: PropertyMetadataString; -export declare const DeviceWifiRSSILockProperty: PropertyMetadataNumeric; -export declare const DeviceWifiRSSIEntrySensorProperty: PropertyMetadataNumeric; -export declare const DeviceWifiRSSIKeypadProperty: PropertyMetadataNumeric; -export declare const DeviceWifiRSSISmartSafeProperty: PropertyMetadataNumeric; -export declare const DeviceEnabledProperty: PropertyMetadataBoolean; -export declare const DeviceEnabledStandaloneProperty: PropertyMetadataBoolean; -export declare const DeviceEnabledSoloProperty: PropertyMetadataBoolean; -export declare const DeviceEnabledIndoorMiniProperty: PropertyMetadataBoolean; -export declare const DeviceEnabledIndoorS350Property: PropertyMetadataBoolean; -export declare const DeviceStatusLedProperty: PropertyMetadataBoolean; -export declare const DeviceStatusLedIndoorFloodProperty: PropertyMetadataBoolean; -export declare const DeviceStatusLedBatteryDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceStatusLedIndoorS350Property: PropertyMetadataBoolean; -export declare const DeviceStatusLedBatteryDoorbellDualProperty: PropertyMetadataNumeric; -export declare const DeviceStatusLedDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceStatusLedT8200XProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionIndoorSoloFloodProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceSoundDetectionProperty: PropertyMetadataBoolean; -export declare const DevicePetDetectionProperty: PropertyMetadataBoolean; -export declare const DeviceRTSPStreamProperty: PropertyMetadataBoolean; -export declare const DeviceRTSPStreamUrlProperty: PropertyMetadataString; -export declare const DeviceWatermarkProperty: PropertyMetadataNumeric; -export declare const DeviceWatermarkIndoorFloodProperty: PropertyMetadataNumeric; -export declare const DeviceWatermarkSoloWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceWatermarkBatteryDoorbellCamera1Property: PropertyMetadataNumeric; -export declare const DeviceWatermarkGarageCameraProperty: PropertyMetadataNumeric; -export declare const DeviceStateProperty: PropertyMetadataNumeric; -export declare const DeviceStateLockProperty: PropertyMetadataNumeric; -export declare const DeviceLastChargingDaysProperty: PropertyMetadataNumeric; -export declare const DeviceLastChargingTotalEventsProperty: PropertyMetadataNumeric; -export declare const DeviceLastChargingRecordedEventsProperty: PropertyMetadataNumeric; -export declare const DeviceLastChargingFalseEventsProperty: PropertyMetadataNumeric; -export declare const DeviceBatteryUsageLastWeekProperty: PropertyMetadataNumeric; -export declare const DeviceLockedProperty: PropertyMetadataBoolean; -export declare const DeviceLockedSmartSafeProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectedProperty: PropertyMetadataBoolean; -export declare const DevicePersonDetectedProperty: PropertyMetadataBoolean; -export declare const DevicePetDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceSoundDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceCryingDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceRingingProperty: PropertyMetadataBoolean; -export declare const DeviceSensorOpenProperty: PropertyMetadataBoolean; -export declare const DeviceSensorChangeTimeProperty: PropertyMetadataNumeric; -export declare const DeviceMotionSensorPIREventProperty: PropertyMetadataNumeric; -export declare const DeviceBasicLockStatusProperty: PropertyMetadataNumeric; -export declare const DeviceAdvancedLockStatusProperty: PropertyMetadataNumeric; -export declare const DevicePictureUrlProperty: PropertyMetadataString; -export declare const DeviceMotionHB3DetectionTypeHumanProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionTypeHumanWallLightProperty: PropertyMetadataBoolean; -export declare const DeviceMotionHB3DetectionTypeHumanRecognitionProperty: PropertyMetadataBoolean; -export declare const DeviceMotionHB3DetectionTypePetProperty: PropertyMetadataBoolean; -export declare const DeviceMotionHB3DetectionTypeVehicleProperty: PropertyMetadataBoolean; -export declare const DeviceMotionHB3DetectionTypeAllOtherMotionsProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionTypeProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTypeT8200XProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionCamera1Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTypeFloodlightT8423Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTypeFloodlightProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTypeIndoorProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTypeIndoorS350Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTypeIndoorMiniProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityCamera2Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityCamera1Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityIndoorProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityDoorbellE340Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivitySoloProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityFloodlightT8420Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityGarageCameraProperty: PropertyMetadataNumeric; -export declare const DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceHiddenMotionDetectionModeWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceMotionZoneProperty: PropertyMetadataObject; -export declare const DeviceFloodlightLightProperty: PropertyMetadataBoolean; -export declare const DeviceFloodlightLightSettingsEnableProperty: PropertyMetadataBoolean; -export declare const DeviceFloodlightLightSettingsBrightnessManualProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsBrightnessManualCamera3Property: PropertyMetadataNumeric; -export declare const DeviceCameraLightSettingsBrightnessManualProperty: PropertyMetadataNumeric; -export declare const DeviceCameraLightSettingsBrightnessManualWalllightS120Property: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsBrightnessMotionProperty: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsBrightnessMotionT8425Property: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsBrightnessScheduleProperty: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsBrightnessScheduleT8425Property: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsMotionTriggeredProperty: PropertyMetadataBoolean; -export declare const DeviceFloodlightLightSettingsMotionTriggeredT8425Property: PropertyMetadataBoolean; -export declare const DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsMotionTriggeredTimerProperty: PropertyMetadataNumeric; -export declare const DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property: PropertyMetadataNumeric; -export declare const DeviceMicrophoneProperty: PropertyMetadataBoolean; -export declare const DeviceSpeakerProperty: PropertyMetadataBoolean; -export declare const DeviceAudioRecordingProperty: PropertyMetadataBoolean; -export declare const DeviceAudioRecordingIndoorSoloFloodlightProperty: PropertyMetadataBoolean; -export declare const DeviceAudioRecordingStarlight4gLTEProperty: PropertyMetadataBoolean; -export declare const DeviceAudioRecordingWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceAudioRecordingFloodlightT8420Property: PropertyMetadataBoolean; -export declare const DeviceMotionTrackingProperty: PropertyMetadataBoolean; -export declare const DeviceSpeakerVolumeProperty: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeSoloProperty: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeCamera3Property: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeIndoorFloodDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeFloodlightT8420Property: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeWalllightProperty: PropertyMetadataNumeric; -export declare const DeviceSpeakerVolumeSmartDropProperty: PropertyMetadataNumeric; -export declare const DeviceRingtoneVolumeBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceRingtoneVolumeWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceRingtoneVolumeT8200XProperty: PropertyMetadataNumeric; -export declare const DevicePowerSourceProperty: PropertyMetadataNumeric; -export declare const DevicePowerWorkingModeProperty: PropertyMetadataNumeric; -export declare const DevicePowerWorkingModeSmartDropProperty: PropertyMetadataNumeric; -export declare const DevicePowerWorkingModeBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceChargingStatusProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingClipLengthProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingClipLengthFloodlightProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingClipLengthWalllightProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingClipLengthWalllightS120Property: PropertyMetadataNumeric; -export declare const DeviceRecordingClipLengthOutdoorPTProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingRetriggerIntervalProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingRetriggerIntervalBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingRetriggerIntervalFloodlightProperty: PropertyMetadataNumeric; -export declare const DeviceRecordingEndClipMotionStopsProperty: PropertyMetadataBoolean; -export declare const DeviceVideoStreamingQualityProperty: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityCameraProperty: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualitySoloProperty: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityWalllightProperty: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityCamera3Property: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityCameraProfessionalProperty: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityDoorbellE340Property: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityS350Property: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualityS340Property: PropertyMetadataNumeric; -export declare const DeviceVideoStreamingQualitySmartDropProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityIndoorProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityDoorbellE340Property: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityS340Property: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityS350Property: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityWalllightProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityT8200XProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityCamera2CProProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityCamera3Property: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualitySoloProperty: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualitySoloCamerasHB3Property: PropertyMetadataNumeric; -export declare const DeviceVideoRecordingQualityT8530Property: PropertyMetadataNumeric; -export declare const DeviceWDRProperty: PropertyMetadataBoolean; -export declare const DeviceChimeIndoorBatteryDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceChimeIndoorWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceChimeIndoorT8200XProperty: PropertyMetadataBoolean; -export declare const DeviceChimeHomebaseBatteryDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationTypeProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationTypeIndoorFloodlightProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationTypeBatteryDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationTypeWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationTypeWalllightProperty: PropertyMetadataNumeric; -export declare const DeviceRotationSpeedProperty: PropertyMetadataNumeric; -export declare const DeviceImageMirroredProperty: PropertyMetadataBoolean; -export declare const DeviceSoundDetectionTypeProperty: PropertyMetadataNumeric; -export declare const DeviceSoundDetectionTypeS350Property: PropertyMetadataNumeric; -export declare const DeviceSoundDetectionSensitivityProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationPersonProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationPersonWalllightProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationPetProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationAllOtherMotionProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationAllOtherMotionWalllightProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationAllSoundProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationCryingProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationRingProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationRingWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationMotionProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationRadarDetectorProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationMotionWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceChirpVolumeEntrySensorProperty: PropertyMetadataNumeric; -export declare const DeviceChirpToneEntrySensorProperty: PropertyMetadataNumeric; -export declare const DeviceVideoHDRWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceVideoDistortionCorrectionWiredDoorbellProperty: PropertyMetadataBoolean; -export declare const DeviceVideoRingRecordWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeT8425Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeStandardSensitivityProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeStandardSensitivityT8425Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeAdvancedRightSensitivityProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionTestModeProperty: PropertyMetadataBoolean; -export declare const DeviceMotionDetectionTestModeT8425Property: PropertyMetadataBoolean; -export declare const DeviceMotionTrackingSensitivityProperty: PropertyMetadataNumeric; -export declare const DeviceMotionAutoCruiseProperty: PropertyMetadataBoolean; -export declare const DeviceMotionOutOfViewDetectionProperty: PropertyMetadataBoolean; -export declare const DeviceLightSettingsColorTemperatureManualProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsColorTemperatureMotionProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsColorTemperatureScheduleProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsMotionActivationModeProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsMotionActivationModeT8425Property: PropertyMetadataNumeric; -export declare const DeviceVideoNightvisionImageAdjustmentProperty: PropertyMetadataBoolean; -export declare const DeviceVideoColorNightvisionProperty: PropertyMetadataBoolean; -export declare const DeviceAutoCalibrationProperty: PropertyMetadataBoolean; -export declare const DeviceAutoLockProperty: PropertyMetadataBoolean; -export declare const DeviceAutoLockTimerProperty: PropertyMetadataNumeric; -export declare const DeviceAutoLockScheduleProperty: PropertyMetadataBoolean; -export declare const DeviceAutoLockScheduleStartTimeProperty: PropertyMetadataString; -export declare const DeviceAutoLockScheduleEndTimeProperty: PropertyMetadataString; -export declare const DeviceOneTouchLockingProperty: PropertyMetadataBoolean; -export declare const DeviceWrongTryProtectionProperty: PropertyMetadataBoolean; -export declare const DeviceWrongTryProtectionSmartSafeProperty: PropertyMetadataBoolean; -export declare const DeviceWrongTryLockdownTimeProperty: PropertyMetadataNumeric; -export declare const DeviceWrongTryLockdownTimeSmartSafeProperty: PropertyMetadataNumeric; -export declare const DeviceWrongTryAttemptsProperty: PropertyMetadataNumeric; -export declare const DeviceWrongTryAttemptsSmartSafeProperty: PropertyMetadataNumeric; -export declare const DeviceScramblePasscodeProperty: PropertyMetadataBoolean; -export declare const DeviceScramblePasscodeSmartSafeProperty: PropertyMetadataBoolean; -export declare const DeviceSoundProperty: PropertyMetadataNumeric; -export declare const DeviceSoundSimpleProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationSmartLockProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationWalllightProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationUnlockedProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationUnlockedSmartLockProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationLockedProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationLockedSmartLockProperty: PropertyMetadataBoolean; -export declare const DeviceLoiteringDetectionProperty: PropertyMetadataBoolean; -export declare const DeviceLoiteringDetectionRangeProperty: PropertyMetadataNumeric; -export declare const DeviceLoiteringDetectionLengthProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityModeProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityStandardProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedAProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedBProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedCProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedDProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedEProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedFProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedGProperty: PropertyMetadataNumeric; -export declare const DeviceMotionDetectionSensitivityAdvancedHProperty: PropertyMetadataNumeric; -export declare const DeviceLoiteringCustomResponsePhoneNotificationProperty: PropertyMetadataBoolean; -export declare const DeviceLoiteringCustomResponseAutoVoiceResponseProperty: PropertyMetadataBoolean; -export declare const DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty: PropertyMetadataNumeric; -export declare const DeviceLoiteringCustomResponseHomeBaseNotificationProperty: PropertyMetadataBoolean; -export declare const DeviceLoiteringCustomResponseTimeFromProperty: PropertyMetadataString; -export declare const DeviceLoiteringCustomResponseTimeToProperty: PropertyMetadataString; -export declare const DeviceDeliveryGuardProperty: PropertyMetadataBoolean; -export declare const DeviceDeliveryGuardPackageGuardingProperty: PropertyMetadataBoolean; -export declare const DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty: PropertyMetadataNumeric; -export declare const DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty: PropertyMetadataString; -export declare const DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty: PropertyMetadataString; -export declare const DeviceDeliveryGuardUncollectedPackageAlertProperty: PropertyMetadataBoolean; -export declare const DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty: PropertyMetadataString; -export declare const DeviceDeliveryGuardPackageLiveCheckAssistanceProperty: PropertyMetadataBoolean; -export declare const DeviceDualCamWatchViewModeProperty: PropertyMetadataNumeric; -export declare const DeviceDualCamWatchViewModeE340Property: PropertyMetadataNumeric; -export declare const DeviceDualCamWatchViewModeS340Property: PropertyMetadataNumeric; -export declare const DeviceRingAutoResponseProperty: PropertyMetadataBoolean; -export declare const DeviceRingAutoResponseVoiceResponseProperty: PropertyMetadataBoolean; -export declare const DeviceRingAutoResponseVoiceResponseVoiceProperty: PropertyMetadataNumeric; -export declare const DeviceRingAutoResponseTimeFromProperty: PropertyMetadataString; -export declare const DeviceRingAutoResponseTimeToProperty: PropertyMetadataString; -export declare const DeviceContinuousRecordingProperty: PropertyMetadataBoolean; -export declare const DeviceContinuousRecordingTypeProperty: PropertyMetadataNumeric; -export declare const DeviceDefaultAngleProperty: PropertyMetadataBoolean; -export declare const DeviceDefaultAngleIdleTimeProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationIntervalTimeProperty: PropertyMetadataNumeric; -export declare const DeviceSoundDetectionRoundLookProperty: PropertyMetadataBoolean; -export declare const DeviceSoundDetectionRoundLookS350Property: PropertyMetadataBoolean; -export declare const StationHomeSecuritySettings: PropertyMetadataString; -export declare const StationAwaySecuritySettings: PropertyMetadataString; -export declare const StationCustom1SecuritySettings: PropertyMetadataString; -export declare const StationCustom2SecuritySettings: PropertyMetadataString; -export declare const StationCustom3SecuritySettings: PropertyMetadataString; -export declare const StationOffSecuritySettings: PropertyMetadataString; -export declare const DevicePackageDeliveredProperty: PropertyMetadataBoolean; -export declare const DevicePackageStrandedProperty: PropertyMetadataBoolean; -export declare const DevicePackageTakenProperty: PropertyMetadataBoolean; -export declare const DeviceSomeoneLoiteringProperty: PropertyMetadataBoolean; -export declare const DeviceRadarMotionDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceLeftOpenAlarmProperty: PropertyMetadataBoolean; -export declare const DeviceLeftOpenAlarmDurationProperty: PropertyMetadataNumeric; -export declare const DeviceDualUnlockProperty: PropertyMetadataBoolean; -export declare const DevicePowerSaveProperty: PropertyMetadataBoolean; -export declare const DeviceInteriorBrightnessProperty: PropertyMetadataNumeric; -export declare const DeviceInteriorBrightnessDurationProperty: PropertyMetadataNumeric; -export declare const DeviceTamperAlarmProperty: PropertyMetadataNumeric; -export declare const DeviceRemoteUnlockProperty: PropertyMetadataBoolean; -export declare const DeviceRemoteUnlockMasterPINProperty: PropertyMetadataBoolean; -export declare const DevicePromptVolumeProperty: PropertyMetadataNumeric; -export declare const DeviceAlarmVolumeProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationUnlockByKeyProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationUnlockByPINProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationUnlockByFingerprintProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationUnlockByAppProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationDualUnlockProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationDualLockProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationWrongTryProtectProperty: PropertyMetadataBoolean; -export declare const DeviceNotificationJammedProperty: PropertyMetadataBoolean; -export declare const DeviceJammedAlertProperty: PropertyMetadataBoolean; -export declare const Device911AlertProperty: PropertyMetadataBoolean; -export declare const Device911AlertEventProperty: PropertyMetadataNumeric; -export declare const DeviceShakeAlertProperty: PropertyMetadataBoolean; -export declare const DeviceShakeAlertEventProperty: PropertyMetadataNumeric; -export declare const DeviceLowBatteryAlertProperty: PropertyMetadataBoolean; -export declare const DeviceLongTimeNotCloseAlertProperty: PropertyMetadataBoolean; -export declare const DeviceWrongTryProtectAlertProperty: PropertyMetadataBoolean; -export declare const DeviceVideoTypeStoreToNASProperty: PropertyMetadataNumeric; -export declare const DeviceSnoozeProperty: PropertyMetadataBoolean; -export declare const DeviceSnoozeTimeProperty: PropertyMetadataNumeric; -export declare const DeviceSnoozeStartTimeProperty: PropertyMetadataNumeric; -export declare const DeviceSnoozeStartTimeWiredDoorbellProperty: PropertyMetadataNumeric; -export declare const DeviceSnoozeHomebaseProperty: PropertyMetadataBoolean; -export declare const DeviceSnoozeMotionProperty: PropertyMetadataBoolean; -export declare const DeviceSnoozeChimeProperty: PropertyMetadataBoolean; -export declare const DevicePersonNameProperty: PropertyMetadataString; -export declare const DeviceIdentityPersonDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceStrangerPersonDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceVehicleDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceDogDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceDogLickDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceDogPoopDetectedProperty: PropertyMetadataBoolean; -export declare const DeviceDetectionStatisticsWorkingDaysProperty: PropertyMetadataNumeric; -export declare const DeviceDetectionStatisticsDetectedEventsProperty: PropertyMetadataNumeric; -export declare const DeviceDetectionStatisticsRecordedEventsProperty: PropertyMetadataNumeric; -export declare const DevicePictureProperty: PropertyMetadataObject; -export declare const DeviceLightSettingsManualDailyLightingProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsManualColoredLightingProperty: PropertyMetadataObject; -export declare const DeviceLightSettingsManualDynamicLightingProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsManualLightingActiveModeProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsMotionDailyLightingProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsMotionColoredLightingProperty: PropertyMetadataObject; -export declare const DeviceLightSettingsMotionDynamicLightingProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsMotionLightingActiveModeProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsScheduleDailyLightingProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsScheduleColoredLightingProperty: PropertyMetadataObject; -export declare const DeviceLightSettingsScheduleDynamicLightingProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsScheduleLightingActiveModeProperty: PropertyMetadataNumeric; -export declare const DeviceLightSettingsColoredLightingColorsProperty: PropertyMetadataObject; -export declare const DeviceLightSettingsDynamicLightingThemesProperty: PropertyMetadataObject; -export declare const DeviceDoorControlWarningProperty: PropertyMetadataBoolean; -export declare const DeviceDoor1OpenProperty: PropertyMetadataBoolean; -export declare const DeviceDoor2OpenProperty: PropertyMetadataBoolean; -export declare const DeviceDoorSensor1StatusProperty: PropertyMetadataNumeric; -export declare const DeviceDoorSensor2StatusProperty: PropertyMetadataNumeric; -export declare const DeviceDoorSensor1MacAddressProperty: PropertyMetadataString; -export declare const DeviceDoorSensor2MacAddressProperty: PropertyMetadataString; -export declare const DeviceDoorSensor1NameProperty: PropertyMetadataString; -export declare const DeviceDoorSensor2NameProperty: PropertyMetadataString; -export declare const DeviceDoorSensor1SerialNumberProperty: PropertyMetadataString; -export declare const DeviceDoorSensor2SerialNumberProperty: PropertyMetadataString; -export declare const DeviceDoorSensor1VersionProperty: PropertyMetadataString; -export declare const DeviceDoorSensor2VersionProperty: PropertyMetadataString; -export declare const DeviceDoorSensor1LowBatteryProperty: PropertyMetadataBoolean; -export declare const DeviceDoorSensor2LowBatteryProperty: PropertyMetadataBoolean; -export declare const DeviceDoorSensor1BatteryLevelProperty: PropertyMetadataNumeric; -export declare const DeviceDoorSensor2BatteryLevelProperty: PropertyMetadataNumeric; -export declare const DeviceLocationCoordinatesProperty: PropertyMetadataString; -export declare const DeviceLocationAddressProperty: PropertyMetadataString; -export declare const DeviceLocationLastUpdateProperty: PropertyMetadataNumeric; -export declare const DeviceTrackerTypeProperty: PropertyMetadataNumeric; -export declare const DeviceLeftBehindAlarmProperty: PropertyMetadataBoolean; -export declare const DeviceFindPhoneProperty: PropertyMetadataBoolean; -export declare const DeviceFlickerAdjustmentProperty: PropertyMetadataNumeric; -export declare const DeviceNotificationPersonS350Property: PropertyMetadataBoolean; -export declare const DeviceNotificationPetS350Property: PropertyMetadataBoolean; -export declare const DeviceNotificationAllOtherMotionS350Property: PropertyMetadataBoolean; -export declare const DeviceNotificationAllSoundS350Property: PropertyMetadataBoolean; -export declare const DeviceNotificationCryingS350Property: PropertyMetadataBoolean; -export declare const DeviceNotificationVehicleProperty: PropertyMetadataBoolean; -export declare const DeviceLeavingDetectionProperty: PropertyMetadataBoolean; -export declare const DeviceLeavingReactionNotificationProperty: PropertyMetadataBoolean; -export declare const DeviceLeavingReactionStartTimeProperty: PropertyMetadataString; -export declare const DeviceLeavingReactionEndTimeProperty: PropertyMetadataString; -export declare const DeviceSomeoneGoingProperty: PropertyMetadataBoolean; -export declare const DeviceLockEventOriginProperty: PropertyMetadataNumeric; -export declare const DeviceBeepVolumeProperty: PropertyMetadataNumeric; -export declare const DeviceNightvisionOptimizationProperty: PropertyMetadataBoolean; -export declare const DeviceNightvisionOptimizationSideProperty: PropertyMetadataNumeric; -export declare const DeviceOpenMethodProperty: PropertyMetadataNumeric; -export declare const DeviceMotionActivatedPromptProperty: PropertyMetadataBoolean; -export declare const DeviceOpenProperty: PropertyMetadataBoolean; -export declare const DeviceOpenedByTypeProperty: PropertyMetadataNumeric; -export declare const DeviceOpenedByNameProperty: PropertyMetadataString; -export declare const DeviceTamperingAlertProperty: PropertyMetadataBoolean; -export declare const DeviceLowTemperatureAlertProperty: PropertyMetadataBoolean; -export declare const DeviceHighTemperatureAlertProperty: PropertyMetadataBoolean; -export declare const DeviceLidStuckAlertProperty: PropertyMetadataBoolean; -export declare const DevicePinIncorrectAlertProperty: PropertyMetadataBoolean; -export declare const DeviceBatteryFullyChargedAlertProperty: PropertyMetadataBoolean; -export declare const DeviceIsDeliveryDeniedProperty: PropertyMetadataBoolean; -export declare const DeviceHasMasterPinProperty: PropertyMetadataBoolean; -export declare const DeviceDeliveriesProperty: PropertyMetadataNumeric; -export declare const FloodlightT8420XDeviceProperties: IndexedProperty; -export declare const WiredDoorbellT8200XDeviceProperties: IndexedProperty; -export declare const LockT8510PDeviceProperties: IndexedProperty; -export declare const LockT8520PDeviceProperties: IndexedProperty; -export declare const DeviceProperties: Properties; -export declare const StationNameProperty: PropertyMetadataString; -export declare const StationModelProperty: PropertyMetadataString; -export declare const StationSerialNumberProperty: PropertyMetadataString; -export declare const BaseStationProperties: IndexedProperty; -export declare const StationGuardModeProperty: PropertyMetadataNumeric; -export declare const StationGuardModeKeyPadProperty: PropertyMetadataNumeric; -export declare const StationCurrentModeProperty: PropertyMetadataNumeric; -export declare const StationCurrentModeKeyPadProperty: PropertyMetadataNumeric; -export declare const StationLanIpAddressProperty: PropertyMetadataString; -export declare const StationLanIpAddressStandaloneProperty: PropertyMetadataString; -export declare const StationMacAddressProperty: PropertyMetadataString; -export declare const StationAlarmVolumeProperty: PropertyMetadataNumeric; -export declare const StationAlarmVolumeWalllightProperty: PropertyMetadataNumeric; -export declare const StationPromptVolumeProperty: PropertyMetadataNumeric; -export declare const StationAlarmToneProperty: PropertyMetadataNumeric; -export declare const StationNotificationSwitchModeScheduleProperty: PropertyMetadataBoolean; -export declare const StationNotificationSwitchModeGeofenceProperty: PropertyMetadataBoolean; -export declare const StationNotificationSwitchModeAppProperty: PropertyMetadataBoolean; -export declare const StationNotificationSwitchModeKeypadProperty: PropertyMetadataBoolean; -export declare const StationNotificationStartAlarmDelayProperty: PropertyMetadataBoolean; -export declare const StationTimeFormatProperty: PropertyMetadataNumeric; -export declare const StationTimeZoneProperty: PropertyMetadataString; -export declare const StationSwitchModeWithAccessCodeProperty: PropertyMetadataBoolean; -export declare const StationAutoEndAlarmProperty: PropertyMetadataBoolean; -export declare const StationTurnOffAlarmWithButtonProperty: PropertyMetadataBoolean; -export declare const StationAlarmProperty: PropertyMetadataBoolean; -export declare const StationAlarmTypeProperty: PropertyMetadataNumeric; -export declare const StationAlarmArmedProperty: PropertyMetadataBoolean; -export declare const StationAlarmArmDelayProperty: PropertyMetadataNumeric; -export declare const StationAlarmDelayProperty: PropertyMetadataNumeric; -export declare const StationAlarmDelayTypeProperty: PropertyMetadataNumeric; -export declare const StationSdStatusProperty: PropertyMetadataNumeric; -export declare const StationSdCapacityProperty: PropertyMetadataNumeric; -export declare const StationSdAvailableCapacityProperty: PropertyMetadataNumeric; -export declare const StationStorageInfoEmmcProperty: PropertyMetadataObject; -export declare const StationStorageInfoHddProperty: PropertyMetadataObject; -export declare const StationContinuousTrackingTimeProperty: PropertyMetadataNumeric; -export declare const StationCrossCameraTrackingProperty: PropertyMetadataBoolean; -export declare const StationTrackingAssistanceProperty: PropertyMetadataBoolean; -export declare const StationCrossTrackingCameraListProperty: PropertyMetadataObject; -export declare const StationCrossTrackingGroupListProperty: PropertyMetadataObject; -export declare const StationProperties: Properties; -export declare enum CommandName { - DeviceStartLivestream = "deviceStartLivestream", - DeviceStopLivestream = "deviceStopLivestream", - DeviceQuickResponse = "deviceQuickResponse", - DevicePanAndTilt = "devicePanAndTilt", - DeviceTriggerAlarmSound = "deviceTriggerAlarmSound", - DeviceStartDownload = "deviceStartDownload", - DeviceCancelDownload = "deviceCancelDownload", - DeviceLockCalibration = "deviceLockCalibration", - DeviceCalibrate = "deviceCalibrate", - DeviceAddUser = "deviceAddUser", - DeviceDeleteUser = "deviceDeleteUser", - DeviceUpdateUserPasscode = "deviceUpdateUserPasscode", - DeviceUpdateUserSchedule = "deviceUpdateUserSchedule", - DeviceUpdateUsername = "deviceUpdateUsername", - DeviceSetDefaultAngle = "deviceSetDefaultAngle", - DeviceSetPrivacyAngle = "deviceSetPrivacyAngle", - DeviceStartTalkback = "deviceStartTalkback", - DeviceStopTalkback = "deviceStopTalkback", - DeviceUnlock = "deviceUnlock", - DeviceSnooze = "deviceSnooze", - DeviceVerifyPIN = "deviceVerifyPIN", - DeviceQueryAllUserId = "deviceQueryAllUserId", - DeviceCalibrateGarageDoor = "deviceCalibrateGarageDoor", - DevicePresetPosition = "devicePresetPosition", - DeviceSavePresetPosition = "deviceSavePresetPosition", - DeviceDeletePresetPosition = "deviceDeletePresetPosition", - DeviceOpen = "deviceOpen", - StationReboot = "stationReboot", - StationTriggerAlarmSound = "stationTriggerAlarmSound", - StationChime = "stationChime", - StationDownloadImage = "stationDownloadImage", - StationDatabaseQueryLatestInfo = "stationDatabaseQueryLatestInfo", - StationDatabaseQueryLocal = "stationDatabaseQueryLocal", - StationDatabaseDelete = "stationDatabaseDelete", - StationDatabaseCountByDate = "stationDatabaseCoundByDate" -} -export declare const DeviceCommands: Commands; -export declare const StationCommands: Commands; diff --git a/build/http/types.js b/build/http/types.js deleted file mode 100644 index de5d78c9..00000000 --- a/build/http/types.js +++ /dev/null @@ -1,9697 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GenericHWVersionProperty = exports.DeviceSerialNumberProperty = exports.DeviceModelProperty = exports.DeviceNameProperty = exports.PropertyName = exports.DeviceEvent = exports.PresetPositionType = exports.ViewModeType = exports.MotionDetectionRangeType = exports.TrackerType = exports.GarageDoorState = exports.DynamicLightingEffect = exports.MotionActivationMode = exports.DailyLightingType = exports.LightingActiveMode = exports.TriggerType = exports.MicStatus = exports.RecordType = exports.MediaType = exports.VideoType = exports.FloodlightT8425NotificationTypes = exports.IndoorS350NotificationTypes = exports.IndoorMiniDetectionTypes = exports.IndoorDetectionTypes = exports.IndoorS350DetectionTypes = exports.SoloCameraDetectionTypes = exports.T8170DetectionTypes = exports.HB3DetectionTypes = exports.UserPasswordType = exports.UserType = exports.DualCamStreamMode = exports.VideoTypeStoreToNAS = exports.MotionDetectionMode = exports.SignalLevel = exports.TimeFormat = exports.GuardModeSecuritySettingsAction = exports.NotificationSwitchMode = exports.AlarmTone = exports.WalllightNotificationType = exports.NotificationType = exports.FloodlightMotionTriggeredDistance = exports.PublicKeyType = exports.PowerSource = exports.StorageType = exports.VerfyCodeTypes = exports.ResponseErrorCode = exports.GuardMode = exports.AlarmMode = exports.ParamType = exports.DeviceType = void 0; -exports.DeviceWatermarkProperty = exports.DeviceRTSPStreamUrlProperty = exports.DeviceRTSPStreamProperty = exports.DevicePetDetectionProperty = exports.DeviceSoundDetectionProperty = exports.DeviceMotionDetectionDoorbellProperty = exports.DeviceMotionDetectionIndoorSoloFloodProperty = exports.DeviceMotionDetectionProperty = exports.DeviceStatusLedT8200XProperty = exports.DeviceStatusLedDoorbellProperty = exports.DeviceStatusLedBatteryDoorbellDualProperty = exports.DeviceStatusLedIndoorS350Property = exports.DeviceStatusLedBatteryDoorbellProperty = exports.DeviceStatusLedIndoorFloodProperty = exports.DeviceStatusLedProperty = exports.DeviceEnabledIndoorS350Property = exports.DeviceEnabledIndoorMiniProperty = exports.DeviceEnabledSoloProperty = exports.DeviceEnabledStandaloneProperty = exports.DeviceEnabledProperty = exports.DeviceWifiRSSISmartSafeProperty = exports.DeviceWifiRSSIKeypadProperty = exports.DeviceWifiRSSIEntrySensorProperty = exports.DeviceWifiRSSILockProperty = exports.DeviceCellularICCIDProperty = exports.DeviceCellularIMEIProperty = exports.DeviceCellularBandProperty = exports.DeviceCellularSignalProperty = exports.DeviceCellularSignalLevelProperty = exports.DeviceCellularRSSIProperty = exports.DeviceWifiSignalLevelProperty = exports.DeviceWifiRSSIProperty = exports.DeviceNightvisionS350Property = exports.DeviceNightvisionProperty = exports.DeviceAutoNightvisionSoloProperty = exports.DeviceAutoNightvisionWiredDoorbellProperty = exports.DeviceAutoNightvisionProperty = exports.DeviceAntitheftDetectionProperty = exports.DeviceBatteryIsChargingKeypadProperty = exports.DeviceBatteryTempProperty = exports.DeviceBatteryLowSensorProperty = exports.DeviceBatteryLowKeypadProperty = exports.DeviceBatteryLowMotionSensorProperty = exports.DeviceBatteryTrackerProperty = exports.DeviceBatteryLockProperty = exports.DeviceBatteryProperty = exports.GenericDeviceProperties = exports.BaseDeviceProperties = exports.GenericTypeProperty = exports.GenericSWVersionProperty = void 0; -exports.DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty = exports.DeviceMotionDetectionSensitivityGarageCameraProperty = exports.DeviceMotionDetectionSensitivityFloodlightT8420Property = exports.DeviceMotionDetectionSensitivitySoloProperty = exports.DeviceMotionDetectionSensitivityWiredDoorbellProperty = exports.DeviceMotionDetectionSensitivityDoorbellE340Property = exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty = exports.DeviceMotionDetectionSensitivityIndoorProperty = exports.DeviceMotionDetectionSensitivityCamera1Property = exports.DeviceMotionDetectionSensitivityCamera2Property = exports.DeviceMotionDetectionTypeIndoorMiniProperty = exports.DeviceMotionDetectionTypeIndoorS350Property = exports.DeviceMotionDetectionTypeIndoorProperty = exports.DeviceMotionDetectionTypeFloodlightProperty = exports.DeviceMotionDetectionTypeFloodlightT8423Property = exports.DeviceMotionDetectionCamera1Property = exports.DeviceMotionDetectionTypeT8200XProperty = exports.DeviceMotionDetectionTypeProperty = exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty = exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty = exports.DeviceMotionHB3DetectionTypeVehicleProperty = exports.DeviceMotionHB3DetectionTypePetProperty = exports.DeviceMotionHB3DetectionTypeHumanRecognitionProperty = exports.DeviceMotionDetectionTypeHumanWallLightProperty = exports.DeviceMotionHB3DetectionTypeHumanProperty = exports.DevicePictureUrlProperty = exports.DeviceAdvancedLockStatusProperty = exports.DeviceBasicLockStatusProperty = exports.DeviceMotionSensorPIREventProperty = exports.DeviceSensorChangeTimeProperty = exports.DeviceSensorOpenProperty = exports.DeviceRingingProperty = exports.DeviceCryingDetectedProperty = exports.DeviceSoundDetectedProperty = exports.DevicePetDetectedProperty = exports.DevicePersonDetectedProperty = exports.DeviceMotionDetectedProperty = exports.DeviceLockedSmartSafeProperty = exports.DeviceLockedProperty = exports.DeviceBatteryUsageLastWeekProperty = exports.DeviceLastChargingFalseEventsProperty = exports.DeviceLastChargingRecordedEventsProperty = exports.DeviceLastChargingTotalEventsProperty = exports.DeviceLastChargingDaysProperty = exports.DeviceStateLockProperty = exports.DeviceStateProperty = exports.DeviceWatermarkGarageCameraProperty = exports.DeviceWatermarkBatteryDoorbellCamera1Property = exports.DeviceWatermarkSoloWiredDoorbellProperty = exports.DeviceWatermarkIndoorFloodProperty = void 0; -exports.DeviceRecordingEndClipMotionStopsProperty = exports.DeviceRecordingRetriggerIntervalFloodlightProperty = exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty = exports.DeviceRecordingRetriggerIntervalProperty = exports.DeviceRecordingClipLengthOutdoorPTProperty = exports.DeviceRecordingClipLengthWalllightS120Property = exports.DeviceRecordingClipLengthWalllightProperty = exports.DeviceRecordingClipLengthFloodlightProperty = exports.DeviceRecordingClipLengthProperty = exports.DeviceChargingStatusProperty = exports.DevicePowerWorkingModeBatteryDoorbellProperty = exports.DevicePowerWorkingModeSmartDropProperty = exports.DevicePowerWorkingModeProperty = exports.DevicePowerSourceProperty = exports.DeviceRingtoneVolumeT8200XProperty = exports.DeviceRingtoneVolumeWiredDoorbellProperty = exports.DeviceRingtoneVolumeBatteryDoorbellProperty = exports.DeviceSpeakerVolumeSmartDropProperty = exports.DeviceSpeakerVolumeWalllightProperty = exports.DeviceSpeakerVolumeFloodlightT8420Property = exports.DeviceSpeakerVolumeWiredDoorbellProperty = exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty = exports.DeviceSpeakerVolumeCamera3Property = exports.DeviceSpeakerVolumeSoloProperty = exports.DeviceSpeakerVolumeProperty = exports.DeviceMotionTrackingProperty = exports.DeviceAudioRecordingFloodlightT8420Property = exports.DeviceAudioRecordingWiredDoorbellProperty = exports.DeviceAudioRecordingStarlight4gLTEProperty = exports.DeviceAudioRecordingIndoorSoloFloodlightProperty = exports.DeviceAudioRecordingProperty = exports.DeviceSpeakerProperty = exports.DeviceMicrophoneProperty = exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property = exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty = exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty = exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property = exports.DeviceFloodlightLightSettingsMotionTriggeredProperty = exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property = exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty = exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property = exports.DeviceFloodlightLightSettingsBrightnessMotionProperty = exports.DeviceCameraLightSettingsBrightnessManualWalllightS120Property = exports.DeviceCameraLightSettingsBrightnessManualProperty = exports.DeviceLightSettingsBrightnessManualCamera3Property = exports.DeviceFloodlightLightSettingsBrightnessManualProperty = exports.DeviceFloodlightLightSettingsEnableProperty = exports.DeviceFloodlightLightProperty = exports.DeviceMotionZoneProperty = exports.DeviceHiddenMotionDetectionModeWiredDoorbellProperty = void 0; -exports.DeviceNotificationRingWiredDoorbellProperty = exports.DeviceNotificationRingProperty = exports.DeviceNotificationCryingProperty = exports.DeviceNotificationAllSoundProperty = exports.DeviceNotificationAllOtherMotionWalllightProperty = exports.DeviceNotificationAllOtherMotionProperty = exports.DeviceNotificationPetProperty = exports.DeviceNotificationPersonWalllightProperty = exports.DeviceNotificationPersonProperty = exports.DeviceSoundDetectionSensitivityProperty = exports.DeviceSoundDetectionTypeS350Property = exports.DeviceSoundDetectionTypeProperty = exports.DeviceImageMirroredProperty = exports.DeviceRotationSpeedProperty = exports.DeviceNotificationTypeWalllightProperty = exports.DeviceNotificationTypeWiredDoorbellProperty = exports.DeviceNotificationTypeBatteryDoorbellProperty = exports.DeviceNotificationTypeIndoorFloodlightProperty = exports.DeviceNotificationTypeProperty = exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty = exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty = exports.DeviceChimeHomebaseBatteryDoorbellProperty = exports.DeviceChimeIndoorT8200XProperty = exports.DeviceChimeIndoorWiredDoorbellProperty = exports.DeviceChimeIndoorBatteryDoorbellProperty = exports.DeviceWDRProperty = exports.DeviceVideoRecordingQualityT8530Property = exports.DeviceVideoRecordingQualitySoloCamerasHB3Property = exports.DeviceVideoRecordingQualitySoloProperty = exports.DeviceVideoRecordingQualityCamera3Property = exports.DeviceVideoRecordingQualityCamera2CProProperty = exports.DeviceVideoRecordingQualityT8200XProperty = exports.DeviceVideoRecordingQualityWalllightProperty = exports.DeviceVideoRecordingQualityS350Property = exports.DeviceVideoRecordingQualityS340Property = exports.DeviceVideoRecordingQualityDoorbellE340Property = exports.DeviceVideoRecordingQualityProperty = exports.DeviceVideoRecordingQualityWiredDoorbellProperty = exports.DeviceVideoRecordingQualityIndoorProperty = exports.DeviceVideoStreamingQualitySmartDropProperty = exports.DeviceVideoStreamingQualityS340Property = exports.DeviceVideoStreamingQualityS350Property = exports.DeviceVideoStreamingQualityDoorbellE340Property = exports.DeviceVideoStreamingQualityCameraProfessionalProperty = exports.DeviceVideoStreamingQualityCamera3Property = exports.DeviceVideoStreamingQualityWalllightProperty = exports.DeviceVideoStreamingQualitySoloProperty = exports.DeviceVideoStreamingQualityCameraProperty = exports.DeviceVideoStreamingQualityBatteryDoorbellProperty = exports.DeviceVideoStreamingQualityProperty = void 0; -exports.DeviceNotificationUnlockedProperty = exports.DeviceNotificationWalllightProperty = exports.DeviceNotificationSmartLockProperty = exports.DeviceNotificationProperty = exports.DeviceSoundSimpleProperty = exports.DeviceSoundProperty = exports.DeviceScramblePasscodeSmartSafeProperty = exports.DeviceScramblePasscodeProperty = exports.DeviceWrongTryAttemptsSmartSafeProperty = exports.DeviceWrongTryAttemptsProperty = exports.DeviceWrongTryLockdownTimeSmartSafeProperty = exports.DeviceWrongTryLockdownTimeProperty = exports.DeviceWrongTryProtectionSmartSafeProperty = exports.DeviceWrongTryProtectionProperty = exports.DeviceOneTouchLockingProperty = exports.DeviceAutoLockScheduleEndTimeProperty = exports.DeviceAutoLockScheduleStartTimeProperty = exports.DeviceAutoLockScheduleProperty = exports.DeviceAutoLockTimerProperty = exports.DeviceAutoLockProperty = exports.DeviceAutoCalibrationProperty = exports.DeviceVideoColorNightvisionProperty = exports.DeviceVideoNightvisionImageAdjustmentProperty = exports.DeviceLightSettingsMotionActivationModeT8425Property = exports.DeviceLightSettingsMotionActivationModeProperty = exports.DeviceLightSettingsColorTemperatureScheduleProperty = exports.DeviceLightSettingsColorTemperatureMotionProperty = exports.DeviceLightSettingsColorTemperatureManualProperty = exports.DeviceMotionOutOfViewDetectionProperty = exports.DeviceMotionAutoCruiseProperty = exports.DeviceMotionTrackingSensitivityProperty = exports.DeviceMotionDetectionTestModeT8425Property = exports.DeviceMotionDetectionTestModeProperty = exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property = exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty = exports.DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty = exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property = exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty = exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property = exports.DeviceMotionDetectionRangeStandardSensitivityProperty = exports.DeviceMotionDetectionRangeT8425Property = exports.DeviceMotionDetectionRangeProperty = exports.DeviceVideoRingRecordWiredDoorbellProperty = exports.DeviceVideoDistortionCorrectionWiredDoorbellProperty = exports.DeviceVideoHDRWiredDoorbellProperty = exports.DeviceChirpToneEntrySensorProperty = exports.DeviceChirpVolumeEntrySensorProperty = exports.DeviceNotificationMotionWiredDoorbellProperty = exports.DeviceNotificationRadarDetectorProperty = exports.DeviceNotificationMotionProperty = void 0; -exports.StationCustom3SecuritySettings = exports.StationCustom2SecuritySettings = exports.StationCustom1SecuritySettings = exports.StationAwaySecuritySettings = exports.StationHomeSecuritySettings = exports.DeviceSoundDetectionRoundLookS350Property = exports.DeviceSoundDetectionRoundLookProperty = exports.DeviceNotificationIntervalTimeProperty = exports.DeviceDefaultAngleIdleTimeProperty = exports.DeviceDefaultAngleProperty = exports.DeviceContinuousRecordingTypeProperty = exports.DeviceContinuousRecordingProperty = exports.DeviceRingAutoResponseTimeToProperty = exports.DeviceRingAutoResponseTimeFromProperty = exports.DeviceRingAutoResponseVoiceResponseVoiceProperty = exports.DeviceRingAutoResponseVoiceResponseProperty = exports.DeviceRingAutoResponseProperty = exports.DeviceDualCamWatchViewModeS340Property = exports.DeviceDualCamWatchViewModeE340Property = exports.DeviceDualCamWatchViewModeProperty = exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty = exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty = exports.DeviceDeliveryGuardUncollectedPackageAlertProperty = exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty = exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty = exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty = exports.DeviceDeliveryGuardPackageGuardingProperty = exports.DeviceDeliveryGuardProperty = exports.DeviceLoiteringCustomResponseTimeToProperty = exports.DeviceLoiteringCustomResponseTimeFromProperty = exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty = exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty = exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty = exports.DeviceLoiteringCustomResponsePhoneNotificationProperty = exports.DeviceMotionDetectionSensitivityAdvancedHProperty = exports.DeviceMotionDetectionSensitivityAdvancedGProperty = exports.DeviceMotionDetectionSensitivityAdvancedFProperty = exports.DeviceMotionDetectionSensitivityAdvancedEProperty = exports.DeviceMotionDetectionSensitivityAdvancedDProperty = exports.DeviceMotionDetectionSensitivityAdvancedCProperty = exports.DeviceMotionDetectionSensitivityAdvancedBProperty = exports.DeviceMotionDetectionSensitivityAdvancedAProperty = exports.DeviceMotionDetectionSensitivityStandardProperty = exports.DeviceMotionDetectionSensitivityModeProperty = exports.DeviceLoiteringDetectionLengthProperty = exports.DeviceLoiteringDetectionRangeProperty = exports.DeviceLoiteringDetectionProperty = exports.DeviceNotificationLockedSmartLockProperty = exports.DeviceNotificationLockedProperty = exports.DeviceNotificationUnlockedSmartLockProperty = void 0; -exports.DeviceDetectionStatisticsDetectedEventsProperty = exports.DeviceDetectionStatisticsWorkingDaysProperty = exports.DeviceDogPoopDetectedProperty = exports.DeviceDogLickDetectedProperty = exports.DeviceDogDetectedProperty = exports.DeviceVehicleDetectedProperty = exports.DeviceStrangerPersonDetectedProperty = exports.DeviceIdentityPersonDetectedProperty = exports.DevicePersonNameProperty = exports.DeviceSnoozeChimeProperty = exports.DeviceSnoozeMotionProperty = exports.DeviceSnoozeHomebaseProperty = exports.DeviceSnoozeStartTimeWiredDoorbellProperty = exports.DeviceSnoozeStartTimeProperty = exports.DeviceSnoozeTimeProperty = exports.DeviceSnoozeProperty = exports.DeviceVideoTypeStoreToNASProperty = exports.DeviceWrongTryProtectAlertProperty = exports.DeviceLongTimeNotCloseAlertProperty = exports.DeviceLowBatteryAlertProperty = exports.DeviceShakeAlertEventProperty = exports.DeviceShakeAlertProperty = exports.Device911AlertEventProperty = exports.Device911AlertProperty = exports.DeviceJammedAlertProperty = exports.DeviceNotificationJammedProperty = exports.DeviceNotificationWrongTryProtectProperty = exports.DeviceNotificationDualLockProperty = exports.DeviceNotificationDualUnlockProperty = exports.DeviceNotificationUnlockByAppProperty = exports.DeviceNotificationUnlockByFingerprintProperty = exports.DeviceNotificationUnlockByPINProperty = exports.DeviceNotificationUnlockByKeyProperty = exports.DeviceAlarmVolumeProperty = exports.DevicePromptVolumeProperty = exports.DeviceRemoteUnlockMasterPINProperty = exports.DeviceRemoteUnlockProperty = exports.DeviceTamperAlarmProperty = exports.DeviceInteriorBrightnessDurationProperty = exports.DeviceInteriorBrightnessProperty = exports.DevicePowerSaveProperty = exports.DeviceDualUnlockProperty = exports.DeviceLeftOpenAlarmDurationProperty = exports.DeviceLeftOpenAlarmProperty = exports.DeviceRadarMotionDetectedProperty = exports.DeviceSomeoneLoiteringProperty = exports.DevicePackageTakenProperty = exports.DevicePackageStrandedProperty = exports.DevicePackageDeliveredProperty = exports.StationOffSecuritySettings = void 0; -exports.DeviceLeavingReactionEndTimeProperty = exports.DeviceLeavingReactionStartTimeProperty = exports.DeviceLeavingReactionNotificationProperty = exports.DeviceLeavingDetectionProperty = exports.DeviceNotificationVehicleProperty = exports.DeviceNotificationCryingS350Property = exports.DeviceNotificationAllSoundS350Property = exports.DeviceNotificationAllOtherMotionS350Property = exports.DeviceNotificationPetS350Property = exports.DeviceNotificationPersonS350Property = exports.DeviceFlickerAdjustmentProperty = exports.DeviceFindPhoneProperty = exports.DeviceLeftBehindAlarmProperty = exports.DeviceTrackerTypeProperty = exports.DeviceLocationLastUpdateProperty = exports.DeviceLocationAddressProperty = exports.DeviceLocationCoordinatesProperty = exports.DeviceDoorSensor2BatteryLevelProperty = exports.DeviceDoorSensor1BatteryLevelProperty = exports.DeviceDoorSensor2LowBatteryProperty = exports.DeviceDoorSensor1LowBatteryProperty = exports.DeviceDoorSensor2VersionProperty = exports.DeviceDoorSensor1VersionProperty = exports.DeviceDoorSensor2SerialNumberProperty = exports.DeviceDoorSensor1SerialNumberProperty = exports.DeviceDoorSensor2NameProperty = exports.DeviceDoorSensor1NameProperty = exports.DeviceDoorSensor2MacAddressProperty = exports.DeviceDoorSensor1MacAddressProperty = exports.DeviceDoorSensor2StatusProperty = exports.DeviceDoorSensor1StatusProperty = exports.DeviceDoor2OpenProperty = exports.DeviceDoor1OpenProperty = exports.DeviceDoorControlWarningProperty = exports.DeviceLightSettingsDynamicLightingThemesProperty = exports.DeviceLightSettingsColoredLightingColorsProperty = exports.DeviceLightSettingsScheduleLightingActiveModeProperty = exports.DeviceLightSettingsScheduleDynamicLightingProperty = exports.DeviceLightSettingsScheduleColoredLightingProperty = exports.DeviceLightSettingsScheduleDailyLightingProperty = exports.DeviceLightSettingsMotionLightingActiveModeProperty = exports.DeviceLightSettingsMotionDynamicLightingProperty = exports.DeviceLightSettingsMotionColoredLightingProperty = exports.DeviceLightSettingsMotionDailyLightingProperty = exports.DeviceLightSettingsManualLightingActiveModeProperty = exports.DeviceLightSettingsManualDynamicLightingProperty = exports.DeviceLightSettingsManualColoredLightingProperty = exports.DeviceLightSettingsManualDailyLightingProperty = exports.DevicePictureProperty = exports.DeviceDetectionStatisticsRecordedEventsProperty = void 0; -exports.StationAlarmProperty = exports.StationTurnOffAlarmWithButtonProperty = exports.StationAutoEndAlarmProperty = exports.StationSwitchModeWithAccessCodeProperty = exports.StationTimeZoneProperty = exports.StationTimeFormatProperty = exports.StationNotificationStartAlarmDelayProperty = exports.StationNotificationSwitchModeKeypadProperty = exports.StationNotificationSwitchModeAppProperty = exports.StationNotificationSwitchModeGeofenceProperty = exports.StationNotificationSwitchModeScheduleProperty = exports.StationAlarmToneProperty = exports.StationPromptVolumeProperty = exports.StationAlarmVolumeWalllightProperty = exports.StationAlarmVolumeProperty = exports.StationMacAddressProperty = exports.StationLanIpAddressStandaloneProperty = exports.StationLanIpAddressProperty = exports.StationCurrentModeKeyPadProperty = exports.StationCurrentModeProperty = exports.StationGuardModeKeyPadProperty = exports.StationGuardModeProperty = exports.BaseStationProperties = exports.StationSerialNumberProperty = exports.StationModelProperty = exports.StationNameProperty = exports.DeviceProperties = exports.LockT8520PDeviceProperties = exports.LockT8510PDeviceProperties = exports.WiredDoorbellT8200XDeviceProperties = exports.FloodlightT8420XDeviceProperties = exports.DeviceDeliveriesProperty = exports.DeviceHasMasterPinProperty = exports.DeviceIsDeliveryDeniedProperty = exports.DeviceBatteryFullyChargedAlertProperty = exports.DevicePinIncorrectAlertProperty = exports.DeviceLidStuckAlertProperty = exports.DeviceHighTemperatureAlertProperty = exports.DeviceLowTemperatureAlertProperty = exports.DeviceTamperingAlertProperty = exports.DeviceOpenedByNameProperty = exports.DeviceOpenedByTypeProperty = exports.DeviceOpenProperty = exports.DeviceMotionActivatedPromptProperty = exports.DeviceOpenMethodProperty = exports.DeviceNightvisionOptimizationSideProperty = exports.DeviceNightvisionOptimizationProperty = exports.DeviceBeepVolumeProperty = exports.DeviceLockEventOriginProperty = exports.DeviceSomeoneGoingProperty = void 0; -exports.StationCommands = exports.DeviceCommands = exports.CommandName = exports.StationProperties = exports.StationCrossTrackingGroupListProperty = exports.StationCrossTrackingCameraListProperty = exports.StationTrackingAssistanceProperty = exports.StationCrossCameraTrackingProperty = exports.StationContinuousTrackingTimeProperty = exports.StationStorageInfoHddProperty = exports.StationStorageInfoEmmcProperty = exports.StationSdAvailableCapacityProperty = exports.StationSdCapacityProperty = exports.StationSdStatusProperty = exports.StationAlarmDelayTypeProperty = exports.StationAlarmDelayProperty = exports.StationAlarmArmDelayProperty = exports.StationAlarmArmedProperty = exports.StationAlarmTypeProperty = void 0; -const types_1 = require("../p2p/types"); -var DeviceType; -(function (DeviceType) { - //List retrieved from com.oceanwing.battery.cam.binder.model.QueryDeviceData - DeviceType[DeviceType["STATION"] = 0] = "STATION"; - DeviceType[DeviceType["CAMERA"] = 1] = "CAMERA"; - DeviceType[DeviceType["SENSOR"] = 2] = "SENSOR"; - DeviceType[DeviceType["FLOODLIGHT"] = 3] = "FLOODLIGHT"; - DeviceType[DeviceType["CAMERA_E"] = 4] = "CAMERA_E"; - DeviceType[DeviceType["DOORBELL"] = 5] = "DOORBELL"; - DeviceType[DeviceType["BATTERY_DOORBELL"] = 7] = "BATTERY_DOORBELL"; - DeviceType[DeviceType["CAMERA2C"] = 8] = "CAMERA2C"; - DeviceType[DeviceType["CAMERA2"] = 9] = "CAMERA2"; - DeviceType[DeviceType["MOTION_SENSOR"] = 10] = "MOTION_SENSOR"; - DeviceType[DeviceType["KEYPAD"] = 11] = "KEYPAD"; - DeviceType[DeviceType["CAMERA2_PRO"] = 14] = "CAMERA2_PRO"; - DeviceType[DeviceType["CAMERA2C_PRO"] = 15] = "CAMERA2C_PRO"; - DeviceType[DeviceType["BATTERY_DOORBELL_2"] = 16] = "BATTERY_DOORBELL_2"; - DeviceType[DeviceType["HB3"] = 18] = "HB3"; - DeviceType[DeviceType["CAMERA3"] = 19] = "CAMERA3"; - DeviceType[DeviceType["CAMERA3C"] = 23] = "CAMERA3C"; - DeviceType[DeviceType["PROFESSIONAL_247"] = 24] = "PROFESSIONAL_247"; - DeviceType[DeviceType["MINIBASE_CHIME"] = 25] = "MINIBASE_CHIME"; - DeviceType[DeviceType["CAMERA3_PRO"] = 26] = "CAMERA3_PRO"; - DeviceType[DeviceType["INDOOR_CAMERA"] = 30] = "INDOOR_CAMERA"; - DeviceType[DeviceType["INDOOR_PT_CAMERA"] = 31] = "INDOOR_PT_CAMERA"; - DeviceType[DeviceType["SOLO_CAMERA"] = 32] = "SOLO_CAMERA"; - DeviceType[DeviceType["SOLO_CAMERA_PRO"] = 33] = "SOLO_CAMERA_PRO"; - DeviceType[DeviceType["INDOOR_CAMERA_1080"] = 34] = "INDOOR_CAMERA_1080"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_1080"] = 35] = "INDOOR_PT_CAMERA_1080"; - DeviceType[DeviceType["FLOODLIGHT_CAMERA_8422"] = 37] = "FLOODLIGHT_CAMERA_8422"; - DeviceType[DeviceType["FLOODLIGHT_CAMERA_8423"] = 38] = "FLOODLIGHT_CAMERA_8423"; - DeviceType[DeviceType["FLOODLIGHT_CAMERA_8424"] = 39] = "FLOODLIGHT_CAMERA_8424"; - DeviceType[DeviceType["INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT"] = 44] = "INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT"; - DeviceType[DeviceType["INDOOR_OUTDOOR_CAMERA_2K"] = 45] = "INDOOR_OUTDOOR_CAMERA_2K"; - DeviceType[DeviceType["INDOOR_OUTDOOR_CAMERA_1080P"] = 46] = "INDOOR_OUTDOOR_CAMERA_1080P"; - DeviceType[DeviceType["FLOODLIGHT_CAMERA_8425"] = 47] = "FLOODLIGHT_CAMERA_8425"; - DeviceType[DeviceType["OUTDOOR_PT_CAMERA"] = 48] = "OUTDOOR_PT_CAMERA"; - DeviceType[DeviceType["LOCK_BLE"] = 50] = "LOCK_BLE"; - DeviceType[DeviceType["LOCK_WIFI"] = 51] = "LOCK_WIFI"; - DeviceType[DeviceType["LOCK_BLE_NO_FINGER"] = 52] = "LOCK_BLE_NO_FINGER"; - DeviceType[DeviceType["LOCK_WIFI_NO_FINGER"] = 53] = "LOCK_WIFI_NO_FINGER"; - DeviceType[DeviceType["LOCK_8503"] = 54] = "LOCK_8503"; - DeviceType[DeviceType["LOCK_8530"] = 55] = "LOCK_8530"; - DeviceType[DeviceType["LOCK_85A3"] = 56] = "LOCK_85A3"; - DeviceType[DeviceType["LOCK_8592"] = 57] = "LOCK_8592"; - DeviceType[DeviceType["LOCK_8504"] = 58] = "LOCK_8504"; - DeviceType[DeviceType["SOLO_CAMERA_SPOTLIGHT_1080"] = 60] = "SOLO_CAMERA_SPOTLIGHT_1080"; - DeviceType[DeviceType["SOLO_CAMERA_SPOTLIGHT_2K"] = 61] = "SOLO_CAMERA_SPOTLIGHT_2K"; - DeviceType[DeviceType["SOLO_CAMERA_SPOTLIGHT_SOLAR"] = 62] = "SOLO_CAMERA_SPOTLIGHT_SOLAR"; - DeviceType[DeviceType["SOLO_CAMERA_SOLAR"] = 63] = "SOLO_CAMERA_SOLAR"; - DeviceType[DeviceType["SOLO_CAMERA_C210"] = 64] = "SOLO_CAMERA_C210"; - DeviceType[DeviceType["FLOODLIGHT_CAMERA_8426"] = 87] = "FLOODLIGHT_CAMERA_8426"; - DeviceType[DeviceType["SOLO_CAMERA_E30"] = 88] = "SOLO_CAMERA_E30"; - DeviceType[DeviceType["EUFYCAM_S4"] = 89] = "EUFYCAM_S4"; - DeviceType[DeviceType["SMART_DROP"] = 90] = "SMART_DROP"; - DeviceType[DeviceType["BATTERY_DOORBELL_PLUS"] = 91] = "BATTERY_DOORBELL_PLUS"; - DeviceType[DeviceType["DOORBELL_SOLO"] = 93] = "DOORBELL_SOLO"; - DeviceType[DeviceType["BATTERY_DOORBELL_PLUS_E340"] = 94] = "BATTERY_DOORBELL_PLUS_E340"; - DeviceType[DeviceType["BATTERY_DOORBELL_C30"] = 95] = "BATTERY_DOORBELL_C30"; - DeviceType[DeviceType["BATTERY_DOORBELL_C31"] = 96] = "BATTERY_DOORBELL_C31"; - DeviceType[DeviceType["INDOOR_COST_DOWN_CAMERA"] = 100] = "INDOOR_COST_DOWN_CAMERA"; - DeviceType[DeviceType["CAMERA_GUN"] = 101] = "CAMERA_GUN"; - DeviceType[DeviceType["CAMERA_SNAIL"] = 102] = "CAMERA_SNAIL"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_S350"] = 104] = "INDOOR_PT_CAMERA_S350"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_E30"] = 105] = "INDOOR_PT_CAMERA_E30"; - DeviceType[DeviceType["CAMERA_FG"] = 110] = "CAMERA_FG"; - DeviceType[DeviceType["CAMERA_GARAGE_T8453_COMMON"] = 131] = "CAMERA_GARAGE_T8453_COMMON"; - DeviceType[DeviceType["CAMERA_GARAGE_T8452"] = 132] = "CAMERA_GARAGE_T8452"; - DeviceType[DeviceType["CAMERA_GARAGE_T8453"] = 133] = "CAMERA_GARAGE_T8453"; - DeviceType[DeviceType["SMART_SAFE_7400"] = 140] = "SMART_SAFE_7400"; - DeviceType[DeviceType["SMART_SAFE_7401"] = 141] = "SMART_SAFE_7401"; - DeviceType[DeviceType["SMART_SAFE_7402"] = 142] = "SMART_SAFE_7402"; - DeviceType[DeviceType["SMART_SAFE_7403"] = 143] = "SMART_SAFE_7403"; - DeviceType[DeviceType["WALL_LIGHT_CAM"] = 151] = "WALL_LIGHT_CAM"; - DeviceType[DeviceType["SMART_TRACK_LINK"] = 157] = "SMART_TRACK_LINK"; - DeviceType[DeviceType["SMART_TRACK_CARD"] = 159] = "SMART_TRACK_CARD"; - DeviceType[DeviceType["LOCK_8502"] = 180] = "LOCK_8502"; - DeviceType[DeviceType["LOCK_8506"] = 184] = "LOCK_8506"; - DeviceType[DeviceType["WALL_LIGHT_CAM_81A0"] = 10005] = "WALL_LIGHT_CAM_81A0"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_C220"] = 10008] = "INDOOR_PT_CAMERA_C220"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_C210"] = 10009] = "INDOOR_PT_CAMERA_C210"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_C220_V2"] = 10010] = "INDOOR_PT_CAMERA_C220_V2"; - DeviceType[DeviceType["INDOOR_PT_CAMERA_C220_V3"] = 10011] = "INDOOR_PT_CAMERA_C220_V3"; -})(DeviceType || (exports.DeviceType = DeviceType = {})); -var ParamType; -(function (ParamType) { - //List retrieved from com.oceanwing.battery.cam.binder.model.CameraParams - ParamType[ParamType["CHIME_STATE"] = 2015] = "CHIME_STATE"; - ParamType[ParamType["DETECT_EXPOSURE"] = 2023] = "DETECT_EXPOSURE"; - ParamType[ParamType["DETECT_MODE"] = 2004] = "DETECT_MODE"; - ParamType[ParamType["DETECT_MOTION_SENSITIVE"] = 2005] = "DETECT_MOTION_SENSITIVE"; - ParamType[ParamType["DETECT_SCENARIO"] = 2028] = "DETECT_SCENARIO"; - ParamType[ParamType["DETECT_SWITCH"] = 2027] = "DETECT_SWITCH"; - ParamType[ParamType["DETECT_ZONE"] = 2006] = "DETECT_ZONE"; - ParamType[ParamType["DOORBELL_AUDIO_RECODE"] = 2042] = "DOORBELL_AUDIO_RECODE"; - ParamType[ParamType["DOORBELL_BRIGHTNESS"] = 2032] = "DOORBELL_BRIGHTNESS"; - ParamType[ParamType["DOORBELL_DISTORTION"] = 2033] = "DOORBELL_DISTORTION"; - ParamType[ParamType["DOORBELL_HDR"] = 2029] = "DOORBELL_HDR"; - ParamType[ParamType["DOORBELL_IR_MODE"] = 2030] = "DOORBELL_IR_MODE"; - ParamType[ParamType["DOORBELL_LED_NIGHT_MODE"] = 2039] = "DOORBELL_LED_NIGHT_MODE"; - ParamType[ParamType["DOORBELL_MOTION_ADVANCE_OPTION"] = 2041] = "DOORBELL_MOTION_ADVANCE_OPTION"; - ParamType[ParamType["DOORBELL_MOTION_NOTIFICATION"] = 2035] = "DOORBELL_MOTION_NOTIFICATION"; - ParamType[ParamType["DOORBELL_NOTIFICATION_JUMP_MODE"] = 2038] = "DOORBELL_NOTIFICATION_JUMP_MODE"; - ParamType[ParamType["DOORBELL_NOTIFICATION_OPEN"] = 2036] = "DOORBELL_NOTIFICATION_OPEN"; - ParamType[ParamType["DOORBELL_RECORD_QUALITY"] = 2034] = "DOORBELL_RECORD_QUALITY"; - ParamType[ParamType["DOORBELL_RING_RECORD"] = 2040] = "DOORBELL_RING_RECORD"; - ParamType[ParamType["DOORBELL_SNOOZE_START_TIME"] = 2037] = "DOORBELL_SNOOZE_START_TIME"; - ParamType[ParamType["DOORBELL_VIDEO_QUALITY"] = 2031] = "DOORBELL_VIDEO_QUALITY"; - ParamType[ParamType["DOORBELL_CHIME_MODE"] = 100000] = "DOORBELL_CHIME_MODE"; - ParamType[ParamType["NIGHT_VISUAL"] = 2002] = "NIGHT_VISUAL"; - ParamType[ParamType["OPEN_DEVICE"] = 2001] = "OPEN_DEVICE"; - ParamType[ParamType["RINGING_VOLUME"] = 2022] = "RINGING_VOLUME"; - ParamType[ParamType["SDCARD"] = 2010] = "SDCARD"; - ParamType[ParamType["UN_DETECT_ZONE"] = 2007] = "UN_DETECT_ZONE"; - ParamType[ParamType["VOLUME"] = 2003] = "VOLUME"; - ParamType[ParamType["COMMAND_LED_NIGHT_OPEN"] = 1026] = "COMMAND_LED_NIGHT_OPEN"; - ParamType[ParamType["COMMAND_MOTION_DETECTION_PACKAGE"] = 1016] = "COMMAND_MOTION_DETECTION_PACKAGE"; - ParamType[ParamType["COMMAND_HDR"] = 1019] = "COMMAND_HDR"; - ParamType[ParamType["COMMAND_DISTORTION_CORRECTION"] = 1022] = "COMMAND_DISTORTION_CORRECTION"; - ParamType[ParamType["COMMAND_VIDEO_QUALITY"] = 1020] = "COMMAND_VIDEO_QUALITY"; - ParamType[ParamType["COMMAND_VIDEO_RECORDING_QUALITY"] = 1023] = "COMMAND_VIDEO_RECORDING_QUALITY"; - ParamType[ParamType["COMMAND_VIDEO_RING_RECORD"] = 1027] = "COMMAND_VIDEO_RING_RECORD"; - ParamType[ParamType["COMMAND_AUDIO_RECORDING"] = 1029] = "COMMAND_AUDIO_RECORDING"; - ParamType[ParamType["COMMAND_INDOOR_CHIME"] = 1006] = "COMMAND_INDOOR_CHIME"; - ParamType[ParamType["COMMAND_RINGTONE_VOLUME"] = 1012] = "COMMAND_RINGTONE_VOLUME"; - ParamType[ParamType["COMMAND_NOTIFICATION_RING"] = 1031] = "COMMAND_NOTIFICATION_RING"; - ParamType[ParamType["COMMAND_NOTIFICATION_TYPE"] = 1030] = "COMMAND_NOTIFICATION_TYPE"; - ParamType[ParamType["COMMAND_QUICK_RESPONSE"] = 1004] = "COMMAND_QUICK_RESPONSE"; - ParamType[ParamType["COMMAND_START_LIVESTREAM"] = 1000] = "COMMAND_START_LIVESTREAM"; - ParamType[ParamType["COMMAND_STREAM_INFO"] = 1005] = "COMMAND_STREAM_INFO"; - ParamType[ParamType["COMMAND_VOLTAGE_INFO"] = 1015] = "COMMAND_VOLTAGE_INFO"; - // Inferred from source - ParamType[ParamType["SNOOZE_MODE"] = 1271] = "SNOOZE_MODE"; - ParamType[ParamType["WATERMARK_MODE"] = 1214] = "WATERMARK_MODE"; - ParamType[ParamType["DEVICE_UPGRADE_NOW"] = 1134] = "DEVICE_UPGRADE_NOW"; - ParamType[ParamType["CAMERA_UPGRADE_NOW"] = 1133] = "CAMERA_UPGRADE_NOW"; - ParamType[ParamType["DEFAULT_SCHEDULE_MODE"] = 1257] = "DEFAULT_SCHEDULE_MODE"; - ParamType[ParamType["GUARD_MODE"] = 1224] = "GUARD_MODE"; - ParamType[ParamType["FLOODLIGHT_MANUAL_SWITCH"] = 1400] = "FLOODLIGHT_MANUAL_SWITCH"; - ParamType[ParamType["FLOODLIGHT_MANUAL_BRIGHTNESS"] = 1401] = "FLOODLIGHT_MANUAL_BRIGHTNESS"; - ParamType[ParamType["FLOODLIGHT_MOTION_BRIGHTNESS"] = 1412] = "FLOODLIGHT_MOTION_BRIGHTNESS"; - ParamType[ParamType["FLOODLIGHT_SCHEDULE_BRIGHTNESS"] = 1413] = "FLOODLIGHT_SCHEDULE_BRIGHTNESS"; - ParamType[ParamType["FLOODLIGHT_MOTION_SENSITIVTY"] = 1272] = "FLOODLIGHT_MOTION_SENSITIVTY"; - ParamType[ParamType["CAMERA_SPEAKER_VOLUME"] = 1230] = "CAMERA_SPEAKER_VOLUME"; - ParamType[ParamType["CAMERA_RECORD_ENABLE_AUDIO"] = 1366] = "CAMERA_RECORD_ENABLE_AUDIO"; - ParamType[ParamType["CAMERA_RECORD_RETRIGGER_INTERVAL"] = 1250] = "CAMERA_RECORD_RETRIGGER_INTERVAL"; - ParamType[ParamType["CAMERA_RECORD_CLIP_LENGTH"] = 1249] = "CAMERA_RECORD_CLIP_LENGTH"; - ParamType[ParamType["CAMERA_IR_CUT"] = 1013] = "CAMERA_IR_CUT"; - ParamType[ParamType["CAMERA_PIR"] = 1011] = "CAMERA_PIR"; - ParamType[ParamType["CAMERA_WIFI_RSSI"] = 1142] = "CAMERA_WIFI_RSSI"; - ParamType[ParamType["CAMERA_MOTION_ZONES"] = 1204] = "CAMERA_MOTION_ZONES"; - // Set only params? - ParamType[ParamType["PUSH_MSG_MODE"] = 1252] = "PUSH_MSG_MODE"; - ParamType[ParamType["PRIVATE_MODE"] = 99904] = "PRIVATE_MODE"; - ParamType[ParamType["CUSTOM_RTSP_URL"] = 999991] = "CUSTOM_RTSP_URL"; -})(ParamType || (exports.ParamType = ParamType = {})); -var AlarmMode; -(function (AlarmMode) { - AlarmMode[AlarmMode["AWAY"] = 0] = "AWAY"; - AlarmMode[AlarmMode["HOME"] = 1] = "HOME"; - AlarmMode[AlarmMode["CUSTOM1"] = 3] = "CUSTOM1"; - AlarmMode[AlarmMode["CUSTOM2"] = 4] = "CUSTOM2"; - AlarmMode[AlarmMode["CUSTOM3"] = 5] = "CUSTOM3"; - AlarmMode[AlarmMode["DISARMED"] = 63] = "DISARMED"; -})(AlarmMode || (exports.AlarmMode = AlarmMode = {})); -var GuardMode; -(function (GuardMode) { - GuardMode[GuardMode["UNKNOWN"] = -1] = "UNKNOWN"; - GuardMode[GuardMode["AWAY"] = 0] = "AWAY"; - GuardMode[GuardMode["HOME"] = 1] = "HOME"; - GuardMode[GuardMode["DISARMED"] = 63] = "DISARMED"; - GuardMode[GuardMode["SCHEDULE"] = 2] = "SCHEDULE"; - GuardMode[GuardMode["GEO"] = 47] = "GEO"; - GuardMode[GuardMode["CUSTOM1"] = 3] = "CUSTOM1"; - GuardMode[GuardMode["CUSTOM2"] = 4] = "CUSTOM2"; - GuardMode[GuardMode["CUSTOM3"] = 5] = "CUSTOM3"; - GuardMode[GuardMode["OFF"] = 6] = "OFF"; -})(GuardMode || (exports.GuardMode = GuardMode = {})); -var ResponseErrorCode; -(function (ResponseErrorCode) { - ResponseErrorCode[ResponseErrorCode["CODE_CONNECT_ERROR"] = 997] = "CODE_CONNECT_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_ERROR_PIN"] = 36006] = "CODE_ERROR_PIN"; - //CODE_IS_OPEN = 25074, - //CODE_IS_OPEN_OTHERS = 25080, - ResponseErrorCode[ResponseErrorCode["CODE_MULTI_ALARM"] = 36002] = "CODE_MULTI_ALARM"; - ResponseErrorCode[ResponseErrorCode["CODE_NEED_VERIFY_CODE"] = 26052] = "CODE_NEED_VERIFY_CODE"; - ResponseErrorCode[ResponseErrorCode["CODE_NETWORK_ERROR"] = 998] = "CODE_NETWORK_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_PHONE_NONE_SUPPORT"] = 26058] = "CODE_PHONE_NONE_SUPPORT"; - ResponseErrorCode[ResponseErrorCode["CODE_SERVER_ERROR"] = 999] = "CODE_SERVER_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_SERVER_UNDER_MAINTENANCE"] = 424] = "CODE_SERVER_UNDER_MAINTENANCE"; - ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_ERROR"] = 26050] = "CODE_VERIFY_CODE_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_EXPIRED"] = 26051] = "CODE_VERIFY_CODE_EXPIRED"; - ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_MAX"] = 26053] = "CODE_VERIFY_CODE_MAX"; - ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_CODE_NONE_MATCH"] = 26054] = "CODE_VERIFY_CODE_NONE_MATCH"; - ResponseErrorCode[ResponseErrorCode["CODE_VERIFY_PASSWORD_ERROR"] = 26055] = "CODE_VERIFY_PASSWORD_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_WHATEVER_ERROR"] = 0] = "CODE_WHATEVER_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_EMAIL_LIMIT_EXCEED"] = 25077] = "CODE_EMAIL_LIMIT_EXCEED"; - ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_EXPIRED"] = 25075] = "CODE_GIVE_AWAY_EXPIRED"; - ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_INVALID"] = 25076] = "CODE_GIVE_AWAY_INVALID"; - ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_NOT_EXIST"] = 25079] = "CODE_GIVE_AWAY_NOT_EXIST"; - ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_PACKAGE_NOT_MATCH"] = 25078] = "CODE_GIVE_AWAY_PACKAGE_NOT_MATCH"; - ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_PACKAGE_TYPE_NOT_MATCH"] = 25080] = "CODE_GIVE_AWAY_PACKAGE_TYPE_NOT_MATCH"; - ResponseErrorCode[ResponseErrorCode["CODE_GIVE_AWAY_RECORD_EXIST"] = 25074] = "CODE_GIVE_AWAY_RECORD_EXIST"; - ResponseErrorCode[ResponseErrorCode["CODE_INPUT_PARAM_INVALID"] = 10000] = "CODE_INPUT_PARAM_INVALID"; - ResponseErrorCode[ResponseErrorCode["CODE_MAX_FORGET_PASSWORD_ERROR"] = 100035] = "CODE_MAX_FORGET_PASSWORD_ERROR"; - ResponseErrorCode[ResponseErrorCode["CODE_MAX_LOGIN_LIMIT"] = 100028] = "CODE_MAX_LOGIN_LIMIT"; - ResponseErrorCode[ResponseErrorCode["CODE_MAX_REGISTER_ERROR"] = 100034] = "CODE_MAX_REGISTER_ERROR"; - ResponseErrorCode[ResponseErrorCode["EMAIL_NOT_REGISTERED_ERROR"] = 22008] = "EMAIL_NOT_REGISTERED_ERROR"; - ResponseErrorCode[ResponseErrorCode["LOGIN_CAPTCHA_ERROR"] = 100033] = "LOGIN_CAPTCHA_ERROR"; - ResponseErrorCode[ResponseErrorCode["LOGIN_DECRYPTION_FAIL"] = 100030] = "LOGIN_DECRYPTION_FAIL"; - ResponseErrorCode[ResponseErrorCode["LOGIN_ENCRYPTION_FAIL"] = 100029] = "LOGIN_ENCRYPTION_FAIL"; - ResponseErrorCode[ResponseErrorCode["LOGIN_INVALID_TOUCH_ID"] = 26047] = "LOGIN_INVALID_TOUCH_ID"; - ResponseErrorCode[ResponseErrorCode["LOGIN_NEED_CAPTCHA"] = 100032] = "LOGIN_NEED_CAPTCHA"; - ResponseErrorCode[ResponseErrorCode["MULTIPLE_EMAIL_PASSWORD_ERROR"] = 26006] = "MULTIPLE_EMAIL_PASSWORD_ERROR"; - ResponseErrorCode[ResponseErrorCode["MULTIPLE_INACTIVATED_ERROR"] = 26015] = "MULTIPLE_INACTIVATED_ERROR"; - ResponseErrorCode[ResponseErrorCode["MULTIPLE_REGISTRATION_ERROR"] = 26000] = "MULTIPLE_REGISTRATION_ERROR"; - ResponseErrorCode[ResponseErrorCode["RESP_ERROR_CODE_SESSION_TIMEOUT"] = 401] = "RESP_ERROR_CODE_SESSION_TIMEOUT"; - ResponseErrorCode[ResponseErrorCode["CODE_REQUEST_TOO_FAST"] = 250999] = "CODE_REQUEST_TOO_FAST"; -})(ResponseErrorCode || (exports.ResponseErrorCode = ResponseErrorCode = {})); -var VerfyCodeTypes; -(function (VerfyCodeTypes) { - VerfyCodeTypes[VerfyCodeTypes["TYPE_SMS"] = 0] = "TYPE_SMS"; - VerfyCodeTypes[VerfyCodeTypes["TYPE_PUSH"] = 1] = "TYPE_PUSH"; - VerfyCodeTypes[VerfyCodeTypes["TYPE_EMAIL"] = 2] = "TYPE_EMAIL"; -})(VerfyCodeTypes || (exports.VerfyCodeTypes = VerfyCodeTypes = {})); -var StorageType; -(function (StorageType) { - StorageType[StorageType["NONE"] = 0] = "NONE"; - StorageType[StorageType["LOCAL"] = 1] = "LOCAL"; - StorageType[StorageType["CLOUD"] = 2] = "CLOUD"; - StorageType[StorageType["LOCAL_AND_CLOUD"] = 3] = "LOCAL_AND_CLOUD"; -})(StorageType || (exports.StorageType = StorageType = {})); -var PowerSource; -(function (PowerSource) { - PowerSource[PowerSource["BATTERY"] = 0] = "BATTERY"; - PowerSource[PowerSource["SOLAR_PANEL"] = 1] = "SOLAR_PANEL"; -})(PowerSource || (exports.PowerSource = PowerSource = {})); -var PublicKeyType; -(function (PublicKeyType) { - PublicKeyType[PublicKeyType["SERVER"] = 1] = "SERVER"; - PublicKeyType[PublicKeyType["LOCK"] = 2] = "LOCK"; -})(PublicKeyType || (exports.PublicKeyType = PublicKeyType = {})); -var FloodlightMotionTriggeredDistance; -(function (FloodlightMotionTriggeredDistance) { - FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["MIN"] = 66] = "MIN"; - FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["LOW"] = 76] = "LOW"; - FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["MEDIUM"] = 86] = "MEDIUM"; - FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["HIGH"] = 91] = "HIGH"; - FloodlightMotionTriggeredDistance[FloodlightMotionTriggeredDistance["MAX"] = 96] = "MAX"; -})(FloodlightMotionTriggeredDistance || (exports.FloodlightMotionTriggeredDistance = FloodlightMotionTriggeredDistance = {})); -var NotificationType; -(function (NotificationType) { - NotificationType[NotificationType["MOST_EFFICIENT"] = 1] = "MOST_EFFICIENT"; - NotificationType[NotificationType["INCLUDE_THUMBNAIL"] = 2] = "INCLUDE_THUMBNAIL"; - NotificationType[NotificationType["FULL_EFFECT"] = 3] = "FULL_EFFECT"; -})(NotificationType || (exports.NotificationType = NotificationType = {})); -var WalllightNotificationType; -(function (WalllightNotificationType) { - WalllightNotificationType[WalllightNotificationType["ONLY_TEXT"] = 1] = "ONLY_TEXT"; - WalllightNotificationType[WalllightNotificationType["WITH_THUMBNAIL"] = 2] = "WITH_THUMBNAIL"; -})(WalllightNotificationType || (exports.WalllightNotificationType = WalllightNotificationType = {})); -var AlarmTone; -(function (AlarmTone) { - AlarmTone[AlarmTone["ALARM_TONE1"] = 1] = "ALARM_TONE1"; - AlarmTone[AlarmTone["ALARM_TONE2"] = 2] = "ALARM_TONE2"; -})(AlarmTone || (exports.AlarmTone = AlarmTone = {})); -var NotificationSwitchMode; -(function (NotificationSwitchMode) { - NotificationSwitchMode[NotificationSwitchMode["APP"] = 16] = "APP"; - NotificationSwitchMode[NotificationSwitchMode["GEOFENCE"] = 32] = "GEOFENCE"; - NotificationSwitchMode[NotificationSwitchMode["SCHEDULE"] = 64] = "SCHEDULE"; - NotificationSwitchMode[NotificationSwitchMode["KEYPAD"] = 128] = "KEYPAD"; -})(NotificationSwitchMode || (exports.NotificationSwitchMode = NotificationSwitchMode = {})); -var GuardModeSecuritySettingsAction; -(function (GuardModeSecuritySettingsAction) { - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["VIDEO_RECORDING"] = 1] = "VIDEO_RECORDING"; - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["CAMERA_ALARM"] = 2] = "CAMERA_ALARM"; - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["HOMEBASE_ALARM"] = 4] = "HOMEBASE_ALARM"; - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["NOTIFICATON"] = 8] = "NOTIFICATON"; - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["PRIVACY"] = 16] = "PRIVACY"; - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["LIGHT_ALARM"] = 32] = "LIGHT_ALARM"; - GuardModeSecuritySettingsAction[GuardModeSecuritySettingsAction["PROFESSIONAL_SECURITY"] = 64] = "PROFESSIONAL_SECURITY"; -})(GuardModeSecuritySettingsAction || (exports.GuardModeSecuritySettingsAction = GuardModeSecuritySettingsAction = {})); -var TimeFormat; -(function (TimeFormat) { - TimeFormat[TimeFormat["FORMAT_12H"] = 0] = "FORMAT_12H"; - TimeFormat[TimeFormat["FORMAT_24H"] = 1] = "FORMAT_24H"; -})(TimeFormat || (exports.TimeFormat = TimeFormat = {})); -var SignalLevel; -(function (SignalLevel) { - SignalLevel[SignalLevel["NO_SIGNAL"] = 0] = "NO_SIGNAL"; - SignalLevel[SignalLevel["WEAK"] = 1] = "WEAK"; - SignalLevel[SignalLevel["NORMAL"] = 2] = "NORMAL"; - SignalLevel[SignalLevel["STRONG"] = 3] = "STRONG"; - SignalLevel[SignalLevel["FULL"] = 4] = "FULL"; -})(SignalLevel || (exports.SignalLevel = SignalLevel = {})); -var MotionDetectionMode; -(function (MotionDetectionMode) { - MotionDetectionMode[MotionDetectionMode["STANDARD"] = 0] = "STANDARD"; - MotionDetectionMode[MotionDetectionMode["ADVANCED"] = 1] = "ADVANCED"; -})(MotionDetectionMode || (exports.MotionDetectionMode = MotionDetectionMode = {})); -var VideoTypeStoreToNAS; -(function (VideoTypeStoreToNAS) { - VideoTypeStoreToNAS[VideoTypeStoreToNAS["Events"] = 0] = "Events"; - VideoTypeStoreToNAS[VideoTypeStoreToNAS["ContinuousRecording"] = 1] = "ContinuousRecording"; -})(VideoTypeStoreToNAS || (exports.VideoTypeStoreToNAS = VideoTypeStoreToNAS = {})); -var DualCamStreamMode; -(function (DualCamStreamMode) { - DualCamStreamMode[DualCamStreamMode["SINGLE_MAIN"] = 0] = "SINGLE_MAIN"; - DualCamStreamMode[DualCamStreamMode["SINGLE_SECOND"] = 1] = "SINGLE_SECOND"; - DualCamStreamMode[DualCamStreamMode["PIP_MAIN_UPPER_LEFT"] = 2] = "PIP_MAIN_UPPER_LEFT"; - DualCamStreamMode[DualCamStreamMode["PIP_MAIN_UPPER_RIGHT"] = 3] = "PIP_MAIN_UPPER_RIGHT"; - DualCamStreamMode[DualCamStreamMode["PIP_MAIN_LOWER_LEFT"] = 4] = "PIP_MAIN_LOWER_LEFT"; - DualCamStreamMode[DualCamStreamMode["PIP_MAIN_LOWER_RIGHT"] = 5] = "PIP_MAIN_LOWER_RIGHT"; - DualCamStreamMode[DualCamStreamMode["PIP_SECOND_UPPER_LEFT"] = 6] = "PIP_SECOND_UPPER_LEFT"; - DualCamStreamMode[DualCamStreamMode["PIP_SECOND_UPPER_RIGHT"] = 7] = "PIP_SECOND_UPPER_RIGHT"; - DualCamStreamMode[DualCamStreamMode["PIP_SECOND_LOWER_LEFT"] = 8] = "PIP_SECOND_LOWER_LEFT"; - DualCamStreamMode[DualCamStreamMode["PIP_SECOND_LOWER_RIGHT"] = 9] = "PIP_SECOND_LOWER_RIGHT"; - DualCamStreamMode[DualCamStreamMode["SPLICE_LEFT"] = 10] = "SPLICE_LEFT"; - DualCamStreamMode[DualCamStreamMode["SPLICE_RIGHT"] = 11] = "SPLICE_RIGHT"; - DualCamStreamMode[DualCamStreamMode["SPLICE_ABOVE"] = 12] = "SPLICE_ABOVE"; - DualCamStreamMode[DualCamStreamMode["SPLICE_UNDER"] = 13] = "SPLICE_UNDER"; - DualCamStreamMode[DualCamStreamMode["SPLICE_MIRROR"] = 14] = "SPLICE_MIRROR"; -})(DualCamStreamMode || (exports.DualCamStreamMode = DualCamStreamMode = {})); -var UserType; -(function (UserType) { - UserType[UserType["NORMAL"] = 0] = "NORMAL"; - UserType[UserType["ADMIN"] = 1] = "ADMIN"; - UserType[UserType["SUPER_ADMIN"] = 2] = "SUPER_ADMIN"; - UserType[UserType["ENTRY_ONLY"] = 4] = "ENTRY_ONLY"; -})(UserType || (exports.UserType = UserType = {})); -var UserPasswordType; -(function (UserPasswordType) { - UserPasswordType[UserPasswordType["PIN"] = 1] = "PIN"; - UserPasswordType[UserPasswordType["FINGERPRINT"] = 2] = "FINGERPRINT"; -})(UserPasswordType || (exports.UserPasswordType = UserPasswordType = {})); -var HB3DetectionTypes; -(function (HB3DetectionTypes) { - HB3DetectionTypes[HB3DetectionTypes["HUMAN_DETECTION"] = 2] = "HUMAN_DETECTION"; - HB3DetectionTypes[HB3DetectionTypes["VEHICLE_DETECTION"] = 4] = "VEHICLE_DETECTION"; - HB3DetectionTypes[HB3DetectionTypes["PET_DETECTION"] = 8] = "PET_DETECTION"; - HB3DetectionTypes[HB3DetectionTypes["ALL_OTHER_MOTION"] = 32768] = "ALL_OTHER_MOTION"; - HB3DetectionTypes[HB3DetectionTypes["HUMAN_RECOGNITION"] = 131072] = "HUMAN_RECOGNITION"; -})(HB3DetectionTypes || (exports.HB3DetectionTypes = HB3DetectionTypes = {})); -var T8170DetectionTypes; -(function (T8170DetectionTypes) { - T8170DetectionTypes[T8170DetectionTypes["HUMAN_DETECTION"] = 3] = "HUMAN_DETECTION"; - T8170DetectionTypes[T8170DetectionTypes["VEHICLE_DETECTION"] = 4] = "VEHICLE_DETECTION"; - T8170DetectionTypes[T8170DetectionTypes["ALL_OTHER_MOTION"] = 32768] = "ALL_OTHER_MOTION"; -})(T8170DetectionTypes || (exports.T8170DetectionTypes = T8170DetectionTypes = {})); -var SoloCameraDetectionTypes; -(function (SoloCameraDetectionTypes) { - SoloCameraDetectionTypes[SoloCameraDetectionTypes["HUMAN_DETECTION"] = 3] = "HUMAN_DETECTION"; - SoloCameraDetectionTypes[SoloCameraDetectionTypes["ALL_OTHER_MOTION"] = 32771] = "ALL_OTHER_MOTION"; -})(SoloCameraDetectionTypes || (exports.SoloCameraDetectionTypes = SoloCameraDetectionTypes = {})); -var IndoorS350DetectionTypes; -(function (IndoorS350DetectionTypes) { - IndoorS350DetectionTypes[IndoorS350DetectionTypes["HUMAN_DETECTION"] = 3] = "HUMAN_DETECTION"; - IndoorS350DetectionTypes[IndoorS350DetectionTypes["PET_DETECTION"] = 8] = "PET_DETECTION"; - IndoorS350DetectionTypes[IndoorS350DetectionTypes["ALL_OTHER_MOTION"] = 32768] = "ALL_OTHER_MOTION"; -})(IndoorS350DetectionTypes || (exports.IndoorS350DetectionTypes = IndoorS350DetectionTypes = {})); -var IndoorDetectionTypes; -(function (IndoorDetectionTypes) { - IndoorDetectionTypes[IndoorDetectionTypes["PERSON_DETECTION"] = 1] = "PERSON_DETECTION"; - IndoorDetectionTypes[IndoorDetectionTypes["PET_DETECTION"] = 2] = "PET_DETECTION"; - IndoorDetectionTypes[IndoorDetectionTypes["ALL_MOTION"] = 4] = "ALL_MOTION"; -})(IndoorDetectionTypes || (exports.IndoorDetectionTypes = IndoorDetectionTypes = {})); -var IndoorMiniDetectionTypes; -(function (IndoorMiniDetectionTypes) { - IndoorMiniDetectionTypes[IndoorMiniDetectionTypes["PERSON_DETECTION"] = 1] = "PERSON_DETECTION"; - IndoorMiniDetectionTypes[IndoorMiniDetectionTypes["ALL_MOTION"] = 4] = "ALL_MOTION"; -})(IndoorMiniDetectionTypes || (exports.IndoorMiniDetectionTypes = IndoorMiniDetectionTypes = {})); -var IndoorS350NotificationTypes; -(function (IndoorS350NotificationTypes) { - IndoorS350NotificationTypes[IndoorS350NotificationTypes["ALL_OTHER_MOTION"] = 801] = "ALL_OTHER_MOTION"; - IndoorS350NotificationTypes[IndoorS350NotificationTypes["HUMAN"] = 802] = "HUMAN"; - IndoorS350NotificationTypes[IndoorS350NotificationTypes["PET"] = 804] = "PET"; - IndoorS350NotificationTypes[IndoorS350NotificationTypes["CRYING"] = 808] = "CRYING"; - IndoorS350NotificationTypes[IndoorS350NotificationTypes["ALL_SOUND"] = 816] = "ALL_SOUND"; -})(IndoorS350NotificationTypes || (exports.IndoorS350NotificationTypes = IndoorS350NotificationTypes = {})); -var FloodlightT8425NotificationTypes; -(function (FloodlightT8425NotificationTypes) { - FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["ALL_OTHER_MOTION"] = 1] = "ALL_OTHER_MOTION"; - FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["HUMAN"] = 2] = "HUMAN"; - FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["PET"] = 4] = "PET"; - FloodlightT8425NotificationTypes[FloodlightT8425NotificationTypes["VEHICLE"] = 512] = "VEHICLE"; -})(FloodlightT8425NotificationTypes || (exports.FloodlightT8425NotificationTypes = FloodlightT8425NotificationTypes = {})); -var VideoType; -(function (VideoType) { - VideoType[VideoType["RECEIVED_RING"] = 1000] = "RECEIVED_RING"; - VideoType[VideoType["MISSED_RING"] = 1001] = "MISSED_RING"; - VideoType[VideoType["MOTION"] = 1002] = "MOTION"; - VideoType[VideoType["PERSON"] = 1003] = "PERSON"; - VideoType[VideoType["PET"] = 1004] = "PET"; - VideoType[VideoType["CRYING"] = 1005] = "CRYING"; - VideoType[VideoType["SOUND"] = 1006] = "SOUND"; - VideoType[VideoType["PUTDOWN_PACKAGE"] = 65536] = "PUTDOWN_PACKAGE"; - VideoType[VideoType["TAKE_PACKAGE"] = 131072] = "TAKE_PACKAGE"; - VideoType[VideoType["DETECT_PACKAGE"] = 262144] = "DETECT_PACKAGE"; - VideoType[VideoType["RECEIVED_RING_ACK"] = 524288] = "RECEIVED_RING_ACK"; - VideoType[VideoType["RECEIVED_RING_MISS"] = 1048576] = "RECEIVED_RING_MISS"; - VideoType[VideoType["RECEIVED_CAR_GUARD"] = 2097152] = "RECEIVED_CAR_GUARD"; -})(VideoType || (exports.VideoType = VideoType = {})); -var MediaType; -(function (MediaType) { - MediaType[MediaType["NONE"] = -1] = "NONE"; - MediaType[MediaType["H264"] = 0] = "H264"; - MediaType[MediaType["H265"] = 1] = "H265"; -})(MediaType || (exports.MediaType = MediaType = {})); -var RecordType; -(function (RecordType) { - RecordType[RecordType["MOTION"] = 256] = "MOTION"; - RecordType[RecordType["PERSON"] = 512] = "PERSON"; - RecordType[RecordType["PET"] = 1024] = "PET"; - RecordType[RecordType["CRY"] = 2048] = "CRY"; - RecordType[RecordType["SOUND"] = 4096] = "SOUND"; - RecordType[RecordType["VEHICLE"] = 16384] = "VEHICLE"; - RecordType[RecordType["CAR_GUARD"] = 131072] = "CAR_GUARD"; -})(RecordType || (exports.RecordType = RecordType = {})); -var MicStatus; -(function (MicStatus) { - MicStatus[MicStatus["CLOSED"] = 0] = "CLOSED"; - MicStatus[MicStatus["OPENED"] = 1] = "OPENED"; -})(MicStatus || (exports.MicStatus = MicStatus = {})); -var TriggerType; -(function (TriggerType) { - TriggerType[TriggerType["MOTION1"] = 0] = "MOTION1"; - TriggerType[TriggerType["MOTION2"] = 1] = "MOTION2"; - TriggerType[TriggerType["MOTION3"] = 2] = "MOTION3"; - TriggerType[TriggerType["PERSON"] = 4] = "PERSON"; - TriggerType[TriggerType["RING"] = 8] = "RING"; - TriggerType[TriggerType["SENSOR"] = 16] = "SENSOR"; - TriggerType[TriggerType["UNKNOWN"] = 32] = "UNKNOWN"; - TriggerType[TriggerType["MISSED_RING"] = 64] = "MISSED_RING"; - TriggerType[TriggerType["ANSWER_RING"] = 128] = "ANSWER_RING"; -})(TriggerType || (exports.TriggerType = TriggerType = {})); -var LightingActiveMode; -(function (LightingActiveMode) { - LightingActiveMode[LightingActiveMode["DAILY"] = 0] = "DAILY"; - LightingActiveMode[LightingActiveMode["COLORED"] = 1] = "COLORED"; - LightingActiveMode[LightingActiveMode["DYNAMIC"] = 2] = "DYNAMIC"; -})(LightingActiveMode || (exports.LightingActiveMode = LightingActiveMode = {})); -var DailyLightingType; -(function (DailyLightingType) { - DailyLightingType[DailyLightingType["COLD"] = 0] = "COLD"; - DailyLightingType[DailyLightingType["WARM"] = 1] = "WARM"; - DailyLightingType[DailyLightingType["VERY_WARM"] = 2] = "VERY_WARM"; -})(DailyLightingType || (exports.DailyLightingType = DailyLightingType = {})); -var MotionActivationMode; -(function (MotionActivationMode) { - MotionActivationMode[MotionActivationMode["SMART"] = 0] = "SMART"; - MotionActivationMode[MotionActivationMode["FAST"] = 1] = "FAST"; -})(MotionActivationMode || (exports.MotionActivationMode = MotionActivationMode = {})); -var DynamicLightingEffect; -(function (DynamicLightingEffect) { - DynamicLightingEffect[DynamicLightingEffect["FADE"] = 1] = "FADE"; - DynamicLightingEffect[DynamicLightingEffect["BLINK"] = 2] = "BLINK"; -})(DynamicLightingEffect || (exports.DynamicLightingEffect = DynamicLightingEffect = {})); -var GarageDoorState; -(function (GarageDoorState) { - GarageDoorState[GarageDoorState["A_CLOSED"] = 2] = "A_CLOSED"; - GarageDoorState[GarageDoorState["A_CLOSING"] = -102] = "A_CLOSING"; - GarageDoorState[GarageDoorState["A_NO_MOTOR"] = -108] = "A_NO_MOTOR"; - GarageDoorState[GarageDoorState["A_OPENED"] = 1] = "A_OPENED"; - GarageDoorState[GarageDoorState["A_OPENING"] = -101] = "A_OPENING"; - GarageDoorState[GarageDoorState["A_UNKNOWN"] = 16] = "A_UNKNOWN"; - GarageDoorState[GarageDoorState["B_CLOSED"] = 8] = "B_CLOSED"; - GarageDoorState[GarageDoorState["B_CLOSING"] = -104] = "B_CLOSING"; - GarageDoorState[GarageDoorState["B_NO_MOTOR"] = -109] = "B_NO_MOTOR"; - GarageDoorState[GarageDoorState["B_OPENED"] = 4] = "B_OPENED"; - GarageDoorState[GarageDoorState["B_OPENING"] = -103] = "B_OPENING"; - GarageDoorState[GarageDoorState["B_UNKNOWN"] = 32] = "B_UNKNOWN"; - GarageDoorState[GarageDoorState["UNKNOWN"] = 0] = "UNKNOWN"; -})(GarageDoorState || (exports.GarageDoorState = GarageDoorState = {})); -var TrackerType; -(function (TrackerType) { - TrackerType[TrackerType["TRACKER"] = 0] = "TRACKER"; - TrackerType[TrackerType["KEY"] = 1] = "KEY"; - TrackerType[TrackerType["WALLET"] = 2] = "WALLET"; - TrackerType[TrackerType["BAG"] = 3] = "BAG"; - TrackerType[TrackerType["REMOTE"] = 4] = "REMOTE"; - TrackerType[TrackerType["CAMERA"] = 5] = "CAMERA"; - TrackerType[TrackerType["HEADPHONES"] = 6] = "HEADPHONES"; - TrackerType[TrackerType["TOY"] = 7] = "TOY"; - TrackerType[TrackerType["SUITCASE"] = 8] = "SUITCASE"; - TrackerType[TrackerType["HANDBAG"] = 9] = "HANDBAG"; -})(TrackerType || (exports.TrackerType = TrackerType = {})); -var MotionDetectionRangeType; -(function (MotionDetectionRangeType) { - MotionDetectionRangeType[MotionDetectionRangeType["STANDARD"] = 0] = "STANDARD"; - MotionDetectionRangeType[MotionDetectionRangeType["ADVANCED"] = 1] = "ADVANCED"; - MotionDetectionRangeType[MotionDetectionRangeType["AUTOMATIC"] = 2] = "AUTOMATIC"; -})(MotionDetectionRangeType || (exports.MotionDetectionRangeType = MotionDetectionRangeType = {})); -var ViewModeType; -(function (ViewModeType) { - ViewModeType[ViewModeType["SINGLE_VIEW"] = 0] = "SINGLE_VIEW"; - ViewModeType[ViewModeType["DUAL_VIEW"] = 12] = "DUAL_VIEW"; -})(ViewModeType || (exports.ViewModeType = ViewModeType = {})); -var PresetPositionType; -(function (PresetPositionType) { - PresetPositionType[PresetPositionType["PRESET_1"] = 0] = "PRESET_1"; - PresetPositionType[PresetPositionType["PRESET_2"] = 1] = "PRESET_2"; - PresetPositionType[PresetPositionType["PRESET_3"] = 2] = "PRESET_3"; - PresetPositionType[PresetPositionType["PRESET_4"] = 3] = "PRESET_4"; -})(PresetPositionType || (exports.PresetPositionType = PresetPositionType = {})); -; -var DeviceEvent; -(function (DeviceEvent) { - DeviceEvent[DeviceEvent["MotionDetected"] = 0] = "MotionDetected"; - DeviceEvent[DeviceEvent["PersonDetected"] = 1] = "PersonDetected"; - DeviceEvent[DeviceEvent["PetDetected"] = 2] = "PetDetected"; - DeviceEvent[DeviceEvent["SoundDetected"] = 3] = "SoundDetected"; - DeviceEvent[DeviceEvent["CryingDetected"] = 4] = "CryingDetected"; - DeviceEvent[DeviceEvent["Ringing"] = 5] = "Ringing"; - DeviceEvent[DeviceEvent["PackageDelivered"] = 6] = "PackageDelivered"; - DeviceEvent[DeviceEvent["PackageTaken"] = 7] = "PackageTaken"; - DeviceEvent[DeviceEvent["PackageStranded"] = 8] = "PackageStranded"; - DeviceEvent[DeviceEvent["SomeoneLoitering"] = 9] = "SomeoneLoitering"; - DeviceEvent[DeviceEvent["RadarMotionDetected"] = 10] = "RadarMotionDetected"; - DeviceEvent[DeviceEvent["SomeoneGoing"] = 11] = "SomeoneGoing"; - DeviceEvent[DeviceEvent["LeftOpen"] = 12] = "LeftOpen"; - DeviceEvent[DeviceEvent["Jammed"] = 13] = "Jammed"; - DeviceEvent[DeviceEvent["Alarm911"] = 14] = "Alarm911"; - DeviceEvent[DeviceEvent["LowBattery"] = 15] = "LowBattery"; - DeviceEvent[DeviceEvent["LongTimeNotClose"] = 16] = "LongTimeNotClose"; - DeviceEvent[DeviceEvent["ShakeAlarm"] = 17] = "ShakeAlarm"; - DeviceEvent[DeviceEvent["WrontTryProtectAlarm"] = 18] = "WrontTryProtectAlarm"; - DeviceEvent[DeviceEvent["IdentityPersonDetected"] = 19] = "IdentityPersonDetected"; - DeviceEvent[DeviceEvent["StrangerPersonDetected"] = 20] = "StrangerPersonDetected"; - DeviceEvent[DeviceEvent["VehicleDetected"] = 21] = "VehicleDetected"; - DeviceEvent[DeviceEvent["DogDetected"] = 22] = "DogDetected"; - DeviceEvent[DeviceEvent["DogLickDetected"] = 23] = "DogLickDetected"; - DeviceEvent[DeviceEvent["DogPoopDetected"] = 24] = "DogPoopDetected"; - DeviceEvent[DeviceEvent["Lock"] = 25] = "Lock"; - DeviceEvent[DeviceEvent["TamperingAlert"] = 26] = "TamperingAlert"; - DeviceEvent[DeviceEvent["LowTemperatureAlert"] = 27] = "LowTemperatureAlert"; - DeviceEvent[DeviceEvent["HighTemperatureAlert"] = 28] = "HighTemperatureAlert"; - DeviceEvent[DeviceEvent["LidStuckAlert"] = 29] = "LidStuckAlert"; - DeviceEvent[DeviceEvent["PinIncorrectAlert"] = 30] = "PinIncorrectAlert"; - DeviceEvent[DeviceEvent["BatteryFullyChargedAlert"] = 31] = "BatteryFullyChargedAlert"; -})(DeviceEvent || (exports.DeviceEvent = DeviceEvent = {})); -var PropertyName; -(function (PropertyName) { - PropertyName["Name"] = "name"; - PropertyName["Model"] = "model"; - PropertyName["SerialNumber"] = "serialNumber"; - PropertyName["HardwareVersion"] = "hardwareVersion"; - PropertyName["SoftwareVersion"] = "softwareVersion"; - PropertyName["Type"] = "type"; - PropertyName["DeviceStationSN"] = "stationSerialNumber"; - PropertyName["DeviceBattery"] = "battery"; - PropertyName["DeviceBatteryTemp"] = "batteryTemperature"; - PropertyName["DeviceBatteryLow"] = "batteryLow"; - PropertyName["DeviceBatteryIsCharging"] = "batteryIsCharging"; - PropertyName["DeviceLastChargingDays"] = "lastChargingDays"; - PropertyName["DeviceLastChargingTotalEvents"] = "lastChargingTotalEvents"; - PropertyName["DeviceLastChargingRecordedEvents"] = "lastChargingRecordedEvents"; - PropertyName["DeviceLastChargingFalseEvents"] = "lastChargingFalseEvents"; - PropertyName["DeviceBatteryUsageLastWeek"] = "batteryUsageLastWeek"; - PropertyName["DeviceWifiRSSI"] = "wifiRssi"; - PropertyName["DeviceWifiSignalLevel"] = "wifiSignalLevel"; - PropertyName["DeviceEnabled"] = "enabled"; - PropertyName["DeviceAntitheftDetection"] = "antitheftDetection"; - PropertyName["DeviceAutoNightvision"] = "autoNightvision"; - PropertyName["DeviceNightvision"] = "nightvision"; - PropertyName["DeviceStatusLed"] = "statusLed"; - PropertyName["DeviceMotionDetection"] = "motionDetection"; - PropertyName["DeviceMotionDetectionType"] = "motionDetectionType"; - PropertyName["DeviceMotionDetectionSensitivity"] = "motionDetectionSensitivity"; - PropertyName["DeviceMotionZone"] = "motionZone"; - PropertyName["DeviceMotionDetectionRange"] = "motionDetectionRange"; - PropertyName["DeviceMotionDetectionRangeStandardSensitivity"] = "motionDetectionRangeStandardSensitivity"; - PropertyName["DeviceMotionDetectionRangeAdvancedLeftSensitivity"] = "motionDetectionRangeAdvancedLeftSensitivity"; - PropertyName["DeviceMotionDetectionRangeAdvancedMiddleSensitivity"] = "motionDetectionRangeAdvancedMiddleSensitivity"; - PropertyName["DeviceMotionDetectionRangeAdvancedRightSensitivity"] = "motionDetectionRangeAdvancedRightSensitivity"; - PropertyName["DeviceMotionDetectionTestMode"] = "motionDetectionTestMode"; - PropertyName["DeviceMotionDetectionTypeHuman"] = "motionDetectionTypeHuman"; - PropertyName["DeviceMotionDetectionTypeHumanRecognition"] = "motionDetectionTypeHumanRecognition"; - PropertyName["DeviceMotionDetectionTypePet"] = "motionDetectionTypePet"; - PropertyName["DeviceMotionDetectionTypeVehicle"] = "motionDetectionTypeVehicle"; - PropertyName["DeviceMotionDetectionTypeAllOtherMotions"] = "motionDetectionTypeAllOtherMotions"; - PropertyName["DeviceMotionDetected"] = "motionDetected"; - PropertyName["DeviceMotionTracking"] = "motionTracking"; - PropertyName["DeviceMotionTrackingSensitivity"] = "motionTrackingSensitivity"; - PropertyName["DeviceMotionAutoCruise"] = "motionAutoCruise"; - PropertyName["DeviceMotionOutOfViewDetection"] = "motionOutOfViewDetection"; - PropertyName["DevicePersonDetected"] = "personDetected"; - PropertyName["DevicePersonName"] = "personName"; - PropertyName["DeviceRTSPStream"] = "rtspStream"; - PropertyName["DeviceRTSPStreamUrl"] = "rtspStreamUrl"; - PropertyName["DeviceWatermark"] = "watermark"; - PropertyName["DevicePictureUrl"] = "hidden-pictureUrl"; - PropertyName["DevicePicture"] = "picture"; - PropertyName["DeviceState"] = "state"; - PropertyName["DevicePetDetection"] = "petDetection"; - PropertyName["DevicePetDetected"] = "petDetected"; - PropertyName["DeviceSoundDetection"] = "soundDetection"; - PropertyName["DeviceSoundDetectionType"] = "soundDetectionType"; - PropertyName["DeviceSoundDetectionSensitivity"] = "soundDetectionSensitivity"; - PropertyName["DeviceSoundDetected"] = "soundDetected"; - PropertyName["DeviceCryingDetected"] = "cryingDetected"; - PropertyName["DeviceSensorOpen"] = "sensorOpen"; - PropertyName["DeviceSensorChangeTime"] = "sensorChangeTime"; - PropertyName["DeviceMotionSensorPIREvent"] = "motionSensorPirEvent"; - PropertyName["DeviceLocked"] = "locked"; - PropertyName["DeviceRinging"] = "ringing"; - PropertyName["DeviceLockStatus"] = "lockStatus"; - PropertyName["DeviceLight"] = "light"; - PropertyName["DeviceMicrophone"] = "microphone"; - PropertyName["DeviceSpeaker"] = "speaker"; - PropertyName["DeviceSpeakerVolume"] = "speakerVolume"; - PropertyName["DeviceRingtoneVolume"] = "ringtoneVolume"; - PropertyName["DeviceAudioRecording"] = "audioRecording"; - PropertyName["DevicePowerSource"] = "powerSource"; - PropertyName["DevicePowerWorkingMode"] = "powerWorkingMode"; - PropertyName["DeviceChargingStatus"] = "chargingStatus"; - PropertyName["DeviceRecordingEndClipMotionStops"] = "recordingEndClipMotionStops"; - PropertyName["DeviceRecordingClipLength"] = "recordingClipLength"; - PropertyName["DeviceRecordingRetriggerInterval"] = "recordingRetriggerInterval"; - PropertyName["DeviceVideoStreamingQuality"] = "videoStreamingQuality"; - PropertyName["DeviceVideoRecordingQuality"] = "videoRecordingQuality"; - PropertyName["DeviceVideoWDR"] = "videoWdr"; - PropertyName["DeviceLightSettingsEnable"] = "lightSettingsEnable"; - PropertyName["DeviceLightSettingsBrightnessManual"] = "lightSettingsBrightnessManual"; - PropertyName["DeviceLightSettingsColorTemperatureManual"] = "lightSettingsColorTemperatureManual"; - PropertyName["DeviceLightSettingsBrightnessMotion"] = "lightSettingsBrightnessMotion"; - PropertyName["DeviceLightSettingsColorTemperatureMotion"] = "lightSettingsColorTemperatureMotion"; - PropertyName["DeviceLightSettingsBrightnessSchedule"] = "lightSettingsBrightnessSchedule"; - PropertyName["DeviceLightSettingsColorTemperatureSchedule"] = "lightSettingsColorTemperatureSchedule"; - PropertyName["DeviceLightSettingsMotionTriggered"] = "lightSettingsMotionTriggered"; - PropertyName["DeviceLightSettingsMotionActivationMode"] = "lightSettingsMotionActivationMode"; - PropertyName["DeviceLightSettingsMotionTriggeredDistance"] = "lightSettingsMotionTriggeredDistance"; - PropertyName["DeviceLightSettingsMotionTriggeredTimer"] = "lightSettingsMotionTriggeredTimer"; - //DeviceLightSettingsSunsetToSunrise = "lightSettingsSunsetToSunrise", - PropertyName["DeviceLightSettingsManualLightingActiveMode"] = "lightSettingsManualLightingActiveMode"; - PropertyName["DeviceLightSettingsManualDailyLighting"] = "lightSettingsManualDailyLighting"; - PropertyName["DeviceLightSettingsManualColoredLighting"] = "lightSettingsManualColoredLighting"; - PropertyName["DeviceLightSettingsManualDynamicLighting"] = "lightSettingsManualDynamicLighting"; - PropertyName["DeviceLightSettingsMotionLightingActiveMode"] = "lightSettingsMotionLightingActiveMode"; - PropertyName["DeviceLightSettingsMotionDailyLighting"] = "lightSettingsMotionDailyLighting"; - PropertyName["DeviceLightSettingsMotionColoredLighting"] = "lightSettingsMotionColoredLighting"; - PropertyName["DeviceLightSettingsMotionDynamicLighting"] = "lightSettingsMotionDynamicLighting"; - PropertyName["DeviceLightSettingsScheduleLightingActiveMode"] = "lightSettingsScheduleLightingActiveMode"; - PropertyName["DeviceLightSettingsScheduleDailyLighting"] = "lightSettingsScheduleDailyLighting"; - PropertyName["DeviceLightSettingsScheduleColoredLighting"] = "lightSettingsScheduleColoredLighting"; - PropertyName["DeviceLightSettingsScheduleDynamicLighting"] = "lightSettingsScheduleDynamicLighting"; - PropertyName["DeviceLightSettingsColoredLightingColors"] = "lightSettingsColoredLightingColors"; - PropertyName["DeviceLightSettingsDynamicLightingThemes"] = "lightSettingsDynamicLightingThemes"; - PropertyName["DeviceChimeIndoor"] = "chimeIndoor"; - PropertyName["DeviceChimeHomebase"] = "chimeHomebase"; - PropertyName["DeviceChimeHomebaseRingtoneVolume"] = "chimeHomebaseRingtoneVolume"; - PropertyName["DeviceChimeHomebaseRingtoneType"] = "chimeHomebaseRingtoneType"; - PropertyName["DeviceNotificationType"] = "notificationType"; - PropertyName["DeviceRotationSpeed"] = "rotationSpeed"; - PropertyName["DeviceImageMirrored"] = "imageMirrored"; - PropertyName["DeviceNotificationPerson"] = "notificationPerson"; - PropertyName["DeviceNotificationPet"] = "notificationPet"; - PropertyName["DeviceNotificationAllOtherMotion"] = "notificationAllOtherMotion"; - PropertyName["DeviceNotificationCrying"] = "notificationCrying"; - PropertyName["DeviceNotificationAllSound"] = "notificationAllSound"; - PropertyName["DeviceNotificationIntervalTime"] = "notificationIntervalTime"; - PropertyName["DeviceNotificationRing"] = "notificationRing"; - PropertyName["DeviceNotificationMotion"] = "notificationMotion"; - PropertyName["DeviceNotificationRadarDetector"] = "notificationRadarDetector"; - PropertyName["DeviceNotificationVehicle"] = "notificationVehicle"; - PropertyName["DeviceContinuousRecording"] = "continuousRecording"; - PropertyName["DeviceContinuousRecordingType"] = "continuousRecordingType"; - PropertyName["DeviceChirpVolume"] = "chirpVolume"; - PropertyName["DeviceChirpTone"] = "chirpTone"; - PropertyName["DeviceVideoHDR"] = "videoHdr"; - PropertyName["DeviceVideoDistortionCorrection"] = "videoDistortionCorrection"; - PropertyName["DeviceVideoRingRecord"] = "videoRingRecord"; - PropertyName["DeviceVideoNightvisionImageAdjustment"] = "videoNightvisionImageAdjustment"; - PropertyName["DeviceVideoColorNightvision"] = "videoColorNightvision"; - PropertyName["DeviceAutoCalibration"] = "autoCalibration"; - PropertyName["DeviceAutoLock"] = "autoLock"; - PropertyName["DeviceAutoLockTimer"] = "autoLockTimer"; - PropertyName["DeviceAutoLockSchedule"] = "autoLockSchedule"; - PropertyName["DeviceAutoLockScheduleStartTime"] = "autoLockScheduleStartTime"; - PropertyName["DeviceAutoLockScheduleEndTime"] = "autoLockScheduleEndTime"; - PropertyName["DeviceOneTouchLocking"] = "oneTouchLocking"; - PropertyName["DeviceWrongTryProtection"] = "wrongTryProtection"; - PropertyName["DeviceWrongTryAttempts"] = "wrongTryAttempts"; - PropertyName["DeviceWrongTryLockdownTime"] = "wrongTryLockdownTime"; - PropertyName["DeviceScramblePasscode"] = "scramblePasscode"; - PropertyName["DeviceSound"] = "sound"; - PropertyName["DeviceNotification"] = "notification"; - PropertyName["DeviceNotificationUnlocked"] = "notificationUnlocked"; - PropertyName["DeviceNotificationLocked"] = "notificationLocked"; - PropertyName["DeviceLoiteringDetection"] = "loiteringDetection"; - PropertyName["DeviceLoiteringDetectionRange"] = "loiteringDetectionRange"; - PropertyName["DeviceLoiteringDetectionLength"] = "loiteringDetectionLength"; - PropertyName["DeviceMotionDetectionSensitivityMode"] = "motionDetectionSensitivityMode"; - PropertyName["DeviceMotionDetectionSensitivityStandard"] = "motionDetectionSensitivityStandard"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedA"] = "motionDetectionSensitivityAdvancedA"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedB"] = "motionDetectionSensitivityAdvancedB"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedC"] = "motionDetectionSensitivityAdvancedC"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedD"] = "motionDetectionSensitivityAdvancedD"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedE"] = "motionDetectionSensitivityAdvancedE"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedF"] = "motionDetectionSensitivityAdvancedF"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedG"] = "motionDetectionSensitivityAdvancedG"; - PropertyName["DeviceMotionDetectionSensitivityAdvancedH"] = "motionDetectionSensitivityAdvancedH"; - PropertyName["DeviceLoiteringCustomResponsePhoneNotification"] = "loiteringCustomResponsePhoneNotification"; - PropertyName["DeviceLoiteringCustomResponseAutoVoiceResponse"] = "loiteringCustomResponseAutoVoiceResponse"; - PropertyName["DeviceLoiteringCustomResponseAutoVoiceResponseVoice"] = "loiteringCustomResponseAutoVoiceResponseVoice"; - PropertyName["DeviceLoiteringCustomResponseHomeBaseNotification"] = "loiteringCustomResponseHomeBaseNotification"; - PropertyName["DeviceLoiteringCustomResponseTimeFrom"] = "loiteringCustomResponseTimeFrom"; - PropertyName["DeviceLoiteringCustomResponseTimeTo"] = "loiteringCustomResponseTimeTo"; - PropertyName["DeviceDeliveryGuard"] = "deliveryGuard"; - PropertyName["DeviceDeliveryGuardPackageGuarding"] = "deliveryGuardPackageGuarding"; - PropertyName["DeviceDeliveryGuardPackageGuardingVoiceResponseVoice"] = "deliveryGuardPackageGuardingVoiceResponseVoice"; - PropertyName["DeviceDeliveryGuardPackageGuardingActivatedTimeFrom"] = "deliveryGuardPackageGuardingActivatedTimeFrom"; - PropertyName["DeviceDeliveryGuardPackageGuardingActivatedTimeTo"] = "deliveryGuardPackageGuardingActivatedTimeTo"; - PropertyName["DeviceDeliveryGuardUncollectedPackageAlert"] = "deliveryGuardUncollectedPackageAlert"; - PropertyName["DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck"] = "deliveryGuardUncollectedPackageAlertTimeToCheck"; - PropertyName["DeviceDeliveryGuardPackageLiveCheckAssistance"] = "deliveryGuardPackageLiveCheckAssistance"; - PropertyName["DeviceDualCamWatchViewMode"] = "dualCamWatchViewMode"; - PropertyName["DeviceRingAutoResponse"] = "ringAutoResponse"; - PropertyName["DeviceRingAutoResponseVoiceResponse"] = "ringAutoResponseVoiceResponse"; - PropertyName["DeviceRingAutoResponseVoiceResponseVoice"] = "ringAutoResponseVoiceResponseVoice"; - PropertyName["DeviceRingAutoResponseTimeFrom"] = "ringAutoResponseTimeFrom"; - PropertyName["DeviceRingAutoResponseTimeTo"] = "ringAutoResponseTimeTo"; - PropertyName["DeviceDefaultAngle"] = "defaultAngle"; - PropertyName["DeviceDefaultAngleIdleTime"] = "defaultAngleIdleTime"; - PropertyName["DeviceSoundDetectionRoundLook"] = "soundDetectionRoundLook"; - PropertyName["DevicePackageDelivered"] = "packageDelivered"; - PropertyName["DevicePackageStranded"] = "packageStranded"; - PropertyName["DevicePackageTaken"] = "packageTaken"; - PropertyName["DeviceSomeoneLoitering"] = "someoneLoitering"; - PropertyName["DeviceRadarMotionDetected"] = "radarMotionDetected"; - PropertyName["DeviceLeftOpenAlarm"] = "leftOpenAlarm"; - PropertyName["DeviceLeftOpenAlarmDuration"] = "leftOpenAlarmDuration"; - PropertyName["DeviceDualUnlock"] = "dualUnlock"; - PropertyName["DevicePowerSave"] = "powerSave"; - PropertyName["DeviceInteriorBrightness"] = "interiorBrightness"; - PropertyName["DeviceInteriorBrightnessDuration"] = "interiorBrightnessDuration"; - PropertyName["DeviceTamperAlarm"] = "tamperAlarm"; - PropertyName["DeviceRemoteUnlock"] = "remoteUnlock"; - PropertyName["DeviceRemoteUnlockMasterPIN"] = "remoteUnlockMasterPIN"; - PropertyName["DeviceAlarmVolume"] = "alarmVolume"; - PropertyName["DevicePromptVolume"] = "promptVolume"; - PropertyName["DeviceNotificationUnlockByKey"] = "notificationUnlockByKey"; - PropertyName["DeviceNotificationUnlockByPIN"] = "notificationUnlockByPIN"; - PropertyName["DeviceNotificationUnlockByFingerprint"] = "notificationUnlockByFingerprint"; - PropertyName["DeviceNotificationUnlockByApp"] = "notificationUnlockByApp"; - PropertyName["DeviceNotificationDualUnlock"] = "notificationDualUnlock"; - PropertyName["DeviceNotificationDualLock"] = "notificationDualLock"; - PropertyName["DeviceNotificationWrongTryProtect"] = "notificationWrongTryProtect"; - PropertyName["DeviceNotificationJammed"] = "notificationJammed"; - PropertyName["DeviceJammedAlert"] = "jammedAlert"; - PropertyName["Device911Alert"] = "911Alert"; - PropertyName["Device911AlertEvent"] = "911AlertEvent"; - PropertyName["DeviceShakeAlert"] = "shakeAlert"; - PropertyName["DeviceShakeAlertEvent"] = "shakeAlertEvent"; - PropertyName["DeviceLowBatteryAlert"] = "lowBatteryAlert"; - PropertyName["DeviceLongTimeNotCloseAlert"] = "longTimeNotCloseAlert"; - PropertyName["DeviceWrongTryProtectAlert"] = "wrongTryProtectAlert"; - PropertyName["DeviceVideoTypeStoreToNAS"] = "videoTypeStoreToNAS"; - PropertyName["DeviceSnooze"] = "snooze"; - PropertyName["DeviceSnoozeTime"] = "snoozeTime"; - PropertyName["DeviceSnoozeStartTime"] = "snoozeStartTime"; - PropertyName["DeviceSnoozeHomebase"] = "snoozeHomebase"; - PropertyName["DeviceSnoozeMotion"] = "snoozeMotion"; - PropertyName["DeviceSnoozeChime"] = "snoozeStartChime"; - PropertyName["DeviceIdentityPersonDetected"] = "identityPersonDetected"; - PropertyName["DeviceStrangerPersonDetected"] = "strangerPersonDetected"; - PropertyName["DeviceVehicleDetected"] = "vehicleDetected"; - PropertyName["DeviceDogDetected"] = "dogDetected"; - PropertyName["DeviceDogLickDetected"] = "dogLickDetected"; - PropertyName["DeviceDogPoopDetected"] = "dogPoopDetected"; - PropertyName["DeviceDetectionStatisticsWorkingDays"] = "detectionStatisticsWorkingDays"; - PropertyName["DeviceDetectionStatisticsDetectedEvents"] = "detectionStatisticsDetectedEvents"; - PropertyName["DeviceDetectionStatisticsRecordedEvents"] = "detectionStatisticsRecordedEvents"; - PropertyName["DeviceCellularRSSI"] = "cellularRSSI"; - PropertyName["DeviceCellularSignalLevel"] = "cellularSignalLevel"; - PropertyName["DeviceCellularSignal"] = "cellularSignal"; - PropertyName["DeviceCellularBand"] = "cellularBand"; - PropertyName["DeviceCellularIMEI"] = "cellularIMEI"; - PropertyName["DeviceCellularICCID"] = "cellularICCID"; - PropertyName["DeviceDoorControlWarning"] = "doorControlWarning"; - PropertyName["DeviceDoor1Open"] = "door1Open"; - PropertyName["DeviceDoor2Open"] = "door2Open"; - PropertyName["DeviceDoorSensor1Status"] = "doorSensor1Status"; - PropertyName["DeviceDoorSensor2Status"] = "doorSensor2Status"; - PropertyName["DeviceDoorSensor1MacAddress"] = "doorSensor1MacAddress"; - PropertyName["DeviceDoorSensor2MacAddress"] = "doorSensor2MacAddress"; - PropertyName["DeviceDoorSensor1Name"] = "doorSensor1Name"; - PropertyName["DeviceDoorSensor2Name"] = "doorSensor2Name"; - PropertyName["DeviceDoorSensor1SerialNumber"] = "doorSensor1SerialNumber"; - PropertyName["DeviceDoorSensor2SerialNumber"] = "doorSensor2SerialNumber"; - PropertyName["DeviceDoorSensor1Version"] = "doorSensor1Version"; - PropertyName["DeviceDoorSensor2Version"] = "doorSensor2Version"; - PropertyName["DeviceDoorSensor1LowBattery"] = "doorSensor1LowBattery"; - PropertyName["DeviceDoorSensor2LowBattery"] = "doorSensor2LowBattery"; - PropertyName["DeviceDoorSensor1BatteryLevel"] = "doorSensor1BatteryLevel"; - PropertyName["DeviceDoorSensor2BatteryLevel"] = "doorSensor2BatteryLevel"; - PropertyName["DeviceLocationCoordinates"] = "locationCoordinates"; - PropertyName["DeviceLocationAddress"] = "locationAddress"; - PropertyName["DeviceLocationLastUpdate"] = "locationLastUpdate"; - PropertyName["DeviceTrackerType"] = "trackerType"; - PropertyName["DeviceLeftBehindAlarm"] = "leftBehindAlarm"; - PropertyName["DeviceFindPhone"] = "findPhone"; - PropertyName["DeviceFlickerAdjustment"] = "flickerAdjustment"; - PropertyName["DeviceLeavingDetection"] = "leavingDetection"; - PropertyName["DeviceLeavingReactionNotification"] = "leavingReactionNotification"; - PropertyName["DeviceLeavingReactionStartTime"] = "leavingReactionStartTime"; - PropertyName["DeviceLeavingReactionEndTime"] = "leavingReactionEndTime"; - PropertyName["DeviceSomeoneGoing"] = "someoneGoing"; - PropertyName["DeviceLockEventOrigin"] = "lockEventOrigin"; - PropertyName["DeviceBeepVolume"] = "beepVolume"; - PropertyName["DeviceNightvisionOptimization"] = "nightvisionOptimization"; - PropertyName["DeviceNightvisionOptimizationSide"] = "nightvisionOptimizationSide"; - PropertyName["DeviceOpenMethod"] = "openMethod"; - PropertyName["DeviceMotionActivatedPrompt"] = "motionActivatedPrompt"; - PropertyName["DeviceOpen"] = "open"; - PropertyName["DeviceOpenedByType"] = "openedByType"; - PropertyName["DeviceOpenedByName"] = "openedByName"; - PropertyName["DeviceTamperingAlert"] = "tamperingAlert"; - PropertyName["DeviceLowTemperatureAlert"] = "lowTemperatureAlert"; - PropertyName["DeviceHighTemperatureAlert"] = "highTemperatureAlert"; - PropertyName["DeviceLidStuckAlert"] = "lidStuckAlert"; - PropertyName["DevicePinIncorrectAlert"] = "pinIncorrectAlert"; - PropertyName["DeviceBatteryFullyChargedAlert"] = "batteryFullyChargedAlert"; - PropertyName["DeviceIsDeliveryDenied"] = "isDeliveryDenied"; - PropertyName["DeviceHasMasterPin"] = "hasMasterPin"; - PropertyName["DeviceDeliveries"] = "deliveries"; - PropertyName["DeviceHiddenMotionDetectionSensitivity"] = "hidden-motionDetectionSensitivity"; - PropertyName["DeviceHiddenMotionDetectionMode"] = "hidden-motionDetectionMode"; - PropertyName["StationLANIpAddress"] = "lanIpAddress"; - PropertyName["StationMacAddress"] = "macAddress"; - PropertyName["StationGuardMode"] = "guardMode"; - PropertyName["StationCurrentMode"] = "currentMode"; - PropertyName["StationTimeFormat"] = "timeFormat"; - PropertyName["StationTimeZone"] = "timeZone"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - PropertyName["StationAlarmVolume"] = "alarmVolume"; - PropertyName["StationAlarmTone"] = "alarmTone"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - PropertyName["StationPromptVolume"] = "promptVolume"; - PropertyName["StationNotificationSwitchModeSchedule"] = "notificationSwitchModeSchedule"; - PropertyName["StationNotificationSwitchModeGeofence"] = "notificationSwitchModeGeofence"; - PropertyName["StationNotificationSwitchModeApp"] = "notificationSwitchModeApp"; - PropertyName["StationNotificationSwitchModeKeypad"] = "notificationSwitchModeKeypad"; - PropertyName["StationNotificationStartAlarmDelay"] = "notificationStartAlarmDelay"; - PropertyName["StationSwitchModeWithAccessCode"] = "switchModeWithAccessCode"; - PropertyName["StationAutoEndAlarm"] = "autoEndAlarm"; - PropertyName["StationTurnOffAlarmWithButton"] = "turnOffAlarmWithButton"; - PropertyName["StationHomeSecuritySettings"] = "hidden-stationHomeSecuritySettings"; - PropertyName["StationAwaySecuritySettings"] = "hidden-stationAwaySecuritySettings"; - PropertyName["StationCustom1SecuritySettings"] = "hidden-stationCustom1SecuritySettings"; - PropertyName["StationCustom2SecuritySettings"] = "hidden-stationCustom2SecuritySettings"; - PropertyName["StationCustom3SecuritySettings"] = "hidden-stationCustom3SecuritySettings"; - PropertyName["StationOffSecuritySettings"] = "hidden-stationOffSecuritySettings"; - PropertyName["StationAlarm"] = "alarm"; - PropertyName["StationAlarmType"] = "alarmType"; - PropertyName["StationAlarmArmed"] = "alarmArmed"; - PropertyName["StationAlarmArmDelay"] = "alarmArmDelay"; - PropertyName["StationAlarmDelay"] = "alarmDelay"; - PropertyName["StationAlarmDelayType"] = "alarmDelayType"; - PropertyName["StationSdStatus"] = "sdStatus"; - PropertyName["StationSdCapacity"] = "sdCapacity"; - PropertyName["StationSdCapacityAvailable"] = "sdCapacityAvailable"; - PropertyName["StationStorageInfoEmmc"] = "storageInfoEmmc"; - PropertyName["StationStorageInfoHdd"] = "storageInfoHdd"; - PropertyName["StationCrossCameraTracking"] = "crossCameraTracking"; - PropertyName["StationContinuousTrackingTime"] = "continuousTrackingTime"; - PropertyName["StationTrackingAssistance"] = "trackingAssistance"; - PropertyName["StationCrossTrackingCameraList"] = "crossTrackingCameraList"; - PropertyName["StationCrossTrackingGroupList"] = "crossTrackingGroupList"; -})(PropertyName || (exports.PropertyName = PropertyName = {})); -exports.DeviceNameProperty = { - key: "device_name", - name: PropertyName.Name, - label: "Name", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceModelProperty = { - key: "device_model", - name: PropertyName.Model, - label: "Model", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceSerialNumberProperty = { - key: "device_sn", - name: PropertyName.SerialNumber, - label: "Serial number", - readable: true, - writeable: false, - type: "string", -}; -exports.GenericHWVersionProperty = { - key: "main_hw_version", - name: PropertyName.HardwareVersion, - label: "Hardware version", - readable: true, - writeable: false, - type: "string", -}; -exports.GenericSWVersionProperty = { - key: "main_sw_version", - name: PropertyName.SoftwareVersion, - label: "Software version", - readable: true, - writeable: false, - type: "string", -}; -exports.GenericTypeProperty = { - key: "device_type", - name: PropertyName.Type, - label: "Type", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Station", - 1: "Camera", - 2: "Sensor (T8900)", - 3: "Floodlight", - 4: "Camera E", - 5: "Doorbell", - 7: "Battery Doorbell", - 8: "Camera 2", - 9: "eufyCam S210 (eufyCam 2C)", - 10: "Motion Sensor (T8910)", - 11: "Keypad", - 14: "eufyCam S221 (eufyCam 2 Pro)", - 15: "eufyCam S220 (eufyCam 2C Pro)", - 16: "Battery Doorbell 2", - 18: "HomeBase S380 (HomeBase 3; T8030)", - 19: "eufyCam S330 (eufyCam 3)", - 23: "eufyCam S300 (eufyCam 3C)", - 24: "eufyCam E330 (Professional)", - 25: "MiniBase Chime", - 26: "eufyCam S3 Pro", - 30: "Indoor Camera", - 31: "Indoor Camera PT", - 32: "Solo Camera", - 33: "Solo Camera Pro", - 34: "Indoor Camera 1080", - 35: "Indoor Camera PT 1080", - 37: "Floodlight 8422", - 38: "Floodlight 8423", - 39: "Floodlight 2", - 44: "Outdoor Camera 1080P No Light", - 45: "Outdoor Camera 2k", - 46: "Outdoor Camera 1080P", - 47: "Floodlight Camera E340", - 48: "Solo Camera S340", - 50: "Lock Basic", - 51: "Lock Advanced", - 52: "Lock Basic No Finger", - 53: "Lock Basic Advanced No Finger", - 54: "Retrofit Smart Lock E110 (T8503)", - 55: "Video Smart Lock S330 (T8530)", - 56: "Lock 85A3", - 57: "Lock 8592", - 58: "Retrofit Smart Lock E130 (T8504)", - 60: "Solo Camera Spotlight 1080p", - 61: "Solo Camera Spotlight 2k", - 62: "Solo Camera Spotlight Solar", - 63: "Solo Camera S230", - 64: "Solo Camera C210", - 87: "Floodlight Camera E30", - 88: "Solo Camera E30", - 89: "eufyCam S4 (T8172)", - 90: "Smart Drop S300 (T8790)", - 91: "Video Doorbell Dual", - 93: "Video Doorbell Dual (Wired)", - 94: "Video Doorbell Dual (E340)", - 95: "Video Doorbell (C30)", - 100: "Indoor Cost Down Camera", - 101: "Camera Gun", - 102: "Camera Snail", - 104: "Indoor Camera S350", - 110: "Starlight 4G LTE", //T8150 - 131: "Camera Garage T8453 Common", - 132: "Garage-Control Cam E110 (T8452)", - 133: "Garage-Control Cam E120 (T8453)", - 140: "Smart Safe S10 (T7400)", - 141: "Smart Safe S12 (T7401)", - 142: "Smart Safe (T7402)", - 143: "Smart Safe (T7403)", - 151: "Wired Wall Light Cam S100 (T84A1)", - 157: "SmartTrack Link (T87B0)", - 159: "SmartTrack Card (T87B2)", - 180: "Smart Lock C210 (T8502)", - 184: "Smart Lock C220 (T8506)", - 10005: "Solar Wall Light Cam S120 (T81A0)", - 10008: "Indoor Cam C220 (T8W11C)", - 10009: "Indoor Cam C210 (T8419)", - 10010: "Indoor Cam C220 (T8W11C)", - 10011: "Indoor Cam C220 (T8419N)", - }, -}; -exports.BaseDeviceProperties = { - [exports.DeviceNameProperty.name]: exports.DeviceNameProperty, - [exports.DeviceModelProperty.name]: exports.DeviceModelProperty, - [exports.DeviceSerialNumberProperty.name]: exports.DeviceSerialNumberProperty, - [exports.GenericTypeProperty.name]: exports.GenericTypeProperty, - [exports.GenericHWVersionProperty.name]: exports.GenericHWVersionProperty, - [exports.GenericSWVersionProperty.name]: exports.GenericSWVersionProperty, -}; -exports.GenericDeviceProperties = { - ...exports.BaseDeviceProperties, - [PropertyName.DeviceStationSN]: { - key: "station_sn", - name: PropertyName.DeviceStationSN, - label: "Station serial number", - readable: true, - writeable: false, - type: "string", - }, -}; -exports.DeviceBatteryProperty = { - key: types_1.CommandType.CMD_GET_BATTERY, - name: PropertyName.DeviceBattery, - label: "Battery percentage", - readable: true, - writeable: false, - type: "number", - unit: "%", - min: 0, - max: 100, -}; -exports.DeviceBatteryLockProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, - name: PropertyName.DeviceBattery, - label: "Battery percentage", - readable: true, - writeable: false, - type: "number", - unit: "%", - min: 0, - max: 100, -}; -exports.DeviceBatteryTrackerProperty = { - ...exports.DeviceBatteryProperty, - key: types_1.TrackerCommandType.COMMAND_BATTERY, -}; -exports.DeviceBatteryLowMotionSensorProperty = { - key: types_1.CommandType.CMD_MOTION_SENSOR_BAT_STATE, - name: PropertyName.DeviceBatteryLow, - label: "Battery low", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceBatteryLowKeypadProperty = { - ...exports.DeviceBatteryLowMotionSensorProperty, - key: types_1.CommandType.CMD_KEYPAD_BATTERY_CAP_STATE, -}; -exports.DeviceBatteryLowSensorProperty = { - ...exports.DeviceBatteryLowMotionSensorProperty, - key: types_1.CommandType.CMD_ENTRY_SENSOR_BAT_STATE, -}; -exports.DeviceBatteryTempProperty = { - key: types_1.CommandType.CMD_GET_BATTERY_TEMP, - name: PropertyName.DeviceBatteryTemp, - label: "Battery Temperature", - readable: true, - writeable: false, - type: "number", - unit: "°C", -}; -exports.DeviceBatteryIsChargingKeypadProperty = { - key: types_1.CommandType.CMD_KEYPAD_BATTERY_CHARGER_STATE, - name: PropertyName.DeviceBatteryIsCharging, - label: "Battery is charging", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceAntitheftDetectionProperty = { - key: types_1.CommandType.CMD_EAS_SWITCH, - name: PropertyName.DeviceAntitheftDetection, - label: "Antitheft Detection", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAutoNightvisionProperty = { - key: types_1.CommandType.CMD_IRCUT_SWITCH, - name: PropertyName.DeviceAutoNightvision, - label: "Auto Nightvision", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAutoNightvisionWiredDoorbellProperty = { - ...exports.DeviceAutoNightvisionProperty, - key: ParamType.NIGHT_VISUAL, -}; -exports.DeviceAutoNightvisionSoloProperty = { - ...exports.DeviceAutoNightvisionProperty, - key: types_1.CommandType.CMD_SET_NIGHT_VISION_TYPE, - commandId: types_1.CommandType.CMD_SET_NIGHT_VISION_TYPE, -}; -exports.DeviceNightvisionProperty = { - key: types_1.CommandType.CMD_SET_NIGHT_VISION_TYPE, - name: PropertyName.DeviceNightvision, - label: "Nightvision", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 1: "B&W Night Vision", - 2: "Color Night Vision", - }, -}; -exports.DeviceNightvisionS350Property = { - ...exports.DeviceNightvisionProperty, - states: { - 0: "Off", - 1: "Auto", - 3: "On", - }, -}; -exports.DeviceWifiRSSIProperty = { - key: types_1.CommandType.CMD_GET_WIFI_RSSI, - name: PropertyName.DeviceWifiRSSI, - label: "Wifi RSSI", - readable: true, - writeable: false, - type: "number", - unit: "dBm", -}; -exports.DeviceWifiSignalLevelProperty = { - key: "custom_wifiSignalLevel", - name: PropertyName.DeviceWifiSignalLevel, - label: "Wifi Signal Level", - readable: true, - writeable: false, - type: "number", - min: 0, - max: 4, - states: { - 0: "No signal", - 1: "Weak", - 2: "Normal", - 3: "Strong", - 4: "Full", - }, -}; -exports.DeviceCellularRSSIProperty = { - key: types_1.CommandType.CELLULAR_SIGNAL_STRENGTH, - name: PropertyName.DeviceCellularRSSI, - label: "Cellular RSSI", - readable: true, - writeable: false, - type: "number", - unit: "dBm", -}; -exports.DeviceCellularSignalLevelProperty = { - key: "custom_cellularSignalLevel", - name: PropertyName.DeviceCellularSignalLevel, - label: "Cellular Signal Level", - readable: true, - writeable: false, - type: "number", - min: 1, - max: 4, - states: { - 1: "Weak", - 2: "Normal", - 3: "Strong", - 4: "Full", - }, -}; -exports.DeviceCellularSignalProperty = { - key: types_1.CommandType.CELLULAR_INFO, - name: PropertyName.DeviceCellularSignal, - label: "Cellular Signal", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceCellularBandProperty = { - key: types_1.CommandType.CELLULAR_INFO, - name: PropertyName.DeviceCellularBand, - label: "Cellular Band", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceCellularIMEIProperty = { - key: types_1.CommandType.CELLULAR_INFO, - name: PropertyName.DeviceCellularIMEI, - label: "Cellular IMEI", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceCellularICCIDProperty = { - key: types_1.CommandType.CELLULAR_INFO, - name: PropertyName.DeviceCellularICCID, - label: "Cellular ICCID", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceWifiRSSILockProperty = { - ...exports.DeviceWifiRSSIProperty, - key: types_1.CommandType.CMD_GET_SUB1G_RSSI, -}; -exports.DeviceWifiRSSIEntrySensorProperty = { - ...exports.DeviceWifiRSSIProperty, - key: types_1.CommandType.CMD_GET_SUB1G_RSSI, -}; -exports.DeviceWifiRSSIKeypadProperty = { - ...exports.DeviceWifiRSSIProperty, - key: types_1.CommandType.CMD_GET_SUB1G_RSSI, -}; -exports.DeviceWifiRSSISmartSafeProperty = { - ...exports.DeviceWifiRSSIProperty, - key: types_1.CommandType.CMD_SMARTSAFE_RSSI, -}; -exports.DeviceEnabledProperty = { - key: ParamType.PRIVATE_MODE, - name: PropertyName.DeviceEnabled, - label: "Camera enabled", - readable: true, - writeable: true, - type: "boolean", - commandId: types_1.CommandType.CMD_DEVS_SWITCH, - default: true -}; -exports.DeviceEnabledStandaloneProperty = { - ...exports.DeviceEnabledProperty, - key: ParamType.OPEN_DEVICE, - commandId: types_1.CommandType.CMD_DEVS_SWITCH, -}; -exports.DeviceEnabledSoloProperty = { - ...exports.DeviceEnabledProperty, - key: types_1.CommandType.CMD_DEVS_SWITCH, -}; -exports.DeviceEnabledIndoorMiniProperty = { - ...exports.DeviceEnabledSoloProperty, - key: types_1.CommandType.CMD_DEVS_SWITCH, - commandId: types_1.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE, -}; -exports.DeviceEnabledIndoorS350Property = { - ...exports.DeviceEnabledSoloProperty, - key: types_1.CommandType.CMD_DEVS_SWITCH, - commandId: types_1.CommandType.CMD_INDOOR_ENABLE_PRIVACY_MODE_S350, -}; -exports.DeviceStatusLedProperty = { - key: types_1.CommandType.CMD_DEV_LED_SWITCH, - name: PropertyName.DeviceStatusLed, - label: "Status LED", - readable: true, - writeable: true, - type: "boolean", - commandId: types_1.CommandType.CMD_INDOOR_LED_SWITCH, -}; -exports.DeviceStatusLedIndoorFloodProperty = { - ...exports.DeviceStatusLedProperty, - key: types_1.CommandType.CMD_INDOOR_LED_SWITCH, -}; -exports.DeviceStatusLedBatteryDoorbellProperty = { - ...exports.DeviceStatusLedProperty, - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, -}; -exports.DeviceStatusLedIndoorS350Property = { - ...exports.DeviceStatusLedBatteryDoorbellProperty, - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, - commandId: types_1.CommandType.CMD_DEV_LED_SWITCH, -}; -exports.DeviceStatusLedBatteryDoorbellDualProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_LED_ENABLE, - name: PropertyName.DeviceStatusLed, - label: "Status LED", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 1: "All day", - 2: "At night", - }, -}; -exports.DeviceStatusLedDoorbellProperty = { - ...exports.DeviceStatusLedProperty, - key: ParamType.DOORBELL_LED_NIGHT_MODE, - commandId: ParamType.COMMAND_LED_NIGHT_OPEN, -}; -exports.DeviceStatusLedT8200XProperty = { - ...exports.DeviceStatusLedProperty, - key: ParamType.COMMAND_LED_NIGHT_OPEN, - commandId: ParamType.COMMAND_LED_NIGHT_OPEN, -}; -exports.DeviceMotionDetectionProperty = { - key: types_1.CommandType.CMD_PIR_SWITCH, - name: PropertyName.DeviceMotionDetection, - label: "Motion Detection", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionDetectionIndoorSoloFloodProperty = { - ...exports.DeviceMotionDetectionProperty, - key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE, -}; -exports.DeviceMotionDetectionDoorbellProperty = { - ...exports.DeviceMotionDetectionProperty, - key: ParamType.DETECT_SWITCH, - commandId: ParamType.COMMAND_MOTION_DETECTION_PACKAGE, -}; -exports.DeviceSoundDetectionProperty = { - key: types_1.CommandType.CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE, - name: PropertyName.DeviceSoundDetection, - label: "Sound Detection", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DevicePetDetectionProperty = { - key: types_1.CommandType.CMD_INDOOR_DET_SET_PET_ENABLE, - name: PropertyName.DevicePetDetection, - label: "Pet Detection", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceRTSPStreamProperty = { - key: types_1.CommandType.CMD_NAS_SWITCH, - name: PropertyName.DeviceRTSPStream, - label: "RTSP Stream", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceRTSPStreamUrlProperty = { - key: "custom_rtspStreamUrl", - name: PropertyName.DeviceRTSPStreamUrl, - label: "RTSP Stream URL", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceWatermarkProperty = { - key: types_1.CommandType.CMD_SET_DEVS_OSD, - name: PropertyName.DeviceWatermark, - label: "Watermark", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 1: "Timestamp", - 2: "Timestamp and Logo", - }, -}; -exports.DeviceWatermarkIndoorFloodProperty = { - ...exports.DeviceWatermarkProperty, - states: { - 0: "Timestamp", - 1: "Timestamp and Logo", - 2: "Off", - }, -}; -exports.DeviceWatermarkSoloWiredDoorbellProperty = { - ...exports.DeviceWatermarkProperty, - states: { - 0: "Off", - 1: "On", - }, -}; -exports.DeviceWatermarkBatteryDoorbellCamera1Property = { - ...exports.DeviceWatermarkProperty, - states: { - 1: "Off", - 2: "On", - }, -}; -exports.DeviceWatermarkGarageCameraProperty = { - ...exports.DeviceWatermarkProperty, - states: { - 1: "Logo", - 2: "Off", - }, -}; -exports.DeviceStateProperty = { - key: types_1.CommandType.CMD_GET_DEV_STATUS, - name: PropertyName.DeviceState, - label: "State", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Offline", - 1: "Online", - 2: "Manually disabled", - 3: "Offline low battery", - 4: "Remove and readd", - 5: "Reset and readd", - } -}; -exports.DeviceStateLockProperty = { - ...exports.DeviceStateProperty, - key: types_1.CommandType.CMD_GET_DEV_STATUS, -}; -exports.DeviceLastChargingDaysProperty = { - key: "charging_days", - name: PropertyName.DeviceLastChargingDays, - label: "Days since last charging", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceLastChargingTotalEventsProperty = { - key: "charing_total", - name: PropertyName.DeviceLastChargingTotalEvents, - label: "Total Events since last charging", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceLastChargingRecordedEventsProperty = { - key: "charging_reserve", - name: PropertyName.DeviceLastChargingRecordedEvents, - label: "Total Recorded Events since last charging", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceLastChargingFalseEventsProperty = { - key: "charging_missing", - name: PropertyName.DeviceLastChargingFalseEvents, - label: "False Events since last charging", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceBatteryUsageLastWeekProperty = { - key: "battery_usage_last_week", - name: PropertyName.DeviceBatteryUsageLastWeek, - label: "Battery usage last week", - readable: true, - writeable: false, - type: "number", - unit: "%", - min: 0, - max: 100, - default: 0, -}; -exports.DeviceLockedProperty = { - key: "custom_locked", - name: PropertyName.DeviceLocked, - label: "locked", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceLockedSmartSafeProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_LOCK_STATUS, - name: PropertyName.DeviceLocked, - label: "locked", - readable: true, - writeable: false, - type: "boolean", -}; -exports.DeviceMotionDetectedProperty = { - key: "custom_motionDetected", - name: PropertyName.DeviceMotionDetected, - label: "Motion detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DevicePersonDetectedProperty = { - key: "custom_personDetected", - name: PropertyName.DevicePersonDetected, - label: "Person detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DevicePetDetectedProperty = { - key: "custom_petDetected", - name: PropertyName.DevicePetDetected, - label: "Pet detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceSoundDetectedProperty = { - key: "custom_soundDetected", - name: PropertyName.DeviceSoundDetected, - label: "Sound detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceCryingDetectedProperty = { - key: "custom_cryingDetected", - name: PropertyName.DeviceCryingDetected, - label: "Crying detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceRingingProperty = { - key: "custom_ringing", - name: PropertyName.DeviceRinging, - label: "Ringing", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceSensorOpenProperty = { - key: types_1.CommandType.CMD_ENTRY_SENSOR_STATUS, - name: PropertyName.DeviceSensorOpen, - label: "Sensor open", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceSensorChangeTimeProperty = { - key: types_1.CommandType.CMD_ENTRY_SENSOR_CHANGE_TIME, - name: PropertyName.DeviceSensorChangeTime, - label: "Sensor change time", - readable: true, - writeable: false, - type: "number", -}; -exports.DeviceMotionSensorPIREventProperty = { - key: types_1.CommandType.CMD_MOTION_SENSOR_PIR_EVT, - name: PropertyName.DeviceMotionSensorPIREvent, - label: "Motion sensor PIR event", - readable: true, - writeable: false, - type: "number", - //TODO: Define states -}; -exports.DeviceBasicLockStatusProperty = { - key: types_1.CommandType.CMD_DOORLOCK_GET_STATE, - name: PropertyName.DeviceLockStatus, - label: "Lock status", - readable: true, - writeable: false, - type: "number", - states: { - 1: "1", //TODO: Finish naming of states - 2: "2", - 3: "Unlocked", - 4: "Locked", - 5: "Mechanical anomaly", - 6: "6", - 7: "7", - } -}; -exports.DeviceAdvancedLockStatusProperty = { - ...exports.DeviceBasicLockStatusProperty, - key: types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, -}; -exports.DevicePictureUrlProperty = { - key: "cover_path", - name: PropertyName.DevicePictureUrl, - label: "Last Camera Picture URL", - readable: true, - writeable: false, - type: "string", -}; -exports.DeviceMotionHB3DetectionTypeHumanProperty = { - key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - name: PropertyName.DeviceMotionDetectionTypeHuman, - label: "Motion Detection Type Human", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionDetectionTypeHumanWallLightProperty = { - ...exports.DeviceMotionHB3DetectionTypeHumanProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN, -}; -exports.DeviceMotionHB3DetectionTypeHumanRecognitionProperty = { - key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - name: PropertyName.DeviceMotionDetectionTypeHumanRecognition, - label: "Motion Detection Type Human Recognition", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionHB3DetectionTypePetProperty = { - key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - name: PropertyName.DeviceMotionDetectionTypePet, - label: "Motion Detection Type Pet", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionHB3DetectionTypeVehicleProperty = { - key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - name: PropertyName.DeviceMotionDetectionTypeVehicle, - label: "Motion Detection Type Vehicle", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty = { - key: types_1.CommandType.CMD_SET_MOTION_DETECTION_TYPE_HB3, - name: PropertyName.DeviceMotionDetectionTypeAllOtherMotions, - label: "Motion Detection Type All Other Motions", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty = { - ...exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL, -}; -exports.DeviceMotionDetectionTypeProperty = { - key: types_1.CommandType.CMD_DEV_PUSHMSG_MODE, - name: PropertyName.DeviceMotionDetectionType, - label: "Motion Detection Type", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Humans only", - 2: "All motions", - }, -}; -exports.DeviceMotionDetectionTypeT8200XProperty = { - ...exports.DeviceMotionDetectionTypeProperty, - key: types_1.CommandType.CMD_SET_DETECT_TYPE, -}; -exports.DeviceMotionDetectionCamera1Property = { - ...exports.DeviceMotionDetectionTypeProperty, - states: { - 0: "Person Alerts", - 1: "Facial Alerts", - 2: "All Alerts", - }, -}; -exports.DeviceMotionDetectionTypeFloodlightT8423Property = { - ...exports.DeviceMotionDetectionTypeProperty, - states: { - 2: "All motions", - 6: "Humans only", - }, -}; -exports.DeviceMotionDetectionTypeFloodlightProperty = { - ...exports.DeviceMotionDetectionTypeProperty, - key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, - states: { - 1: "Humans only", - 5: "All motions", - }, -}; -exports.DeviceMotionDetectionTypeIndoorProperty = { - ...exports.DeviceMotionDetectionTypeProperty, - key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, - states: { - 1: "Person", - 2: "Pet", - 3: "Person and Pet", - 4: "All other motions", - 5: "Person and all other motions", - 6: "Pet and all other motions", - 7: "Person, Pet and all other motions", - }, -}; -exports.DeviceMotionDetectionTypeIndoorS350Property = { - ...exports.DeviceMotionDetectionTypeProperty, - key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE, - states: { - 3: "Person", - 4: "All other motions", - 5: "Person and all other motions", - 6: "Pet and all other motions", - 7: "Person, Pet and all other motions", - }, -}; -exports.DeviceMotionDetectionTypeIndoorMiniProperty = { - ...exports.DeviceMotionDetectionTypeIndoorProperty, - states: { - 1: "Person", - 4: "All other motions", - 5: "Person and all other motions", - }, -}; -exports.DeviceMotionDetectionSensitivityCamera2Property = { - key: types_1.CommandType.CMD_SET_PIRSENSITIVITY, - name: PropertyName.DeviceMotionDetectionSensitivity, - label: "Motion Detection Sensitivity", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 7, -}; -exports.DeviceMotionDetectionSensitivityCamera1Property = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - min: 1, - max: 100, - steps: 1, -}; -exports.DeviceMotionDetectionSensitivityIndoorProperty = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - key: types_1.CommandType.CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX, - min: 1, - max: 5, -}; -exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - key: types_1.CommandType.CMD_SET_MOTION_SENSITIVITY, - min: 1, - max: 5, -}; -exports.DeviceMotionDetectionSensitivityDoorbellE340Property = { - ...exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - key: types_1.CommandType.CMD_SET_MOTION_SENSITIVITY, - min: 1, - max: 7, -}; -exports.DeviceMotionDetectionSensitivityWiredDoorbellProperty = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - key: "custom_motionDetectionSensitivity", - min: 1, - max: 5, -}; -exports.DeviceMotionDetectionSensitivitySoloProperty = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - key: types_1.CommandType.CMD_SET_PIR_SENSITIVITY, -}; -exports.DeviceMotionDetectionSensitivityFloodlightT8420Property = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - key: types_1.CommandType.CMD_SET_MDSENSITIVITY, - min: 1, - max: 5, -}; -exports.DeviceMotionDetectionSensitivityGarageCameraProperty = { - ...exports.DeviceMotionDetectionSensitivityCamera2Property, - key: types_1.CommandType.CMD_SET_MOTION_SENSITIVITY, - min: 0, - max: 4, -}; -exports.DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty = { - key: ParamType.DETECT_MOTION_SENSITIVE, - name: PropertyName.DeviceHiddenMotionDetectionSensitivity, - label: "HIDDEN Motion Detection Sensitivity", - readable: true, - writeable: false, - type: "number", - min: 1, - max: 3, -}; -exports.DeviceHiddenMotionDetectionModeWiredDoorbellProperty = { - key: ParamType.DETECT_MODE, - name: PropertyName.DeviceHiddenMotionDetectionMode, - label: "HIDDEN Motion Detection Mode", - readable: true, - writeable: false, - type: "number", - min: 1, - max: 3, -}; -exports.DeviceMotionZoneProperty = { - key: types_1.CommandType.CMD_INDOOR_DET_SET_ACTIVE_ZONE, - name: PropertyName.DeviceMotionZone, - label: "Motion Detection Zone", - readable: true, - writeable: true, - type: "object", - default: { - polygens: [] - }, - isValidObject: (obj) => { - if (typeof obj === "object" && "polygens" in obj) { - if (Array.isArray(obj.polygens)) { - return (obj.polygens.length > 0 && - obj.polygens.every((value) => { - return typeof value === "object" && - "points" in value && - Array.isArray(value.points) && - value.points.length > 0 && - value.points.every((point) => { - return typeof point === "object" && - "x" in point && - "y" in point && - typeof point.x === "number" && - typeof point.y === "number"; - }); - })) || obj.polygens.length === 0; - } - } - return false; - } -}; -exports.DeviceFloodlightLightProperty = { - key: types_1.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH, - name: PropertyName.DeviceLight, - label: "Light", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceFloodlightLightSettingsEnableProperty = { - key: types_1.CommandType.CMD_SET_FLOODLIGHT_TOTAL_SWITCH, - name: PropertyName.DeviceLightSettingsEnable, - label: "Light Enable", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceFloodlightLightSettingsBrightnessManualProperty = { - key: types_1.CommandType.CMD_SET_FLOODLIGHT_BRIGHT_VALUE, - name: PropertyName.DeviceLightSettingsBrightnessManual, - label: "Light Brightness Manual", - readable: true, - writeable: true, - type: "number", - min: 0, - max: 100, -}; -exports.DeviceLightSettingsBrightnessManualCamera3Property = { - ...exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - states: { - 40: "Low", - 70: "Medium", - 100: "High", - }, -}; -exports.DeviceCameraLightSettingsBrightnessManualProperty = { - ...exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - min: 40, - default: 100, -}; -exports.DeviceCameraLightSettingsBrightnessManualWalllightS120Property = { - ...exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - min: 10, - default: 100, -}; -exports.DeviceFloodlightLightSettingsBrightnessMotionProperty = { - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR, - name: PropertyName.DeviceLightSettingsBrightnessMotion, - label: "Light Brightness Motion", - readable: true, - writeable: true, - type: "number", - min: 0, - max: 100, -}; -exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property = { - ...exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, -}; -exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty = { - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH, - name: PropertyName.DeviceLightSettingsBrightnessSchedule, - label: "Light Brightness Schedule", - readable: true, - writeable: true, - type: "number", - min: 0, - max: 100, -}; -exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property = { - ...exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425, -}; -exports.DeviceFloodlightLightSettingsMotionTriggeredProperty = { - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_PIR_SWITCH, - name: PropertyName.DeviceLightSettingsMotionTriggered, - label: "Light Motion Triggered Enable", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property = { - ...exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425 -}; -exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty = { - key: types_1.CommandType.CMD_SET_PIRSENSITIVITY, - name: PropertyName.DeviceLightSettingsMotionTriggeredDistance, - label: "Light Motion Triggered Distance", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Min", - 2: "Low", - 3: "Medium", - 4: "High", - 5: "Max", - }, -}; -exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty = { - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_PIR_TIME, - name: PropertyName.DeviceLightSettingsMotionTriggeredTimer, - label: "Light Motion Triggered Timer", - readable: true, - writeable: true, - type: "number", - unit: "sec", - states: { - 30: "30 sec.", - 60: "1 min.", - 180: "3 min.", - 300: "5 min.", - 900: "15 min.", - }, -}; -exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property = { - ...exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, -}; -exports.DeviceMicrophoneProperty = { - key: types_1.CommandType.CMD_SET_DEV_MIC_MUTE, - name: PropertyName.DeviceMicrophone, - label: "Microphone", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceSpeakerProperty = { - key: types_1.CommandType.CMD_SET_DEV_SPEAKER_MUTE, - name: PropertyName.DeviceSpeaker, - label: "Speaker", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAudioRecordingProperty = { - key: types_1.CommandType.CMD_SET_AUDIO_MUTE_RECORD, - name: PropertyName.DeviceAudioRecording, - label: "Audio Recording", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAudioRecordingIndoorSoloFloodlightProperty = { - ...exports.DeviceAudioRecordingProperty, - key: types_1.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, -}; -exports.DeviceAudioRecordingStarlight4gLTEProperty = { - ...exports.DeviceAudioRecordingProperty, - commandId: types_1.CommandType.CMD_INDOOR_SET_RECORD_AUDIO_ENABLE, -}; -exports.DeviceAudioRecordingWiredDoorbellProperty = { - ...exports.DeviceAudioRecordingProperty, - key: ParamType.DOORBELL_AUDIO_RECODE, - commandId: ParamType.COMMAND_AUDIO_RECORDING, -}; -exports.DeviceAudioRecordingFloodlightT8420Property = { - ...exports.DeviceAudioRecordingProperty, - key: types_1.CommandType.CMD_RECORD_AUDIO_SWITCH, -}; -exports.DeviceMotionTrackingProperty = { - key: types_1.CommandType.CMD_INDOOR_PAN_MOTION_TRACK, - name: PropertyName.DeviceMotionTracking, - label: "Motion Tracking", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceSpeakerVolumeProperty = { - key: types_1.CommandType.CMD_SET_DEV_SPEAKER_VOLUME, - name: PropertyName.DeviceSpeakerVolume, - label: "Speaker Volume", - readable: true, - writeable: true, - type: "number", - states: { - 90: "Low", - 92: "Medium", - 93: "High" - }, -}; -exports.DeviceSpeakerVolumeSoloProperty = { - ...exports.DeviceSpeakerVolumeProperty, - states: { - 70: "Low", - 80: "Medium", - 100: "High" - }, -}; -exports.DeviceSpeakerVolumeCamera3Property = { - ...exports.DeviceSpeakerVolumeProperty, - states: { - 90: "Low", - 95: "Medium", - 100: "High" - }, -}; -exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty = { - key: types_1.CommandType.CMD_SET_DEV_SPEAKER_VOLUME, - name: PropertyName.DeviceSpeakerVolume, - label: "Speaker Volume", - readable: true, - writeable: true, - type: "number", - min: 0, - max: 100, -}; -exports.DeviceSpeakerVolumeWiredDoorbellProperty = { - ...exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - key: ParamType.VOLUME, - max: 169, -}; -exports.DeviceSpeakerVolumeFloodlightT8420Property = { - ...exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - min: 1, - max: 63, -}; -exports.DeviceSpeakerVolumeWalllightProperty = { - ...exports.DeviceSpeakerVolumeProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_SPEAKER_VOLUME, - states: { - 1: "Low", - 2: "Medium", - 3: "High" - }, -}; -exports.DeviceSpeakerVolumeSmartDropProperty = { - ...exports.DeviceSpeakerVolumeProperty, - states: { - 75: "Low", - 85: "Medium", - 100: "High" - }, -}; -exports.DeviceRingtoneVolumeBatteryDoorbellProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME, - name: PropertyName.DeviceRingtoneVolume, - label: "Ringtone Volume", - readable: true, - writeable: true, - type: "number", - min: 0, - max: 100, -}; -exports.DeviceRingtoneVolumeWiredDoorbellProperty = { - ...exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - key: ParamType.RINGING_VOLUME, - commandId: ParamType.COMMAND_RINGTONE_VOLUME, -}; -exports.DeviceRingtoneVolumeT8200XProperty = { - ...exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - key: types_1.CommandType.CMD_T8200X_SET_RINGTONE_VOLUME, -}; -exports.DevicePowerSourceProperty = { - key: types_1.CommandType.CMD_SET_POWER_CHARGE, - name: PropertyName.DevicePowerSource, - label: "Power Source", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Battery", - 1: "Solar Panel", - }, -}; -exports.DevicePowerWorkingModeProperty = { - key: types_1.CommandType.CMD_SET_PIR_POWERMODE, - name: PropertyName.DevicePowerWorkingMode, - label: "Power Working Mode", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Optimal Battery Life", - 1: "Optimal Surveillance", - 2: "Custom Recording", - }, -}; -exports.DevicePowerWorkingModeSmartDropProperty = { - key: types_1.CommandType.CMD_SET_PIR_POWERMODE, - name: PropertyName.DevicePowerWorkingMode, - label: "Power Working Mode", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Optimal Battery Life", - 1: "Optimal Surveillance", - 2: "Custom Recording", - 4: "Delivery Mode", - }, -}; -exports.DevicePowerWorkingModeBatteryDoorbellProperty = { - ...exports.DevicePowerWorkingModeProperty, - states: { - 0: "Balance Surveillance", - 1: "Optimal Surveillance", - 2: "Custom Recording", - 3: "Optimal Battery Life", - }, -}; -exports.DeviceChargingStatusProperty = { - key: types_1.CommandType.SUB1G_REP_UNPLUG_POWER_LINE, - name: PropertyName.DeviceChargingStatus, - label: "Charging Status", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Not Charging", - 1: "Charging", - }, -}; -exports.DeviceRecordingClipLengthProperty = { - key: types_1.CommandType.CMD_DEV_RECORD_TIMEOUT, - name: PropertyName.DeviceRecordingClipLength, - label: "Recording Clip Length", - readable: true, - writeable: true, - type: "number", - min: 5, - max: 120, - default: 60, - unit: "sec" -}; -exports.DeviceRecordingClipLengthFloodlightProperty = { - ...exports.DeviceRecordingClipLengthProperty, - min: 30, - max: 120, - default: 100, -}; -exports.DeviceRecordingClipLengthWalllightProperty = { - ...exports.DeviceRecordingClipLengthProperty, - min: 30, - max: 120, - default: 60, -}; -exports.DeviceRecordingClipLengthWalllightS120Property = { - ...exports.DeviceRecordingClipLengthProperty, - min: 10, - max: 60, - default: 30, -}; -exports.DeviceRecordingClipLengthOutdoorPTProperty = { - ...exports.DeviceRecordingClipLengthProperty, - min: 10, - max: 120, - default: 60, -}; -exports.DeviceRecordingRetriggerIntervalProperty = { - key: types_1.CommandType.CMD_DEV_RECORD_INTERVAL, - name: PropertyName.DeviceRecordingRetriggerInterval, - label: "Recording Retrigger Interval", - readable: true, - writeable: true, - type: "number", - unit: "sec", - min: 5, - max: 60, - default: 5, -}; -exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty = { - ...exports.DeviceRecordingRetriggerIntervalProperty, - min: 2, - max: 60, - default: 2, -}; -exports.DeviceRecordingRetriggerIntervalFloodlightProperty = { - ...exports.DeviceRecordingRetriggerIntervalProperty, - min: 0, - max: 30, - default: 0, -}; -exports.DeviceRecordingEndClipMotionStopsProperty = { - key: types_1.CommandType.CMD_DEV_RECORD_AUTOSTOP, - name: PropertyName.DeviceRecordingEndClipMotionStops, - label: "Recording end clip early if motion stops", - readable: true, - writeable: true, - type: "boolean", - default: true, -}; -exports.DeviceVideoStreamingQualityProperty = { - key: ParamType.DOORBELL_VIDEO_QUALITY, - name: PropertyName.DeviceVideoStreamingQuality, - label: "Video Streaming Quality", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Auto", - 1: "Low", - 2: "Medium", - 3: "High", - }, - commandId: ParamType.COMMAND_VIDEO_QUALITY, -}; -exports.DeviceVideoStreamingQualityBatteryDoorbellProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY, - name: PropertyName.DeviceVideoStreamingQuality, - label: "Video Streaming Quality", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Auto / Low Encoding", - 1: "Low / Low Encoding", - 2: "Medium / Low Encoding", - 3: "High / Low Encoding", - 5: "Auto / High Encoding", - 6: "Low / High Encoding", - 7: "Medium / High Encoding", - 8: "High / High Encoding", - }, -}; -exports.DeviceVideoStreamingQualityCameraProperty = { - ...exports.DeviceVideoStreamingQualityProperty, - key: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY, -}; -exports.DeviceVideoStreamingQualitySoloProperty = { - ...exports.DeviceVideoStreamingQualityProperty, - key: types_1.CommandType.CMD_SET_RESOLUTION, - commandId: ParamType.COMMAND_VIDEO_QUALITY, -}; -exports.DeviceVideoStreamingQualityWalllightProperty = { - ...exports.DeviceVideoStreamingQualitySoloProperty, - commandId: types_1.CommandType.CMD_SET_RESOLUTION, -}; -exports.DeviceVideoStreamingQualityCamera3Property = { - ...exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, - states: { - 5: "Auto", - 6: "Low", - 7: "Medium", - 8: "High", - 10: "Ultra 4K" - }, -}; -exports.DeviceVideoStreamingQualityCameraProfessionalProperty = { - ...exports.DeviceVideoStreamingQualityCamera3Property, - states: { - 5: "Auto", - 6: "720P", - 7: "1080P", - 8: "2K", - 10: "Ultra 4K" - }, -}; -exports.DeviceVideoStreamingQualityDoorbellE340Property = { - ...exports.DeviceVideoStreamingQualityProperty, - key: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2, - commandId: types_1.CommandType.CMD_BAT_DOORBELL_VIDEO_QUALITY2, -}; -exports.DeviceVideoStreamingQualityS350Property = { - ...exports.DeviceVideoStreamingQualityDoorbellE340Property, - states: { - 0: "Auto", - 1: "HD (720P)", - 2: "Full HD (1080P)", - 3: "2K HD", - 4: "Ultra 4K" - }, -}; -exports.DeviceVideoStreamingQualityS340Property = { - ...exports.DeviceVideoStreamingQualityDoorbellE340Property, - states: { - 0: "Auto", - 1: "HD (720P)", - 2: "Full HD (1080P)", - 3: "3K HD", - }, -}; -exports.DeviceVideoStreamingQualitySmartDropProperty = { - ...exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, - states: { - 0: "Auto", - 1: "Low", - 2: "Medium", - 3: "High", - }, -}; -exports.DeviceVideoRecordingQualityIndoorProperty = { - key: ParamType.DOORBELL_RECORD_QUALITY, - name: PropertyName.DeviceVideoRecordingQuality, - label: "Video Recording Quality", - readable: true, - writeable: true, - type: "number", - states: { - 2: "Full HD (1080P)", - 3: "2K HD", - }, - commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, -}; -exports.DeviceVideoRecordingQualityWiredDoorbellProperty = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: ParamType.DOORBELL_RECORD_QUALITY, - states: { - 1: "Storage Saver (1600 * 1200)", - 2: "Full HD (1600 * 1200)", - 3: "2K HD (2560 * 1920)", - }, - commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, -}; -exports.DeviceVideoRecordingQualityProperty = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: types_1.CommandType.CMD_SET_RECORD_QUALITY, - states: { - 2: "Full HD (1080P)", - 3: "2K HD", - }, - commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, -}; -exports.DeviceVideoRecordingQualityDoorbellE340Property = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: types_1.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2, - states: { - 2: "Full HD (1080P)", - 3: "2K HD", - }, - commandId: types_1.CommandType.CMD_BAT_DOORBELL_RECORD_QUALITY2, -}; -exports.DeviceVideoRecordingQualityS340Property = { - ...exports.DeviceVideoRecordingQualityDoorbellE340Property, - states: { - 1: "HD (720P)", - 2: "Full HD (1080P)", - 3: "3K HD", - }, -}; -exports.DeviceVideoRecordingQualityS350Property = { - ...exports.DeviceVideoRecordingQualityDoorbellE340Property, - states: { - 1: "HD (720P)", - 2: "Full HD (1080P)", - 3: "2K HD", - 4: "Ultra 4K", - }, -}; -exports.DeviceVideoRecordingQualityWalllightProperty = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: types_1.CommandType.CMD_SET_RECORD_QUALITY, - states: { - 2: "Full HD (1080P)", - 3: "2K HD", - }, - commandId: types_1.CommandType.CMD_SET_RECORD_QUALITY, -}; -exports.DeviceVideoRecordingQualityT8200XProperty = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: types_1.CommandType.CMD_SET_RECORD_QUALITY, - states: { - 2: "Full HD (1600 * 1200)", - 3: "2K HD (2048 * 1536)", - }, - commandId: ParamType.COMMAND_VIDEO_RECORDING_QUALITY, -}; -exports.DeviceVideoRecordingQualityCamera2CProProperty = { - ...exports.DeviceVideoRecordingQualityProperty, - states: { - 1: "2K HD", - 2: "Full HD (1080P)", - }, -}; -exports.DeviceVideoRecordingQualityCamera3Property = { - ...exports.DeviceVideoRecordingQualityProperty, - states: { - 1: "2K HD", - 2: "Full HD (1080P)", - 3: "Ultra 4K", - }, -}; -exports.DeviceVideoRecordingQualitySoloProperty = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: types_1.IndoorSoloSmartdropCommandType.CMD_VIDEO_RECORD_QUALITY, - states: { - 2: "Full HD (1080P)", - 3: "2K HD", - }, - commandId: types_1.CommandType.CMD_SET_RECORD_QUALITY, -}; -exports.DeviceVideoRecordingQualitySoloCamerasHB3Property = { - ...exports.DeviceVideoRecordingQualityWalllightProperty, - states: { - 1: "2K HD", - 2: "Full HD (1080P)", - }, -}; -exports.DeviceVideoRecordingQualityT8530Property = { - ...exports.DeviceVideoRecordingQualityIndoorProperty, - key: types_1.CommandType.CMD_SET_RECORD_QUALITY, - states: { - 1: "2K HD", - 2: "Full HD", - 3: "Storage Saver", - }, - commandId: types_1.CommandType.CMD_SET_RECORD_QUALITY, -}; -exports.DeviceWDRProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_WDR_SWITCH, - name: PropertyName.DeviceVideoWDR, - label: "WDR", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceChimeIndoorBatteryDoorbellProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH, - name: PropertyName.DeviceChimeIndoor, - label: "Indoor Chime Enabled", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceChimeIndoorWiredDoorbellProperty = { - ...exports.DeviceChimeIndoorBatteryDoorbellProperty, - key: ParamType.CHIME_STATE, - commandId: ParamType.COMMAND_INDOOR_CHIME, -}; -exports.DeviceChimeIndoorT8200XProperty = { - ...exports.DeviceChimeIndoorBatteryDoorbellProperty, - key: ParamType.COMMAND_INDOOR_CHIME, - commandId: ParamType.COMMAND_INDOOR_CHIME, -}; -exports.DeviceChimeHomebaseBatteryDoorbellProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_CHIME_SWITCH, - name: PropertyName.DeviceChimeHomebase, - label: "Homebase Chime Enabled", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_DINGDONG_V, - name: PropertyName.DeviceChimeHomebaseRingtoneVolume, - label: "Homebase Chime Ringtone Volume", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 26, -}; -exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_DINGDONG_R, - name: PropertyName.DeviceChimeHomebaseRingtoneType, - label: "Homebase Chime Ringtone Type", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Default", - 1: "Silent", - 2: "Beacon", - 3: "Chord", - 4: "Christmas", - 5: "Circuit", - 6: "Clock", - 7: "Ding", - 8: "Hillside", - 9: "Presto", - }, -}; -exports.DeviceNotificationTypeProperty = { - key: types_1.CommandType.CMD_SET_PUSH_EFFECT, - name: PropertyName.DeviceNotificationType, - label: "Notification Type", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Most Efficient", - 2: "Include Thumbnail", - 3: "Full Effect", - }, - commandId: types_1.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, -}; -exports.DeviceNotificationTypeIndoorFloodlightProperty = { - ...exports.DeviceNotificationTypeProperty, - key: types_1.CommandType.CMD_INDOOR_PUSH_NOTIFY_TYPE, -}; -exports.DeviceNotificationTypeBatteryDoorbellProperty = { - ...exports.DeviceNotificationTypeProperty, - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, -}; -exports.DeviceNotificationTypeWiredDoorbellProperty = { - ...exports.DeviceNotificationTypeProperty, - key: ParamType.DOORBELL_MOTION_NOTIFICATION, - commandId: ParamType.COMMAND_NOTIFICATION_TYPE, -}; -exports.DeviceNotificationTypeWalllightProperty = { - ...exports.DeviceNotificationTypeProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE, - commandId: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE, - states: { - 1: "Text Only", - 2: "With Thumbnail", - }, -}; -exports.DeviceRotationSpeedProperty = { - key: types_1.CommandType.CMD_INDOOR_PAN_SPEED, - name: PropertyName.DeviceRotationSpeed, - label: "Rotation Speed", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Min", - 2: "Low", - 3: "Medium", - 4: "High", - 5: "Max", - }, - default: 3 -}; -exports.DeviceImageMirroredProperty = { - key: types_1.CommandType.CMD_SET_MIRRORMODE, - name: PropertyName.DeviceImageMirrored, - label: "Image vertically mirrored", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceSoundDetectionTypeProperty = { - key: types_1.CommandType.CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE, - name: PropertyName.DeviceSoundDetectionType, - label: "Sound Detection Type", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Crying", - 2: "All Sounds", - }, -}; -exports.DeviceSoundDetectionTypeS350Property = { - ...exports.DeviceSoundDetectionTypeProperty, - states: { - 128: "All Sounds", - 256: "Crying", - }, -}; -exports.DeviceSoundDetectionSensitivityProperty = { - key: types_1.CommandType.CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX, - name: PropertyName.DeviceSoundDetectionSensitivity, - label: "Sound Detection Sensitivity", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Min", - 2: "Low", - 3: "Medium", - 4: "High", - 5: "Max", - }, -}; -exports.DeviceNotificationPersonProperty = { - key: types_1.CommandType.CMD_INDOOR_AI_PERSON_ENABLE, - name: PropertyName.DeviceNotificationPerson, - label: "Notification Person detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationPersonWalllightProperty = { - ...exports.DeviceNotificationPersonProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN, -}; -exports.DeviceNotificationPetProperty = { - key: types_1.CommandType.CMD_INDOOR_AI_PET_ENABLE, - name: PropertyName.DeviceNotificationPet, - label: "Notification Pet detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationAllOtherMotionProperty = { - key: types_1.CommandType.CMD_INDOOR_AI_MOTION_ENABLE, - name: PropertyName.DeviceNotificationAllOtherMotion, - label: "Notification All Other Motion", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationAllOtherMotionWalllightProperty = { - ...exports.DeviceNotificationAllOtherMotionProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL, -}; -exports.DeviceNotificationAllSoundProperty = { - key: types_1.CommandType.CMD_INDOOR_AI_SOUND_ENABLE, - name: PropertyName.DeviceNotificationAllSound, - label: "Notification Sound detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationCryingProperty = { - key: types_1.CommandType.CMD_INDOOR_AI_CRYING_ENABLE, - name: PropertyName.DeviceNotificationCrying, - label: "Notification Crying detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationRingProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - name: PropertyName.DeviceNotificationRing, - label: "Notification Ring detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationRingWiredDoorbellProperty = { - ...exports.DeviceNotificationRingProperty, - key: ParamType.DOORBELL_NOTIFICATION_OPEN, - commandId: ParamType.COMMAND_NOTIFICATION_RING, -}; -exports.DeviceNotificationMotionProperty = { - key: types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE, - name: PropertyName.DeviceNotificationMotion, - label: "Notification Motion detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationRadarDetectorProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT, - name: PropertyName.DeviceNotificationRadarDetector, - label: "Notification Radar Detector Motion detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationMotionWiredDoorbellProperty = { - ...exports.DeviceNotificationMotionProperty, - key: ParamType.DOORBELL_NOTIFICATION_OPEN, - commandId: ParamType.COMMAND_NOTIFICATION_RING, -}; -exports.DeviceChirpVolumeEntrySensorProperty = { - key: types_1.CommandType.CMD_SENSOR_SET_CHIRP_VOLUME, - name: PropertyName.DeviceChirpVolume, - label: "Chirp Volume", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 26, - steps: 1, -}; -exports.DeviceChirpToneEntrySensorProperty = { - key: types_1.CommandType.CMD_SENSOR_SET_CHIRP_TONE, - name: PropertyName.DeviceChirpTone, - label: "Chirp Tone", - readable: true, - writeable: true, - type: "number", - states: { - 0: "None", - 1: "Water", - 2: "Classic", - 3: "Light", - 4: "Ding", - } -}; -exports.DeviceVideoHDRWiredDoorbellProperty = { - key: ParamType.DOORBELL_HDR, - name: PropertyName.DeviceVideoHDR, - label: "HDR", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceVideoDistortionCorrectionWiredDoorbellProperty = { - key: ParamType.DOORBELL_DISTORTION, - name: PropertyName.DeviceVideoDistortionCorrection, - label: "Distortion Correction", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceVideoRingRecordWiredDoorbellProperty = { - key: ParamType.DOORBELL_RING_RECORD, - name: PropertyName.DeviceVideoRingRecord, - label: "Record while live viewing after opening notification", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Disabled", - 1: "Enabled - Recording Quality Preferred", - 2: "Enabled - Streaming Quality Preferred", - } -}; -exports.DeviceMotionDetectionRangeProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE, - name: PropertyName.DeviceMotionDetectionRange, - label: "Motion Detection Range", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Standard", - 1: "Advanced", - 2: "Automatic", - }, -}; -exports.DeviceMotionDetectionRangeT8425Property = { - ...exports.DeviceMotionDetectionRangeProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, -}; -exports.DeviceMotionDetectionRangeStandardSensitivityProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionRangeStandardSensitivity, - label: "Motion Detection Range Standard Sensitivity", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 1: "Min", - 2: "Low", - 3: "Medium", - 4: "High", - 5: "Max", - }, -}; -exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property = { - ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, -}; -exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty = { - ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity, - label: "Motion Detection Range Advanced Left Sensitivity", -}; -exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property = { - ...exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, -}; -exports.DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty = { - ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity, - label: "Motion Detection Range Advanced Middle Sensitivity", -}; -exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty = { - ...exports.DeviceMotionDetectionRangeStandardSensitivityProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity, - label: "Motion Detection Range Advanced Right Sensitivity", -}; -exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property = { - ...exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, -}; -exports.DeviceMotionDetectionTestModeProperty = { - key: types_1.CommandType.CMD_SET_PIR_TEST_MODE, - name: PropertyName.DeviceMotionDetectionTestMode, - label: "Motion Detection Test Mode", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionDetectionTestModeT8425Property = { - ...exports.DeviceMotionDetectionTestModeProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425, -}; -exports.DeviceMotionTrackingSensitivityProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY, - name: PropertyName.DeviceMotionTrackingSensitivity, - label: "Motion Tracking Sensitivity", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Level 1", - 2: "Level 2", - 3: "Level 3", - }, - default: 3, -}; -exports.DeviceMotionAutoCruiseProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE, - name: PropertyName.DeviceMotionAutoCruise, - label: "Motion Auto-Cruise", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceMotionOutOfViewDetectionProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION, - name: PropertyName.DeviceMotionOutOfViewDetection, - label: "Motion Out-of-View Detection", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceLightSettingsColorTemperatureManualProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL, - name: PropertyName.DeviceLightSettingsColorTemperatureManual, - label: "Light Setting Color Temperature Manual", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 100, - default: 50, -}; -exports.DeviceLightSettingsColorTemperatureMotionProperty = { - ...exports.DeviceLightSettingsColorTemperatureManualProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION, - name: PropertyName.DeviceLightSettingsColorTemperatureMotion, - label: "Light Setting Color Temperature Motion", -}; -exports.DeviceLightSettingsColorTemperatureScheduleProperty = { - ...exports.DeviceLightSettingsColorTemperatureManualProperty, - key: types_1.CommandType.CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE, - name: PropertyName.DeviceLightSettingsColorTemperatureSchedule, - label: "Light Setting Color Temperature Schedule", -}; -exports.DeviceLightSettingsMotionActivationModeProperty = { - key: types_1.CommandType.CMD_SET_FLOODLIGHT_STREET_LAMP, - name: PropertyName.DeviceLightSettingsMotionActivationMode, - label: "Light Settings Motion Activation Mode", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Smart", - 1: "Fast", - }, -}; -exports.DeviceLightSettingsMotionActivationModeT8425Property = { - ...exports.DeviceLightSettingsMotionActivationModeProperty, - key: types_1.CommandType.CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425, -}; -exports.DeviceVideoNightvisionImageAdjustmentProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT, - name: PropertyName.DeviceVideoNightvisionImageAdjustment, - label: "Video Nightvision Image Adjustment", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceVideoColorNightvisionProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION, - name: PropertyName.DeviceVideoColorNightvision, - label: "Video Color Nightvision", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAutoCalibrationProperty = { - key: types_1.CommandType.CMD_FLOODLIGHT_SET_AUTO_CALIBRATION, - name: PropertyName.DeviceAutoCalibration, - label: "Auto Calibration", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAutoLockProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK, - name: PropertyName.DeviceAutoLock, - label: "Auto Lock", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAutoLockTimerProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER, - name: PropertyName.DeviceAutoLockTimer, - label: "Auto Lock Timer", - readable: true, - writeable: true, - type: "number", - states: { - 1: "1 sec.", - 30: "30 sec.", - 60: "1 min.", - 90: "1,5 min.", - 120: "2 min.", - 150: "2,5 min.", - 180: "3 min.", - }, - default: 60, - unit: "sec", -}; -exports.DeviceAutoLockScheduleProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE, - name: PropertyName.DeviceAutoLockSchedule, - label: "Auto Lock Schedule", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceAutoLockScheduleStartTimeProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME, - name: PropertyName.DeviceAutoLockScheduleStartTime, - label: "Auto Lock Schedule Starttime (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "06:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceAutoLockScheduleEndTimeProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME, - name: PropertyName.DeviceAutoLockScheduleEndTime, - label: "Auto Lock Schedule Endtime (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "23:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceOneTouchLockingProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK, - name: PropertyName.DeviceOneTouchLocking, - label: "One-Touch Locking", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceWrongTryProtectionProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT, - name: PropertyName.DeviceWrongTryProtection, - label: "Wrong Try Protection", - readable: true, - writeable: true, - type: "boolean", - default: true, -}; -exports.DeviceWrongTryProtectionSmartSafeProperty = { - ...exports.DeviceWrongTryProtectionProperty, - key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT, -}; -exports.DeviceWrongTryLockdownTimeProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN, - name: PropertyName.DeviceWrongTryLockdownTime, - label: "Wrong Try Lockdown Time", - readable: true, - writeable: true, - type: "number", - states: { - 60: "1 min.", - 120: "2 min.", - 180: "3 min.", - 240: "4 min.", - 300: "5 min.", - }, - default: 180, - unit: "sec", -}; -exports.DeviceWrongTryLockdownTimeSmartSafeProperty = { - ...exports.DeviceWrongTryLockdownTimeProperty, - key: types_1.CommandType.CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS, - default: 60, -}; -exports.DeviceWrongTryAttemptsProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS, - name: PropertyName.DeviceWrongTryAttempts, - label: "Wrong Try Attempts", - readable: true, - writeable: true, - type: "number", - min: 3, - max: 10, - default: 5, -}; -exports.DeviceWrongTryAttemptsSmartSafeProperty = { - ...exports.DeviceWrongTryAttemptsProperty, - key: types_1.CommandType.CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES, - min: 5, - max: 10, - default: 5, -}; -exports.DeviceScramblePasscodeProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE, - name: PropertyName.DeviceScramblePasscode, - label: "Scramble Passcode", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceScramblePasscodeSmartSafeProperty = { - ...exports.DeviceScramblePasscodeProperty, - key: types_1.CommandType.CMD_SMARTSAFE_IS_SET_PREFIX_PWD, - label: "Scramble PIN", -}; -exports.DeviceSoundProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_LOCK_SOUND, - name: PropertyName.DeviceSound, - label: "Sound", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 1: "Low", - 2: "Medium", - 3: "High", - }, - default: 2, -}; -exports.DeviceSoundSimpleProperty = { - ...exports.DeviceSoundProperty, - states: { - 0: "Off", - 2: "On", - }, - default: 2, -}; -exports.DeviceNotificationProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_NOTIFICATION, - name: PropertyName.DeviceNotification, - label: "Notification", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationSmartLockProperty = { - ...exports.DeviceNotificationProperty, - key: types_1.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, -}; -exports.DeviceNotificationWalllightProperty = { - ...exports.DeviceNotificationProperty, - key: types_1.CommandType.CMD_WALL_LIGHT_NOTIFICATION, -}; -exports.DeviceNotificationUnlockedProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_NOTIFICATION_UNLOCKED, - name: PropertyName.DeviceNotificationUnlocked, - label: "Notification Unlocked", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationUnlockedSmartLockProperty = { - ...exports.DeviceNotificationUnlockedProperty, - key: types_1.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, -}; -exports.DeviceNotificationLockedProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_NOTIFICATION_LOCKED, - name: PropertyName.DeviceNotificationLocked, - label: "Notification Locked", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationLockedSmartLockProperty = { - ...exports.DeviceNotificationLockedProperty, - key: types_1.CommandType.CMD_DOORLOCK_SET_PUSH_MODE, -}; -exports.DeviceLoiteringDetectionProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_SWITCH, - name: PropertyName.DeviceLoiteringDetection, - label: "Loitering Detection", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceLoiteringDetectionRangeProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE, - name: PropertyName.DeviceLoiteringDetectionRange, - label: "Loitering Detection Range", - readable: true, - writeable: true, - type: "number", - states: { - 1: "within 2ft", - 2: "within 4ft", - 3: "within 6ft", - 4: "within 8ft", - 5: "within 10ft", - }, - default: 3, -}; -exports.DeviceLoiteringDetectionLengthProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME, - name: PropertyName.DeviceLoiteringDetectionLength, - label: "Loitering Detection Length", - readable: true, - writeable: true, - type: "number", - states: { - 1: "15s", - 2: "20s", - 3: "25s", - 4: "30s", - 5: "45s", - 6: "60s", - }, - default: 1, -}; -exports.DeviceMotionDetectionSensitivityModeProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionSensitivityMode, - label: "Motion Detection Sensitivity Mode", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Standard", - 1: "Advanced", - }, -}; -exports.DeviceMotionDetectionSensitivityStandardProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionSensitivityStandard, - label: "Motion Detection Standard Sensitivity", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 5, - default: 3, -}; -exports.DeviceMotionDetectionSensitivityAdvancedAProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedA, - label: "Motion Detection Advanced Sensitivity A", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 5, - default: 3, -}; -exports.DeviceMotionDetectionSensitivityAdvancedBProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedB, - label: "Motion Detection Advanced Sensitivity B", -}; -exports.DeviceMotionDetectionSensitivityAdvancedCProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedC, - label: "Motion Detection Advanced Sensitivity C", -}; -exports.DeviceMotionDetectionSensitivityAdvancedDProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedD, - label: "Motion Detection Advanced Sensitivity D", -}; -exports.DeviceMotionDetectionSensitivityAdvancedEProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedE, - label: "Motion Detection Advanced Sensitivity E", -}; -exports.DeviceMotionDetectionSensitivityAdvancedFProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedF, - label: "Motion Detection Advanced Sensitivity F", -}; -exports.DeviceMotionDetectionSensitivityAdvancedGProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedG, - label: "Motion Detection Advanced Sensitivity G", -}; -exports.DeviceMotionDetectionSensitivityAdvancedHProperty = { - ...exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - name: PropertyName.DeviceMotionDetectionSensitivityAdvancedH, - label: "Motion Detection Advanced Sensitivity H", -}; -exports.DeviceLoiteringCustomResponsePhoneNotificationProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, - name: PropertyName.DeviceLoiteringCustomResponsePhoneNotification, - label: "Loitering Custom Response Phone Notification", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty = { - ...exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, - name: PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse, - label: "Loitering Custom Response Auto Voice Response", -}; -exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, - name: PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice, - label: "Loitering Custom Response Auto Voice Response Voice", - readable: true, - writeable: true, - type: "number", - default: 1, - // states loaded dynamically -}; -exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty = { - ...exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, - name: PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification, - label: "Loitering Custom Response HomeBase Notification", -}; -exports.DeviceLoiteringCustomResponseTimeFromProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE, - name: PropertyName.DeviceLoiteringCustomResponseTimeFrom, - label: "Loitering Custom Response Time From (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "00:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceLoiteringCustomResponseTimeToProperty = { - ...exports.DeviceLoiteringCustomResponseTimeFromProperty, - name: PropertyName.DeviceLoiteringCustomResponseTimeTo, - label: "Loitering Custom Response Time To (24-hour clock)", - default: "23:59", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceDeliveryGuardProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH, - name: PropertyName.DeviceDeliveryGuard, - label: "Delivery Guard", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceDeliveryGuardPackageGuardingProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH, - name: PropertyName.DeviceDeliveryGuardPackageGuarding, - label: "Delivery Guard Package Guarding", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE, - name: PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice, - label: "Delivery Guard Package Guarding Voice Response Voice", - readable: true, - writeable: true, - type: "number", - default: 2, - // states loaded dynamically -}; -exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME, - name: PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom, - label: "Delivery Guard Package Guarding Activated Time From (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "00:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty = { - ...exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, - name: PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo, - label: "Delivery Guard Package Guarding Activated Time To (24-hour clock)", - default: "23:59", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceDeliveryGuardUncollectedPackageAlertProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH, - name: PropertyName.DeviceDeliveryGuardUncollectedPackageAlert, - label: "Delivery Guard Uncollected Package Alert", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME, - name: PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck, - label: "Delivery Guard Uncollected Package Alert Time To Check (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "20:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH, - name: PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance, - label: "Delivery Guard Package Live Check Assistance", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceDualCamWatchViewModeProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE, - name: PropertyName.DeviceDualCamWatchViewMode, - label: "Dual Cam Watch View Mode", - readable: true, - writeable: true, - type: "number", - states: { - 2: "Top-Left Picture-in-Picture", - 3: "Top-Right Picture-in-Picture", - 4: "Bottom-Left Picture-in-Picture", - 5: "Bottom-Right Picture-in-Picture", - 12: "Split-view", - }, - default: 12, -}; -exports.DeviceDualCamWatchViewModeE340Property = { - ...exports.DeviceDualCamWatchViewModeProperty, - key: types_1.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE2, -}; -exports.DeviceDualCamWatchViewModeS340Property = { - ...exports.DeviceDualCamWatchViewModeProperty, - key: types_1.CommandType.CMD_DOORBELL_DUAL_VIEW_MODE2, - states: { - 0: "Single view", - 12: "Double view", - }, - default: 0, -}; -exports.DeviceRingAutoResponseProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, - name: PropertyName.DeviceRingAutoResponse, - label: "Ring Auto-Response", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceRingAutoResponseVoiceResponseProperty = { - ...exports.DeviceRingAutoResponseProperty, - name: PropertyName.DeviceRingAutoResponseVoiceResponse, - label: "Ring Auto-Response Voice Response", -}; -exports.DeviceRingAutoResponseVoiceResponseVoiceProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, - name: PropertyName.DeviceRingAutoResponseVoiceResponseVoice, - label: "Ring Auto-Response Voice Response Voice", - readable: true, - writeable: true, - type: "number", - default: 2, - // states loaded dynamically -}; -exports.DeviceRingAutoResponseTimeFromProperty = { - key: types_1.CommandType.CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE, - name: PropertyName.DeviceRingAutoResponseTimeFrom, - label: "Ring Auto-Response Time From (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "00:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceRingAutoResponseTimeToProperty = { - ...exports.DeviceRingAutoResponseTimeFromProperty, - name: PropertyName.DeviceRingAutoResponseTimeTo, - label: "Ring Auto-Response Time To (24-hour clock)", - default: "23:59", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceContinuousRecordingProperty = { - key: types_1.CommandType.CMD_INDOOR_SET_CONTINUE_ENABLE, - name: PropertyName.DeviceContinuousRecording, - label: "Continuos Recording", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceContinuousRecordingTypeProperty = { - key: types_1.CommandType.CMD_INDOOR_SET_CONTINUE_TYPE, - name: PropertyName.DeviceContinuousRecordingType, - label: "Continuos Recording Mode", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Always", - 1: "Schedule" - } -}; -exports.DeviceDefaultAngleProperty = { - key: types_1.CommandType.CMD_INDOOR_DEFAULT_ANGLE_ENABLE, - name: PropertyName.DeviceDefaultAngle, - label: "Default Angle", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.DeviceDefaultAngleIdleTimeProperty = { - key: types_1.CommandType.CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME, - name: PropertyName.DeviceDefaultAngleIdleTime, - label: "Default Angle Idle Time", - readable: true, - writeable: true, - type: "number", - states: { - 10: "10s", - 20: "20s", - 40: "40s", - 60: "1 min", - 120: "2 mins", - 300: "5 mins", - }, - default: 60, -}; -exports.DeviceNotificationIntervalTimeProperty = { - key: types_1.CommandType.CMD_DEV_RECORD_INTERVAL, - name: PropertyName.DeviceNotificationIntervalTime, - label: "Notification Interval Time", - readable: true, - writeable: true, - type: "number", - unit: "min", - default: 0, - states: { - 0: "0", - 60: "1", - 120: "2", - 180: "3", - 240: "4", - 300: "5", - } -}; -exports.DeviceSoundDetectionRoundLookProperty = { - key: types_1.CommandType.CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK, - name: PropertyName.DeviceSoundDetectionRoundLook, - label: "Sound Detection Round-Look", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceSoundDetectionRoundLookS350Property = { - key: types_1.CommandType.CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350, - name: PropertyName.DeviceSoundDetectionRoundLook, - label: "Sound Detection Round-Look", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationHomeSecuritySettings = { - key: types_1.CommandType.ARM_DELAY_HOME, - name: PropertyName.StationHomeSecuritySettings, - label: "Security Settings Home", - readable: true, - writeable: false, - type: "string", -}; -exports.StationAwaySecuritySettings = { - key: types_1.CommandType.ARM_DELAY_AWAY, - name: PropertyName.StationAwaySecuritySettings, - label: "Security Settings Away", - readable: true, - writeable: false, - type: "string", -}; -exports.StationCustom1SecuritySettings = { - key: types_1.CommandType.ARM_DELAY_CUS1, - name: PropertyName.StationCustom1SecuritySettings, - label: "Security Settings Custom1", - readable: true, - writeable: false, - type: "string", -}; -exports.StationCustom2SecuritySettings = { - key: types_1.CommandType.ARM_DELAY_CUS2, - name: PropertyName.StationCustom2SecuritySettings, - label: "Security Settings Custom2", - readable: true, - writeable: false, - type: "string", -}; -exports.StationCustom3SecuritySettings = { - key: types_1.CommandType.ARM_DELAY_CUS3, - name: PropertyName.StationCustom3SecuritySettings, - label: "Security Settings Custom3", - readable: true, - writeable: false, - type: "string", -}; -exports.StationOffSecuritySettings = { - key: types_1.CommandType.ARM_DELAY_OFF, - name: PropertyName.StationOffSecuritySettings, - label: "Security Settings Off", - readable: true, - writeable: false, - type: "string", -}; -exports.DevicePackageDeliveredProperty = { - key: "custom_packageDelivered", - name: PropertyName.DevicePackageDelivered, - label: "Package Delivered", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DevicePackageStrandedProperty = { - key: "custom_packageStranded", - name: PropertyName.DevicePackageStranded, - label: "Package Stranded", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DevicePackageTakenProperty = { - key: "custom_packageTaken", - name: PropertyName.DevicePackageTaken, - label: "Package Taken", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceSomeoneLoiteringProperty = { - key: "custom_someoneLoitering", - name: PropertyName.DeviceSomeoneLoitering, - label: "Someone Loitering", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceRadarMotionDetectedProperty = { - key: "custom_radarMotionDetected", - name: PropertyName.DeviceRadarMotionDetected, - label: "Radar Motion Detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceLeftOpenAlarmProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN, - name: PropertyName.DeviceLeftOpenAlarm, - label: "Left Open Alarm", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceLeftOpenAlarmDurationProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_LEFT_OPEN_SECONDS, - name: PropertyName.DeviceLeftOpenAlarmDuration, - label: "Left Open Alarm Duration", - readable: true, - writeable: true, - type: "number", - states: { - 30: "30 sec.", - 60: "60 sec.", - 90: "90 sec.", - 120: "120 sec.", - }, - default: 120, - unit: "sec", -}; -exports.DeviceDualUnlockProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK, - name: PropertyName.DeviceDualUnlock, - label: "Dual Unlock", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DevicePowerSaveProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_POWER_SAVE_ON, - name: PropertyName.DevicePowerSave, - label: "Power Save", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceInteriorBrightnessProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL, - name: PropertyName.DeviceInteriorBrightness, - label: "Interior Brightness Level", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 25: "Low", - 60: "Mid", - 100: "High", - }, - default: 60, -}; -exports.DeviceInteriorBrightnessDurationProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND, - name: PropertyName.DeviceInteriorBrightnessDuration, - label: "Interior Brightness Duration", - readable: true, - writeable: true, - type: "number", - default: 10, - min: 5, - max: 60, - steps: 1, - unit: "sec", -}; -exports.DeviceTamperAlarmProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM, - name: PropertyName.DeviceTamperAlarm, - label: "Tamper Alarm", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Off", - 2: "Tamper Alarm", - 3: "Move Alarm", - }, - default: 2, -}; -exports.DeviceRemoteUnlockProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_REMOTE_OPEN_TYPE, - name: PropertyName.DeviceRemoteUnlock, - label: "Remote Unlock", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceRemoteUnlockMasterPINProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_REMOTE_OPEN_TYPE, - name: PropertyName.DeviceRemoteUnlockMasterPIN, - label: "Remote Unlock Master PIN", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DevicePromptVolumeProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_VOLUME, - name: PropertyName.DevicePromptVolume, - label: "Prompt Volume", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Mute", - 1: "Soft", - 2: "Max", - }, - default: 1, -}; -exports.DeviceAlarmVolumeProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_ALERT_VOLUME, - name: PropertyName.DeviceAlarmVolume, - label: "Alarm Volume", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Low", - 1: "Medium", - 2: "High", - }, - default: 2, -}; -exports.DeviceNotificationUnlockByKeyProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationUnlockByKey, - label: "Notification Unlock By Key", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationUnlockByPINProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationUnlockByPIN, - label: "Notification Unlock By PIN", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationUnlockByFingerprintProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationUnlockByFingerprint, - label: "Notification Unlock By Fingerprint", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationUnlockByAppProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationUnlockByApp, - label: "Notification Unlock By App", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationDualUnlockProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationDualUnlock, - label: "Notification Dual Unlock", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationDualLockProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationDualLock, - label: "Notification Dual Lock", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationWrongTryProtectProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationWrongTryProtect, - label: "Notification Wrong-Try Protect", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationJammedProperty = { - key: types_1.CommandType.CMD_SMARTSAFE_NOTIF, - name: PropertyName.DeviceNotificationJammed, - label: "Notification Jammed", - readable: true, - writeable: false, - type: "boolean", -}; -exports.DeviceJammedAlertProperty = { - key: "custom_jammedAlert", - name: PropertyName.DeviceJammedAlert, - label: "Jammed Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.Device911AlertProperty = { - key: "custom_911Alert", - name: PropertyName.Device911Alert, - label: "911 Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.Device911AlertEventProperty = { - key: "custom_911AlertEvent", - name: PropertyName.Device911AlertEvent, - label: "911 Alert Event", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Cancel Alarm", - 1: "Alarm", - 2: "Alarm Success", - 3: "Alarm Not Open", - 4: "Alarm Open Failed", - }, -}; -exports.DeviceShakeAlertProperty = { - key: "custom_shakeAlert", - name: PropertyName.DeviceShakeAlert, - label: "Shake Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceShakeAlertEventProperty = { - key: "custom_shakeAlertEvent", - name: PropertyName.DeviceShakeAlertEvent, - label: "Shake Alert Event", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Cancel Alarm", - 1: "Alarm", - }, -}; -exports.DeviceLowBatteryAlertProperty = { - key: "custom_lowBatteryAlert", - name: PropertyName.DeviceLowBatteryAlert, - label: "Low Battery Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceLongTimeNotCloseAlertProperty = { - key: "custom_longTimeNotCloseAlert", - name: PropertyName.DeviceLongTimeNotCloseAlert, - label: "Long Time Not Close Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceWrongTryProtectAlertProperty = { - key: "custom_wrongTryProtectAlert", - name: PropertyName.DeviceWrongTryProtectAlert, - label: "Wrong Try-Protect Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceVideoTypeStoreToNASProperty = { - key: types_1.CommandType.CMD_INDOOR_NAS_STORAGE_TYPE, - name: PropertyName.DeviceVideoTypeStoreToNAS, - label: "Video Type Store To NAS", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Events", - 1: "Continuous Recording", - }, -}; -exports.DeviceSnoozeProperty = { - key: types_1.CommandType.CMD_SET_SNOOZE_MODE, - name: PropertyName.DeviceSnooze, - label: "Snooze", - readable: true, - writeable: false, - type: "boolean", -}; -exports.DeviceSnoozeTimeProperty = { - key: types_1.CommandType.CMD_SET_SNOOZE_MODE, - name: PropertyName.DeviceSnoozeTime, - label: "Snooze Time", - readable: true, - writeable: false, - type: "number", - default: 0, - unit: "sec", -}; -exports.DeviceSnoozeStartTimeProperty = { - key: types_1.CommandType.CMD_SET_SNOOZE_MODE, - name: PropertyName.DeviceSnoozeStartTime, - label: "Snooze Start Time", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceSnoozeStartTimeWiredDoorbellProperty = { - ...exports.DeviceSnoozeStartTimeProperty, - key: ParamType.DOORBELL_SNOOZE_START_TIME, -}; -exports.DeviceSnoozeHomebaseProperty = { - key: types_1.CommandType.CMD_SET_SNOOZE_MODE, - name: PropertyName.DeviceSnoozeHomebase, - label: "Snooze Homebase", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceSnoozeMotionProperty = { - key: types_1.CommandType.CMD_SET_SNOOZE_MODE, - name: PropertyName.DeviceSnoozeMotion, - label: "Snooze Motion", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceSnoozeChimeProperty = { - key: types_1.CommandType.CMD_SET_SNOOZE_MODE, - name: PropertyName.DeviceSnoozeChime, - label: "Snooze Chime", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DevicePersonNameProperty = { - key: "custom_personName", - name: PropertyName.DevicePersonName, - label: "Person Name", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceIdentityPersonDetectedProperty = { - key: "custom_identityPersonDetected", - name: PropertyName.DeviceIdentityPersonDetected, - label: "Identity Person detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceStrangerPersonDetectedProperty = { - key: "custom_strangerPersonDetected", - name: PropertyName.DeviceStrangerPersonDetected, - label: "Stranger Person detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceVehicleDetectedProperty = { - key: "custom_vehicleDetected", - name: PropertyName.DeviceVehicleDetected, - label: "Vehicle detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDogDetectedProperty = { - key: "custom_dogDetected", - name: PropertyName.DeviceDogDetected, - label: "Dog detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDogLickDetectedProperty = { - key: "custom_dogLickDetected", - name: PropertyName.DeviceDogLickDetected, - label: "Dog Lick detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDogPoopDetectedProperty = { - key: "custom_dogPoopDetected", - name: PropertyName.DeviceDogPoopDetected, - label: "Dog Poop detected", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDetectionStatisticsWorkingDaysProperty = { - key: types_1.CommandType.CMD_GET_WORKING_DAYS_HB3, - name: PropertyName.DeviceDetectionStatisticsWorkingDays, - label: "Detection Statistics - Working Days", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceDetectionStatisticsDetectedEventsProperty = { - key: types_1.CommandType.CMD_GET_DETECTED_EVENTS_HB3, - name: PropertyName.DeviceDetectionStatisticsDetectedEvents, - label: "Detection Statistics - Detected Events", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DeviceDetectionStatisticsRecordedEventsProperty = { - key: types_1.CommandType.CMD_GET_RECORDED_EVENTS_HB3, - name: PropertyName.DeviceDetectionStatisticsRecordedEvents, - label: "Detection Statistics - Recorded Events", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.DevicePictureProperty = { - key: "custom_picture", - name: PropertyName.DevicePicture, - label: "Last Camera Picture", - readable: true, - writeable: false, - type: "object", - default: null, -}; -exports.DeviceLightSettingsManualDailyLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING, - name: PropertyName.DeviceLightSettingsManualDailyLighting, - label: "Light Setting Manual Daily Lighting Selection", - readable: true, - writeable: true, - type: "number", - states: { - "0": "Cold", - "1": "Warm", - "2": "Very warm", - }, -}; -exports.DeviceLightSettingsManualColoredLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING, - name: PropertyName.DeviceLightSettingsManualColoredLighting, - label: "Light Setting Manual Colored Lighting Selection", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - return typeof obj === "object" && "red" in obj && "green" in obj && "blue" in obj && typeof obj.red === "number" && typeof obj.green === "number" && typeof obj.blue === "number"; - }, -}; -exports.DeviceLightSettingsManualDynamicLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING, - name: PropertyName.DeviceLightSettingsManualDynamicLighting, - label: "Light Setting Manual Dynamic Lighting Selection", - readable: true, - writeable: true, - type: "number", -}; -exports.DeviceLightSettingsManualLightingActiveModeProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE, - name: PropertyName.DeviceLightSettingsManualLightingActiveMode, - label: "Light Setting Manual Lighting Active Mode", - readable: true, - writeable: true, - type: "number", - states: { - "0": "Daily", - "1": "Colored", - "2": "Dynamic", - }, -}; -exports.DeviceLightSettingsMotionDailyLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING, - name: PropertyName.DeviceLightSettingsMotionDailyLighting, - label: "Light Setting Motion Daily Lighting Selection", - readable: true, - writeable: true, - type: "number", - states: { - "0": "Cold", - "1": "Warm", - "2": "Very warm", - }, -}; -exports.DeviceLightSettingsMotionColoredLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING, - name: PropertyName.DeviceLightSettingsMotionColoredLighting, - label: "Light Setting Motion Colored Lighting Selection", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - return typeof obj === "object" && "red" in obj && "green" in obj && "blue" in obj && typeof obj.red === "number" && typeof obj.green === "number" && typeof obj.blue === "number"; - }, -}; -exports.DeviceLightSettingsMotionDynamicLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING, - name: PropertyName.DeviceLightSettingsMotionDynamicLighting, - label: "Light Setting Motion Dynamic Lighting Selection", - readable: true, - writeable: true, - type: "number", -}; -exports.DeviceLightSettingsMotionLightingActiveModeProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE, - name: PropertyName.DeviceLightSettingsMotionLightingActiveMode, - label: "Light Setting Motion Lighting Active Mode", - readable: true, - writeable: true, - type: "number", - states: { - "0": "Daily", - "1": "Colored", - "2": "Dynamic", - }, -}; -exports.DeviceLightSettingsScheduleDailyLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING, - name: PropertyName.DeviceLightSettingsScheduleDailyLighting, - label: "Light Setting Schedule Daily Lighting Selection", - readable: true, - writeable: true, - type: "number", - states: { - "0": "Cold", - "1": "Warm", - "2": "Very warm", - }, -}; -exports.DeviceLightSettingsScheduleColoredLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING, - name: PropertyName.DeviceLightSettingsScheduleColoredLighting, - label: "Light Setting Schedule Colored Lighting Selection", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - return typeof obj === "object" && "red" in obj && "green" in obj && "blue" in obj && typeof obj.red === "number" && typeof obj.green === "number" && typeof obj.blue === "number"; - }, -}; -exports.DeviceLightSettingsScheduleDynamicLightingProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING, - name: PropertyName.DeviceLightSettingsScheduleDynamicLighting, - label: "Light Setting Schedule Dynamic Lighting Selection", - readable: true, - writeable: true, - type: "number", -}; -exports.DeviceLightSettingsScheduleLightingActiveModeProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE, - name: PropertyName.DeviceLightSettingsScheduleLightingActiveMode, - label: "Light Setting Schedule Lighting Active Mode", - readable: true, - writeable: true, - type: "number", - states: { - "0": "Daily", - "1": "Colored", - "2": "Dynamic", - }, -}; -exports.DeviceLightSettingsColoredLightingColorsProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS, - name: PropertyName.DeviceLightSettingsColoredLightingColors, - label: "Light Setting Colored Lighting Colors", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - if (Array.isArray(obj)) { - return obj.length > 0 && - obj.every((value) => { - return typeof value === "object" && - "red" in value && - "green" in value && - "blue" in value && - typeof value.red === "number" && - value.red >= 0 && - value.red <= 255 && - typeof value.green === "number" && - value.green >= 0 && - value.green <= 255 && - typeof value.blue === "number" && - value.blue >= 0 && - value.blue <= 255; - }); - } - return false; - }, -}; -exports.DeviceLightSettingsDynamicLightingThemesProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES, - name: PropertyName.DeviceLightSettingsDynamicLightingThemes, - label: "Light Setting Dynamic Lighting Themes", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - if (Array.isArray(obj)) { - return obj.length > 0 && - obj.every((value) => { - return typeof value === "object" && - "name" in value && - "mode" in value && - "speed" in value && - "colors" in value && - typeof value.name === "string" && - value.name !== "" && - typeof value.mode === "number" && - value.mode in DynamicLightingEffect && - typeof value.speed === "number" && - [500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000].includes(value.speed) && // msec. - Array.isArray(value.colors) && - value.colors.length > 0 && - value.colors.length <= 5 && - value.colors.every((value) => { - return typeof value === "object" && - "red" in value && - "green" in value && - "blue" in value && - typeof value.red === "number" && - value.red >= 0 && - value.red <= 255 && - typeof value.green === "number" && - value.green >= 0 && - value.green <= 255 && - typeof value.blue === "number" && - value.blue >= 0 && - value.blue <= 255; - }); - }); - } - return false; - }, -}; -exports.DeviceDoorControlWarningProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorControlWarning, - label: "Door Control Warning", - readable: true, - writeable: true, - type: "boolean", - commandId: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING, -}; -exports.DeviceDoor1OpenProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, - name: PropertyName.DeviceDoor1Open, - label: "Door 1 Open", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceDoor2OpenProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, - name: PropertyName.DeviceDoor2Open, - label: "Door 2 Open", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceDoorSensor1StatusProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor1Status, - label: "Door Sensor 1 Status", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Offline", - 1: "Online" - } -}; -exports.DeviceDoorSensor2StatusProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor2Status, - label: "Door Sensor 2 Status", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Offline", - 1: "Online" - }, - default: 0 -}; -exports.DeviceDoorSensor1MacAddressProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor1MacAddress, - label: "Door Sensor 1 Mac Address", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor2MacAddressProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor2MacAddress, - label: "Door Sensor 2 Mac Address", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor1NameProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor1Name, - label: "Door Sensor 1 Name", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor2NameProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor2Name, - label: "Door Sensor 2 Name", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor1SerialNumberProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor1SerialNumber, - label: "Door Sensor 1 Serial Number", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor2SerialNumberProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor2SerialNumber, - label: "Door Sensor 2 Serial Number", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor1VersionProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor1Version, - label: "Door Sensor 1 Version", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor2VersionProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor2Version, - label: "Door Sensor 2 Version", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceDoorSensor1LowBatteryProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, - name: PropertyName.DeviceDoorSensor1LowBattery, - label: "Door Sensor 1 Low Battery", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDoorSensor2LowBatteryProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS, - name: PropertyName.DeviceDoorSensor2LowBattery, - label: "Door Sensor 2 Low Battery", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDoorSensor1BatteryLevelProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor1BatteryLevel, - label: "Door Sensor 1 Battery Level", - readable: true, - writeable: false, - type: "number", - min: 0, - max: 5, - default: 0 -}; -exports.DeviceDoorSensor2BatteryLevelProperty = { - key: types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS, - name: PropertyName.DeviceDoorSensor2BatteryLevel, - label: "Door Sensor 2 Battery Level", - readable: true, - writeable: false, - type: "number", - min: 0, - max: 5, - default: 0 -}; -exports.DeviceLocationCoordinatesProperty = { - key: types_1.TrackerCommandType.COMMAND_NEW_LOCATION, - name: PropertyName.DeviceLocationCoordinates, - label: "Location Coordinates", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceLocationAddressProperty = { - key: types_1.TrackerCommandType.LOCATION_NEW_ADDRESS, - name: PropertyName.DeviceLocationAddress, - label: "Location Address", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceLocationLastUpdateProperty = { - key: types_1.TrackerCommandType.COMMAND_NEW_LOCATION, - name: PropertyName.DeviceLocationLastUpdate, - label: "Location Last Update", - readable: true, - writeable: false, - type: "number", - default: 0 -}; -exports.DeviceTrackerTypeProperty = { - key: types_1.TrackerCommandType.TYPE_ICON_INDEX, - name: PropertyName.DeviceTrackerType, - label: "Tracker Type", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Tracker", - 1: "Key", - 2: "Wallet", - 3: "Bag", - 4: "Remote", - 5: "Camera", - 6: "Headphones", - 7: "Toy", - 8: "Suitcase", - 9: "Handbag", - } -}; -exports.DeviceLeftBehindAlarmProperty = { - key: types_1.TrackerCommandType.COMMAND_ANTILOST, - name: PropertyName.DeviceLeftBehindAlarm, - label: "Left Behind Alarm", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.DeviceFindPhoneProperty = { - key: types_1.TrackerCommandType.COMMAND_TYPE_FINDMYPHONE, - name: PropertyName.DeviceFindPhone, - label: "Find Phone", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.DeviceFlickerAdjustmentProperty = { - key: types_1.CommandType.CMD_SET_FLICKER_ADJUSTMENT, - name: PropertyName.DeviceFlickerAdjustment, - label: "Flicker Adjustment", - readable: true, - writeable: true, - type: "number", - states: { - 1: "50Hz", - 2: "60Hz", - } -}; -exports.DeviceNotificationPersonS350Property = { - key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - name: PropertyName.DeviceNotificationPerson, - label: "Notification Person detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationPetS350Property = { - key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - name: PropertyName.DeviceNotificationPet, - label: "Notification Pet detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationAllOtherMotionS350Property = { - key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - name: PropertyName.DeviceNotificationAllOtherMotion, - label: "Notification All Other Motion", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationAllSoundS350Property = { - key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - name: PropertyName.DeviceNotificationAllSound, - label: "Notification Sound detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationCryingS350Property = { - key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - name: PropertyName.DeviceNotificationCrying, - label: "Notification Crying detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNotificationVehicleProperty = { - key: types_1.CommandType.CMD_INDOOR_SET_MOTION_DETECTION_TYPE, - name: PropertyName.DeviceNotificationVehicle, - label: "Notification Vehicle detected", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceLeavingDetectionProperty = { - key: types_1.CommandType.CMD_MOTION_SET_LEAVING_DETECTION, - name: PropertyName.DeviceLeavingDetection, - label: "Leaving Detection", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.DeviceLeavingReactionNotificationProperty = { - key: types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, - name: PropertyName.DeviceLeavingReactionNotification, - label: "Leaving Reaction Notification", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.DeviceLeavingReactionStartTimeProperty = { - key: types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, - name: PropertyName.DeviceLeavingReactionStartTime, - label: "Leaving Reaction Starttime (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "0:00", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceLeavingReactionEndTimeProperty = { - key: types_1.CommandType.CMD_MOTION_SET_LEAVING_REACTIONS, - name: PropertyName.DeviceLeavingReactionEndTime, - label: "Leaving Reaction Endtime (24-hour clock)", - readable: true, - writeable: true, - type: "string", - default: "23:59", - format: /^[0-9]{1,2}:[0-9]{1,2}$/, -}; -exports.DeviceSomeoneGoingProperty = { - key: "custom_someoneGoing", - name: PropertyName.DeviceSomeoneGoing, - label: "Someone Going", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceLockEventOriginProperty = { - key: "custom_lockEventOrigin", - name: PropertyName.DeviceLockEventOrigin, - label: "Lock Event Origin", - readable: true, - writeable: false, - type: "number", - states: { - 0: "None", - 1: "Automatic", - 2: "Manual", - 3: "App", - 4: "Password", - 5: "Fingerprint", - 6: "Temporary Password", - 7: "Keypad", - }, - default: 0, -}; -exports.DeviceBeepVolumeProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_VOLUME, - name: PropertyName.DeviceBeepVolume, - label: "Beep Volume", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Mute", - 1: "Soft", - 2: "Medium", - 3: "Loud", - }, -}; -exports.DeviceNightvisionOptimizationProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_NIGHT_VISION_ENHANCE, - name: PropertyName.DeviceNightvisionOptimization, - label: "Nighvision Optimization", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceNightvisionOptimizationSideProperty = { - key: types_1.CommandType.CMD_SMARTLOCK_NIGHT_VISION_SIDE, - name: PropertyName.DeviceNightvisionOptimizationSide, - label: "Nighvision Optimization Side", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Left", - 2: "Right", - }, -}; -exports.DeviceOpenMethodProperty = { - //TODO: Check cloud property ID - key: types_1.CommandType.CMD_SMART_DROP_DELIVERY_MODE, - name: PropertyName.DeviceOpenMethod, - label: "Open Method", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Auto Switch (Recommended)", - 1: "Open via PIN", - 2: "Press to Open", - }, -}; -exports.DeviceMotionActivatedPromptProperty = { - key: types_1.CommandType.CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT, - name: PropertyName.DeviceMotionActivatedPrompt, - label: "Motion-Activated Prompt", - readable: true, - writeable: true, - type: "boolean", -}; -exports.DeviceOpenProperty = { - key: types_1.CommandType.CMD_SMART_DROP_OPEN, - name: PropertyName.DeviceOpen, - label: "Open", - readable: true, - writeable: false, - type: "boolean", -}; -exports.DeviceOpenedByTypeProperty = { - key: "custom_openedByType", - name: PropertyName.DeviceOpenedByType, - label: "Opened By Type", - readable: true, - writeable: false, - type: "number", - states: { - 0: "None", - 1: "App", - 2: "Master PIN", - 3: "Delivery PIN", - 4: "Without Key", - 5: "Emergency Release Button", - 6: "Key", - }, - default: 0, -}; -exports.DeviceOpenedByNameProperty = { - key: "custom_openedByName", - name: PropertyName.DeviceOpenedByName, - label: "Opened By Name", - readable: true, - writeable: false, - type: "string", - default: "", -}; -exports.DeviceTamperingAlertProperty = { - key: "custom_tamperingAlert", - name: PropertyName.DeviceTamperingAlert, - label: "Tampering Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceLowTemperatureAlertProperty = { - key: "custom_lowTemperatureAlert", - name: PropertyName.DeviceLowTemperatureAlert, - label: "Low Temperature Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceHighTemperatureAlertProperty = { - key: "custom_highTemperatureAlert", - name: PropertyName.DeviceHighTemperatureAlert, - label: "High Temperature Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceLidStuckAlertProperty = { - key: "custom_lidStuckAlert", - name: PropertyName.DeviceLidStuckAlert, - label: "Lid Stuck Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DevicePinIncorrectAlertProperty = { - key: "custom_pinIncorrectAlert", - name: PropertyName.DevicePinIncorrectAlert, - label: "PIN Incorrect Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceBatteryFullyChargedAlertProperty = { - key: "custom_batteryFullyChargedAlert", - name: PropertyName.DeviceBatteryFullyChargedAlert, - label: "Battery Fully Charged Alert", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceIsDeliveryDeniedProperty = { - key: types_1.CommandType.CMD_SMART_DROP_IS_DENIED_DELIVERY, - name: PropertyName.DeviceIsDeliveryDenied, - label: "Is Delivery Denied", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceHasMasterPinProperty = { - key: types_1.CommandType.CMD_SMART_DROP_HAS_MASTER_PIN, - name: PropertyName.DeviceHasMasterPin, - label: "Has Master PIN", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.DeviceDeliveriesProperty = { - key: types_1.CommandType.CMD_SMART_DROP_IS_PIN_REQUIRED, - name: PropertyName.DeviceDeliveries, - label: "Deliveries", - readable: true, - writeable: false, - type: "number", - default: 0, -}; -exports.FloodlightT8420XDeviceProperties = { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredDistance]: exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, -}; -exports.WiredDoorbellT8200XDeviceProperties = { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedT8200XProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeT8200XProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeT8200XProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoHDR]: exports.DeviceVideoHDRWiredDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingWiredDoorbellProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionWiredDoorbellProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - //[PropertyName.DeviceSnoozeHomebase]: DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityT8200XProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorT8200XProperty, -}; -exports.LockT8510PDeviceProperties = { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, -}; -exports.LockT8520PDeviceProperties = { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, -}; -exports.DeviceProperties = { - [DeviceType.CAMERA2]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.CAMERA2C]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceCameraLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.CAMERA2C_PRO]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCameraProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera2CProProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceCameraLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.CAMERA2_PRO]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.CAMERA3]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCamera3Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera3Property, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - }, - [DeviceType.CAMERA3C]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCamera3Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera3Property, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - }, - [DeviceType.CAMERA3_PRO]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCamera3Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityCamera3Property, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - }, - [DeviceType.PROFESSIONAL_247]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, //TODO: Check cloud property id - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeCamera3Property, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, //Placeholder... - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityCameraProfessionalProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceLightSettingsBrightnessManualCamera3Property, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceFlickerAdjustment]: exports.DeviceFlickerAdjustmentProperty, - }, - [DeviceType.CAMERA]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera1Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionCamera1Property, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.CAMERA_E]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera1Property, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionCamera1Property, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.DOORBELL]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionWiredDoorbellProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionDoorbellProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedDoorbellProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceHiddenMotionDetectionSensitivity]: exports.DeviceHiddenMotionDetectionSensitivityWiredDoorbellProperty, - [PropertyName.DeviceHiddenMotionDetectionMode]: exports.DeviceHiddenMotionDetectionModeWiredDoorbellProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityWiredDoorbellProperty, - [PropertyName.DeviceVideoHDR]: exports.DeviceVideoHDRWiredDoorbellProperty, - [PropertyName.DeviceVideoDistortionCorrection]: exports.DeviceVideoDistortionCorrectionWiredDoorbellProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityWiredDoorbellProperty, - [PropertyName.DeviceVideoRingRecord]: exports.DeviceVideoRingRecordWiredDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingWiredDoorbellProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorWiredDoorbellProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeWiredDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeWiredDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingWiredDoorbellProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionWiredDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeWiredDoorbellProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeWiredDoorbellProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.BATTERY_DOORBELL]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.BATTERY_DOORBELL_2]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.BATTERY_DOORBELL_PLUS]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellDualProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceNotificationRadarDetector]: exports.DeviceNotificationRadarDetectorProperty, - [PropertyName.DeviceMotionDetectionSensitivityMode]: exports.DeviceMotionDetectionSensitivityModeProperty, - [PropertyName.DeviceMotionDetectionSensitivityStandard]: exports.DeviceMotionDetectionSensitivityStandardProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedA]: exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedB]: exports.DeviceMotionDetectionSensitivityAdvancedBProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedC]: exports.DeviceMotionDetectionSensitivityAdvancedCProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedD]: exports.DeviceMotionDetectionSensitivityAdvancedDProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedE]: exports.DeviceMotionDetectionSensitivityAdvancedEProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedF]: exports.DeviceMotionDetectionSensitivityAdvancedFProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedG]: exports.DeviceMotionDetectionSensitivityAdvancedGProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedH]: exports.DeviceMotionDetectionSensitivityAdvancedHProperty, - [PropertyName.DeviceLoiteringDetection]: exports.DeviceLoiteringDetectionProperty, - [PropertyName.DeviceLoiteringDetectionLength]: exports.DeviceLoiteringDetectionLengthProperty, - [PropertyName.DeviceLoiteringDetectionRange]: exports.DeviceLoiteringDetectionRangeProperty, - [PropertyName.DeviceLoiteringCustomResponsePhoneNotification]: exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, - [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty, - [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty, - [PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification]: exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty, - [PropertyName.DeviceLoiteringCustomResponseTimeFrom]: exports.DeviceLoiteringCustomResponseTimeFromProperty, - [PropertyName.DeviceLoiteringCustomResponseTimeTo]: exports.DeviceLoiteringCustomResponseTimeToProperty, - [PropertyName.DeviceDeliveryGuard]: exports.DeviceDeliveryGuardProperty, - [PropertyName.DeviceDeliveryGuardPackageGuarding]: exports.DeviceDeliveryGuardPackageGuardingProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice]: exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty, - [PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance]: exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty, - [PropertyName.DeviceDeliveryGuardUncollectedPackageAlert]: exports.DeviceDeliveryGuardUncollectedPackageAlertProperty, - [PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck]: exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeProperty, - [PropertyName.DeviceRingAutoResponse]: exports.DeviceRingAutoResponseProperty, - [PropertyName.DeviceRingAutoResponseVoiceResponse]: exports.DeviceRingAutoResponseVoiceResponseProperty, - [PropertyName.DeviceRingAutoResponseVoiceResponseVoice]: exports.DeviceRingAutoResponseVoiceResponseVoiceProperty, - [PropertyName.DeviceRingAutoResponseTimeFrom]: exports.DeviceRingAutoResponseTimeFromProperty, - [PropertyName.DeviceRingAutoResponseTimeTo]: exports.DeviceRingAutoResponseTimeToProperty, - [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, - [PropertyName.DevicePackageStranded]: exports.DevicePackageStrandedProperty, - [PropertyName.DevicePackageTaken]: exports.DevicePackageTakenProperty, - [PropertyName.DeviceSomeoneLoitering]: exports.DeviceSomeoneLoiteringProperty, - [PropertyName.DeviceRadarMotionDetected]: exports.DeviceRadarMotionDetectedProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.BATTERY_DOORBELL_C30]: { - ...exports.BaseDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityDoorbellE340Property, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityDoorbellE340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityDoorbellE340Property, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.BATTERY_DOORBELL_C31]: { - ...exports.BaseDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityDoorbellE340Property, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityDoorbellE340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityDoorbellE340Property, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.BATTERY_DOORBELL_PLUS_E340]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, - //[PropertyName.DeviceLight]: DeviceFloodlightLightProperty, TODO: DISABLED => when the light is activated, this event is communicated via the p2p connection with the wrong channel of the device if the doorbell is connected to the station. e.g. the device is assigned to channel 2, but the event is communicated for the device on channel 0, which is wrong - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityDoorbellE340Property, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityDoorbellE340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityDoorbellE340Property, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceDeliveryGuard]: exports.DeviceDeliveryGuardProperty, - [PropertyName.DeviceDeliveryGuardPackageGuarding]: exports.DeviceDeliveryGuardPackageGuardingProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice]: exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty, - [PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance]: exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty, - [PropertyName.DeviceDeliveryGuardUncollectedPackageAlert]: exports.DeviceDeliveryGuardUncollectedPackageAlertProperty, - [PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck]: exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeE340Property, - [PropertyName.DeviceRingAutoResponse]: exports.DeviceRingAutoResponseProperty, - [PropertyName.DeviceRingAutoResponseVoiceResponse]: exports.DeviceRingAutoResponseVoiceResponseProperty, - [PropertyName.DeviceRingAutoResponseVoiceResponseVoice]: exports.DeviceRingAutoResponseVoiceResponseVoiceProperty, - [PropertyName.DeviceRingAutoResponseTimeFrom]: exports.DeviceRingAutoResponseTimeFromProperty, - [PropertyName.DeviceRingAutoResponseTimeTo]: exports.DeviceRingAutoResponseTimeToProperty, - [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, - [PropertyName.DevicePackageStranded]: exports.DevicePackageStrandedProperty, - [PropertyName.DevicePackageTaken]: exports.DevicePackageTakenProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.DOORBELL_SOLO]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedBatteryDoorbellProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, - [PropertyName.DeviceVideoWDR]: exports.DeviceWDRProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, - [PropertyName.DeviceDeliveryGuard]: exports.DeviceDeliveryGuardProperty, - [PropertyName.DeviceDeliveryGuardPackageGuarding]: exports.DeviceDeliveryGuardPackageGuardingProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeFrom]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeFromProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingActivatedTimeTo]: exports.DeviceDeliveryGuardPackageGuardingActivatedTimeToProperty, - [PropertyName.DeviceDeliveryGuardPackageGuardingVoiceResponseVoice]: exports.DeviceDeliveryGuardPackageGuardingVoiceResponseVoiceProperty, - [PropertyName.DeviceDeliveryGuardPackageLiveCheckAssistance]: exports.DeviceDeliveryGuardPackageLiveCheckAssistanceProperty, - [PropertyName.DeviceDeliveryGuardUncollectedPackageAlert]: exports.DeviceDeliveryGuardUncollectedPackageAlertProperty, - [PropertyName.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheck]: exports.DeviceDeliveryGuardUncollectedPackageAlertTimeToCheckProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeProperty, - [PropertyName.DeviceRingAutoResponse]: exports.DeviceRingAutoResponseProperty, - [PropertyName.DeviceRingAutoResponseVoiceResponse]: exports.DeviceRingAutoResponseVoiceResponseProperty, - [PropertyName.DeviceRingAutoResponseVoiceResponseVoice]: exports.DeviceRingAutoResponseVoiceResponseVoiceProperty, - [PropertyName.DeviceRingAutoResponseTimeFrom]: exports.DeviceRingAutoResponseTimeFromProperty, - [PropertyName.DeviceRingAutoResponseTimeTo]: exports.DeviceRingAutoResponseTimeToProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, - [PropertyName.DevicePackageStranded]: exports.DevicePackageStrandedProperty, - [PropertyName.DevicePackageTaken]: exports.DevicePackageTakenProperty, - [PropertyName.DeviceSomeoneLoitering]: exports.DeviceSomeoneLoiteringProperty, - }, - [DeviceType.LOCK_8530]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, //OK - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, //OK - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, //OK - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, //OK - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceRinging]: exports.DeviceRingingProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, //OK - [PropertyName.DeviceRingtoneVolume]: exports.DeviceRingtoneVolumeBatteryDoorbellProperty, //OK - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, // OK - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeBatteryDoorbellProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalBatteryDoorbellProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityBatteryDoorbellProperty, //OK - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityT8530Property, //OK - [PropertyName.DeviceChimeIndoor]: exports.DeviceChimeIndoorBatteryDoorbellProperty, - [PropertyName.DeviceChimeHomebase]: exports.DeviceChimeHomebaseBatteryDoorbellProperty, //OK - [PropertyName.DeviceChimeHomebaseRingtoneVolume]: exports.DeviceChimeHomebaseRingtoneVolumeBatteryDoorbellProperty, //OK - [PropertyName.DeviceChimeHomebaseRingtoneType]: exports.DeviceChimeHomebaseRingtoneTypeBatteryDoorbellProperty, //OK - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeBatteryDoorbellProperty, //OK - [PropertyName.DeviceNotificationRing]: exports.DeviceNotificationRingProperty, //OK - [PropertyName.DeviceNotificationMotion]: exports.DeviceNotificationMotionProperty, //OK - [PropertyName.DeviceMotionDetectionSensitivityMode]: exports.DeviceMotionDetectionSensitivityModeProperty, - [PropertyName.DeviceMotionDetectionSensitivityStandard]: exports.DeviceMotionDetectionSensitivityStandardProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedA]: exports.DeviceMotionDetectionSensitivityAdvancedAProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedB]: exports.DeviceMotionDetectionSensitivityAdvancedBProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedC]: exports.DeviceMotionDetectionSensitivityAdvancedCProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedD]: exports.DeviceMotionDetectionSensitivityAdvancedDProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedE]: exports.DeviceMotionDetectionSensitivityAdvancedEProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedF]: exports.DeviceMotionDetectionSensitivityAdvancedFProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedG]: exports.DeviceMotionDetectionSensitivityAdvancedGProperty, - [PropertyName.DeviceMotionDetectionSensitivityAdvancedH]: exports.DeviceMotionDetectionSensitivityAdvancedHProperty, - [PropertyName.DeviceLoiteringDetection]: exports.DeviceLoiteringDetectionProperty, //OK - [PropertyName.DeviceLoiteringDetectionLength]: exports.DeviceLoiteringDetectionLengthProperty, - [PropertyName.DeviceLoiteringDetectionRange]: exports.DeviceLoiteringDetectionRangeProperty, - [PropertyName.DeviceLoiteringCustomResponsePhoneNotification]: exports.DeviceLoiteringCustomResponsePhoneNotificationProperty, - [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponse]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseProperty, - [PropertyName.DeviceLoiteringCustomResponseAutoVoiceResponseVoice]: exports.DeviceLoiteringCustomResponseAutoVoiceResponseVoiceProperty, - [PropertyName.DeviceLoiteringCustomResponseHomeBaseNotification]: exports.DeviceLoiteringCustomResponseHomeBaseNotificationProperty, - [PropertyName.DeviceLoiteringCustomResponseTimeFrom]: exports.DeviceLoiteringCustomResponseTimeFromProperty, - [PropertyName.DeviceLoiteringCustomResponseTimeTo]: exports.DeviceLoiteringCustomResponseTimeToProperty, - [PropertyName.DeviceSomeoneLoitering]: exports.DeviceSomeoneLoiteringProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DeviceSnoozeHomebase]: exports.DeviceSnoozeHomebaseProperty, - [PropertyName.DeviceSnoozeChime]: exports.DeviceSnoozeChimeProperty, - [PropertyName.DeviceSnoozeMotion]: exports.DeviceSnoozeMotionProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceBasicLockStatusProperty, - [PropertyName.DeviceLeavingDetection]: exports.DeviceLeavingDetectionProperty, - [PropertyName.DeviceLeavingReactionNotification]: exports.DeviceLeavingReactionNotificationProperty, - [PropertyName.DeviceLeavingReactionStartTime]: exports.DeviceLeavingReactionStartTimeProperty, - [PropertyName.DeviceLeavingReactionEndTime]: exports.DeviceLeavingReactionEndTimeProperty, - [PropertyName.DeviceSomeoneGoing]: exports.DeviceSomeoneGoingProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DeviceBeepVolume]: exports.DeviceBeepVolumeProperty, - [PropertyName.DeviceNightvisionOptimization]: exports.DeviceNightvisionOptimizationProperty, - [PropertyName.DeviceNightvisionOptimizationSide]: exports.DeviceNightvisionOptimizationSideProperty, - }, - [DeviceType.FLOODLIGHT]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkBatteryDoorbellCamera1Property, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredDistance]: exports.DeviceFloodlightLightSettingsMotionTriggeredDistanceProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityFloodlightT8420Property, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeFloodlightT8420Property, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingFloodlightT8420Property, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8422]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8423]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightT8423Property, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceMotionDetectionRange]: exports.DeviceMotionDetectionRangeProperty, - [PropertyName.DeviceMotionDetectionRangeStandardSensitivity]: exports.DeviceMotionDetectionRangeStandardSensitivityProperty, - [PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity]: exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityProperty, - [PropertyName.DeviceMotionDetectionRangeAdvancedMiddleSensitivity]: exports.DeviceMotionDetectionRangeAdvancedMiddleSensitivityProperty, - [PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity]: exports.DeviceMotionDetectionRangeAdvancedRightSensitivityProperty, - [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeProperty, - [PropertyName.DeviceMotionTrackingSensitivity]: exports.DeviceMotionTrackingSensitivityProperty, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceMotionOutOfViewDetection]: exports.DeviceMotionOutOfViewDetectionProperty, - [PropertyName.DeviceLightSettingsColorTemperatureManual]: exports.DeviceLightSettingsColorTemperatureManualProperty, - [PropertyName.DeviceLightSettingsColorTemperatureMotion]: exports.DeviceLightSettingsColorTemperatureMotionProperty, - [PropertyName.DeviceLightSettingsColorTemperatureSchedule]: exports.DeviceLightSettingsColorTemperatureScheduleProperty, - [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeProperty, - [PropertyName.DeviceVideoNightvisionImageAdjustment]: exports.DeviceVideoNightvisionImageAdjustmentProperty, - [PropertyName.DeviceVideoColorNightvision]: exports.DeviceVideoColorNightvisionProperty, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8424]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthFloodlightProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalFloodlightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - //[PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty, - //[PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8425]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorS350Property, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightT8423Property, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceMotionDetectionRange]: exports.DeviceMotionDetectionRangeT8425Property, - [PropertyName.DeviceMotionDetectionRangeStandardSensitivity]: exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property, - [PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity]: exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property, - [PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity]: exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property, - [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeT8425Property, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceMotionOutOfViewDetection]: exports.DeviceMotionOutOfViewDetectionProperty, - [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeT8425Property, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, - [PropertyName.DeviceNotificationVehicle]: exports.DeviceNotificationVehicleProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8426]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorS350Property, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionT8425Property, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleT8425Property, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredT8425Property, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerT8425Property, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeFloodlightT8423Property, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceMotionDetectionRange]: exports.DeviceMotionDetectionRangeT8425Property, - [PropertyName.DeviceMotionDetectionRangeStandardSensitivity]: exports.DeviceMotionDetectionRangeStandardSensitivityT8425Property, - [PropertyName.DeviceMotionDetectionRangeAdvancedLeftSensitivity]: exports.DeviceMotionDetectionRangeAdvancedLeftSensitivityT8425Property, - [PropertyName.DeviceMotionDetectionRangeAdvancedRightSensitivity]: exports.DeviceMotionDetectionRangeAdvancedRightSensitivityT8425Property, - [PropertyName.DeviceMotionDetectionTestMode]: exports.DeviceMotionDetectionTestModeT8425Property, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceMotionOutOfViewDetection]: exports.DeviceMotionOutOfViewDetectionProperty, - [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeT8425Property, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, - [PropertyName.DeviceNotificationVehicle]: exports.DeviceNotificationVehicleProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - }, - [DeviceType.INDOOR_CAMERA]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_CAMERA_1080]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_COST_DOWN_CAMERA]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorMiniProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorMiniProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceDefaultAngle]: exports.DeviceDefaultAngleProperty, - [PropertyName.DeviceDefaultAngleIdleTime]: exports.DeviceDefaultAngleIdleTimeProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_PT_CAMERA]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceMotionZone]: exports.DeviceMotionZoneProperty, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_1080]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledStandaloneProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DevicePetDetection]: exports.DevicePetDetectionProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkIndoorFloodProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeProperty, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeIndoorProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityIndoorProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundProperty, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.OUTDOOR_PT_CAMERA]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingFalseEvents]: exports.DeviceLastChargingFalseEventsProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceVehicleDetected]: exports.DeviceVehicleDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsEnable]: exports.DeviceFloodlightLightSettingsEnableProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypeVehicle]: exports.DeviceMotionHB3DetectionTypeVehicleProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS340Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS340Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionZone]: exports.DeviceMotionZoneProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthOutdoorPTProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - }, - [DeviceType.INDOOR_PT_CAMERA_S350]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionS350Property, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_E30]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_C210]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_C220]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledIndoorS350Property, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceSoundDetection]: exports.DeviceSoundDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePetDetected]: exports.DevicePetDetectedProperty, - [PropertyName.DeviceSoundDetected]: exports.DeviceSoundDetectedProperty, - [PropertyName.DeviceSoundDetectionType]: exports.DeviceSoundDetectionTypeS350Property, - [PropertyName.DeviceSoundDetectionSensitivity]: exports.DeviceSoundDetectionSensitivityProperty, - [PropertyName.DeviceCryingDetected]: exports.DeviceCryingDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedIndoorFloodProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityIndoorProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypePet]: exports.DeviceMotionHB3DetectionTypePetProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityS350Property, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityS350Property, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonS350Property, - [PropertyName.DeviceNotificationPet]: exports.DeviceNotificationPetS350Property, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionS350Property, - [PropertyName.DeviceNotificationAllSound]: exports.DeviceNotificationAllSoundS350Property, - [PropertyName.DeviceNotificationCrying]: exports.DeviceNotificationCryingS350Property, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceMotionTracking]: exports.DeviceMotionTrackingProperty, - [PropertyName.DeviceSoundDetectionRoundLook]: exports.DeviceSoundDetectionRoundLookS350Property, - [PropertyName.DeviceRotationSpeed]: exports.DeviceRotationSpeedProperty, - [PropertyName.DeviceMotionAutoCruise]: exports.DeviceMotionAutoCruiseProperty, - [PropertyName.DeviceAutoCalibration]: exports.DeviceAutoCalibrationProperty, - [PropertyName.DeviceDualCamWatchViewMode]: exports.DeviceDualCamWatchViewModeS340Property, - [PropertyName.DeviceImageMirrored]: exports.DeviceImageMirroredProperty, - [PropertyName.DeviceNotificationIntervalTime]: exports.DeviceNotificationIntervalTimeProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.CAMERA_FG]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingStarlight4gLTEProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - //[PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty, - //[PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceAntitheftDetection]: exports.DeviceAntitheftDetectionProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - [PropertyName.DeviceCellularRSSI]: exports.DeviceCellularRSSIProperty, - [PropertyName.DeviceCellularSignalLevel]: exports.DeviceCellularSignalLevelProperty, - [PropertyName.DeviceCellularSignal]: exports.DeviceCellularSignalProperty, - [PropertyName.DeviceCellularBand]: exports.DeviceCellularBandProperty, - [PropertyName.DeviceCellularIMEI]: exports.DeviceCellularIMEIProperty, - [PropertyName.DeviceCellularICCID]: exports.DeviceCellularICCIDProperty, - }, - [DeviceType.SOLO_CAMERA]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.SOLO_CAMERA_PRO]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceNightvision]: exports.DeviceNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceLastChargingDays]: exports.DeviceLastChargingDaysProperty, - [PropertyName.DeviceLastChargingRecordedEvents]: exports.DeviceLastChargingRecordedEventsProperty, - [PropertyName.DeviceLastChargingTotalEvents]: exports.DeviceLastChargingTotalEventsProperty, - [PropertyName.DeviceBatteryUsageLastWeek]: exports.DeviceBatteryUsageLastWeekProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.SOLO_CAMERA_SOLAR]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualitySoloProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceDetectionStatisticsWorkingDays]: exports.DeviceDetectionStatisticsWorkingDaysProperty, - [PropertyName.DeviceDetectionStatisticsDetectedEvents]: exports.DeviceDetectionStatisticsDetectedEventsProperty, - [PropertyName.DeviceDetectionStatisticsRecordedEvents]: exports.DeviceDetectionStatisticsRecordedEventsProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DevicePowerSource]: exports.DevicePowerSourceProperty, - }, - [DeviceType.SOLO_CAMERA_C210]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingIndoorSoloFloodlightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualitySoloProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceDetectionStatisticsWorkingDays]: exports.DeviceDetectionStatisticsWorkingDaysProperty, - [PropertyName.DeviceDetectionStatisticsDetectedEvents]: exports.DeviceDetectionStatisticsDetectedEventsProperty, - [PropertyName.DeviceDetectionStatisticsRecordedEvents]: exports.DeviceDetectionStatisticsRecordedEventsProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - }, - [DeviceType.SOLO_CAMERA_E30]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceBatteryTemp]: exports.DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSoloProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionHB3DetectionTypeHumanProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionHB3DetectionTypeAllOtherMotionsProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualitySoloProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivitySoloProperty, - [PropertyName.DeviceDetectionStatisticsWorkingDays]: exports.DeviceDetectionStatisticsWorkingDaysProperty, - [PropertyName.DeviceDetectionStatisticsDetectedEvents]: exports.DeviceDetectionStatisticsDetectedEventsProperty, - [PropertyName.DeviceDetectionStatisticsRecordedEvents]: exports.DeviceDetectionStatisticsRecordedEventsProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceChargingStatus]: exports.DeviceChargingStatusProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeProperty, - }, - [DeviceType.KEYPAD]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBatteryLow]: exports.DeviceBatteryLowKeypadProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIKeypadProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceBatteryIsCharging]: exports.DeviceBatteryIsChargingKeypadProperty, - }, - [DeviceType.LOCK_WIFI]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.LOCK_WIFI_NO_FINGER]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.LOCK_8503]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundSimpleProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.LOCK_8506]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.LOCK_8502]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.LOCK_85A3]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - }, - [DeviceType.LOCK_8504]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceAdvancedLockStatusProperty, - [PropertyName.DeviceAutoLock]: exports.DeviceAutoLockProperty, - [PropertyName.DeviceAutoLockTimer]: exports.DeviceAutoLockTimerProperty, - [PropertyName.DeviceAutoLockSchedule]: exports.DeviceAutoLockScheduleProperty, - [PropertyName.DeviceAutoLockScheduleStartTime]: exports.DeviceAutoLockScheduleStartTimeProperty, - [PropertyName.DeviceAutoLockScheduleEndTime]: exports.DeviceAutoLockScheduleEndTimeProperty, - [PropertyName.DeviceOneTouchLocking]: exports.DeviceOneTouchLockingProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeProperty, - [PropertyName.DeviceSound]: exports.DeviceSoundSimpleProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationSmartLockProperty, - [PropertyName.DeviceNotificationUnlocked]: exports.DeviceNotificationUnlockedSmartLockProperty, - [PropertyName.DeviceNotificationLocked]: exports.DeviceNotificationLockedSmartLockProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLockEventOrigin]: exports.DeviceLockEventOriginProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - }, - [DeviceType.LOCK_BLE]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceState]: exports.DeviceStateLockProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSILockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceBasicLockStatusProperty, - }, - [DeviceType.LOCK_BLE_NO_FINGER]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceState]: exports.DeviceStateLockProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryLockProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSILockProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedProperty, - [PropertyName.DeviceLockStatus]: exports.DeviceBasicLockStatusProperty, - }, - [DeviceType.MOTION_SENSOR]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceBatteryLow]: exports.DeviceBatteryLowMotionSensorProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DeviceMotionSensorPIREvent]: exports.DeviceMotionSensorPIREventProperty, - }, - [DeviceType.SENSOR]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceSensorOpen]: exports.DeviceSensorOpenProperty, - [PropertyName.DeviceBatteryLow]: exports.DeviceBatteryLowSensorProperty, - [PropertyName.DeviceSensorChangeTime]: exports.DeviceSensorChangeTimeProperty, - [PropertyName.DeviceChirpVolume]: exports.DeviceChirpVolumeEntrySensorProperty, - [PropertyName.DeviceChirpTone]: exports.DeviceChirpToneEntrySensorProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIEntrySensorProperty, - }, - [DeviceType.SMART_SAFE_7400]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, - [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, - [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, - [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, - [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, - [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, - [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, - [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, - [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, - [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, - [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, - [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, - [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, - [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, - [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, - [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, - [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, - [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, - [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, - [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, - [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, - [PropertyName.Device911Alert]: exports.Device911AlertProperty, - [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, - [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, - [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, - [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, - }, - [DeviceType.SMART_SAFE_7401]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, - [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, - [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, - [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, - [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, - [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, - [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, - [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, - [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, - [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, - [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, - [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, - [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, - [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, - [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, - [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, - [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, - [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, - [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, - [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, - [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, - [PropertyName.Device911Alert]: exports.Device911AlertProperty, - [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, - [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, - [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, - [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, - }, - [DeviceType.SMART_SAFE_7402]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, - [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, - [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, - [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, - [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, - [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, - [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, - [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, - [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, - [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, - [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, - [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, - [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, - [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, - [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, - [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, - [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, - [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, - [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, - [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, - [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, - [PropertyName.Device911Alert]: exports.Device911AlertProperty, - [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, - [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, - [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, - [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, - }, - [DeviceType.SMART_SAFE_7403]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSISmartSafeProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DeviceWrongTryProtection]: exports.DeviceWrongTryProtectionSmartSafeProperty, - [PropertyName.DeviceWrongTryAttempts]: exports.DeviceWrongTryAttemptsSmartSafeProperty, - [PropertyName.DeviceWrongTryLockdownTime]: exports.DeviceWrongTryLockdownTimeSmartSafeProperty, - [PropertyName.DeviceLeftOpenAlarm]: exports.DeviceLeftOpenAlarmProperty, - [PropertyName.DeviceLeftOpenAlarmDuration]: exports.DeviceLeftOpenAlarmDurationProperty, - [PropertyName.DeviceDualUnlock]: exports.DeviceDualUnlockProperty, - [PropertyName.DevicePowerSave]: exports.DevicePowerSaveProperty, - [PropertyName.DeviceInteriorBrightness]: exports.DeviceInteriorBrightnessProperty, - [PropertyName.DeviceInteriorBrightnessDuration]: exports.DeviceInteriorBrightnessDurationProperty, - [PropertyName.DeviceTamperAlarm]: exports.DeviceTamperAlarmProperty, - [PropertyName.DeviceRemoteUnlock]: exports.DeviceRemoteUnlockProperty, - [PropertyName.DeviceRemoteUnlockMasterPIN]: exports.DeviceRemoteUnlockMasterPINProperty, - [PropertyName.DeviceScramblePasscode]: exports.DeviceScramblePasscodeSmartSafeProperty, - [PropertyName.DeviceAlarmVolume]: exports.DeviceAlarmVolumeProperty, - [PropertyName.DevicePromptVolume]: exports.DevicePromptVolumeProperty, - [PropertyName.DeviceNotificationUnlockByKey]: exports.DeviceNotificationUnlockByKeyProperty, - [PropertyName.DeviceNotificationUnlockByPIN]: exports.DeviceNotificationUnlockByPINProperty, - [PropertyName.DeviceNotificationUnlockByFingerprint]: exports.DeviceNotificationUnlockByFingerprintProperty, - [PropertyName.DeviceNotificationUnlockByApp]: exports.DeviceNotificationUnlockByAppProperty, - [PropertyName.DeviceNotificationDualLock]: exports.DeviceNotificationDualLockProperty, - [PropertyName.DeviceNotificationDualUnlock]: exports.DeviceNotificationDualUnlockProperty, - [PropertyName.DeviceNotificationWrongTryProtect]: exports.DeviceNotificationWrongTryProtectProperty, - [PropertyName.DeviceNotificationJammed]: exports.DeviceNotificationJammedProperty, - [PropertyName.DeviceLocked]: exports.DeviceLockedSmartSafeProperty, - [PropertyName.DeviceJammedAlert]: exports.DeviceJammedAlertProperty, - [PropertyName.Device911Alert]: exports.Device911AlertProperty, - [PropertyName.Device911AlertEvent]: exports.Device911AlertEventProperty, - [PropertyName.DeviceShakeAlert]: exports.DeviceShakeAlertProperty, - [PropertyName.DeviceShakeAlertEvent]: exports.DeviceShakeAlertEventProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, - [PropertyName.DeviceWrongTryProtectAlert]: exports.DeviceWrongTryProtectAlertProperty, - }, - [DeviceType.SMART_DROP]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityCamera2Property, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeSmartDropProperty, - [PropertyName.DeviceOpenMethod]: exports.DeviceOpenMethodProperty, - [PropertyName.DeviceMotionActivatedPrompt]: exports.DeviceMotionActivatedPromptProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceOpen]: exports.DeviceOpenProperty, - [PropertyName.DeviceOpenedByName]: exports.DeviceOpenedByNameProperty, - [PropertyName.DeviceOpenedByType]: exports.DeviceOpenedByTypeProperty, - [PropertyName.DeviceTamperingAlert]: exports.DeviceTamperingAlertProperty, - [PropertyName.DeviceLowTemperatureAlert]: exports.DeviceLowTemperatureAlertProperty, - [PropertyName.DeviceHighTemperatureAlert]: exports.DeviceHighTemperatureAlertProperty, - [PropertyName.DeviceLidStuckAlert]: exports.DeviceLidStuckAlertProperty, - [PropertyName.DevicePinIncorrectAlert]: exports.DevicePinIncorrectAlertProperty, - [PropertyName.DeviceBatteryFullyChargedAlert]: exports.DeviceBatteryFullyChargedAlertProperty, - [PropertyName.DeviceLowBatteryAlert]: exports.DeviceLowBatteryAlertProperty, - [PropertyName.DeviceLongTimeNotCloseAlert]: exports.DeviceLongTimeNotCloseAlertProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeSmartDropProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthWalllightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySmartDropProperty, - [PropertyName.DeviceIsDeliveryDenied]: exports.DeviceIsDeliveryDeniedProperty, - [PropertyName.DeviceHasMasterPin]: exports.DeviceHasMasterPinProperty, - [PropertyName.DeviceDeliveries]: exports.DeviceDeliveriesProperty, - [PropertyName.DevicePackageDelivered]: exports.DevicePackageDeliveredProperty, - }, - [DeviceType.WALL_LIGHT_CAM]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceFloodlightLightSettingsBrightnessManualProperty, - [PropertyName.DeviceLightSettingsManualLightingActiveMode]: exports.DeviceLightSettingsManualLightingActiveModeProperty, - [PropertyName.DeviceLightSettingsManualDailyLighting]: exports.DeviceLightSettingsManualDailyLightingProperty, - [PropertyName.DeviceLightSettingsManualColoredLighting]: exports.DeviceLightSettingsManualColoredLightingProperty, - [PropertyName.DeviceLightSettingsManualDynamicLighting]: exports.DeviceLightSettingsManualDynamicLightingProperty, - [PropertyName.DeviceLightSettingsScheduleLightingActiveMode]: exports.DeviceLightSettingsScheduleLightingActiveModeProperty, - [PropertyName.DeviceLightSettingsBrightnessMotion]: exports.DeviceFloodlightLightSettingsBrightnessMotionProperty, - [PropertyName.DeviceLightSettingsMotionLightingActiveMode]: exports.DeviceLightSettingsMotionLightingActiveModeProperty, - [PropertyName.DeviceLightSettingsBrightnessSchedule]: exports.DeviceFloodlightLightSettingsBrightnessScheduleProperty, - [PropertyName.DeviceLightSettingsScheduleDailyLighting]: exports.DeviceLightSettingsScheduleDailyLightingProperty, - [PropertyName.DeviceLightSettingsScheduleColoredLighting]: exports.DeviceLightSettingsScheduleColoredLightingProperty, - [PropertyName.DeviceLightSettingsScheduleDynamicLighting]: exports.DeviceLightSettingsScheduleDynamicLightingProperty, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceLightSettingsMotionTriggeredTimer]: exports.DeviceFloodlightLightSettingsMotionTriggeredTimerProperty, - [PropertyName.DeviceLightSettingsMotionDailyLighting]: exports.DeviceLightSettingsMotionDailyLightingProperty, - [PropertyName.DeviceLightSettingsMotionColoredLighting]: exports.DeviceLightSettingsMotionColoredLightingProperty, - [PropertyName.DeviceLightSettingsMotionDynamicLighting]: exports.DeviceLightSettingsMotionDynamicLightingProperty, - [PropertyName.DeviceLightSettingsMotionActivationMode]: exports.DeviceLightSettingsMotionActivationModeProperty, - [PropertyName.DeviceLightSettingsColoredLightingColors]: exports.DeviceLightSettingsColoredLightingColorsProperty, - [PropertyName.DeviceLightSettingsDynamicLightingThemes]: exports.DeviceLightSettingsDynamicLightingThemesProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeWalllightProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthWalllightProperty, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityWalllightProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityWalllightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonWalllightProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionWalllightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionDetectionTypeHumanWallLightProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationWalllightProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeWalllightProperty, - }, - [DeviceType.WALL_LIGHT_CAM_81A0]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionSoloProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkSoloWiredDoorbellProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceLight]: exports.DeviceFloodlightLightProperty, - [PropertyName.DeviceLightSettingsBrightnessManual]: exports.DeviceCameraLightSettingsBrightnessManualWalllightS120Property, - [PropertyName.DeviceLightSettingsMotionTriggered]: exports.DeviceFloodlightLightSettingsMotionTriggeredProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityBatteryDoorbellProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeWalllightProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceRecordingClipLength]: exports.DeviceRecordingClipLengthWalllightS120Property, - [PropertyName.DeviceRecordingEndClipMotionStops]: exports.DeviceRecordingEndClipMotionStopsProperty, - [PropertyName.DeviceRecordingRetriggerInterval]: exports.DeviceRecordingRetriggerIntervalProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualityWalllightProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityWalllightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonWalllightProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionWalllightProperty, - [PropertyName.DeviceMotionDetectionTypeHuman]: exports.DeviceMotionDetectionTypeHumanWallLightProperty, - [PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: exports.DeviceMotionDetectionTypeAllOtherMotionsWalllightProperty, - [PropertyName.DeviceNotification]: exports.DeviceNotificationWalllightProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeWalllightProperty, - [PropertyName.DevicePowerWorkingMode]: exports.DevicePowerWorkingModeProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryProperty, - }, - [DeviceType.CAMERA_GARAGE_T8453]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - //[PropertyName.DeviceBattery]: DeviceBatteryProperty, - //[PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkGarageCameraProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityGarageCameraProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceDoorControlWarning]: exports.DeviceDoorControlWarningProperty, - [PropertyName.DeviceDoor1Open]: exports.DeviceDoor1OpenProperty, - [PropertyName.DeviceDoor2Open]: exports.DeviceDoor2OpenProperty, - [PropertyName.DeviceDoorSensor1Name]: exports.DeviceDoorSensor1NameProperty, - [PropertyName.DeviceDoorSensor1SerialNumber]: exports.DeviceDoorSensor1SerialNumberProperty, - [PropertyName.DeviceDoorSensor1MacAddress]: exports.DeviceDoorSensor1MacAddressProperty, - [PropertyName.DeviceDoorSensor1Version]: exports.DeviceDoorSensor1VersionProperty, - [PropertyName.DeviceDoorSensor1Status]: exports.DeviceDoorSensor1StatusProperty, - [PropertyName.DeviceDoorSensor1BatteryLevel]: exports.DeviceDoorSensor1BatteryLevelProperty, - [PropertyName.DeviceDoorSensor1LowBattery]: exports.DeviceDoorSensor1LowBatteryProperty, - [PropertyName.DeviceDoorSensor2Name]: exports.DeviceDoorSensor2NameProperty, - [PropertyName.DeviceDoorSensor2SerialNumber]: exports.DeviceDoorSensor2SerialNumberProperty, - [PropertyName.DeviceDoorSensor2MacAddress]: exports.DeviceDoorSensor2MacAddressProperty, - [PropertyName.DeviceDoorSensor2Version]: exports.DeviceDoorSensor2VersionProperty, - [PropertyName.DeviceDoorSensor2Status]: exports.DeviceDoorSensor2StatusProperty, - [PropertyName.DeviceDoorSensor2BatteryLevel]: exports.DeviceDoorSensor2BatteryLevelProperty, - [PropertyName.DeviceDoorSensor2LowBattery]: exports.DeviceDoorSensor2LowBatteryProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.CAMERA_GARAGE_T8453_COMMON]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - //[PropertyName.DeviceBattery]: DeviceBatteryProperty, - //[PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkGarageCameraProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityGarageCameraProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceDoorControlWarning]: exports.DeviceDoorControlWarningProperty, - [PropertyName.DeviceDoor1Open]: exports.DeviceDoor1OpenProperty, - [PropertyName.DeviceDoor2Open]: exports.DeviceDoor2OpenProperty, - [PropertyName.DeviceDoorSensor1Name]: exports.DeviceDoorSensor1NameProperty, - [PropertyName.DeviceDoorSensor1SerialNumber]: exports.DeviceDoorSensor1SerialNumberProperty, - [PropertyName.DeviceDoorSensor1MacAddress]: exports.DeviceDoorSensor1MacAddressProperty, - [PropertyName.DeviceDoorSensor1Version]: exports.DeviceDoorSensor1VersionProperty, - [PropertyName.DeviceDoorSensor1Status]: exports.DeviceDoorSensor1StatusProperty, - [PropertyName.DeviceDoorSensor1BatteryLevel]: exports.DeviceDoorSensor1BatteryLevelProperty, - [PropertyName.DeviceDoorSensor1LowBattery]: exports.DeviceDoorSensor1LowBatteryProperty, - [PropertyName.DeviceDoorSensor2Name]: exports.DeviceDoorSensor2NameProperty, - [PropertyName.DeviceDoorSensor2SerialNumber]: exports.DeviceDoorSensor2SerialNumberProperty, - [PropertyName.DeviceDoorSensor2MacAddress]: exports.DeviceDoorSensor2MacAddressProperty, - [PropertyName.DeviceDoorSensor2Version]: exports.DeviceDoorSensor2VersionProperty, - [PropertyName.DeviceDoorSensor2Status]: exports.DeviceDoorSensor2StatusProperty, - [PropertyName.DeviceDoorSensor2BatteryLevel]: exports.DeviceDoorSensor2BatteryLevelProperty, - [PropertyName.DeviceDoorSensor2LowBattery]: exports.DeviceDoorSensor2LowBatteryProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.CAMERA_GARAGE_T8452]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceEnabled]: exports.DeviceEnabledSoloProperty, - //[PropertyName.DeviceBattery]: DeviceBatteryProperty, - //[PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, - [PropertyName.DeviceAutoNightvision]: exports.DeviceAutoNightvisionProperty, - [PropertyName.DeviceMotionDetection]: exports.DeviceMotionDetectionIndoorSoloFloodProperty, - [PropertyName.DeviceWatermark]: exports.DeviceWatermarkGarageCameraProperty, - [PropertyName.DeviceMotionDetected]: exports.DeviceMotionDetectedProperty, - [PropertyName.DevicePersonDetected]: exports.DevicePersonDetectedProperty, - [PropertyName.DeviceStatusLed]: exports.DeviceStatusLedProperty, - [PropertyName.DevicePicture]: exports.DevicePictureProperty, - [PropertyName.DevicePictureUrl]: exports.DevicePictureUrlProperty, - [PropertyName.DeviceMicrophone]: exports.DeviceMicrophoneProperty, - [PropertyName.DeviceSpeaker]: exports.DeviceSpeakerProperty, - [PropertyName.DeviceSpeakerVolume]: exports.DeviceSpeakerVolumeIndoorFloodDoorbellProperty, - [PropertyName.DeviceAudioRecording]: exports.DeviceAudioRecordingProperty, - [PropertyName.DeviceMotionDetectionType]: exports.DeviceMotionDetectionTypeProperty, - [PropertyName.DeviceVideoStreamingQuality]: exports.DeviceVideoStreamingQualitySoloProperty, - [PropertyName.DeviceVideoRecordingQuality]: exports.DeviceVideoRecordingQualityProperty, - [PropertyName.DeviceNotificationType]: exports.DeviceNotificationTypeIndoorFloodlightProperty, - [PropertyName.DeviceNotificationPerson]: exports.DeviceNotificationPersonProperty, - [PropertyName.DeviceNotificationAllOtherMotion]: exports.DeviceNotificationAllOtherMotionProperty, - [PropertyName.DeviceWifiRSSI]: exports.DeviceWifiRSSIProperty, - [PropertyName.DeviceWifiSignalLevel]: exports.DeviceWifiSignalLevelProperty, - [PropertyName.DeviceMotionDetectionSensitivity]: exports.DeviceMotionDetectionSensitivityGarageCameraProperty, - [PropertyName.DeviceState]: exports.DeviceStateProperty, - [PropertyName.DeviceSnooze]: exports.DeviceSnoozeProperty, - [PropertyName.DeviceSnoozeTime]: exports.DeviceSnoozeTimeProperty, - [PropertyName.DeviceSnoozeStartTime]: exports.DeviceSnoozeStartTimeProperty, - [PropertyName.DevicePersonName]: exports.DevicePersonNameProperty, - [PropertyName.DeviceContinuousRecording]: exports.DeviceContinuousRecordingProperty, - [PropertyName.DeviceContinuousRecordingType]: exports.DeviceContinuousRecordingTypeProperty, - [PropertyName.DeviceDoorControlWarning]: exports.DeviceDoorControlWarningProperty, - [PropertyName.DeviceDoor1Open]: exports.DeviceDoor1OpenProperty, - [PropertyName.DeviceDoor2Open]: exports.DeviceDoor2OpenProperty, - [PropertyName.DeviceDoorSensor1Name]: exports.DeviceDoorSensor1NameProperty, - [PropertyName.DeviceDoorSensor1SerialNumber]: exports.DeviceDoorSensor1SerialNumberProperty, - [PropertyName.DeviceDoorSensor1MacAddress]: exports.DeviceDoorSensor1MacAddressProperty, - [PropertyName.DeviceDoorSensor1Version]: exports.DeviceDoorSensor1VersionProperty, - [PropertyName.DeviceDoorSensor1Status]: exports.DeviceDoorSensor1StatusProperty, - [PropertyName.DeviceDoorSensor1BatteryLevel]: exports.DeviceDoorSensor1BatteryLevelProperty, - [PropertyName.DeviceDoorSensor1LowBattery]: exports.DeviceDoorSensor1LowBatteryProperty, - [PropertyName.DeviceDoorSensor2Name]: exports.DeviceDoorSensor2NameProperty, - [PropertyName.DeviceDoorSensor2SerialNumber]: exports.DeviceDoorSensor2SerialNumberProperty, - [PropertyName.DeviceDoorSensor2MacAddress]: exports.DeviceDoorSensor2MacAddressProperty, - [PropertyName.DeviceDoorSensor2Version]: exports.DeviceDoorSensor2VersionProperty, - [PropertyName.DeviceDoorSensor2Status]: exports.DeviceDoorSensor2StatusProperty, - [PropertyName.DeviceDoorSensor2BatteryLevel]: exports.DeviceDoorSensor2BatteryLevelProperty, - [PropertyName.DeviceDoorSensor2LowBattery]: exports.DeviceDoorSensor2LowBatteryProperty, - [PropertyName.DeviceRTSPStream]: exports.DeviceRTSPStreamProperty, - [PropertyName.DeviceRTSPStreamUrl]: exports.DeviceRTSPStreamUrlProperty, - [PropertyName.DeviceVideoTypeStoreToNAS]: exports.DeviceVideoTypeStoreToNASProperty, - }, - [DeviceType.SMART_TRACK_CARD]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceLocationCoordinates]: exports.DeviceLocationCoordinatesProperty, - [PropertyName.DeviceLocationAddress]: exports.DeviceLocationAddressProperty, - [PropertyName.DeviceLocationLastUpdate]: exports.DeviceLocationLastUpdateProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryTrackerProperty, - [PropertyName.DeviceTrackerType]: exports.DeviceTrackerTypeProperty, - [PropertyName.DeviceLeftBehindAlarm]: exports.DeviceLeftBehindAlarmProperty, - [PropertyName.DeviceFindPhone]: exports.DeviceFindPhoneProperty, - }, - [DeviceType.SMART_TRACK_LINK]: { - ...exports.GenericDeviceProperties, - [PropertyName.DeviceLocationCoordinates]: exports.DeviceLocationCoordinatesProperty, - [PropertyName.DeviceLocationAddress]: exports.DeviceLocationAddressProperty, - [PropertyName.DeviceLocationLastUpdate]: exports.DeviceLocationLastUpdateProperty, - [PropertyName.DeviceBattery]: exports.DeviceBatteryTrackerProperty, - [PropertyName.DeviceTrackerType]: exports.DeviceTrackerTypeProperty, - [PropertyName.DeviceLeftBehindAlarm]: exports.DeviceLeftBehindAlarmProperty, - [PropertyName.DeviceFindPhone]: exports.DeviceFindPhoneProperty, - }, -}; -exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.DeviceProperties[DeviceType.INDOOR_PT_CAMERA_C220]; -// EUFYCAM_S4 - Same as OUTDOOR_PT_CAMERA -exports.DeviceProperties[DeviceType.EUFYCAM_S4] = exports.DeviceProperties[DeviceType.OUTDOOR_PT_CAMERA]; -exports.StationNameProperty = { - key: "station_name", - name: PropertyName.Name, - label: "Name", - readable: true, - writeable: false, - type: "string", -}; -exports.StationModelProperty = { - key: "station_model", - name: PropertyName.Model, - label: "Model", - readable: true, - writeable: false, - type: "string", -}; -exports.StationSerialNumberProperty = { - key: "station_sn", - name: PropertyName.SerialNumber, - label: "Serial number", - readable: true, - writeable: false, - type: "string", -}; -exports.BaseStationProperties = { - [exports.StationNameProperty.name]: exports.StationNameProperty, - [exports.StationModelProperty.name]: exports.StationModelProperty, - [exports.StationSerialNumberProperty.name]: exports.StationSerialNumberProperty, - [exports.GenericTypeProperty.name]: exports.GenericTypeProperty, - [exports.GenericHWVersionProperty.name]: exports.GenericHWVersionProperty, - [exports.GenericSWVersionProperty.name]: exports.GenericSWVersionProperty, -}; -exports.StationGuardModeProperty = { - key: ParamType.GUARD_MODE, - name: PropertyName.StationGuardMode, - label: "Guard Mode", - readable: true, - writeable: true, - type: "number", - states: { - 0: "Away", - 1: "Home", - 2: "Schedule", - 3: "Custom 1", - 4: "Custom 2", - 5: "Custom 3", - 47: "Geofencing", - 63: "Disarmed", - }, -}; -exports.StationGuardModeKeyPadProperty = { - ...exports.StationGuardModeProperty, - states: { - 0: "Away", - 1: "Home", - 2: "Schedule", - 3: "Custom 1", - 4: "Custom 2", - 5: "Custom 3", - 6: "Off", - 47: "Geofencing", - 63: "Disarmed", - }, -}; -exports.StationCurrentModeProperty = { - key: types_1.CommandType.CMD_GET_ALARM_MODE, - name: PropertyName.StationCurrentMode, - label: "Current Mode", - readable: true, - writeable: false, - type: "number", - states: { - 0: "Away", - 1: "Home", - 3: "Custom 1", - 4: "Custom 2", - 5: "Custom 3", - 63: "Disarmed", - }, -}; -exports.StationCurrentModeKeyPadProperty = { - ...exports.StationCurrentModeProperty, - states: { - 0: "Away", - 1: "Home", - 3: "Custom 1", - 4: "Custom 2", - 5: "Custom 3", - 6: "Off", - 63: "Disarmed", - }, -}; -exports.StationLanIpAddressProperty = { - key: types_1.CommandType.CMD_GET_HUB_LAN_IP, - name: PropertyName.StationLANIpAddress, - label: "LAN IP Address", - readable: true, - writeable: false, - type: "string", -}; -exports.StationLanIpAddressStandaloneProperty = { - ...exports.StationLanIpAddressProperty, - key: "ip_addr", -}; -exports.StationMacAddressProperty = { - key: "wifi_mac", - //key: "sub1g_mac", // are always the same - name: PropertyName.StationMacAddress, - label: "MAC Address", - readable: true, - writeable: false, - type: "string", -}; -exports.StationAlarmVolumeProperty = { - key: types_1.CommandType.CMD_SET_HUB_SPK_VOLUME, - name: PropertyName.StationAlarmVolume, - label: "Alarm Volume", - readable: true, - writeable: true, - type: "number", - min: 1, - max: 26, - default: 26, -}; -exports.StationAlarmVolumeWalllightProperty = { - key: types_1.CommandType.CMD_WALL_LIGHT_ALERT_VOLUME, - name: PropertyName.StationAlarmVolume, - label: "Alarm Volume", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Low", - 2: "Medium", - 3: "High" - }, -}; -exports.StationPromptVolumeProperty = { - key: types_1.CommandType.CMD_SET_PROMPT_VOLUME, - name: PropertyName.StationPromptVolume, - label: "Prompt Volume", - readable: true, - writeable: true, - type: "number", - min: 0, - max: 26, -}; -exports.StationAlarmToneProperty = { - key: types_1.CommandType.CMD_HUB_ALARM_TONE, - name: PropertyName.StationAlarmTone, - label: "Alarm Tone", - readable: true, - writeable: true, - type: "number", - states: { - 1: "Alarm sound 1", - 2: "Alarm sound 2", - } -}; -exports.StationNotificationSwitchModeScheduleProperty = { - key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, - name: PropertyName.StationNotificationSwitchModeSchedule, - label: "Notification Switch Mode Schedule", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationNotificationSwitchModeGeofenceProperty = { - key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, - name: PropertyName.StationNotificationSwitchModeGeofence, - label: "Notification Switch Mode Geofence", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationNotificationSwitchModeAppProperty = { - key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, - name: PropertyName.StationNotificationSwitchModeApp, - label: "Notification Switch Mode App", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationNotificationSwitchModeKeypadProperty = { - key: types_1.CommandType.CMD_HUB_NOTIFY_MODE, - name: PropertyName.StationNotificationSwitchModeKeypad, - label: "Notification Switch Mode Keypad", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationNotificationStartAlarmDelayProperty = { - key: types_1.CommandType.CMD_HUB_NOTIFY_ALARM, - name: PropertyName.StationNotificationStartAlarmDelay, - label: "Notification Start Alarm Delay", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationTimeFormatProperty = { - key: types_1.CommandType.CMD_SET_HUB_OSD, - name: PropertyName.StationTimeFormat, - label: "Time Format", - readable: true, - writeable: true, - type: "number", - states: { - 0: "12h", - 1: "24h", - }, - default: 0, -}; -exports.StationTimeZoneProperty = { - key: "time_zone", - name: PropertyName.StationTimeZone, - label: "Time Zone", - readable: true, - writeable: false, - type: "string", -}; -exports.StationSwitchModeWithAccessCodeProperty = { - key: types_1.CommandType.CMD_KEYPAD_PSW_OPEN, - name: PropertyName.StationSwitchModeWithAccessCode, - label: "Switch mode with access code", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationAutoEndAlarmProperty = { - key: types_1.CommandType.CMD_SET_HUB_ALARM_AUTO_END, - name: PropertyName.StationAutoEndAlarm, - label: "Auto End Alarm", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationTurnOffAlarmWithButtonProperty = { - key: types_1.CommandType.CMD_SET_HUB_ALARM_CLOSE, - name: PropertyName.StationTurnOffAlarmWithButton, - label: "Turn off alarm with button", - readable: true, - writeable: true, - type: "boolean", -}; -exports.StationAlarmProperty = { - key: "custom_alarm", - name: PropertyName.StationAlarm, - label: "Alarm", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.StationAlarmTypeProperty = { - key: "custom_alarmType", - name: PropertyName.StationAlarmType, - label: "Alarm Type", - readable: true, - writeable: true, - type: "number", - states: { - 0: "None", - 2: "Theft", - 3: "Motion", - 4: "Manual", - 5: "Overheating", - 6: "Door", - 7: "Camera Motion", - 8: "Motion Sensor", - 9: "Camera Theft", - 10: "Camera Manual", - 11: "Camera Linkage", - 13: "Keypad", - /*22: "App Light", - 23: "App Light Sound", - 24: "Motion App Light", - 25: "Motion App Light Alarm",*/ - }, - default: 0, -}; -exports.StationAlarmArmedProperty = { - key: "custom_alarmArmed", - name: PropertyName.StationAlarmArmed, - label: "Alarm Armed", - readable: true, - writeable: false, - type: "boolean", - default: false, -}; -exports.StationAlarmArmDelayProperty = { - key: "custom_alarmArmDelay", - name: PropertyName.StationAlarmArmDelay, - label: "Alarm Arm Delay", - readable: true, - writeable: true, - type: "number", - default: 0, -}; -exports.StationAlarmDelayProperty = { - key: "custom_alarmDelay", - name: PropertyName.StationAlarmDelay, - label: "Alarm Delay", - readable: true, - writeable: true, - type: "number", - default: 0, -}; -exports.StationAlarmDelayTypeProperty = { - key: "custom_alarmDelayType", - name: PropertyName.StationAlarmDelayType, - label: "Alarm Delay Type", - readable: true, - writeable: true, - type: "number", - states: { - 0: "None", - 2: "Theft", - 3: "Motion", - 4: "Manual", - 5: "Overheating", - 6: "Door", - 7: "Camera Motion", - 8: "Motion Sensor", - 9: "Camera Theft", - 10: "Camera Manual", - 11: "Camera Linkage", - 13: "Keypad", - /*22: "App Light", - 23: "App Light Sound", - 24: "Motion App Light", - 25: "Motion App Light Alarm",*/ - }, - default: 0, -}; -exports.StationSdStatusProperty = { - key: types_1.CommandType.CMD_GET_TFCARD_STATUS, - name: PropertyName.StationSdStatus, - label: "SD Status", - readable: true, - writeable: false, - type: "number", - default: undefined, -}; -exports.StationSdCapacityProperty = { - key: "sd_capacity", - name: PropertyName.StationSdCapacity, - label: "SD Capacity", - readable: true, - writeable: false, - type: "number", - default: undefined, -}; -exports.StationSdAvailableCapacityProperty = { - key: "sd_capacity_available", - name: PropertyName.StationSdCapacityAvailable, - label: "SD Capacity Available", - readable: true, - writeable: false, - type: "number", - default: undefined, -}; -exports.StationStorageInfoEmmcProperty = { - key: "storage_info_emmc", - name: PropertyName.StationStorageInfoEmmc, - label: "Storage Info Emmc", - readable: true, - writeable: false, - type: "object", -}; -exports.StationStorageInfoHddProperty = { - key: "storage_info_hdd", - name: PropertyName.StationStorageInfoHdd, - label: "Storage Info Hdd", - readable: true, - writeable: false, - type: "object", -}; -exports.StationContinuousTrackingTimeProperty = { - key: types_1.CommandType.CMD_SET_CONTINUOUS_TRACKING_TIME, - name: PropertyName.StationContinuousTrackingTime, - label: "Continuous Tracking Time", - readable: true, - writeable: true, - type: "number", - states: { - 120: "2 min.", - 180: "3 min.", - 240: "4 min.", - 300: "5 min.", - 600: "10 min.", - 900: "15 min.", - 1800: "30 min.", - }, - unit: "sec", -}; -exports.StationCrossCameraTrackingProperty = { - key: types_1.CommandType.CMD_SET_CROSS_CAMERA_TRACKING, - name: PropertyName.StationCrossCameraTracking, - label: "Cross Camera Tracking", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.StationTrackingAssistanceProperty = { - key: types_1.CommandType.CMD_SET_TRACKING_ASSISTANCE, - name: PropertyName.StationTrackingAssistance, - label: "Tracking Assistance", - readable: true, - writeable: true, - type: "boolean", - default: false, -}; -exports.StationCrossTrackingCameraListProperty = { - key: types_1.CommandType.CMD_SET_CROSS_TRACKING_CAMERA_LIST, - name: PropertyName.StationCrossTrackingCameraList, - label: "Cross Tracking Camera List", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - if (Array.isArray(obj)) { - return obj.length > 0 && - obj.every((value) => { - return typeof value === "string"; - }); - } - return false; - }, -}; -exports.StationCrossTrackingGroupListProperty = { - key: types_1.CommandType.CMD_SET_CROSS_TRACKING_GROUP_LIST, - name: PropertyName.StationCrossTrackingGroupList, - label: "Cross Tracking Group List", - readable: true, - writeable: true, - type: "object", - isValidObject: (obj) => { - if (Array.isArray(obj)) { - return obj.length > 0 && - obj.every((element) => { - return typeof element === "object" && - "value" in element && - Array.isArray(element.value) && - element.value.length > 0 && - element.value.every((value) => { - return typeof value === "string"; - }); - }); - } - return false; - }, -}; -exports.StationProperties = { - [DeviceType.STATION]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationPromptVolume]: exports.StationPromptVolumeProperty, - [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeProperty, - [PropertyName.StationAlarmTone]: exports.StationAlarmToneProperty, - [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, - [PropertyName.StationNotificationSwitchModeGeofence]: exports.StationNotificationSwitchModeGeofenceProperty, - [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, - [PropertyName.StationNotificationSwitchModeKeypad]: exports.StationNotificationSwitchModeKeypadProperty, - [PropertyName.StationNotificationStartAlarmDelay]: exports.StationNotificationStartAlarmDelayProperty, - [PropertyName.StationHomeSecuritySettings]: exports.StationHomeSecuritySettings, - [PropertyName.StationAwaySecuritySettings]: exports.StationAwaySecuritySettings, - [PropertyName.StationCustom1SecuritySettings]: exports.StationCustom1SecuritySettings, - [PropertyName.StationCustom2SecuritySettings]: exports.StationCustom2SecuritySettings, - [PropertyName.StationCustom3SecuritySettings]: exports.StationCustom3SecuritySettings, - [PropertyName.StationOffSecuritySettings]: exports.StationOffSecuritySettings, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationAlarmArmed]: exports.StationAlarmArmedProperty, - [PropertyName.StationAlarmArmDelay]: exports.StationAlarmArmDelayProperty, - [PropertyName.StationAlarmDelay]: exports.StationAlarmDelayProperty, - [PropertyName.StationAlarmDelayType]: exports.StationAlarmDelayTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.HB3]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationPromptVolume]: exports.StationPromptVolumeProperty, - [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeProperty, - [PropertyName.StationAlarmTone]: exports.StationAlarmToneProperty, - [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, - [PropertyName.StationNotificationSwitchModeGeofence]: exports.StationNotificationSwitchModeGeofenceProperty, - [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, - [PropertyName.StationNotificationSwitchModeKeypad]: exports.StationNotificationSwitchModeKeypadProperty, - [PropertyName.StationNotificationStartAlarmDelay]: exports.StationNotificationStartAlarmDelayProperty, - [PropertyName.StationHomeSecuritySettings]: exports.StationHomeSecuritySettings, - [PropertyName.StationAwaySecuritySettings]: exports.StationAwaySecuritySettings, - [PropertyName.StationCustom1SecuritySettings]: exports.StationCustom1SecuritySettings, - [PropertyName.StationCustom2SecuritySettings]: exports.StationCustom2SecuritySettings, - [PropertyName.StationCustom3SecuritySettings]: exports.StationCustom3SecuritySettings, - [PropertyName.StationOffSecuritySettings]: exports.StationOffSecuritySettings, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationAlarmArmed]: exports.StationAlarmArmedProperty, - [PropertyName.StationAlarmArmDelay]: exports.StationAlarmArmDelayProperty, - [PropertyName.StationAlarmDelay]: exports.StationAlarmDelayProperty, - [PropertyName.StationAlarmDelayType]: exports.StationAlarmDelayTypeProperty, - /*[PropertyName.StationSdStatus]: StationSdStatusProperty, - [PropertyName.StationSdCapacity]: StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: StationSdAvailableCapacityProperty,*/ - [PropertyName.StationStorageInfoEmmc]: exports.StationStorageInfoEmmcProperty, - [PropertyName.StationStorageInfoHdd]: exports.StationStorageInfoHddProperty, - [PropertyName.StationCrossCameraTracking]: exports.StationCrossCameraTrackingProperty, - [PropertyName.StationContinuousTrackingTime]: exports.StationContinuousTrackingTimeProperty, - [PropertyName.StationTrackingAssistance]: exports.StationTrackingAssistanceProperty, - [PropertyName.StationCrossTrackingCameraList]: exports.StationCrossTrackingCameraListProperty, - [PropertyName.StationCrossTrackingGroupList]: exports.StationCrossTrackingGroupListProperty, - }, - [DeviceType.MINIBASE_CHIME]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationPromptVolume]: exports.StationPromptVolumeProperty, - [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeProperty, - [PropertyName.StationAlarmTone]: exports.StationAlarmToneProperty, - [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, - [PropertyName.StationNotificationSwitchModeGeofence]: exports.StationNotificationSwitchModeGeofenceProperty, - [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, - [PropertyName.StationNotificationSwitchModeKeypad]: exports.StationNotificationSwitchModeKeypadProperty, - [PropertyName.StationNotificationStartAlarmDelay]: exports.StationNotificationStartAlarmDelayProperty, - [PropertyName.StationHomeSecuritySettings]: exports.StationHomeSecuritySettings, - [PropertyName.StationAwaySecuritySettings]: exports.StationAwaySecuritySettings, - [PropertyName.StationCustom1SecuritySettings]: exports.StationCustom1SecuritySettings, - [PropertyName.StationCustom2SecuritySettings]: exports.StationCustom2SecuritySettings, - [PropertyName.StationCustom3SecuritySettings]: exports.StationCustom3SecuritySettings, - [PropertyName.StationOffSecuritySettings]: exports.StationOffSecuritySettings, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationAlarmArmed]: exports.StationAlarmArmedProperty, - [PropertyName.StationAlarmArmDelay]: exports.StationAlarmArmDelayProperty, - [PropertyName.StationAlarmDelay]: exports.StationAlarmDelayProperty, - [PropertyName.StationAlarmDelayType]: exports.StationAlarmDelayTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.INDOOR_CAMERA]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_CAMERA_1080]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_PT_CAMERA]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.INDOOR_COST_DOWN_CAMERA]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_1080]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_S350]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_E30]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_C210]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_PT_CAMERA_C220]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.OUTDOOR_PT_CAMERA]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, - [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, - }, - [DeviceType.DOORBELL]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - }, - [DeviceType.DOORBELL_SOLO]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - }, - [DeviceType.BATTERY_DOORBELL_C30]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - }, - [DeviceType.BATTERY_DOORBELL_C31]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - }, - [DeviceType.BATTERY_DOORBELL_PLUS_E340]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - }, - [DeviceType.CAMERA_FG]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - //[PropertyName.StationNotificationSwitchModeSchedule]: StationNotificationSwitchModeScheduleProperty, //TODO: Implement correctly - //[PropertyName.StationNotificationSwitchModeApp]: StationNotificationSwitchModeAppProperty, //TODO: Implement correctly - }, - [DeviceType.SOLO_CAMERA]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.SOLO_CAMERA_PRO]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.SOLO_CAMERA_SOLAR]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.SOLO_CAMERA_C210]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, - [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.SOLO_CAMERA_E30]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationNotificationSwitchModeSchedule]: exports.StationNotificationSwitchModeScheduleProperty, - [PropertyName.StationNotificationSwitchModeApp]: exports.StationNotificationSwitchModeAppProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.FLOODLIGHT]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8422]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8423]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8424]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8425]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.FLOODLIGHT_CAMERA_8426]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, - [DeviceType.WALL_LIGHT_CAM]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationTimeZone]: exports.StationTimeZoneProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeWalllightProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.WALL_LIGHT_CAM_81A0]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - [PropertyName.StationAlarmVolume]: exports.StationAlarmVolumeWalllightProperty, - [PropertyName.StationSdStatus]: exports.StationSdStatusProperty, - [PropertyName.StationSdCapacity]: exports.StationSdCapacityProperty, - [PropertyName.StationSdCapacityAvailable]: exports.StationSdAvailableCapacityProperty, - }, - [DeviceType.CAMERA_GARAGE_T8452]: { - ...exports.BaseStationProperties, - }, - [DeviceType.CAMERA_GARAGE_T8453]: { - ...exports.BaseStationProperties, - }, - [DeviceType.CAMERA_GARAGE_T8453_COMMON]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_WIFI]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_WIFI_NO_FINGER]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_8503]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_8504]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_8506]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_8502]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_8592]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_BLE]: { - ...exports.BaseStationProperties, - }, - [DeviceType.LOCK_BLE_NO_FINGER]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_SAFE_7400]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_SAFE_7401]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_SAFE_7402]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_SAFE_7403]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_TRACK_CARD]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_TRACK_LINK]: { - ...exports.BaseStationProperties, - }, - [DeviceType.SMART_DROP]: { - ...exports.BaseStationProperties, - [PropertyName.StationLANIpAddress]: exports.StationLanIpAddressStandaloneProperty, - [PropertyName.StationMacAddress]: exports.StationMacAddressProperty, - [PropertyName.StationGuardMode]: exports.StationGuardModeProperty, - [PropertyName.StationCurrentMode]: exports.StationCurrentModeProperty, - [PropertyName.StationTimeFormat]: exports.StationTimeFormatProperty, - [PropertyName.StationAlarm]: exports.StationAlarmProperty, - [PropertyName.StationAlarmType]: exports.StationAlarmTypeProperty, - }, -}; -exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.StationProperties[DeviceType.INDOOR_PT_CAMERA_C220]; -var CommandName; -(function (CommandName) { - CommandName["DeviceStartLivestream"] = "deviceStartLivestream"; - CommandName["DeviceStopLivestream"] = "deviceStopLivestream"; - CommandName["DeviceQuickResponse"] = "deviceQuickResponse"; - CommandName["DevicePanAndTilt"] = "devicePanAndTilt"; - CommandName["DeviceTriggerAlarmSound"] = "deviceTriggerAlarmSound"; - CommandName["DeviceStartDownload"] = "deviceStartDownload"; - CommandName["DeviceCancelDownload"] = "deviceCancelDownload"; - CommandName["DeviceLockCalibration"] = "deviceLockCalibration"; - CommandName["DeviceCalibrate"] = "deviceCalibrate"; - CommandName["DeviceAddUser"] = "deviceAddUser"; - CommandName["DeviceDeleteUser"] = "deviceDeleteUser"; - CommandName["DeviceUpdateUserPasscode"] = "deviceUpdateUserPasscode"; - CommandName["DeviceUpdateUserSchedule"] = "deviceUpdateUserSchedule"; - CommandName["DeviceUpdateUsername"] = "deviceUpdateUsername"; - CommandName["DeviceSetDefaultAngle"] = "deviceSetDefaultAngle"; - CommandName["DeviceSetPrivacyAngle"] = "deviceSetPrivacyAngle"; - CommandName["DeviceStartTalkback"] = "deviceStartTalkback"; - CommandName["DeviceStopTalkback"] = "deviceStopTalkback"; - CommandName["DeviceUnlock"] = "deviceUnlock"; - CommandName["DeviceSnooze"] = "deviceSnooze"; - CommandName["DeviceVerifyPIN"] = "deviceVerifyPIN"; - CommandName["DeviceQueryAllUserId"] = "deviceQueryAllUserId"; - CommandName["DeviceCalibrateGarageDoor"] = "deviceCalibrateGarageDoor"; - CommandName["DevicePresetPosition"] = "devicePresetPosition"; - CommandName["DeviceSavePresetPosition"] = "deviceSavePresetPosition"; - CommandName["DeviceDeletePresetPosition"] = "deviceDeletePresetPosition"; - CommandName["DeviceOpen"] = "deviceOpen"; - CommandName["StationReboot"] = "stationReboot"; - CommandName["StationTriggerAlarmSound"] = "stationTriggerAlarmSound"; - CommandName["StationChime"] = "stationChime"; - CommandName["StationDownloadImage"] = "stationDownloadImage"; - CommandName["StationDatabaseQueryLatestInfo"] = "stationDatabaseQueryLatestInfo"; - CommandName["StationDatabaseQueryLocal"] = "stationDatabaseQueryLocal"; - CommandName["StationDatabaseDelete"] = "stationDatabaseDelete"; - CommandName["StationDatabaseCountByDate"] = "stationDatabaseCoundByDate"; -})(CommandName || (exports.CommandName = CommandName = {})); -exports.DeviceCommands = { - [DeviceType.CAMERA]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA2]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA2C]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA3]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA3C]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA3_PRO]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.PROFESSIONAL_247]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA2C_PRO]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA2_PRO]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA_E]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceSnooze, - ], - [DeviceType.DOORBELL]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.BATTERY_DOORBELL]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.BATTERY_DOORBELL_2]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.BATTERY_DOORBELL_PLUS]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.BATTERY_DOORBELL_C30]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.BATTERY_DOORBELL_C31]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.BATTERY_DOORBELL_PLUS_E340]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.DOORBELL_SOLO]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_CAMERA]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_CAMERA_1080]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_PT_CAMERA]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_PT_CAMERA_1080]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_COST_DOWN_CAMERA]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceSetDefaultAngle, - CommandName.DeviceSetPrivacyAngle, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_PT_CAMERA_S350]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DevicePresetPosition, - CommandName.DeviceSavePresetPosition, - CommandName.DeviceDeletePresetPosition, - ], - [DeviceType.INDOOR_PT_CAMERA_C210]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.INDOOR_PT_CAMERA_C220]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.OUTDOOR_PT_CAMERA]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DevicePresetPosition, - CommandName.DeviceSavePresetPosition, - CommandName.DeviceDeletePresetPosition, - ], - [DeviceType.CAMERA_FG]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_PRO]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_SOLAR]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_C210]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.SOLO_CAMERA_E30]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.FLOODLIGHT]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.FLOODLIGHT_CAMERA_8422]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.FLOODLIGHT_CAMERA_8423]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DevicePresetPosition, - CommandName.DeviceSavePresetPosition, - CommandName.DeviceDeletePresetPosition, - ], - [DeviceType.FLOODLIGHT_CAMERA_8424]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.FLOODLIGHT_CAMERA_8425]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DevicePresetPosition, - CommandName.DeviceSavePresetPosition, - CommandName.DeviceDeletePresetPosition, - ], - [DeviceType.FLOODLIGHT_CAMERA_8426]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DevicePanAndTilt, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceCalibrate, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DevicePresetPosition, - CommandName.DeviceSavePresetPosition, - CommandName.DeviceDeletePresetPosition, - ], - [DeviceType.WALL_LIGHT_CAM]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.WALL_LIGHT_CAM_81A0]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceTriggerAlarmSound, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - ], - [DeviceType.CAMERA_GARAGE_T8452]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DeviceCalibrateGarageDoor, - ], - [DeviceType.CAMERA_GARAGE_T8453]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DeviceCalibrateGarageDoor, - ], - [DeviceType.CAMERA_GARAGE_T8453_COMMON]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DeviceCalibrateGarageDoor, - ], - [DeviceType.KEYPAD]: [], - [DeviceType.LOCK_BLE]: [], - [DeviceType.LOCK_BLE_NO_FINGER]: [], - [DeviceType.LOCK_WIFI]: [ - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.LOCK_8503]: [ - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.LOCK_8504]: [ - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.LOCK_8506]: [ - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.LOCK_8502]: [ - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.LOCK_WIFI_NO_FINGER]: [ - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.LOCK_8530]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceQuickResponse, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceSnooze, - CommandName.DeviceLockCalibration, - CommandName.DeviceAddUser, - CommandName.DeviceDeleteUser, - CommandName.DeviceUpdateUserPasscode, - CommandName.DeviceUpdateUserSchedule, - CommandName.DeviceUpdateUsername, - ], - [DeviceType.MOTION_SENSOR]: [], - [DeviceType.SENSOR]: [], - [DeviceType.SMART_SAFE_7400]: [ - CommandName.DeviceUnlock, - CommandName.DeviceVerifyPIN, - ], - [DeviceType.SMART_SAFE_7401]: [ - CommandName.DeviceUnlock, - CommandName.DeviceVerifyPIN, - ], - [DeviceType.SMART_SAFE_7402]: [ - CommandName.DeviceUnlock, - CommandName.DeviceVerifyPIN, - ], - [DeviceType.SMART_SAFE_7403]: [ - CommandName.DeviceUnlock, - CommandName.DeviceVerifyPIN, - ], - [DeviceType.SMART_TRACK_CARD]: [], - [DeviceType.SMART_TRACK_LINK]: [], - [DeviceType.SMART_DROP]: [ - CommandName.DeviceStartLivestream, - CommandName.DeviceStopLivestream, - CommandName.DeviceStartDownload, - CommandName.DeviceCancelDownload, - CommandName.DeviceStartTalkback, - CommandName.DeviceStopTalkback, - CommandName.DeviceOpen, - ], -}; -exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.DeviceCommands[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.DeviceCommands[DeviceType.EUFYCAM_S4] = exports.DeviceCommands[DeviceType.OUTDOOR_PT_CAMERA]; -exports.StationCommands = { - [DeviceType.STATION]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationChime, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.HB3]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.MINIBASE_CHIME]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationChime, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_CAMERA]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_CAMERA_1080]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_COST_DOWN_CAMERA]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_OUTDOOR_CAMERA_1080P_NO_LIGHT]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_OUTDOOR_CAMERA_2K]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_PT_CAMERA]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_PT_CAMERA_1080]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_PT_CAMERA_S350]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_PT_CAMERA_C210]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.INDOOR_PT_CAMERA_C220]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.OUTDOOR_PT_CAMERA]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.DOORBELL]: [ - CommandName.StationReboot, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.DOORBELL_SOLO]: [ - CommandName.StationReboot, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.BATTERY_DOORBELL_C30]: [ - CommandName.StationReboot, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.BATTERY_DOORBELL_C31]: [ - CommandName.StationReboot, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.BATTERY_DOORBELL_PLUS_E340]: [ - CommandName.StationReboot, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA_PRO]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA_SPOTLIGHT_1080]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA_SPOTLIGHT_2K]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - ], - [DeviceType.SOLO_CAMERA_SPOTLIGHT_SOLAR]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA_SOLAR]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA_C210]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.SOLO_CAMERA_E30]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.FLOODLIGHT]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.FLOODLIGHT_CAMERA_8422]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.FLOODLIGHT_CAMERA_8423]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.FLOODLIGHT_CAMERA_8424]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.FLOODLIGHT_CAMERA_8425]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.FLOODLIGHT_CAMERA_8426]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.CAMERA_FG]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - ], - [DeviceType.WALL_LIGHT_CAM]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.WALL_LIGHT_CAM_81A0]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete, - ], - [DeviceType.CAMERA_GARAGE_T8452]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - /*CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete,*/ - ], - [DeviceType.CAMERA_GARAGE_T8453]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - /*CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete,*/ - ], - [DeviceType.CAMERA_GARAGE_T8453_COMMON]: [ - CommandName.StationReboot, - CommandName.StationTriggerAlarmSound, - CommandName.StationDownloadImage, - /*CommandName.StationDatabaseQueryLatestInfo, - CommandName.StationDatabaseQueryLocal, - CommandName.StationDatabaseCountByDate, - CommandName.StationDatabaseDelete,*/ - ], - [DeviceType.KEYPAD]: [], - [DeviceType.LOCK_BLE]: [], - [DeviceType.LOCK_BLE_NO_FINGER]: [], - [DeviceType.LOCK_WIFI]: [], - [DeviceType.LOCK_WIFI_NO_FINGER]: [], - [DeviceType.SMART_TRACK_CARD]: [], - [DeviceType.SMART_TRACK_LINK]: [], - [DeviceType.SMART_DROP]: [], -}; -exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V2] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220_V3] = exports.StationCommands[DeviceType.INDOOR_PT_CAMERA_C220]; -exports.StationProperties[DeviceType.EUFYCAM_S4] = exports.StationProperties[DeviceType.OUTDOOR_PT_CAMERA]; -exports.StationCommands[DeviceType.EUFYCAM_S4] = exports.StationCommands[DeviceType.OUTDOOR_PT_CAMERA]; -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/http/types.js.map b/build/http/types.js.map deleted file mode 100644 index e7264701..00000000 --- a/build/http/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/http/utils.d.ts b/build/http/utils.d.ts deleted file mode 100644 index 40357eec..00000000 --- a/build/http/utils.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Device } from "./device"; -import { Picture, Schedule } from "./interfaces"; -import { NotificationSwitchMode, SignalLevel, HB3DetectionTypes, SourceType, T8170DetectionTypes, IndoorS350NotificationTypes, FloodlightT8425NotificationTypes, SmartLockNotification, IndoorS350DetectionTypes } from "./types"; -import { HTTPApi } from "./api"; -import { LockPushEvent } from "./../push/types"; -import { Station } from "./station"; -import { PushMessage } from "../push/models"; -export declare const isGreaterEqualMinVersion: (minimal_version: string, current_version: string) => boolean; -export declare const pad: (num: number) => string; -export declare const getTimezoneGMTString: () => string; -export declare const getAbsoluteFilePath: (device_type: number, channel: number, filename: string) => string; -export declare const getImageFilePath: (device_type: number, channel: number, filename: string) => string; -export declare const isNotificationSwitchMode: (value: number, mode: NotificationSwitchMode) => boolean; -export declare const switchNotificationMode: (currentValue: number, mode: NotificationSwitchMode, enable: boolean) => number; -export declare const calculateWifiSignalLevel: (device: Device, rssi: number) => SignalLevel; -export declare const calculateCellularSignalLevel: (rssi: number) => SignalLevel; -export declare const encryptAPIData: (data: string, key: Buffer) => string; -export declare const decryptAPIData: (data: string, key: Buffer) => Buffer; -export declare const getBlocklist: (directions: Array) => Array; -export declare const getDistances: (blocklist: Array) => Array; -export declare const isHB3DetectionModeEnabled: (value: number, type: HB3DetectionTypes) => boolean; -export declare const getHB3DetectionMode: (value: number, type: HB3DetectionTypes, enable: boolean) => number; -export interface EufyTimezone { - timeZoneName: string; - timeId: string; - timeSn: string; - timeZoneGMT: string; -} -export declare const getEufyTimezone: () => EufyTimezone | undefined; -export declare const getAdvancedLockTimezone: (stationSN: string) => string; -export declare class WritePayload { - private split_byte; - private data; - write(bytes: Buffer): void; - getData(): Buffer; -} -export declare class ParsePayload { - private data; - constructor(data: Buffer); - readUint32BE(indexValue: number): number; - readUint32LE(indexValue: number): number; - readUint16BE(indexValue: number): number; - readUint16LE(indexValue: number): number; - readString(indexValue: number): string; - readStringHex(indexValue: number): string; - readInt8(indexValue: number): number; - readData(indexValue: number): Buffer; - private getDataPosition; - private getNextStep; -} -export declare const encodePasscode: (pass: string) => string; -export declare const hexDate: (date: Date) => string; -export declare const hexTime: (date: Date) => string; -export declare const hexWeek: (schedule: Schedule) => string; -export declare const hexStringScheduleToSchedule: (startDay: string, startTime: string, endDay: string, endTime: string, week: string) => Schedule; -export declare const randomNumber: (min: number, max: number) => number; -export declare const getIdSuffix: (p2pDid: string) => number; -export declare const getImageBaseCode: (serialnumber: string, p2pDid: string) => string; -export declare const getImageSeed: (p2pDid: string, code: string) => string; -export declare const getImageKey: (serialnumber: string, p2pDid: string, code: string) => string; -export declare const decodeImage: (p2pDid: string, data: Buffer) => Buffer; -export declare const getImagePath: (path: string) => string; -export declare const getImage: (api: HTTPApi, serial: string, url: string) => Promise; -export declare const isPrioritySourceType: (current: SourceType | undefined, update: SourceType) => boolean; -export declare const decryptTrackerData: (data: Buffer, key: Buffer) => Buffer; -export declare const isT8170DetectionModeEnabled: (value: number, type: T8170DetectionTypes) => boolean; -export declare const getT8170DetectionMode: (value: number, type: T8170DetectionTypes, enable: boolean) => number; -export declare const isIndoorS350DetectionModeEnabled: (value: number, type: IndoorS350DetectionTypes) => boolean; -export declare const getIndoorS350DetectionMode: (value: number, type: IndoorS350DetectionTypes, enable: boolean) => number; -export declare const isIndoorNotitficationEnabled: (value: number, type: IndoorS350NotificationTypes) => boolean; -export declare const getIndoorNotification: (value: number, type: IndoorS350NotificationTypes, enable: boolean) => number; -export declare const isFloodlightT8425NotitficationEnabled: (value: number, type: FloodlightT8425NotificationTypes) => boolean; -export declare const getFloodLightT8425Notification: (value: number, type: FloodlightT8425NotificationTypes, enable: boolean) => number; -export declare const getLockEventType: (event: LockPushEvent) => number; -export declare const switchSmartLockNotification: (currentValue: number, mode: SmartLockNotification, enable: boolean) => number; -export declare const isSmartLockNotification: (value: number, mode: SmartLockNotification) => boolean; -export declare const getWaitSeconds: (device: Device) => number; -export declare const loadImageOverP2P: (station: Station, device: Device, id: string, p2pTimeouts: Map) => void; -export declare const loadEventImage: (station: Station, api: HTTPApi, device: Device, message: PushMessage, p2pTimeouts: Map) => void; diff --git a/build/http/utils.js b/build/http/utils.js deleted file mode 100644 index 609a1b93..00000000 --- a/build/http/utils.js +++ /dev/null @@ -1,789 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.loadEventImage = exports.loadImageOverP2P = exports.getWaitSeconds = exports.isSmartLockNotification = exports.switchSmartLockNotification = exports.getLockEventType = exports.getFloodLightT8425Notification = exports.isFloodlightT8425NotitficationEnabled = exports.getIndoorNotification = exports.isIndoorNotitficationEnabled = exports.getIndoorS350DetectionMode = exports.isIndoorS350DetectionModeEnabled = exports.getT8170DetectionMode = exports.isT8170DetectionModeEnabled = exports.decryptTrackerData = exports.isPrioritySourceType = exports.getImage = exports.getImagePath = exports.decodeImage = exports.getImageKey = exports.getImageSeed = exports.getImageBaseCode = exports.getIdSuffix = exports.randomNumber = exports.hexStringScheduleToSchedule = exports.hexWeek = exports.hexTime = exports.hexDate = exports.encodePasscode = exports.ParsePayload = exports.WritePayload = exports.getAdvancedLockTimezone = exports.getEufyTimezone = exports.getHB3DetectionMode = exports.isHB3DetectionModeEnabled = exports.getDistances = exports.getBlocklist = exports.decryptAPIData = exports.encryptAPIData = exports.calculateCellularSignalLevel = exports.calculateWifiSignalLevel = exports.switchNotificationMode = exports.isNotificationSwitchMode = exports.getImageFilePath = exports.getAbsoluteFilePath = exports.getTimezoneGMTString = exports.pad = exports.isGreaterEqualMinVersion = void 0; -const crypto_1 = require("crypto"); -const const_1 = require("./const"); -const md5_1 = __importDefault(require("crypto-js/md5")); -const enc_hex_1 = __importDefault(require("crypto-js/enc-hex")); -const sha256_1 = __importDefault(require("crypto-js/sha256")); -const types_1 = require("./types"); -const error_1 = require("../error"); -const error_2 = require("./error"); -const types_2 = require("./../push/types"); -const logging_1 = require("../logging"); -const utils_1 = require("../utils"); -const normalizeVersionString = function (version) { - const trimmed = version ? version.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1") : ""; - const pieces = trimmed.split(RegExp("\\.")); - const parts = []; - let value, piece, num, i; - for (i = 0; i < pieces.length; i += 1) { - piece = pieces[i].replace(RegExp("\\D"), ""); - num = parseInt(piece, 10); - if (isNaN(num)) { - num = 0; - } - parts.push(num); - } - const partsLength = parts.length; - for (i = partsLength - 1; i >= 0; i -= 1) { - value = parts[i]; - if (value === 0) { - parts.length -= 1; - } - else { - break; - } - } - return parts; -}; -const isGreaterEqualMinVersion = function (minimal_version, current_version) { - const x = normalizeVersionString(minimal_version); - const y = normalizeVersionString(current_version); - const size = Math.min(x.length, y.length); - let i; - for (i = 0; i < size; i += 1) { - if (x[i] !== y[i]) { - return x[i] < y[i] ? true : false; - } - } - if (x.length === y.length) { - return true; - } - return (x.length < y.length) ? true : false; -}; -exports.isGreaterEqualMinVersion = isGreaterEqualMinVersion; -const pad = function (num) { - const norm = Math.floor(Math.abs(num)); - return (norm < 10 ? "0" : "") + norm; -}; -exports.pad = pad; -const getTimezoneGMTString = function () { - const tzo = -new Date().getTimezoneOffset(); - const dif = tzo >= 0 ? "+" : "-"; - return `GMT${dif}${(0, exports.pad)(tzo / 60)}:${(0, exports.pad)(tzo % 60)}`; -}; -exports.getTimezoneGMTString = getTimezoneGMTString; -const getAbsoluteFilePath = function (device_type, channel, filename) { - if (device_type === types_1.DeviceType.FLOODLIGHT) { - return `/mnt/data/Camera${String(channel).padStart(2, "0")}/${filename}.dat`; - } - return `/media/mmcblk0p1/Camera${String(channel).padStart(2, "0")}/${filename}.dat`; -}; -exports.getAbsoluteFilePath = getAbsoluteFilePath; -const getImageFilePath = function (device_type, channel, filename) { - if (device_type === types_1.DeviceType.FLOODLIGHT) { - return `/mnt/data/video/${filename}_c${String(channel).padStart(2, "0")}.jpg`; - } - return `/media/mmcblk0p1/video/${filename}_c${String(channel).padStart(2, "0")}.jpg`; -}; -exports.getImageFilePath = getImageFilePath; -const isNotificationSwitchMode = function (value, mode) { - if (value === 1) - value = 240; - return (value & mode) !== 0; -}; -exports.isNotificationSwitchMode = isNotificationSwitchMode; -const switchNotificationMode = function (currentValue, mode, enable) { - let result = 0; - if (!enable && currentValue === 1 /* ALL */) { - currentValue = 240; - } - if (enable) { - result = mode | currentValue; - } - else { - result = ~mode & currentValue; - } - if ((0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.SCHEDULE) && (0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.APP) && (0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.GEOFENCE) && (0, exports.isNotificationSwitchMode)(result, types_1.NotificationSwitchMode.KEYPAD)) { - result = 1; /* ALL */ - } - return result; -}; -exports.switchNotificationMode = switchNotificationMode; -const calculateWifiSignalLevel = function (device, rssi) { - if (device.isWiredDoorbell()) { - if (rssi >= -65) { - return types_1.SignalLevel.FULL; - } - if (rssi >= -75) { - return types_1.SignalLevel.STRONG; - } - return rssi >= -80 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; - } - else if (device.isCamera2Product()) { - if (rssi >= 0) { - return types_1.SignalLevel.NO_SIGNAL; - } - if (rssi >= -65) { - return types_1.SignalLevel.FULL; - } - if (rssi >= -75) { - return types_1.SignalLevel.STRONG; - } - return rssi >= -85 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; - } - else if (device.isFloodLight()) { - if (rssi >= 0) { - return types_1.SignalLevel.NO_SIGNAL; - } - if (rssi >= -60) { - return types_1.SignalLevel.FULL; - } - if (rssi >= -70) { - return types_1.SignalLevel.STRONG; - } - return rssi >= -80 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; - } - else if (device.isBatteryDoorbell()) { - if (rssi >= -65) { - return types_1.SignalLevel.FULL; - } - if (rssi >= -75) { - return types_1.SignalLevel.STRONG; - } - return rssi >= -85 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; - } - else { - if (rssi >= 0) { - return types_1.SignalLevel.NO_SIGNAL; - } - if (rssi >= -65) { - return types_1.SignalLevel.FULL; - } - if (rssi >= -75) { - return types_1.SignalLevel.STRONG; - } - return rssi >= -85 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; - } -}; -exports.calculateWifiSignalLevel = calculateWifiSignalLevel; -const calculateCellularSignalLevel = function (rssi) { - if (rssi >= 0) { - return types_1.SignalLevel.NO_SIGNAL; - } - if (rssi >= -90) { - return types_1.SignalLevel.FULL; - } - if (rssi >= -95) { - return types_1.SignalLevel.STRONG; - } - return rssi >= -105 ? types_1.SignalLevel.NORMAL : types_1.SignalLevel.WEAK; -}; -exports.calculateCellularSignalLevel = calculateCellularSignalLevel; -const encryptAPIData = (data, key) => { - const cipher = (0, crypto_1.createCipheriv)("aes-256-cbc", key, key.subarray(0, 16)); - return (cipher.update(data, "utf8", "base64") + - cipher.final("base64")); -}; -exports.encryptAPIData = encryptAPIData; -const decryptAPIData = (data, key) => { - const cipher = (0, crypto_1.createDecipheriv)("aes-256-cbc", key, key.subarray(0, 16)); - return Buffer.concat([ - cipher.update(data, "base64"), - cipher.final() - ]); -}; -exports.decryptAPIData = decryptAPIData; -const getBlocklist = function (directions) { - const result = []; - for (let distance = 1; distance <= 5; distance++) { - let i = 0; - let j = 0; - let k = 1; - for (const directionDistance of directions) { - if (directionDistance >= distance) { - j += k; - } - k <<= 1; - } - if (j == 0) { - i = 65535; - } - else if (!(j == 255 || j == 65535)) { - i = (j ^ 255) + 65280; - } - result.push(65535 & i); - } - return result; -}; -exports.getBlocklist = getBlocklist; -const getDistances = function (blocklist) { - const result = [3, 3, 3, 3, 3, 3, 3, 3]; - let calcDistance = 0; - for (const blockElement of blocklist) { - let valueOf = blockElement ^ 65535; - calcDistance++; - if (valueOf !== 0) { - for (let i = 0; i < result.length; i++) { - const intValue = valueOf & 1; - if (intValue > 0) { - result[i] = calcDistance; - } - valueOf = valueOf >> 1; - } - } - } - return result; -}; -exports.getDistances = getDistances; -const isHB3DetectionModeEnabled = function (value, type) { - if (type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION) { - return (type & value) == type && (value & 65536) == 65536; - } - else if (type === types_1.HB3DetectionTypes.HUMAN_DETECTION) { - return (type & value) == type && (value & 1) == 1; - } - return (type & value) == type; -}; -exports.isHB3DetectionModeEnabled = isHB3DetectionModeEnabled; -const getHB3DetectionMode = function (value, type, enable) { - let result = 0; - if (!enable) { - if (type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION) { - const tmp = (type & value) == type ? type ^ value : value; - result = (value & 65536) == 65536 ? tmp ^ 65536 : tmp; - } - else if (type === types_1.HB3DetectionTypes.HUMAN_DETECTION) { - const tmp = (type & value) == type ? type ^ value : value; - result = (value & 1) == 1 ? tmp ^ 1 : tmp; - } - else { - result = type ^ value; - } - } - else { - if (type === types_1.HB3DetectionTypes.HUMAN_RECOGNITION) { - result = type | value | 65536; - } - else if (type === types_1.HB3DetectionTypes.HUMAN_DETECTION) { - result = type | value | 1; - } - else { - result = type | value; - } - } - return result; -}; -exports.getHB3DetectionMode = getHB3DetectionMode; -const getEufyTimezone = function () { - for (const timezone of const_1.timeZoneData) { - if (timezone.timeId === Intl.DateTimeFormat().resolvedOptions().timeZone) { - return timezone; - } - } - return undefined; -}; -exports.getEufyTimezone = getEufyTimezone; -const getAdvancedLockTimezone = function (stationSN) { - const timezone = (0, exports.getEufyTimezone)(); - if (timezone !== undefined) { - if (stationSN.startsWith("T8520") && (0, exports.isGreaterEqualMinVersion)("1.2.8.6", stationSN)) - return `${timezone.timeZoneGMT}|1.${timezone.timeSn}`; - else - return timezone.timeZoneGMT; - } - return ""; -}; -exports.getAdvancedLockTimezone = getAdvancedLockTimezone; -class WritePayload { - split_byte = -95; - data = Buffer.from([]); - write(bytes) { - const tmp_data = Buffer.from(bytes); - this.data = Buffer.concat([this.data, Buffer.from([this.split_byte]), Buffer.from([tmp_data.length & 255]), tmp_data]); - this.split_byte += 1; - } - getData() { - return this.data; - } -} -exports.WritePayload = WritePayload; -class ParsePayload { - data; - constructor(data) { - this.data = data; - } - readUint32BE(indexValue) { - return this.readData(indexValue).readUint32BE(); - } - readUint32LE(indexValue) { - return this.readData(indexValue).readUint32LE(); - } - readUint16BE(indexValue) { - return this.readData(indexValue).readUint16BE(); - } - readUint16LE(indexValue) { - return this.readData(indexValue).readUint16LE(); - } - readString(indexValue) { - return this.readData(indexValue).toString(); - } - readStringHex(indexValue) { - return this.readData(indexValue).toString("hex"); - } - readInt8(indexValue) { - let dataPosition = this.getDataPosition(indexValue); - if (dataPosition == -1) { - return 0; - } - dataPosition = dataPosition + 2; - if (dataPosition >= this.data.length) { - return 0; - } - return this.data.readInt8(dataPosition); - } - readData(indexValue) { - let dataPosition = this.getDataPosition(indexValue); - if (dataPosition == -1) { - return Buffer.from(""); - } - dataPosition++; - if (dataPosition >= this.data.length) { - return Buffer.from(""); - } - const nextStep = this.getNextStep(indexValue, dataPosition, this.data); - let tmp; - if (nextStep == 1) { - tmp = this.data.readInt8(dataPosition); - } - else { - tmp = this.data.readUint16LE(dataPosition); - } - if (dataPosition + nextStep + tmp > this.data.length) { - return Buffer.from(""); - } - return this.data.subarray(dataPosition + nextStep, dataPosition + nextStep + tmp); - } - getDataPosition(indexValue) { - if (this.data && this.data.length >= 1) { - for (let currentPosition = 0; currentPosition < this.data.length;) { - if (this.data.readInt8(currentPosition) == indexValue) { - return currentPosition; - } - else { - const value = this.data.readInt8(currentPosition); - currentPosition++; - if (currentPosition >= this.data.length) { - break; - } - const nextStep = this.getNextStep(value, currentPosition, this.data); - if ((currentPosition + nextStep) >= this.data.length) { - break; - } - if (nextStep == 1) { - currentPosition = this.data.readInt8(currentPosition) + currentPosition + nextStep; - } - else { - currentPosition = this.data.readUint16LE(currentPosition) + currentPosition + nextStep; - } - } - } - } - return -1; - } - getNextStep(indexValue, position, data) { - const newPosition = position + 1 + data.readUInt8(position); - return (newPosition == data.length || newPosition > data.length || data.readInt8(newPosition) == indexValue + 1) ? 1 : 2; - } -} -exports.ParsePayload = ParsePayload; -/*export const generateHash = function(data: Buffer): number { - let result = 0; - for (const value of data) { - result = result ^ value; - } - return result; -} - -export const encodeSmartSafeData = function(command: number, payload: Buffer): Buffer { - const header = Buffer.from(SmartSafe.DATA_HEADER); - const size = Buffer.allocUnsafe(2); - size.writeInt16LE(payload.length + 9); - const versionCode = Buffer.from([SmartSafe.VERSION_CODE]); - const dataType = Buffer.from([-1]); - const commandCode = Buffer.from([command]); - const packageFlag = Buffer.from([-64]); - const data = Buffer.concat([header, size, versionCode, dataType, commandCode, packageFlag, payload]); - const hash = generateHash(data); - return Buffer.concat([data, Buffer.from([hash])]); -}*/ -const encodePasscode = function (pass) { - let result = ""; - for (let i = 0; i < pass.length; i++) - result += pass.charCodeAt(i).toString(16); - return result; -}; -exports.encodePasscode = encodePasscode; -const hexDate = function (date) { - const buf = Buffer.allocUnsafe(4); - buf.writeUint8(date.getDate()); - buf.writeUint8(date.getMonth() + 1, 1); - buf.writeUint16BE(date.getFullYear(), 2); - return buf.readUInt32LE().toString(16).padStart(8, "0"); -}; -exports.hexDate = hexDate; -const hexTime = function (date) { - const buf = Buffer.allocUnsafe(2); - buf.writeUint8(date.getHours()); - buf.writeUint8(date.getMinutes(), 1); - return buf.readUInt16BE().toString(16).padStart(4, "0"); -}; -exports.hexTime = hexTime; -const hexWeek = function (schedule) { - const SUNDAY = 1; - const MONDAY = 2; - const TUESDAY = 4; - const WEDNESDAY = 8; - const THUERSDAY = 16; - const FRIDAY = 32; - const SATURDAY = 64; - let result = 0; - if (schedule.week !== undefined) { - if (schedule.week.sunday) { - result |= SUNDAY; - } - if (schedule.week.monday) { - result |= MONDAY; - } - if (schedule.week.tuesday) { - result |= TUESDAY; - } - if (schedule.week.wednesday) { - result |= WEDNESDAY; - } - if (schedule.week.thursday) { - result |= THUERSDAY; - } - if (schedule.week.friday) { - result |= FRIDAY; - } - if (schedule.week.saturday) { - result |= SATURDAY; - } - return result.toString(16); - } - return "ff"; -}; -exports.hexWeek = hexWeek; -const hexStringScheduleToSchedule = function (startDay, startTime, endDay, endTime, week) { - const SUNDAY = 1; - const MONDAY = 2; - const TUESDAY = 4; - const WEDNESDAY = 8; - const THUERSDAY = 16; - const FRIDAY = 32; - const SATURDAY = 64; - const weekNumber = Number.parseInt(week, 16); - return { - startDateTime: startDay === "00000000" ? undefined : new Date(Number.parseInt(`${startDay.substring(2, 4)}${startDay.substring(0, 2)}`, 16), Number.parseInt(startDay.substring(4, 6), 16) - 1, Number.parseInt(startDay.substring(6, 8), 16), Number.parseInt(startTime.substring(0, 2), 16), Number.parseInt(startTime.substring(2, 4), 16)), - endDateTime: endDay === "ffffffff" ? undefined : new Date(Number.parseInt(`${endDay.substring(2, 4)}${endDay.substring(0, 2)}`, 16), Number.parseInt(endDay.substring(4, 6), 16) - 1, Number.parseInt(endDay.substring(6, 8), 16), Number.parseInt(endTime.substring(0, 2), 16), Number.parseInt(endTime.substring(2, 4), 16)), - week: { - monday: (weekNumber & MONDAY) == MONDAY, - tuesday: (weekNumber & TUESDAY) == TUESDAY, - wednesday: (weekNumber & WEDNESDAY) == WEDNESDAY, - thursday: (weekNumber & THUERSDAY) == THUERSDAY, - friday: (weekNumber & FRIDAY) == FRIDAY, - saturday: (weekNumber & SATURDAY) == SATURDAY, - sunday: (weekNumber & SUNDAY) == SUNDAY, - }, - }; -}; -exports.hexStringScheduleToSchedule = hexStringScheduleToSchedule; -const randomNumber = function (min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; -}; -exports.randomNumber = randomNumber; -const getIdSuffix = function (p2pDid) { - let result = 0; - const match = p2pDid.match(/^[A-Z]+-(\d+)-[A-Z]+$/); - if (match?.length == 2) { - const num1 = Number.parseInt(match[1][0]); - const num2 = Number.parseInt(match[1][1]); - const num3 = Number.parseInt(match[1][3]); - const num4 = Number.parseInt(match[1][5]); - result = num1 + num2 + num3; - if (num3 < 5) { - result = result + num3; - } - result = result + num4; - } - return result; -}; -exports.getIdSuffix = getIdSuffix; -const getImageBaseCode = function (serialnumber, p2pDid) { - let nr = 0; - try { - nr = Number.parseInt(`0x${serialnumber[serialnumber.length - 1]}`); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - throw new error_2.ImageBaseCodeError("Error generating image base code", { cause: error, context: { serialnumber: serialnumber, p2pDid: p2pDid } }); - } - nr = (nr + 10) % 10; - const base = serialnumber.substring(nr); - return `${base}${(0, exports.getIdSuffix)(p2pDid)}`; -}; -exports.getImageBaseCode = getImageBaseCode; -const getImageSeed = function (p2pDid, code) { - try { - const ncode = Number.parseInt(code.substring(2)); - const prefix = 1000 - (0, exports.getIdSuffix)(p2pDid); - return (0, md5_1.default)(`${prefix}${ncode}`).toString(enc_hex_1.default).toUpperCase(); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - throw new error_2.ImageBaseCodeError("Error generating image seed", { cause: error, context: { p2pDid: p2pDid, code: code } }); - } -}; -exports.getImageSeed = getImageSeed; -const getImageKey = function (serialnumber, p2pDid, code) { - const basecode = (0, exports.getImageBaseCode)(serialnumber, p2pDid); - const seed = (0, exports.getImageSeed)(p2pDid, code); - const data = `01${basecode}${seed}`; - const hash = (0, sha256_1.default)(data); - const hashBytes = [...Buffer.from(hash.toString(enc_hex_1.default), "hex")]; - const startByte = hashBytes[10]; - for (let i = 0; i < 32; i++) { - const byte = hashBytes[i]; - let fixed_byte = startByte; - if (i < 31) { - fixed_byte = hashBytes[i + 1]; - } - if ((i == 31) || ((i & 1) != 0)) { - hashBytes[10] = fixed_byte; - if ((126 < byte) || (126 < hashBytes[10])) { - if (byte < hashBytes[10] || (byte - hashBytes[10]) == 0) { - hashBytes[i] = hashBytes[10] - byte; - } - else { - hashBytes[i] = byte - hashBytes[10]; - } - } - } - else if ((byte < 125) || (fixed_byte < 125)) { - hashBytes[i] = fixed_byte + byte; - } - } - return `${Buffer.from(hashBytes.slice(16)).toString("hex").toUpperCase()}`; -}; -exports.getImageKey = getImageKey; -const decodeImage = function (p2pDid, data) { - if (data.length >= 12) { - const header = data.subarray(0, 12).toString(); - if (header === "eufysecurity") { - const serialnumber = data.subarray(13, 29).toString(); - const code = data.subarray(30, 40).toString(); - const imageKey = (0, exports.getImageKey)(serialnumber, p2pDid, code); - const otherData = data.subarray(41); - const encryptedData = otherData.subarray(0, 256); - const cipher = (0, crypto_1.createDecipheriv)("aes-128-ecb", Buffer.from(imageKey, "utf-8").subarray(0, 16), null); - cipher.setAutoPadding(false); - const decryptedData = Buffer.concat([ - cipher.update(encryptedData), - cipher.final() - ]); - decryptedData.copy(otherData); - return otherData; - } - } - return data; -}; -exports.decodeImage = decodeImage; -const getImagePath = function (path) { - const splittedPath = path.split("~"); - if (splittedPath.length === 2) { - return splittedPath[1]; - } - return path; -}; -exports.getImagePath = getImagePath; -const getImage = async function (api, serial, url) { - const { default: imageType } = await import("image-type"); - const image = await api.getImage(serial, url); - const type = await imageType(image); - return { - data: image, - type: type !== null && type !== undefined ? type : { ext: "unknown", mime: "application/octet-stream" } - }; -}; -exports.getImage = getImage; -const isPrioritySourceType = function (current, update) { - if (((current === "http" || current === "p2p" || current === "push" || current === "mqtt" || current === undefined) && (update === "p2p" || update === "push" || update === "mqtt")) || - ((current === "http" || current === undefined) && update === "http")) { - return true; - } - return false; -}; -exports.isPrioritySourceType = isPrioritySourceType; -const decryptTrackerData = (data, key) => { - const decipher = (0, crypto_1.createDecipheriv)("aes-128-ecb", key, null); - decipher.setAutoPadding(false); - return Buffer.concat([ - decipher.update(data), - decipher.final() - ]); -}; -exports.decryptTrackerData = decryptTrackerData; -const isT8170DetectionModeEnabled = function (value, type) { - return (type & value) == type; -}; -exports.isT8170DetectionModeEnabled = isT8170DetectionModeEnabled; -const getT8170DetectionMode = function (value, type, enable) { - let result = 0; - if ((Object.values(types_1.T8170DetectionTypes).includes(type) && Object.values(types_1.T8170DetectionTypes).includes(value)) && !enable) - return value; - if (!enable) { - result = type ^ value; - } - else { - result = type | value; - } - return result; -}; -exports.getT8170DetectionMode = getT8170DetectionMode; -const isIndoorS350DetectionModeEnabled = function (value, type) { - return (type & value) == type; -}; -exports.isIndoorS350DetectionModeEnabled = isIndoorS350DetectionModeEnabled; -const getIndoorS350DetectionMode = function (value, type, enable) { - let result = 0; - if ((Object.values(types_1.IndoorS350DetectionTypes).includes(type) && Object.values(types_1.IndoorS350DetectionTypes).includes(value)) && !enable) - return value; - if (!enable) { - result = type ^ value; - } - else { - result = type | value; - } - return result; -}; -exports.getIndoorS350DetectionMode = getIndoorS350DetectionMode; -const isIndoorNotitficationEnabled = function (value, type) { - return (type & value) == type; -}; -exports.isIndoorNotitficationEnabled = isIndoorNotitficationEnabled; -const getIndoorNotification = function (value, type, enable) { - let result = 0; - if (!enable) { - result = (type ^ value) + 800; - } - else { - result = type | value; - } - return result; -}; -exports.getIndoorNotification = getIndoorNotification; -const isFloodlightT8425NotitficationEnabled = function (value, type) { - return (type & value) == type; -}; -exports.isFloodlightT8425NotitficationEnabled = isFloodlightT8425NotitficationEnabled; -const getFloodLightT8425Notification = function (value, type, enable) { - let result = 0; - if (!enable) { - result = (type ^ value); - } - else { - result = type | value; - } - return result; -}; -exports.getFloodLightT8425Notification = getFloodLightT8425Notification; -const getLockEventType = function (event) { - switch (event) { - case types_2.LockPushEvent.AUTO_LOCK: - case types_2.LockPushEvent.AUTO_UNLOCK: - return 1; - case types_2.LockPushEvent.MANUAL_LOCK: - case types_2.LockPushEvent.MANUAL_UNLOCK: - return 2; - case types_2.LockPushEvent.APP_LOCK: - case types_2.LockPushEvent.APP_UNLOCK: - return 3; - case types_2.LockPushEvent.PW_LOCK: - case types_2.LockPushEvent.PW_UNLOCK: - return 4; - case types_2.LockPushEvent.FINGER_LOCK: - case types_2.LockPushEvent.FINGERPRINT_UNLOCK: - return 5; - case types_2.LockPushEvent.TEMPORARY_PW_LOCK: - case types_2.LockPushEvent.TEMPORARY_PW_UNLOCK: - return 6; - case types_2.LockPushEvent.KEYPAD_LOCK: - return 7; - } - return 0; -}; -exports.getLockEventType = getLockEventType; -const switchSmartLockNotification = function (currentValue, mode, enable) { - let result = 0; - if (enable) { - result = mode | currentValue; - } - else { - result = ~mode & currentValue; - } - return result; -}; -exports.switchSmartLockNotification = switchSmartLockNotification; -const isSmartLockNotification = function (value, mode) { - return (value & mode) !== 0; -}; -exports.isSmartLockNotification = isSmartLockNotification; -const getWaitSeconds = (device) => { - let seconds = 60; - const workingMode = device.getPropertyValue(types_1.PropertyName.DevicePowerWorkingMode); - if (workingMode !== undefined && workingMode === 2) { - const customValue = device.getPropertyValue(types_1.PropertyName.DeviceRecordingClipLength); - if (customValue !== undefined) { - seconds = customValue; - } - } - return seconds; -}; -exports.getWaitSeconds = getWaitSeconds; -const loadImageOverP2P = function (station, device, id, p2pTimeouts) { - if (station.hasCommand(types_1.CommandName.StationDatabaseQueryLatestInfo) && p2pTimeouts.get(id) === undefined) { - const seconds = (0, exports.getWaitSeconds)(device); - p2pTimeouts.set(id, setTimeout(async () => { - station.databaseQueryLatestInfo(); - p2pTimeouts.delete(id); - }, seconds * 1000)); - } -}; -exports.loadImageOverP2P = loadImageOverP2P; -const loadEventImage = function (station, api, device, message, p2pTimeouts) { - if (message.notification_style === types_1.NotificationType.MOST_EFFICIENT) { - (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); - } - else { - if (!(0, utils_1.isEmpty)(message.pic_url)) { - (0, exports.getImage)(api, device.getSerial(), message.pic_url).then((image) => { - if (image.data.length > 0) { - if (p2pTimeouts.get(device.getSerial()) !== undefined) { - clearTimeout(p2pTimeouts.get(device.getSerial())); - p2pTimeouts.delete(device.getSerial()); - } - device.updateProperty(types_1.PropertyName.DevicePicture, image, true); - } - else { - //fallback - (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); - } - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootHTTPLogger.debug(`Device load event image - Fallback Error`, { error: (0, utils_1.getError)(error), stationSN: station.getSerial(), deviceSN: device.getSerial(), message: JSON.stringify(message) }); - (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); - }); - } - else { - //fallback - (0, exports.loadImageOverP2P)(station, device, device.getSerial(), p2pTimeouts); - } - } -}; -exports.loadEventImage = loadEventImage; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/http/utils.js.map b/build/http/utils.js.map deleted file mode 100644 index 14fdd615..00000000 --- a/build/http/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http/utils.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA0D;AAC1D,mCAAuC;AACvC,wDAAgC;AAChC,gEAAwC;AACxC,8DAAsC;AAItC,mCAA2R;AAE3R,oCAAuC;AACvC,mCAA6C;AAC7C,2CAAgD;AAEhD,wCAA4C;AAC5C,oCAA6C;AAG7C,MAAM,sBAAsB,GAAG,UAAU,OAAe;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,EACL,KAAK,EACL,GAAG,EACH,CAAC,CAAC;IACN,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE1B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,GAAG,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,KAAK,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM;QACV,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,UAAU,eAAuB,EAAE,eAAuB;IAE9F,MAAM,CAAC,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC;IAEN,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACtC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC,CAAC;AAjBW,QAAA,wBAAwB,4BAiBnC;AAEK,MAAM,GAAG,GAAG,UAAS,GAAW;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,GAAG,OAGd;AAEK,MAAM,oBAAoB,GAAG;IAChC,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,OAAO,MAAM,GAAG,GAAG,IAAA,WAAG,EAAC,GAAG,GAAG,EAAE,CAAC,IAAI,IAAA,WAAG,EAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;AACvD,CAAC,CAAA;AAJY,QAAA,oBAAoB,wBAIhC;AAEM,MAAM,mBAAmB,GAAG,UAAS,WAAkB,EAAE,OAAe,EAAE,QAAgB;IAC7F,IAAI,WAAW,KAAK,kBAAU,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,mBAAmB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC;IAChF,CAAC;IACD,OAAO,0BAA0B,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC;AACvF,CAAC,CAAA;AALY,QAAA,mBAAmB,uBAK/B;AAEM,MAAM,gBAAgB,GAAG,UAAS,WAAkB,EAAE,OAAe,EAAE,QAAgB;IAC1F,IAAI,WAAW,KAAK,kBAAU,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,mBAAmB,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC;IACjF,CAAC;IACD,OAAO,0BAA0B,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC;AACxF,CAAC,CAAA;AALY,QAAA,gBAAgB,oBAK5B;AAEM,MAAM,wBAAwB,GAAG,UAAS,KAAa,EAAE,IAA4B;IACxF,IAAI,KAAK,KAAK,CAAC;QACX,KAAK,GAAG,GAAG,CAAC;IAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAA;AAJY,QAAA,wBAAwB,4BAIpC;AAEM,MAAM,sBAAsB,GAAG,UAAS,YAAoB,EAAE,IAA4B,EAAE,MAAe;IAC9G,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1C,YAAY,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,IAAI,IAAA,gCAAwB,EAAC,MAAM,EAAE,8BAAsB,CAAC,QAAQ,CAAC,IAAI,IAAA,gCAAwB,EAAC,MAAM,EAAE,8BAAsB,CAAC,GAAG,CAAC,IAAI,IAAA,gCAAwB,EAAC,MAAM,EAAE,8BAAsB,CAAC,QAAQ,CAAC,IAAI,IAAA,gCAAwB,EAAC,MAAM,EAAE,8BAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5Q,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAdY,QAAA,sBAAsB,0BAclC;AAEM,MAAM,wBAAwB,GAAG,UAAS,MAAc,EAAE,IAAY;IACzE,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC3B,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,IAAI,CAAC;IAC/D,CAAC;SAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,mBAAW,CAAC,SAAS,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,IAAI,CAAC;IAE/D,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,mBAAW,CAAC,SAAS,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,IAAI,CAAC;IAE/D,CAAC;SAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,IAAI,CAAC;IAC/D,CAAC;SAAM,CAAC;QACJ,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,mBAAW,CAAC,SAAS,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,mBAAW,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,IAAI,CAAC;IAC/D,CAAC;AACL,CAAC,CAAA;AArDY,QAAA,wBAAwB,4BAqDpC;AAEM,MAAM,4BAA4B,GAAG,UAAS,IAAY;IAC7D,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACZ,OAAO,mBAAW,CAAC,SAAS,CAAC;IACjC,CAAC;IACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,mBAAW,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,mBAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAW,CAAC,IAAI,CAAC;AAChE,CAAC,CAAA;AAXY,QAAA,4BAA4B,gCAWxC;AAEM,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,GAAW,EAAU,EAAE;IAChE,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,CACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzB,CAAC;AACN,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAEM,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,GAAW,EAAU,EAAE;IAChE,MAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC7B,MAAM,CAAC,KAAK,EAAE;KAAC,CAClB,CAAC;AACN,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAEM,MAAM,YAAY,GAAG,UAAS,UAAyB;IAC1D,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,iBAAiB,IAAI,UAAU,EAAE,CAAC;YACzC,IAAI,iBAAiB,IAAI,QAAQ,EAAE,CAAC;gBAChC,CAAC,IAAI,CAAC,CAAC;YACX,CAAC;YACD,CAAC,KAAK,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACT,CAAC,GAAG,KAAK,CAAC;QACd,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AApBY,QAAA,YAAY,gBAoBxB;AAGM,MAAM,YAAY,GAAG,UAAS,SAAwB;IACzD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,YAAY,GAAG,KAAK,CAAC;QACnC,YAAY,EAAE,CAAC;QACf,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;gBAC7B,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;gBAC7B,CAAC;gBACD,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAjBY,QAAA,YAAY,gBAiBxB;AAEM,MAAM,yBAAyB,GAAG,UAAS,KAAa,EAAE,IAAuB;IACpF,IAAI,IAAI,KAAK,yBAAiB,CAAC,iBAAiB,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC;IAC9D,CAAC;SAAM,IAAI,IAAI,KAAK,yBAAiB,CAAC,eAAe,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC,CAAA;AAPY,QAAA,yBAAyB,6BAOrC;AAEM,MAAM,mBAAmB,GAAG,UAAS,KAAa,EAAE,IAAuB,EAAE,MAAe;IAC/F,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,IAAI,IAAI,KAAK,yBAAiB,CAAC,iBAAiB,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1D,MAAM,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,CAAC;aAAM,IAAI,IAAI,KAAK,yBAAiB,CAAC,eAAe,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1D,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAC1B,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,IAAI,KAAK,yBAAiB,CAAC,iBAAiB,EAAE,CAAC;YAC/C,MAAM,GAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,KAAK,yBAAiB,CAAC,eAAe,EAAE,CAAC;YACpD,MAAM,GAAI,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAC1B,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAtBY,QAAA,mBAAmB,uBAsB/B;AASM,MAAM,eAAe,GAAG;IAC3B,KAAK,MAAM,QAAQ,IAAI,oBAAY,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC;YACvE,OAAO,QAAQ,CAAA;QACnB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEK,MAAM,uBAAuB,GAAG,UAAS,SAAiB;IAC7D,MAAM,QAAQ,GAAG,IAAA,uBAAe,GAAE,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAA,gCAAwB,EAAC,SAAS,EAAE,SAAS,CAAC;YAC/E,OAAO,GAAG,QAAQ,CAAC,WAAW,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;;YAErD,OAAO,QAAQ,CAAC,WAAW,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC;AAEF,MAAa,YAAY;IAEb,UAAU,GAAG,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExB,KAAK,CAAC,KAAa;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxH,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACzB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CAEJ;AAfD,oCAeC;AAED,MAAa,YAAY;IAEb,IAAI,CAAC;IAEb,YAAY,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,YAAY,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,CAAC;IACpD,CAAC;IAEM,YAAY,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,CAAC;IACpD,CAAC;IAEM,YAAY,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,CAAC;IACpD,CAAC;IAEM,YAAY,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,CAAC;IACpD,CAAC;IAEM,UAAU,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,CAAC;IAEM,aAAa,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAEM,QAAQ,CAAC,UAAkB;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,CAAC;QACb,CAAC;QACD,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;QAChC,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEM,QAAQ,CAAC,UAAkB;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,YAAY,EAAE,CAAC;QACf,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,GAAG,CAAC;QACR,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAChB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,YAAY,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;IACtF,CAAC;IAEO,eAAe,CAAC,UAAkB;QACtC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBAChE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC;oBACpD,OAAO,eAAe,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;oBAClD,eAAe,EAAE,CAAC;oBAClB,IAAI,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACtC,MAAM;oBACV,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACnD,MAAM;oBACV,CAAC;oBACD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAChB,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC;oBACvF,CAAC;yBAAM,CAAC;wBACJ,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC;oBAC3F,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAEO,WAAW,CAAC,UAAkB,EAAE,QAAgB,EAAE,IAAY;QAClE,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5D,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7H,CAAC;CAEJ;AAjGD,oCAiGC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,MAAM,cAAc,GAAG,UAAS,IAAY;IAC/C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAChC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B;AAEM,MAAM,OAAO,GAAG,UAAS,IAAU;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC,CAAA;AANY,QAAA,OAAO,WAMnB;AAEM,MAAM,OAAO,GAAG,UAAS,IAAU;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC,CAAA;AALY,QAAA,OAAO,WAKnB;AAEM,MAAM,OAAO,GAAG,UAAS,QAAkB;IAC9C,MAAM,MAAM,GAAM,CAAC,CAAC;IACpB,MAAM,MAAM,GAAM,CAAC,CAAC;IACpB,MAAM,OAAO,GAAK,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,MAAM,GAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAI,EAAE,CAAC;IAErB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,MAAM,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,MAAM,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAAC;QACtB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC;QACxB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CAAC;QACxB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,MAAM,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AApCY,QAAA,OAAO,WAoCnB;AAEM,MAAM,2BAA2B,GAAG,UAAS,QAAgB,EAAE,SAAiB,EAAE,MAAa,EAAE,OAAe,EAAE,IAAY;IACjI,MAAM,MAAM,GAAM,CAAC,CAAC;IACpB,MAAM,MAAM,GAAM,CAAC,CAAC;IACpB,MAAM,OAAO,GAAK,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,MAAM,GAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAI,EAAE,CAAC;IAErB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO;QACH,aAAa,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxU,WAAW,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxT,IAAI,EAAE;YACF,MAAM,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,MAAM;YACvC,OAAO,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,OAAO;YAC1C,SAAS,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,SAAS;YAChD,QAAQ,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,SAAS;YAC/C,MAAM,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,MAAM;YACvC,QAAQ,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,QAAQ;YAC7C,MAAM,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,MAAM;SAC1C;KACJ,CAAC;AACN,CAAC,CAAA;AAvBY,QAAA,2BAA2B,+BAuBvC;AAEM,MAAM,YAAY,GAAG,UAAS,GAAW,EAAE,GAAW;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7D,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB;AAEM,MAAM,WAAW,GAAG,UAAS,MAAc;IAC9C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACpD,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAhBW,QAAA,WAAW,eAgBtB;AAEK,MAAM,gBAAgB,GAAG,UAAS,YAAoB,EAAE,MAAc;IACzE,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,CAAC;QACD,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,0BAAkB,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAChJ,CAAC;IACD,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,GAAG,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;AAC3C,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEK,MAAM,YAAY,GAAG,UAAS,MAAc,EAAE,IAAY;IAC7D,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAA,aAAG,EAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,0BAAkB,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3H,CAAC;AACL,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB;AAEK,MAAM,WAAW,GAAG,UAAS,YAAoB,EAAE,MAAc,EAAE,IAAY;IAClF,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,QAAQ,GAAG,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAChC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACT,UAAU,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxC,IAAI,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACJ,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC;QACrC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAC/E,CAAC,CAAC;AA3BW,QAAA,WAAW,eA2BtB;AAEK,MAAM,WAAW,GAAG,UAAS,MAAc,EAAE,IAAY;IAC5D,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACrG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,aAAa,GAAI,MAAM,CAAC,MAAM,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC5B,MAAM,CAAC,KAAK,EAAE;aAAC,CAClB,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AApBW,QAAA,WAAW,eAoBtB;AAEK,MAAM,YAAY,GAAG,UAAS,IAAY;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,MAAM,QAAQ,GAAG,KAAK,WAAU,GAAY,EAAE,MAAc,EAAE,GAAW;IAC5E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO;QACH,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,0BAA0B,EAAE;KAC1G,CAAC;AACN,CAAC,CAAC;AARW,QAAA,QAAQ,YAQnB;AAEK,MAAM,oBAAoB,GAAG,UAAS,OAA+B,EAAE,MAAkB;IAC5F,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC;QAChL,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,SAAS,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAEM,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,GAAW,EAAU,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE;KAAC,CACpB,CAAC;AACN,CAAC,CAAA;AAPY,QAAA,kBAAkB,sBAO9B;AAEM,MAAM,2BAA2B,GAAG,UAAS,KAAa,EAAE,IAAyB;IACxF,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC,CAAA;AAFY,QAAA,2BAA2B,+BAEvC;AAEM,MAAM,qBAAqB,GAAG,UAAS,KAAa,EAAE,IAAyB,EAAE,MAAe;IACnG,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;QACpH,OAAO,KAAK,CAAC;IACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAVY,QAAA,qBAAqB,yBAUjC;AAEM,MAAM,gCAAgC,GAAG,UAAS,KAAa,EAAE,IAA8B;IAClG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC,CAAA;AAFY,QAAA,gCAAgC,oCAE5C;AAEM,MAAM,0BAA0B,GAAG,UAAS,KAAa,EAAE,IAA8B,EAAE,MAAe;IAC7G,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gCAAwB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,gCAAwB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;QAC9H,OAAO,KAAK,CAAC;IACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAVY,QAAA,0BAA0B,8BAUtC;AAEM,MAAM,4BAA4B,GAAG,UAAS,KAAa,EAAE,IAAiC;IACjG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC,CAAA;AAFY,QAAA,4BAA4B,gCAExC;AAEM,MAAM,qBAAqB,GAAG,UAAS,KAAa,EAAE,IAAiC,EAAE,MAAe;IAC3G,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC;AAEM,MAAM,qCAAqC,GAAG,UAAS,KAAa,EAAE,IAAsC;IAC/G,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC,CAAA;AAFY,QAAA,qCAAqC,yCAEjD;AAEM,MAAM,8BAA8B,GAAG,UAAS,KAAa,EAAE,IAAsC,EAAE,MAAe;IACzH,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AARY,QAAA,8BAA8B,kCAQ1C;AAEM,MAAM,gBAAgB,GAAG,UAAS,KAAoB;IACzD,QAAO,KAAK,EAAE,CAAC;QACX,KAAK,qBAAa,CAAC,SAAS,CAAC;QAC7B,KAAK,qBAAa,CAAC,WAAW;YAC1B,OAAO,CAAC,CAAC;QACb,KAAK,qBAAa,CAAC,WAAW,CAAC;QAC/B,KAAK,qBAAa,CAAC,aAAa;YAC5B,OAAO,CAAC,CAAC;QACb,KAAK,qBAAa,CAAC,QAAQ,CAAC;QAC5B,KAAK,qBAAa,CAAC,UAAU;YACzB,OAAO,CAAC,CAAC;QACb,KAAK,qBAAa,CAAC,OAAO,CAAC;QAC3B,KAAK,qBAAa,CAAC,SAAS;YACxB,OAAO,CAAC,CAAC;QACb,KAAK,qBAAa,CAAC,WAAW,CAAC;QAC/B,KAAK,qBAAa,CAAC,kBAAkB;YACjC,OAAO,CAAC,CAAC;QACb,KAAK,qBAAa,CAAC,iBAAiB,CAAC;QACrC,KAAK,qBAAa,CAAC,mBAAmB;YAClC,OAAO,CAAC,CAAC;QACb,KAAK,qBAAa,CAAC,WAAW;YAC1B,OAAO,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC,CAAA;AAxBY,QAAA,gBAAgB,oBAwB5B;AAEM,MAAM,2BAA2B,GAAG,UAAS,YAAoB,EAAE,IAA2B,EAAE,MAAe;IAClH,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AARY,QAAA,2BAA2B,+BAQvC;AAEM,MAAM,uBAAuB,GAAG,UAAS,KAAa,EAAE,IAA2B;IACtF,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAA;AAFY,QAAA,uBAAuB,2BAEnC;AAEM,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACrD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAY,CAAC,sBAAsB,CAAC,CAAC;IACjF,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAY,CAAC,yBAAyB,CAAC,CAAC;QACpF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,GAAG,WAAqB,CAAC;QACpC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB;AAEK,MAAM,gBAAgB,GAAG,UAAU,OAAgB,EAAE,MAAc,EAAE,EAAU,EAAE,WAAwC;IAC5H,IAAI,OAAO,CAAC,UAAU,CAAC,mBAAW,CAAC,8BAA8B,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;QACtG,MAAM,OAAO,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;QACvC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;YACtC,OAAO,CAAC,uBAAuB,EAAE,CAAC;YAClC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IACxB,CAAC;AACL,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B;AAEM,MAAM,cAAc,GAAG,UAAS,OAAgB,EAAE,GAAY,EAAE,MAAc,EAAE,OAAoB,EAAE,WAAwC;IACjJ,IAAI,OAAO,CAAC,kBAAkB,KAAK,wBAAgB,CAAC,cAAc,EAAE,CAAC;QACjE,IAAA,wBAAgB,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAA,gBAAQ,EAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,OAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/D,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;wBACpD,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAClD,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;oBAC1C,CAAC;oBACD,MAAM,CAAC,cAAc,CAAC,oBAAY,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACJ,UAAU;oBACV,IAAA,wBAAgB,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC;gBACvE,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;gBAC/B,wBAAc,CAAC,KAAK,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC7L,IAAA,wBAAgB,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,UAAU;YACV,IAAA,wBAAgB,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;AACL,CAAC,CAAA;AA1BY,QAAA,cAAc,kBA0B1B"} \ No newline at end of file diff --git a/build/index.d.ts b/build/index.d.ts deleted file mode 100644 index f8a0778e..00000000 --- a/build/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./http"; -export * from "./p2p"; -export * from "./push"; -export * from "./interfaces"; -export * from "./eufysecurity"; -export * from "./error"; -export { LoggingCategories, LogLevel, Logger, dummyLogger } from "./logging"; -export declare const libVersion: string; diff --git a/build/index.js b/build/index.js deleted file mode 100644 index 7239290f..00000000 --- a/build/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.libVersion = exports.dummyLogger = exports.LogLevel = void 0; -__exportStar(require("./http"), exports); -__exportStar(require("./p2p"), exports); -__exportStar(require("./push"), exports); -__exportStar(require("./interfaces"), exports); -__exportStar(require("./eufysecurity"), exports); -__exportStar(require("./error"), exports); -var logging_1 = require("./logging"); -Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logging_1.LogLevel; } }); -Object.defineProperty(exports, "dummyLogger", { enumerable: true, get: function () { return logging_1.dummyLogger; } }); -// eslint-disable-next-line @typescript-eslint/no-var-requires -exports.libVersion = require("../package.json").version; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/index.js.map b/build/index.js.map deleted file mode 100644 index eccc5f89..00000000 --- a/build/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,wCAAsB;AACtB,yCAAuB;AACvB,+CAA6B;AAC7B,iDAA+B;AAC/B,0CAAwB;AACxB,qCAA6E;AAAjD,mGAAA,QAAQ,OAAA;AAAU,sGAAA,WAAW,OAAA;AAEzD,8DAA8D;AACjD,QAAA,UAAU,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file diff --git a/build/interfaces.d.ts b/build/interfaces.d.ts deleted file mode 100644 index 18525be2..00000000 --- a/build/interfaces.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { Readable } from "stream"; -import { Device } from "./http/device"; -import { HTTPApiPersistentData, Picture, PropertyValue, Schedule } from "./http/interfaces"; -import { Station } from "./http/station"; -import { DeviceSmartLockMessage } from "./mqtt/model"; -import { DatabaseCountByDate, DatabaseQueryLatestInfo, DatabaseQueryLocal, StreamMetadata } from "./p2p/interfaces"; -import { CommandResult } from "./p2p/models"; -import { TalkbackStream } from "./p2p/talkback"; -import { AlarmEvent, DatabaseReturnCode, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent } from "./p2p/types"; -import { Credentials, PushMessage } from "./push/models"; -import { Jsonable, LoggingCategories } from "."; -import { LogLevel } from "typescript-logging"; -export interface StationIPAddresses { - [index: string]: string; -} -export interface EufySecurityConfig { - username: string; - password: string; - country?: string; - language?: string; - trustedDeviceName?: string; - persistentDir?: string; - persistentData?: string; - p2pConnectionSetup: number; - pollingIntervalMinutes: number; - eventDurationSeconds: number; - acceptInvitations?: boolean; - stationIPAddresses?: StationIPAddresses; - enableEmbeddedPKCS1Support?: boolean; - deviceConfig?: { - simultaneousDetections?: boolean; - }; - logging?: { - level?: LogLevel; - categories?: Array<{ - category: LoggingCategories; - level: LogLevel; - }>; - }; -} -export interface EufySecurityPersistentData { - country: string; - login_hash: string; - openudid: string; - serial_number: string; - cloud_token?: string; - cloud_token_expiration?: number; - push_credentials: Credentials | undefined; - push_persistentIds: string[]; - version: string; - httpApi?: HTTPApiPersistentData; - fallbackTrustedDeviceName?: string; -} -export interface EufySecurityEvents { - "device added": (device: Device) => void; - "device removed": (device: Device) => void; - "device property changed": (device: Device, name: string, value: PropertyValue) => void; - "device raw property changed": (device: Device, type: number, value: string) => void; - "device crying detected": (device: Device, state: boolean) => void; - "device sound detected": (device: Device, state: boolean) => void; - "device pet detected": (device: Device, state: boolean) => void; - "device vehicle detected": (device: Device, state: boolean) => void; - "device motion detected": (device: Device, state: boolean) => void; - "device person detected": (device: Device, state: boolean, person: string) => void; - "device stranger person detected": (device: Device, state: boolean) => void; - "device dog detected": (device: Device, state: boolean) => void; - "device dog lick detected": (device: Device, state: boolean) => void; - "device dog poop detected": (device: Device, state: boolean) => void; - "device rings": (device: Device, state: boolean) => void; - "device locked": (device: Device, state: boolean) => void; - "device open": (device: Device, state: boolean) => void; - "device package delivered": (device: Device, state: boolean) => void; - "device package stranded": (device: Device, state: boolean) => void; - "device package taken": (device: Device, state: boolean) => void; - "device someone loitering": (device: Device, state: boolean) => void; - "device radar motion detected": (device: Device, state: boolean) => void; - "device 911 alarm": (device: Device, state: boolean, detail: SmartSafeAlarm911Event) => void; - "device shake alarm": (device: Device, state: boolean, detail: SmartSafeShakeAlarmEvent) => void; - "device wrong try-protect alarm": (device: Device, state: boolean) => void; - "device long time not close": (device: Device, state: boolean) => void; - "device low battery": (device: Device, state: boolean) => void; - "device jammed": (device: Device, state: boolean) => void; - "device pin verified": (device: Device, successfull: boolean) => void; - "device tampering": (device: Device, state: boolean) => void; - "device low temperature": (device: Device, state: boolean) => void; - "device high temperature": (device: Device, state: boolean) => void; - "device pin incorrect": (device: Device, state: boolean) => void; - "device lid stuck": (device: Device, state: boolean) => void; - "device battery fully charged": (device: Device, state: boolean) => void; - "station added": (station: Station) => void; - "station removed": (station: Station) => void; - "station livestream start": (station: Station, device: Device, metadata: StreamMetadata, videostream: Readable, audiostream: Readable) => void; - "station livestream stop": (station: Station, device: Device) => void; - "station download start": (station: Station, device: Device, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void; - "station download finish": (station: Station, device: Device) => void; - "station command result": (station: Station, result: CommandResult) => void; - "station rtsp livestream start": (station: Station, device: Device) => void; - "station rtsp livestream stop": (station: Station, device: Device) => void; - "station rtsp url": (station: Station, device: Device, value: string) => void; - "station guard mode": (station: Station, guardMode: number) => void; - "station current mode": (station: Station, currentMode: number) => void; - "station property changed": (station: Station, name: string, value: PropertyValue) => void; - "station raw property changed": (station: Station, type: number, value: string) => void; - "station alarm event": (station: Station, alarmEvent: AlarmEvent) => void; - "station alarm delay event": (station: Station, alarmDelayEvent: AlarmEvent, alarmDelay: number) => void; - "station alarm armed": (station: Station) => void; - "station alarm arm delay event": (station: Station, armDelay: number) => void; - "station connect": (station: Station) => void; - "station connection error": (station: Station, error: Error) => void; - "station close": (station: Station) => void; - "station talkback start": (station: Station, device: Device, talkbackStream: TalkbackStream) => void; - "station talkback stop": (station: Station, device: Device) => void; - "station image download": (station: Station, file: string, image: Picture) => void; - "station database query latest": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; - "station database query local": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; - "station database count by date": (station: Station, returnCode: DatabaseReturnCode, data: Array) => void; - "station database delete": (station: Station, returnCode: DatabaseReturnCode, failedIds: Array) => void; - "push connect": () => void; - "push close": () => void; - "push message": (message: PushMessage) => void; - "connect": () => void; - "close": () => void; - "connection error": (error: Error) => void; - "tfa request": () => void; - "captcha request": (id: string, captcha: string) => void; - "persistent data": (data: string) => void; - "mqtt connect": () => void; - "mqtt close": () => void; - "mqtt lock message": (message: DeviceSmartLockMessage) => void; - "user added": (device: Device, username: string, schedule?: Schedule) => void; - "user deleted": (device: Device, username: string) => void; - "user error": (device: Device, username: string, error: Error) => void; - "user username updated": (device: Device, username: string) => void; - "user schedule updated": (device: Device, username: string, schedule: Schedule) => void; - "user passcode updated": (device: Device, username: string) => void; -} -export interface ErrorObject { - cause: unknown; - message: string; - context: Jsonable; - stacktrace?: string; -} diff --git a/build/interfaces.js b/build/interfaces.js deleted file mode 100644 index db919115..00000000 --- a/build/interfaces.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/interfaces.js.map b/build/interfaces.js.map deleted file mode 100644 index 8fb5f7d1..00000000 --- a/build/interfaces.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/logging.d.ts b/build/logging.d.ts deleted file mode 100644 index be3b0f60..00000000 --- a/build/logging.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { LogLevel } from "typescript-logging"; -export type LoggingCategories = "all" | "main" | "http" | "p2p" | "push" | "mqtt"; -export { LogLevel }; -export interface Logger { - trace(message: unknown, ...args: unknown[]): void; - debug(message: unknown, ...args: unknown[]): void; - info(message: unknown, ...args: unknown[]): void; - warn(message: unknown, ...args: unknown[]): void; - error(message: unknown, ...args: unknown[]): void; - fatal?(message: unknown, ...args: unknown[]): void; -} -export declare const dummyLogger: Logger; -export declare class InternalLogger { - static logger: Logger | undefined; -} -export declare const rootMainLogger: import("typescript-logging-category-style").Category; -export declare const rootHTTPLogger: import("typescript-logging-category-style").Category; -export declare const rootMQTTLogger: import("typescript-logging-category-style").Category; -export declare const rootPushLogger: import("typescript-logging-category-style").Category; -export declare const rootP2PLogger: import("typescript-logging-category-style").Category; -export declare const setLoggingLevel: (category?: LoggingCategories, level?: LogLevel) => void; -export declare const getLoggingLevel: (category?: LoggingCategories) => number; diff --git a/build/logging.js b/build/logging.js deleted file mode 100644 index aae1cc4e..00000000 --- a/build/logging.js +++ /dev/null @@ -1,116 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getLoggingLevel = exports.setLoggingLevel = exports.rootP2PLogger = exports.rootPushLogger = exports.rootMQTTLogger = exports.rootHTTPLogger = exports.rootMainLogger = exports.InternalLogger = exports.LogLevel = void 0; -const typescript_logging_1 = require("typescript-logging"); -Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return typescript_logging_1.LogLevel; } }); -const typescript_logging_category_style_1 = require("typescript-logging-category-style"); -class InternalLogger { - static logger; -} -exports.InternalLogger = InternalLogger; -const getMethodName = function () { - const matches = new Error("").stack?.split("\n")[6].match(/ at( new){0,1} ([a-zA-Z0-9_\.]+) /); - if (matches !== null && matches !== undefined && matches[2] !== undefined && matches[2] !== "eval") { - return matches[2]; - } - return undefined; -}; -const provider = typescript_logging_category_style_1.CategoryProvider.createProvider("EufySecurityClientProvider", { - level: typescript_logging_1.LogLevel.Off, - channel: { - type: "RawLogChannel", - write: (msg, _formatArg) => { - const methodName = getMethodName(); - const method = methodName ? `[${methodName}] ` : ""; - switch (msg.level) { - case typescript_logging_1.LogLevel.Trace: - if (msg.args) - InternalLogger.logger?.trace(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); - else - InternalLogger.logger?.trace(`[${msg.logNames}] ${method}${msg.message}`); - break; - case typescript_logging_1.LogLevel.Debug: - if (msg.args) - InternalLogger.logger?.debug(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); - else - InternalLogger.logger?.debug(`[${msg.logNames}] ${method}${msg.message}`); - break; - case typescript_logging_1.LogLevel.Info: - if (msg.args) - InternalLogger.logger?.info(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); - else - InternalLogger.logger?.info(`[${msg.logNames}] ${method}${msg.message}`); - break; - case typescript_logging_1.LogLevel.Warn: - if (msg.args) - InternalLogger.logger?.warn(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); - else - InternalLogger.logger?.warn(`[${msg.logNames}] ${method}${msg.message}`); - break; - case typescript_logging_1.LogLevel.Error: - if (msg.args) - InternalLogger.logger?.error(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); - else - InternalLogger.logger?.error(`[${msg.logNames}] ${method}${msg.message}`); - break; - case typescript_logging_1.LogLevel.Fatal: - if (InternalLogger.logger && InternalLogger.logger.fatal) - if (msg.args) - InternalLogger.logger.fatal(`[${msg.logNames}] ${method}${msg.message}`, ...msg.args); - else - InternalLogger.logger.fatal(`[${msg.logNames}] ${method}${msg.message}`); - break; - } - }, - }, -}); -exports.rootMainLogger = provider.getCategory("main"); -exports.rootHTTPLogger = provider.getCategory("http"); -exports.rootMQTTLogger = provider.getCategory("mqtt"); -exports.rootPushLogger = provider.getCategory("push"); -exports.rootP2PLogger = provider.getCategory("p2p"); -const setLoggingLevel = function (category = "all", level = typescript_logging_1.LogLevel.Off) { - switch (category) { - case "all": - provider.updateRuntimeSettings({ - level: level - }); - break; - case "main": - provider.updateRuntimeSettingsCategory(exports.rootMainLogger, { - level: level - }); - break; - case "http": - provider.updateRuntimeSettingsCategory(exports.rootHTTPLogger, { - level: level - }); - break; - case "mqtt": - provider.updateRuntimeSettingsCategory(exports.rootMQTTLogger, { - level: level - }); - break; - case "p2p": - provider.updateRuntimeSettingsCategory(exports.rootP2PLogger, { - level: level - }); - break; - case "push": - provider.updateRuntimeSettingsCategory(exports.rootPushLogger, { - level: level - }); - break; - } -}; -exports.setLoggingLevel = setLoggingLevel; -const getLoggingLevel = function (category = "all") { - switch (category) { - case "all": - return provider.runtimeConfig.level; - default: - return provider.getCategory(category).logLevel; - } -}; -exports.getLoggingLevel = getLoggingLevel; -//# sourceMappingURL=logging.js.map \ No newline at end of file diff --git a/build/logging.js.map b/build/logging.js.map deleted file mode 100644 index 5c89f4b6..00000000 --- a/build/logging.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/mqtt/interface.d.ts b/build/mqtt/interface.d.ts deleted file mode 100644 index 409f5175..00000000 --- a/build/mqtt/interface.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { DeviceSmartLockMessage } from "./model"; -export interface MQTTServiceEvents { - "connect": () => void; - "close": () => void; - "lock message": (message: DeviceSmartLockMessage) => void; -} diff --git a/build/mqtt/interface.js b/build/mqtt/interface.js deleted file mode 100644 index d549d1f1..00000000 --- a/build/mqtt/interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=interface.js.map \ No newline at end of file diff --git a/build/mqtt/interface.js.map b/build/mqtt/interface.js.map deleted file mode 100644 index 8bcb70f9..00000000 --- a/build/mqtt/interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/mqtt/interface.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/mqtt/model.d.ts b/build/mqtt/model.d.ts deleted file mode 100644 index 80c13ed4..00000000 --- a/build/mqtt/model.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -export interface DeviceSmartLockNotifyData { - stationSn: string; - deviceSn: string; - eventType: number; - eventTime: number; - shortUserId: string; - unknown1: string; - nickName: string; - userId: string; - unknown2: string; - deviceName: string; - unknown3: string; - lockState: string; -} -export interface DeviceSmartLockNotify { - timestamp: number; - uuid: string; - data: DeviceSmartLockNotifyData; -} -export interface DeviceSmartLockMessage { - eventType: number; - userId: string; - data: DeviceSmartLockNotify; -} diff --git a/build/mqtt/model.js b/build/mqtt/model.js deleted file mode 100644 index eab07a85..00000000 --- a/build/mqtt/model.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=model.js.map \ No newline at end of file diff --git a/build/mqtt/model.js.map b/build/mqtt/model.js.map deleted file mode 100644 index 6929c2f6..00000000 --- a/build/mqtt/model.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/mqtt/model.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/mqtt/mqtt-eufy.crt b/build/mqtt/mqtt-eufy.crt deleted file mode 100644 index a7c381b1..00000000 --- a/build/mqtt/mqtt-eufy.crt +++ /dev/null @@ -1,79 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT -EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp -ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3 -MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH -EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE -CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD -EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD -BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv -K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e -cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY -pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n -eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB -AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv -9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v -b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n -b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG -CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv -MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz -91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2 -RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi -DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11 -GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x -LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT -MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv -IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx -MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku -Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1 -dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi -CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H -Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/ -3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+ -6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI -gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E -GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud -IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr -BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al -oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9 -MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv -bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d -H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg -OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq -9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO -KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3 -qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm -rw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh -MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE -YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 -MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo -ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg -MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN -ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA -PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w -wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi -EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY -avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ -YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE -sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h -/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 -IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD -ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy -OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P -TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER -dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf -ReYNnyicsbkqWletNw+vHX/bvZ8= ------END CERTIFICATE----- diff --git a/build/mqtt/proto/lock.proto b/build/mqtt/proto/lock.proto deleted file mode 100644 index 2e9309b2..00000000 --- a/build/mqtt/proto/lock.proto +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright: (c) 2022-2024, Patrick Broetto -// MIT License - -syntax = "proto3"; - -package eufy_security_client.lock; - -message DeviceSmartLockMessage { - optional uint32 event_type = 1; - optional string user_id = 2; - optional DeviceSmartLockNotify data = 3; -} - -message DeviceSmartLockNotify { - optional uint64 timestamp = 1; - optional string uuid = 2; - optional DeviceSmartLockNotifyData data = 3; -} - -message DeviceSmartLockNotifyData { - optional string station_sn = 1; - optional string device_sn = 2; - optional uint32 event_type = 3; - optional uint64 event_time = 4; - optional string short_user_id = 5; - optional string unknown1 = 6; - optional string nick_name = 7; - optional string user_id = 8; - optional string unknown2 = 9; - optional string device_name = 10; - optional string unknown3 = 11; - optional string lock_state = 12; -} \ No newline at end of file diff --git a/build/mqtt/service.d.ts b/build/mqtt/service.d.ts deleted file mode 100644 index ee406234..00000000 --- a/build/mqtt/service.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { MQTTServiceEvents } from "./interface"; -export declare class MQTTService extends TypedEmitter { - private readonly CLIENT_ID_FORMAT; - private readonly USERNAME_FORMAT; - private readonly SUBSCRIBE_NOTICE_FORMAT; - private readonly SUBSCRIBE_LOCK_FORMAT; - private readonly SUBSCRIBE_DOORBELL_FORMAT; - private static proto; - private connected; - private client; - private connecting; - private clientID?; - private androidID?; - private apiBase?; - private email?; - private subscribeLocks; - private deviceSmartLockMessageModel; - private constructor(); - static init(): Promise; - private parseSmartLockMessage; - private getMQTTBrokerUrl; - connect(clientID: string, androidID: string, apiBase: string, email: string): void; - private _subscribeLock; - subscribeLock(deviceSN: string): void; - isConnected(): boolean; - close(): void; -} diff --git a/build/mqtt/service.js b/build/mqtt/service.js deleted file mode 100644 index 049b63c6..00000000 --- a/build/mqtt/service.js +++ /dev/null @@ -1,177 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MQTTService = void 0; -const mqtt = __importStar(require("mqtt")); -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const fse = __importStar(require("fs-extra")); -const path = __importStar(require("path")); -const protobufjs_1 = require("protobufjs"); -const utils_1 = require("../utils"); -const logging_1 = require("../logging"); -const error_1 = require("../error"); -class MQTTService extends tiny_typed_emitter_1.TypedEmitter { - CLIENT_ID_FORMAT = "android_EufySecurity__"; - USERNAME_FORMAT = "eufy_"; - SUBSCRIBE_NOTICE_FORMAT = "/phone//notice"; - SUBSCRIBE_LOCK_FORMAT = "/phone/smart_lock//push_message"; - SUBSCRIBE_DOORBELL_FORMAT = "/phone/doorbell//push_message"; - static proto = null; - connected = false; - client = null; - connecting = false; - clientID; - androidID; - apiBase; - email; - subscribeLocks = []; - deviceSmartLockMessageModel; - constructor() { - super(); - this.deviceSmartLockMessageModel = MQTTService.proto.lookupType("DeviceSmartLockMessage"); - } - static async init() { - try { - this.proto = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/lock.proto")); - } - catch (error) { - logging_1.rootMainLogger.error("Error loading MQTT proto lock file", { error: (0, error_1.ensureError)(error) }); - } - return new MQTTService(); - } - parseSmartLockMessage(data) { - const message = this.deviceSmartLockMessageModel.decode(data); - const object = this.deviceSmartLockMessageModel.toObject(message, { - longs: String, - enums: String, - bytes: String, - }); - return object; - } - getMQTTBrokerUrl(apiBase) { - switch (apiBase) { - case "https://security-app.eufylife.com": - return "mqtts://security-mqtt.eufylife.com"; - case "https://security-app-ci.eufylife.com": - return "mqtts://security-mqtt-ci.eufylife.com"; - case "https://security-app-qa.eufylife.com": - case "https://security-app-cn-qa.anker-in.com": - return "mqtts://security-mqtt-qa.eufylife.com"; - case "https://security-app-eu.eufylife.com": - return "mqtts://security-mqtt-eu.eufylife.com"; - case "https://security-app-short-qa.eufylife.com": - return "mqtts://security-mqtt-short-qa.eufylife.com"; - default: - return "mqtts://security-mqtt.eufylife.com"; - } - } - connect(clientID, androidID, apiBase, email) { - this.clientID = clientID; - this.androidID = androidID; - this.apiBase = apiBase; - this.email = email; - if (!this.connected && !this.connecting && this.clientID && this.androidID && this.apiBase && this.email && this.subscribeLocks.length > 0) { - this.connecting = true; - this.client = mqtt.connect(this.getMQTTBrokerUrl(apiBase), { - keepalive: 60, - clean: true, - reschedulePings: true, - resubscribe: true, - port: 8789, - username: this.USERNAME_FORMAT.replace("", clientID), - password: email, - ca: fse.readFileSync(path.join(__dirname, "./mqtt-eufy.crt")), - clientId: this.CLIENT_ID_FORMAT.replace("", clientID).replace("", androidID), - rejectUnauthorized: false // Some eufy mqtt servers have an expired certificate :( - }); - this.client.on("connect", (_connack) => { - this.connected = true; - this.connecting = false; - this.emit("connect"); - this.client.subscribe(this.SUBSCRIBE_NOTICE_FORMAT.replace("", clientID), { qos: 1 }); - if (this.subscribeLocks.length > 0) { - let lock; - while ((lock = this.subscribeLocks.shift()) !== undefined) { - this._subscribeLock(lock); - } - } - }); - this.client.on("close", () => { - this.connected = false; - this.emit("close"); - }); - this.client.on("error", (error) => { - this.connecting = false; - logging_1.rootMQTTLogger.error("MQTT Error", { error: (0, utils_1.getError)(error) }); - if (error.code === 1 || error.code === 2 || error.code === 4 || error.code === 5) - this.client?.end(); - }); - this.client.on("message", (topic, message, _packet) => { - if (topic.includes("smart_lock")) { - const parsedMessage = this.parseSmartLockMessage(message); - logging_1.rootMQTTLogger.debug("Received a smart lock message over MQTT", { message: parsedMessage }); - this.emit("lock message", parsedMessage); - } - else { - logging_1.rootMQTTLogger.debug("MQTT message received", { topic: topic, message: message.toString("hex") }); - } - }); - } - } - _subscribeLock(deviceSN) { - this.client?.subscribe(this.SUBSCRIBE_LOCK_FORMAT.replace("", deviceSN), { qos: 1 }, (error, granted) => { - if (error) { - logging_1.rootMQTTLogger.error(`Subscribe error for lock ${deviceSN}`, { error: (0, utils_1.getError)(error), deviceSN: deviceSN }); - } - if (granted) { - logging_1.rootMQTTLogger.info(`Successfully registered to MQTT notifications for lock ${deviceSN}`); - } - }); - } - subscribeLock(deviceSN) { - if (this.connected) { - this._subscribeLock(deviceSN); - } - else { - if (!this.subscribeLocks.includes(deviceSN)) { - this.subscribeLocks.push(deviceSN); - } - if (this.clientID && this.androidID && this.apiBase && this.email) - this.connect(this.clientID, this.androidID, this.apiBase, this.email); - } - } - isConnected() { - return this.connected; - } - close() { - if (this.connected) { - this.client?.end(true); - this.connected = false; - this.connecting = false; - } - } -} -exports.MQTTService = MQTTService; -//# sourceMappingURL=service.js.map \ No newline at end of file diff --git a/build/mqtt/service.js.map b/build/mqtt/service.js.map deleted file mode 100644 index 5d9fb361..00000000 --- a/build/mqtt/service.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/mqtt/service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/ble.d.ts b/build/p2p/ble.d.ts deleted file mode 100644 index 5e03738a..00000000 --- a/build/p2p/ble.d.ts +++ /dev/null @@ -1,59 +0,0 @@ -export declare enum BleParameterIndex { - ZERO = -96, - ONE = -95, - TWO = -94, - THREE = -93, - FOUR = -92, - FIVE = -91, - SIX = -90, - SEVEN = -89, - EIGHT = -88, - NINE = -87, - TEN = -86, - ELEVEN = -85, - TWELVE = -84, - THIRTEEN = -83 -} -export declare class BleCommandFactory { - private static readonly HEADER; - private data?; - private commandCode?; - private versionCode?; - private dataType?; - private packageFlag?; - private unknown?; - private additionalDataSeparatorByte?; - private additionalData?; - private responseCode?; - private encrypted?; - private partial?; - static parseLockV12(data: string | Buffer): BleCommandFactory; - static parseSmartSafe(data: string | Buffer): BleCommandFactory; - static parseSmartLock(data: string | Buffer): BleCommandFactory; - toString: () => string; - private setResponseCode; - getResponseCode(): number | undefined; - setVersionCode(version: number): BleCommandFactory; - getVersionCode(): number | undefined; - setCommandCode(command: number): BleCommandFactory; - getCommandCode(): number | undefined; - setDataType(type: number): BleCommandFactory; - getDataType(): number | undefined; - setPackageFlag(flag: number): BleCommandFactory; - getPackageFlag(): number | undefined; - setAdditionalDataSeparator(separator: number): BleCommandFactory; - getAdditionalDataSeparator(): Buffer | undefined; - setAdditionalData(data: Buffer): BleCommandFactory; - getAdditionalData(): Buffer | undefined; - setData(data: Buffer): BleCommandFactory; - getData(): Buffer | undefined; - setUnknown(data: Buffer): BleCommandFactory; - static generateHash(data: Buffer): number; - isEncrypted(): boolean | undefined; - setEncrypted(encrypted: boolean): BleCommandFactory; - isPartial(): boolean | undefined; - setPartial(partial: boolean): BleCommandFactory; - getLockV12Command(): Buffer; - getSmartSafeCommand(): Buffer; - getSmartLockCommand(): Buffer; -} diff --git a/build/p2p/ble.js b/build/p2p/ble.js deleted file mode 100644 index b209db42..00000000 --- a/build/p2p/ble.js +++ /dev/null @@ -1,280 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BleCommandFactory = exports.BleParameterIndex = void 0; -const error_1 = require("./error"); -var BleParameterIndex; -(function (BleParameterIndex) { - BleParameterIndex[BleParameterIndex["ZERO"] = -96] = "ZERO"; - BleParameterIndex[BleParameterIndex["ONE"] = -95] = "ONE"; - BleParameterIndex[BleParameterIndex["TWO"] = -94] = "TWO"; - BleParameterIndex[BleParameterIndex["THREE"] = -93] = "THREE"; - BleParameterIndex[BleParameterIndex["FOUR"] = -92] = "FOUR"; - BleParameterIndex[BleParameterIndex["FIVE"] = -91] = "FIVE"; - BleParameterIndex[BleParameterIndex["SIX"] = -90] = "SIX"; - BleParameterIndex[BleParameterIndex["SEVEN"] = -89] = "SEVEN"; - BleParameterIndex[BleParameterIndex["EIGHT"] = -88] = "EIGHT"; - BleParameterIndex[BleParameterIndex["NINE"] = -87] = "NINE"; - BleParameterIndex[BleParameterIndex["TEN"] = -86] = "TEN"; - BleParameterIndex[BleParameterIndex["ELEVEN"] = -85] = "ELEVEN"; - BleParameterIndex[BleParameterIndex["TWELVE"] = -84] = "TWELVE"; - BleParameterIndex[BleParameterIndex["THIRTEEN"] = -83] = "THIRTEEN"; -})(BleParameterIndex || (exports.BleParameterIndex = BleParameterIndex = {})); -class BleCommandFactory { - static HEADER = Buffer.from([-1, 9]); - data; - commandCode; - versionCode; - dataType; - packageFlag; - unknown; - additionalDataSeparatorByte; - additionalData; - responseCode; - encrypted; - partial; - static parseLockV12(data) { - if (typeof data === "string") { - data = Buffer.from(data, "hex"); - } - if (data.readInt8(0) !== BleCommandFactory.HEADER[0] && data.readInt8(1) !== BleCommandFactory.HEADER[1]) { - throw new error_1.BleInvalidDataHeaderError("Invalid BLE data header"); - } - const fac = new BleCommandFactory(); - fac.setVersionCode(data.readUint8(4)); - fac.setCommandCode(data.readUint8(6)); - fac.setDataType(data.readUint8()); - fac.setPackageFlag(data.readInt8(7)); - fac.setResponseCode(fac.getPackageFlag() === -64 ? data.readUint8(8) : data.readUint8(12)); - fac.setData(data.subarray(fac.getPackageFlag() === -64 ? 8 : 12, data.length - 1)); //TODO: Verify if position 8 is correct for data (i think it should be 9 or 13)... - if (BleCommandFactory.generateHash(data.subarray(0, data.length - 1)) !== data.readUint8(data.length - 1)) { - throw new error_1.BleInvalidChecksumError("Invalid BLE data, checksum mismatch"); - } - return fac; - } - static parseSmartSafe(data) { - return BleCommandFactory.parseLockV12(data); - } - static parseSmartLock(data) { - if (typeof data === "string") { - data = Buffer.from(data, "hex"); - } - if (data.length < 9 || (data.readInt8(0) !== BleCommandFactory.HEADER[0] && data.readInt8(1) !== BleCommandFactory.HEADER[1])) { - throw new error_1.BleInvalidDataHeaderError("Invalid BLE data header"); - } - if (BleCommandFactory.generateHash(data.subarray(0, data.length - 1)) !== data.readUint8(data.length - 1)) { - throw new error_1.BleInvalidChecksumError("Invalid BLE data, checksum mismatch"); - } - const fac = new BleCommandFactory(); - const flags = data.readUint16BE(7); - fac.setVersionCode(data.readUint8(4)); - fac.setDataType(data.readUint8(6)); - fac.setPartial((flags >> 15) === 1); - fac.setEncrypted(((flags << 1) >> 15) === 1); - fac.setCommandCode(((flags << 4) & 32767) >> 4); - fac.setData(data.subarray(9, data.length - 1)); - return fac; - } - toString = () => { - return `BleCommandFactory (versionCode: ${this.versionCode} commandCode: ${this.commandCode} dataType: ${this.dataType} partial: ${this.partial} encrypted: ${this.encrypted} data: ${this.data?.toString("hex")} packageFlag: ${this.packageFlag} responseCode: ${this.responseCode})`; - }; - setResponseCode(code) { - this.responseCode = code; - } - getResponseCode() { - return this.responseCode; - } - setVersionCode(version) { - this.versionCode = version; - return this; - } - getVersionCode() { - return this.versionCode; - } - setCommandCode(command) { - this.commandCode = command; - return this; - } - getCommandCode() { - return this.commandCode; - } - setDataType(type) { - this.dataType = type; - return this; - } - getDataType() { - return this.dataType; - } - setPackageFlag(flag) { - this.packageFlag = flag; - return this; - } - getPackageFlag() { - return this.packageFlag; - } - setAdditionalDataSeparator(separator) { - this.additionalDataSeparatorByte = Buffer.from([separator]); - return this; - } - getAdditionalDataSeparator() { - return this.additionalDataSeparatorByte; - } - setAdditionalData(data) { - this.additionalData = data; - return this; - } - getAdditionalData() { - return this.additionalData; - } - setData(data) { - this.data = data; - return this; - } - getData() { - return this.data; - } - setUnknown(data) { - this.unknown = data; - return this; - } - static generateHash(data) { - let result = 0; - for (const value of data) { - result = result ^ value; - } - return result; - } - isEncrypted() { - return this.encrypted; - } - setEncrypted(encrypted) { - this.encrypted = encrypted; - return this; - } - isPartial() { - return this.partial; - } - setPartial(partial) { - this.partial = partial; - return this; - } - getLockV12Command() { - if (this.versionCode === undefined) - throw new error_1.BleVersionCodeError("BleCommandFactory version code value missing"); - if (this.dataType === undefined) - throw new error_1.BleDataTypeError("BleCommandFactory data type value missing"); - if (this.commandCode === undefined) - throw new error_1.BleCommandCodeError("BleCommandFactory command code value missing"); - if (this.data === undefined) - throw new error_1.BleDataError("BleCommandFactory data value missing"); - if (this.additionalData === undefined) - throw new error_1.BleAdditionalDataError("BleCommandFactory additional data value missing"); - this.setAdditionalDataSeparator(BleParameterIndex.ZERO); - const bVersionCode = Buffer.from([this.versionCode]); - const bDataType = Buffer.from([this.dataType]); - const bCommandCode = Buffer.from([this.commandCode]); - const bPackageFlag = this.packageFlag === undefined ? Buffer.from([-64]) : Buffer.from([this.packageFlag]); - const bAdditionalDataLength = Buffer.from([this.additionalData.length]); - const size = Buffer.allocUnsafe(2); - size.writeInt16LE(BleCommandFactory.HEADER.length + - size.length + - bVersionCode.length + - bDataType.length + - bCommandCode.length + - bPackageFlag.length + - this.additionalDataSeparatorByte.length + - bAdditionalDataLength.length + - this.additionalData.length + - this.data.length + - 1 // Hash - ); - const data = Buffer.concat([ - BleCommandFactory.HEADER, - size, - bVersionCode, - bDataType, - bCommandCode, - bPackageFlag, - this.additionalDataSeparatorByte, - bAdditionalDataLength, - this.additionalData, - this.data - ]); - const hash = BleCommandFactory.generateHash(data); - return Buffer.concat([data, Buffer.from([hash])]); - } - getSmartSafeCommand() { - if (this.versionCode === undefined) - throw new error_1.BleVersionCodeError("BleCommandFactory version code value missing"); - if (this.dataType === undefined) - throw new error_1.BleDataTypeError("BleCommandFactory data type value missing"); - if (this.commandCode === undefined) - throw new error_1.BleCommandCodeError("BleCommandFactory command code value missing"); - if (this.data === undefined) - throw new error_1.BleDataError("BleCommandFactory data value missing"); - const bVersionCode = Buffer.from([this.versionCode]); - const bDataType = Buffer.from([this.dataType]); - const bCommandCode = Buffer.from([this.commandCode]); - const bPackageFlag = this.packageFlag === undefined ? Buffer.from([-64]) : Buffer.from([this.packageFlag]); - const size = Buffer.allocUnsafe(2); - size.writeInt16LE(BleCommandFactory.HEADER.length + - size.length + - bVersionCode.length + - bDataType.length + - bCommandCode.length + - bPackageFlag.length + - this.data.length + - 1 // Hash - ); - const data = Buffer.concat([ - BleCommandFactory.HEADER, - size, - bVersionCode, - bDataType, - bCommandCode, - bPackageFlag, - this.data - ]); - const hash = BleCommandFactory.generateHash(data); - return Buffer.concat([data, Buffer.from([hash])]); - } - getSmartLockCommand() { - if (this.versionCode === undefined) - throw new error_1.BleVersionCodeError("BleCommandFactory version code value missing"); - if (this.dataType === undefined) - throw new error_1.BleDataTypeError("BleCommandFactory data type value missing"); - if (this.commandCode === undefined) - throw new error_1.BleCommandCodeError("BleCommandFactory command code value missing"); - if (this.data === undefined) - throw new error_1.BleDataError("BleCommandFactory data value missing"); - const bVersionCode = Buffer.from([this.versionCode]); - const bDataType = Buffer.from([this.dataType]); - const unknown = Buffer.alloc(1); - const partial = false; - const encrypted = true; - const commandCodeEncoded = Buffer.allocUnsafe(2); - commandCodeEncoded.writeInt16BE(((partial ? 1 : 0) << 15) + ((encrypted ? 1 : 0) << 14) + this.commandCode); - const size = Buffer.allocUnsafe(2); - size.writeInt16LE(BleCommandFactory.HEADER.length + - size.length + - bVersionCode.length + - unknown.length + - bDataType.length + - commandCodeEncoded.length + - this.data.length + - 1 // Hash - ); - const data = Buffer.concat([ - BleCommandFactory.HEADER, - size, - bVersionCode, - unknown, - bDataType, - commandCodeEncoded, - this.data - ]); - const hash = BleCommandFactory.generateHash(data); - return Buffer.concat([data, Buffer.from([hash])]); - } -} -exports.BleCommandFactory = BleCommandFactory; -//# sourceMappingURL=ble.js.map \ No newline at end of file diff --git a/build/p2p/ble.js.map b/build/p2p/ble.js.map deleted file mode 100644 index bd1d166a..00000000 --- a/build/p2p/ble.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ble.js","sourceRoot":"","sources":["../../src/p2p/ble.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/error.d.ts b/build/p2p/error.d.ts deleted file mode 100644 index 1d02832f..00000000 --- a/build/p2p/error.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { BaseError, Jsonable } from "../error"; -export declare class BleVersionCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleCommandCodeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleDataTypeError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleDataError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleAdditionalDataError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleAdditionalDataSeparatorError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleInvalidDataHeaderError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BleInvalidChecksumError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} diff --git a/build/p2p/error.js b/build/p2p/error.js deleted file mode 100644 index 2b9496f0..00000000 --- a/build/p2p/error.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BleInvalidChecksumError = exports.BleInvalidDataHeaderError = exports.BleAdditionalDataSeparatorError = exports.BleAdditionalDataError = exports.BleDataError = exports.BleDataTypeError = exports.BleCommandCodeError = exports.BleVersionCodeError = void 0; -const error_1 = require("../error"); -class BleVersionCodeError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleVersionCodeError.name; - } -} -exports.BleVersionCodeError = BleVersionCodeError; -class BleCommandCodeError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleCommandCodeError.name; - } -} -exports.BleCommandCodeError = BleCommandCodeError; -class BleDataTypeError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleDataTypeError.name; - } -} -exports.BleDataTypeError = BleDataTypeError; -class BleDataError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleDataError.name; - } -} -exports.BleDataError = BleDataError; -class BleAdditionalDataError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleAdditionalDataError.name; - } -} -exports.BleAdditionalDataError = BleAdditionalDataError; -class BleAdditionalDataSeparatorError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleAdditionalDataSeparatorError.name; - } -} -exports.BleAdditionalDataSeparatorError = BleAdditionalDataSeparatorError; -class BleInvalidDataHeaderError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleInvalidDataHeaderError.name; - } -} -exports.BleInvalidDataHeaderError = BleInvalidDataHeaderError; -class BleInvalidChecksumError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BleInvalidChecksumError.name; - } -} -exports.BleInvalidChecksumError = BleInvalidChecksumError; -//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/p2p/error.js.map b/build/p2p/error.js.map deleted file mode 100644 index 0b776040..00000000 --- a/build/p2p/error.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/p2p/error.ts"],"names":[],"mappings":";;;AAAA,oCAA+C;AAC/C,MAAa,mBAAoB,SAAQ,iBAAS;IAC9C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACzC,CAAC;CACJ;AAND,kDAMC;AAED,MAAa,mBAAoB,SAAQ,iBAAS;IAC9C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACzC,CAAC;CACJ;AAND,kDAMC;AAED,MAAa,gBAAiB,SAAQ,iBAAS;IAC3C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AAND,4CAMC;AAED,MAAa,YAAa,SAAQ,iBAAS;IACvC,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAClC,CAAC;CACJ;AAND,oCAMC;AAED,MAAa,sBAAuB,SAAQ,iBAAS;IACjD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC5C,CAAC;CACJ;AAND,wDAMC;AAED,MAAa,+BAAgC,SAAQ,iBAAS;IAC1D,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC,IAAI,CAAC;IACrD,CAAC;CACJ;AAND,0EAMC;AAED,MAAa,yBAA0B,SAAQ,iBAAS;IACpD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAC/C,CAAC;CACJ;AAND,8DAMC;AAED,MAAa,uBAAwB,SAAQ,iBAAS;IAClD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC5E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC;IAC7C,CAAC;CACJ;AAND,0DAMC"} \ No newline at end of file diff --git a/build/p2p/index.d.ts b/build/p2p/index.d.ts deleted file mode 100644 index c6725fbb..00000000 --- a/build/p2p/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./interfaces"; -export * from "./models"; -export * from "./session"; -export * from "./types"; -export * from "./talkback"; -export * from "./ble"; -export * from "./error"; -export { isPrivateIp, getLocalIpAddress } from "./utils"; diff --git a/build/p2p/index.js b/build/p2p/index.js deleted file mode 100644 index f3bae61b..00000000 --- a/build/p2p/index.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getLocalIpAddress = exports.isPrivateIp = void 0; -__exportStar(require("./interfaces"), exports); -__exportStar(require("./models"), exports); -__exportStar(require("./session"), exports); -__exportStar(require("./types"), exports); -__exportStar(require("./talkback"), exports); -__exportStar(require("./ble"), exports); -__exportStar(require("./error"), exports); -var utils_1 = require("./utils"); -Object.defineProperty(exports, "isPrivateIp", { enumerable: true, get: function () { return utils_1.isPrivateIp; } }); -Object.defineProperty(exports, "getLocalIpAddress", { enumerable: true, get: function () { return utils_1.getLocalIpAddress; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/p2p/index.js.map b/build/p2p/index.js.map deleted file mode 100644 index 65aee5f0..00000000 --- a/build/p2p/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,wCAAsB;AACtB,0CAAwB;AACxB,iCAAyD;AAAhD,oGAAA,WAAW,OAAA;AAAE,0GAAA,iBAAiB,OAAA"} \ No newline at end of file diff --git a/build/p2p/interfaces.d.ts b/build/p2p/interfaces.d.ts deleted file mode 100644 index 79741155..00000000 --- a/build/p2p/interfaces.d.ts +++ /dev/null @@ -1,388 +0,0 @@ -import * as NodeRSA from "node-rsa"; -import { Readable } from "stream"; -import { SortedMap } from "sweet-collections"; -import { AlarmMode, DeviceType, MicStatus, ParamType, TriggerType, VideoType } from "../http/types"; -import { Address, CmdCameraInfoResponse, CommandResult, CustomData, StorageInfoBodyHB3 } from "./models"; -import { TalkbackStream } from "./talkback"; -import { AlarmEvent, AudioCodec, CommandType, DatabaseReturnCode, IndoorSoloSmartdropCommandType, P2PDataType, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent, P2PStorageType, TFCardStatus, VideoCodec, InternalP2PCommandType } from "./types"; -export interface P2PClientProtocolEvents { - "alarm mode": (mode: AlarmMode) => void; - "camera info": (cameraInfo: CmdCameraInfoResponse) => void; - "connect": (address: Address) => void; - "close": () => void; - "command": (result: CommandResult) => void; - "download started": (channel: number, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void; - "download finished": (channel: number) => void; - "livestream started": (channel: number, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void; - "livestream stopped": (channel: number) => void; - "livestream error": (channel: number, error: Error) => void; - "wifi rssi": (channel: number, rssi: number) => void; - "rtsp url": (channel: number, rtspUrl: string) => void; - "parameter": (channel: number, param: number, value: string) => void; - "timeout": () => void; - "runtime state": (channel: number, batteryLevel: number, temperature: number) => void; - "charging state": (channel: number, chargeType: number, batteryLevel: number) => void; - "rtsp livestream started": (channel: number) => void; - "rtsp livestream stopped": (channel: number) => void; - "floodlight manual switch": (channel: number, enabled: boolean) => void; - "alarm delay": (alarmDelayEvent: AlarmEvent, alarmDelay: number) => void; - "alarm armed": () => void; - "alarm event": (alarmEvent: AlarmEvent) => void; - "talkback started": (channel: number, talkbackStream: TalkbackStream) => void; - "talkback stopped": (channel: number) => void; - "talkback error": (channel: number, error: Error) => void; - "secondary command": (result: CommandResult) => void; - "jammed": (channel: number) => void; - "low battery": (channel: number) => void; - "shake alarm": (channel: number, detail: SmartSafeShakeAlarmEvent) => void; - "911 alarm": (channel: number, detail: SmartSafeAlarm911Event) => void; - "wrong try-protect alarm": (channel: number) => void; - "sd info ex": (sdStatus: TFCardStatus, sdCapacity: number, sdCapacityAvailable: number) => void; - "image download": (file: string, image: Buffer) => void; - "tfcard status": (channel: number, status: TFCardStatus) => void; - "database query latest": (returnCode: DatabaseReturnCode, data: Array) => void; - "database query local": (returnCode: DatabaseReturnCode, data: Array) => void; - "database count by date": (returnCode: DatabaseReturnCode, data: Array) => void; - "database delete": (returnCode: DatabaseReturnCode, failedIds: Array) => void; - "sensor status": (channel: number, status: number) => void; - "garage door status": (channel: number, doorId: number, status: number) => void; - "storage info hb3": (channel: number, storageInfo: StorageInfoBodyHB3) => void; - "sequence error": (channel: number, command: number, sequence: number, serialnumber: string) => void; -} -export interface P2PQueueMessage { - p2pCommandType: InternalP2PCommandType; - p2pCommand: P2PCommand; - nestedCommandType?: CommandType; - nestedCommandType2?: number; - timestamp: number; - customData?: CustomData; -} -export interface P2PMessageState { - sequence: number; - commandType: CommandType; - nestedCommandType?: CommandType | IndoorSoloSmartdropCommandType | ParamType; - nestedCommandType2?: number; - channel: number; - data: Buffer; - retries: number; - acknowledged: boolean; - returnCode?: number; - retryTimeout?: NodeJS.Timeout; - timeout?: NodeJS.Timeout; - customData?: CustomData; -} -export interface P2PMessageParts { - [index: number]: Buffer; -} -export interface P2PMessage { - bytesToRead: number; - type: P2PDataType; - seqNo: number; - data: Buffer; -} -export interface P2PDataHeader { - commandId: number; - bytesToRead: number; - channel: number; - signCode: number; - type: number; -} -export interface P2PDataMessage extends P2PDataHeader { - seqNo: number; - dataType: P2PDataType; - data: Buffer; -} -export interface P2PDataMessageBuilder { - header: P2PDataHeader; - bytesRead: number; - messages: P2PMessageParts; -} -export interface P2PDataMessageState { - leftoverData: Buffer; - queuedData: SortedMap; - rsaKey: NodeRSA | null; - videoStream: Readable | null; - audioStream: Readable | null; - invalidStream: boolean; - p2pStreaming: boolean; - p2pStreamNotStarted: boolean; - p2pStreamChannel: number; - p2pStreamFirstAudioDataReceived: boolean; - p2pStreamFirstVideoDataReceived: boolean; - p2pStreamMetadata: StreamMetadata; - p2pStreamingTimeout?: NodeJS.Timeout; - rtspStream: { - [index: number]: boolean; - }; - rtspStreaming: { - [index: number]: boolean; - }; - waitForSeqNoTimeout?: NodeJS.Timeout; - waitForAudioData?: NodeJS.Timeout; - receivedFirstIFrame: boolean; - preFrameVideoData: Buffer; - p2pTalkback: boolean; - p2pTalkbackChannel: number; -} -export interface P2PDataMessageVideo { - streamType: number; - videoSeqNo: number; - videoFPS: number; - videoWidth: number; - videoHeight: number; - videoTimestamp: number; - videoDataLength: number; - aesKey: string; -} -export interface P2PDataMessageAudio { - audioType: number; - audioSeqNo: number; - audioTimestamp: number; - audioDataLength: number; -} -export interface StreamMetadata { - videoCodec: VideoCodec; - videoFPS: number; - videoWidth: number; - videoHeight: number; - audioCodec: AudioCodec; -} -export interface DeviceSerial { - [index: number]: { - sn: string; - adminUserId: string; - }; -} -export interface P2PCommand { - commandType: CommandType; - value?: number | string; - valueSub?: number; - strValue?: string; - strValueSub?: string; - channel?: number; -} -export interface P2PVideoMessageState { - sequence: number; - channel: number; - data: Buffer; - retries: number; - timeout?: NodeJS.Timeout; -} -export interface P2PDatabaseQueryLatestInfoResponse { - device_sn: string; - payload: { - event_count: number; - crop_hb3_path: string; - crop_cloud_path: string; - }; -} -export interface P2PDatabaseCountByDateResponse { - days: string; - count: number; -} -export interface P2PDatabaseQueryLocalHistoryRecordInfo { - record_id: number; - account: string; - station_sn: string; - device_sn: string; - device_type: DeviceType; - start_time: string; - end_time: string; - frame_num: number; - storage_type: P2PStorageType; - storage_cloud: boolean; - cipher_id: number; - vision: number; - video_type: VideoType; - has_lock: boolean; - automation_id: number; - trigger_type: TriggerType; - push_mode: number; - mic_status: MicStatus; - res_change: number; - res_best_width: number; - res_best_height: number; - self_learning: number; - int_reserve: number; - int_extra: number; - storage_path: string; - thumb_path: string; - write_status: number; - str_extra: string; - cloud_path: string; - folder_size: number; - storage_status: number; - storage_label: string; - time_zone: string; - mp4_cloud: string; - snapshot_cloud: string; - table_version: string; - update_time: string; -} -export interface P2PDatabaseQueryLocalRecordCropPictureInfo { - picture_id: number; - record_id: number; - station_sn: string; - device_sn: string; - detection_type: number; - person_id: number; - crop_path: string; - event_time: string; - str_reserve: string; - person_recog_flag: boolean; - crop_pic_quality: number; - pic_marking_flag: boolean; - group_id: number; - int_reserve: number; - crop_id: number; - start_time: string; - reserve2_int: number; - reserve2_date: string; - reserve2_string: string; - storage_type: P2PStorageType; - storage_status: number; - storage_label: string; - table_version: string; - update_time: string; -} -export interface P2PDatabaseQueryLocalResponse { - payload: Array | Array; - table_name: string; -} -export interface P2PDatabaseDeleteResponse { - failed_delete: Array; -} -export interface P2PDatabaseResponse { - data: Array | Array | Array | P2PDatabaseDeleteResponse; - start_id?: number; - end_id?: number; - count?: number; - transaction: string; - table: string; - cmd: number; - mIntRet: DatabaseReturnCode; - version: string; - msg: string; -} -export interface DatabaseQueryLatestInfoBase { - device_sn: string; - event_count: number; -} -export interface DatabaseQueryLatestInfoCloud extends DatabaseQueryLatestInfoBase { - crop_cloud_path: string; -} -export interface DatabaseQueryLatestInfoLocal extends DatabaseQueryLatestInfoBase { - crop_local_path: string; -} -export type DatabaseQueryLatestInfo = DatabaseQueryLatestInfoCloud | DatabaseQueryLatestInfoLocal; -export interface DatabaseCountByDate { - day: Date; - count: number; -} -export interface HistoryRecordInfo { - device_type: DeviceType; - account: string; - start_time: Date; - end_time: Date; - frame_num: number; - storage_type: P2PStorageType; - storage_cloud: boolean; - cipher_id: number; - vision: number; - video_type: VideoType; - has_lock: boolean; - automation_id: number; - trigger_type: TriggerType; - push_mode: number; - mic_status: MicStatus; - res_change: number; - res_best_width: number; - res_best_height: number; - self_learning: number; - storage_path: string; - thumb_path: string; - write_status: number; - cloud_path: string; - folder_size: number; - storage_status: number; - storage_label: string; - time_zone: string; - mp4_cloud: string; - snapshot_cloud: string; - table_version: string; -} -export interface CropPictureInfo { - picture_id: number; - detection_type: number; - person_id: number; - crop_path: string; - event_time: Date | null; - person_recog_flag: boolean; - crop_pic_quality: number; - pic_marking_flag: boolean; - group_id: number; - crop_id: number; - start_time: Date; - storage_type: P2PStorageType; - storage_status: number; - storage_label: string; - table_version: string; - update_time: string; -} -export interface DatabaseQueryLocal { - record_id: number; - station_sn: string; - device_sn?: string; - history: HistoryRecordInfo; - picture: Array; -} -export interface RGBColor { - red: number; - green: number; - blue: number; -} -export interface InternalColoredLighting { - color: number; -} -export interface DynamicLighting { - name: string; - mode: number; - speed: number; - colors: Array; -} -export interface InternalDynamicLighting { - name: string; - mode: number; - id: number; - speed: number; - colors: Array; -} -export interface MotionZonePoint { - x: number; - y: number; -} -export interface MotionZonePoints { - points: Array; -} -export interface MotionZone { - polygens: Array; -} -export interface VideoStreamingRecordingQuality { - mode_0: { - quality: number; - }; - mode_1: { - quality: number; - }; - cur_mode: number; -} -export interface CrossTrackingGroupEntry { - value: Array; -} -export interface CustomDataType { - [index: number]: { - channel: number; - customData: CustomData; - timestamp: number; - }; -} diff --git a/build/p2p/interfaces.js b/build/p2p/interfaces.js deleted file mode 100644 index db919115..00000000 --- a/build/p2p/interfaces.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/p2p/interfaces.js.map b/build/p2p/interfaces.js.map deleted file mode 100644 index e7da2cba..00000000 --- a/build/p2p/interfaces.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/p2p/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/p2p/models.d.ts b/build/p2p/models.d.ts deleted file mode 100644 index a0d3a1f9..00000000 --- a/build/p2p/models.d.ts +++ /dev/null @@ -1,284 +0,0 @@ -import { PropertyValue } from "../http"; -import { CommandName, PropertyName } from "../http/types"; -import { SmartSafeEventValueDetail } from "../push/models"; -import { CommandType } from "./types"; -export interface Address { - host: string; - port: number; -} -export interface CmdCameraInfoResponse { - params: Array<{ - dev_type: number; - param_type: number; - param_value: string; - }>; - main_sw_version: string; - sec_sw_version: string; - db_bypass_str?: Array<{ - channel: number; - param_type: number; - param_value: string; - }>; -} -export interface PropertyData { - name: PropertyName; - value: PropertyValue; -} -export interface CommandData { - name: CommandName; - value?: any; -} -export interface CustomData { - property?: PropertyData; - command?: CommandData; - onSuccess?: () => void; - onFailure?: () => void; -} -export interface CommandResult { - customData?: CustomData; - command_type: CommandType; - channel: number; - return_code: number; -} -export interface CmdNotifyPayload { - cmd: number; - payload: ESLStationP2PThroughData | ESLAdvancedLockStatusNotification | SmartSafeSettingsNotification | SmartSafeStatusNotification | ESLBleV12P2PThroughData | EntrySensorStatus | GarageDoorStatus | StorageInfoHB3 | SmartLockP2PSequenceData | string; - payloadLen?: number; -} -export interface ESLStationP2PThroughData { - channel?: number; - lock_cmd: number; - lock_payload: string; - seq_num?: number; - stationSn?: string; -} -export interface ESLAdvancedLockStatusNotification { - code: number; - slBattery: string; - slState: string; - trigger: number; -} -export interface ESLAdvancedLockStatusNotificationT8530 extends ESLAdvancedLockStatusNotification { - slOpenDirection: string; -} -export interface SmartSafeSettingsNotification { - data: string; - prj_id: number; -} -export interface SmartSafeStatusNotification { - event_type: number; - event_time: number; - event_value: number | SmartSafeEventValueDetail; -} -export interface SmartSafeNotificationResponse { - versionCode: number; - commandCode: number; - packageFlag: number; - dataType: number; - responseCode: number; - data: Buffer; -} -export interface LockAdvancedOnOffRequestBasePayload { - shortUserId: string; - slOperation: number; - userId: string; - userName: string; -} -export interface LockAdvancedOnOffRequestPayload extends LockAdvancedOnOffRequestBasePayload { - seq_num: number; -} -export interface AdvancedLockSetParamsType { - [index: string]: unknown; - autoLockTime: number; - isAutoLock: number; - isLockNotification: number; - isNotification: number; - isOneTouchLock: number; - isSchedule: number; - isScramblePasscode: number; - isUnLockNotification: number; - isWrongTryProtect: number; - lockDownTime: number; - lockSound: number; - paramType: number; - scheduleEnd: string; - scheduleStart: string; - wrongTryTime: number; - seq_num: number; -} -export interface AdvancedLockSetParamsTypeT8520 { - [index: string]: unknown; - autoLockTime: number; - isAutoLock: number; - isLockNotification: number; - isNotification: number; - isOneTouchLock: number; - isSchedule: number; - isScramblePasscode: number; - isUnLockNotification: number; - isWrongTryProtect: number; - lockDownTime: number; - lockOpenDirection: number; - lockVolume: number; - nightVisionEnhance: number; - openLeftAlarmEnable: number; - openLeftAlarmScheduleEnd: string; - openLeftAlarmScheduleStart: string; - openLeftAlarmScheduled: number; - openLeftAlarmTimer: number; - openLeftAlarmWays: number; - paramType: number; - scheduleEnd: string; - scheduleStart: string; - tamperAlarmEnable: number; - tamperAlarmScheduleEnd: string; - tamperAlarmScheduleStart: string; - tamperAlarmScheduled: number; - tamperAlarmWays: number; - wrongTryTime: number; -} -export interface LockP2PCommandType { - commandType: CommandType; - value: string; - channel: number; - aesKey: string; -} -export interface LockP2PCommandPayloadType { - key: string; - account_id: string; - cmd: CommandType; - mChannel: number; - mValue3: number; - payload: string; -} -export interface ESLBleV12P2PThroughData { - dev_sn: string; - lock_payload: string; -} -export interface LockV12P2PCommandPayloadType { - account_id: string; - cmd: CommandType; - mChannel: number; - mValue3: number; - payload: { - apiCommand: number; - lock_payload: string; - seq_num: number; - }; -} -export interface LockV12P2PCommandType { - commandType: CommandType; - value: string; -} -export interface SmartSafeP2PCommandPayloadType { - account_id: string; - cmd: CommandType; - mChannel: number; - mValue3: number; - payload: { - data: string; - prj_id: CommandType; - seq_num: number; - }; -} -export interface SmartSafeP2PCommandType { - commandType: CommandType; - value: string; - channel: number; -} -export interface CmdDatabaseImageResponse { - file: string; - content: string; -} -export interface EntrySensorStatus { - status: number; -} -export interface GarageDoorStatus { - type: number; - notify_tag: string; - door_id: number; -} -export interface StorageInfoHB3 { - cmd: number; - version: number; - mIntRet: number; - msg: string; - old_storage_label: string; - cur_storage_label: string; - body: StorageInfoBodyHB3; -} -export interface StorageInfoBodyHB3 { - body_version: number; - storage_days: number; - storage_events: number; - con_video_hours: number; - format_transaction: string; - format_errcode: number; - hdd_info: StorageInfoHddHB3; - move_disk_info: StorageInfoMoveDiskInfoHB3; - emmc_info: StorageInfoEmmcHB3; -} -export interface StorageInfoHddHB3 { - serial_number: string; - disk_path: string; - disk_size: number; - system_size: number; - disk_used: number; - video_used: number; - video_size: number; - cur_temperate: number; - parted_status: number; - work_status: number; - hdd_label: string; - health: number; - device_module: string; - hdd_type: number; -} -export interface StorageInfoMoveDiskInfoHB3 { - disk_path: string; - disk_size: number; - disk_used: number; - part_layout_arr: string[]; - data: string[]; -} -export interface StorageInfoEmmcHB3 { - disk_nominal: number; - disk_size: number; - system_size: number; - disk_used: number; - data_used_percent: number; - swap_size: number; - video_size: number; - video_used: number; - data_partition_size: number; - eol_percent: number; - work_status: number; - health: number; -} -export interface SmartLockP2PCommandPayloadType { - account_id: string; - cmd: CommandType; - mChannel: number; - mValue3: number; - payload: { - apiCommand: number; - lock_payload: string; - seq_num: number; - time: number; - }; -} -export interface SmartLockP2PCommandType { - commandType: CommandType; - value: string; -} -export interface SmartLockP2PThroughData { - dev_sn: string; - lock_payload: string; - time: string; -} -export interface SmartLockP2PSequenceData { - lock_cmd: number; - seq_num: number; - dev_sn: string; - bus_type?: number; -} diff --git a/build/p2p/models.js b/build/p2p/models.js deleted file mode 100644 index b2dccd68..00000000 --- a/build/p2p/models.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/build/p2p/models.js.map b/build/p2p/models.js.map deleted file mode 100644 index 61d026d0..00000000 --- a/build/p2p/models.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/p2p/models.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/p2p/session.d.ts b/build/p2p/session.d.ts deleted file mode 100644 index 8598c117..00000000 --- a/build/p2p/session.d.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import * as NodeRSA from "node-rsa"; -import { Address, CustomData } from "./models"; -import { CommandType, P2PDataType, P2PConnectionType } from "./types"; -import { P2PClientProtocolEvents, P2PCommand } from "./interfaces"; -import { StationListResponse } from "../http/models"; -import { HTTPApi } from "../http/api"; -export declare class P2PClientProtocol extends TypedEmitter { - private readonly MAX_RETRIES; - private readonly MAX_COMMAND_RESULT_WAIT; - private readonly MAX_GATEWAY_COMMAND_RESULT_WAIT; - private readonly MAX_CONNECTION_TIMEOUT; - private readonly MAX_AKNOWLEDGE_TIMEOUT; - private readonly MAX_LOOKUP_TIMEOUT; - private readonly LOCAL_LOOKUP_RETRY_TIMEOUT; - private readonly LOOKUP_RETRY_TIMEOUT; - private readonly LOOKUP2_TIMEOUT; - private readonly LOOKUP2_RETRY_TIMEOUT; - private readonly MAX_EXPECTED_SEQNO_WAIT; - private readonly HEARTBEAT_INTERVAL; - private readonly MAX_COMMAND_QUEUE_TIMEOUT; - private readonly AUDIO_CODEC_ANALYZE_TIMEOUT; - private readonly KEEPALIVE_INTERVAL; - private readonly ESD_DISCONNECT_TIMEOUT; - private readonly MAX_STREAM_DATA_WAIT; - private readonly RESEND_NOT_ACKNOWLEDGED_COMMAND; - private readonly UDP_RECVBUFFERSIZE_BYTES; - private readonly MAX_PAYLOAD_BYTES; - private readonly MAX_PACKET_BYTES; - private readonly MAX_VIDEO_PACKET_BYTES; - private readonly P2P_DATA_HEADER_BYTES; - private readonly MAX_SEQUENCE_NUMBER; - private readonly LOOP_RUNAWAY_LIMIT; - private readonly SEQUENCE_PROCESSING_BOUNDARY; - private socket; - private binded; - private connected; - private connecting; - private terminating; - private p2pTurnHandshaking; - private p2pTurnConfirmed; - private seqNumber; - private offsetDataSeqNumber; - private videoSeqNumber; - private lockSeqNumber; - private expectedSeqNo; - private currentMessageBuilder; - private currentMessageState; - private talkbackStream?; - private downloadTotalBytes; - private downloadReceivedBytes; - private cloudAddresses; - private messageStates; - private messageVideoStates; - private sendQueue; - private connectTimeout?; - private lookupTimeout?; - private localLookupRetryTimeout?; - private lookupRetryTimeout?; - private lookup2Timeout?; - private lookup2RetryTimeout?; - private heartbeatTimeout?; - private keepaliveTimeout?; - private esdDisconnectTimeout?; - private secondaryCommandTimeout?; - private connectTime; - private lastPong; - private lastPongData; - private connectionType; - private energySavingDevice; - private p2pSeqMapping; - private p2pDataSeqNumber; - private connectAddress; - private localIPAddress; - private preferredIPAddress; - private listeningPort; - private dskKey; - private dskExpiration; - private deviceSNs; - private api; - private rawStation; - private customDataStaging; - private lockPublicKey; - private lockAESKeys; - private channel; - private encryption; - private p2pKey?; - private enableEmbeddedPKCS1Support; - constructor(rawStation: StationListResponse, api: HTTPApi, ipAddress?: string, listeningPort?: number, publicKey?: string, enableEmbeddedPKCS1Support?: boolean); - private _incrementSequence; - private _isBetween; - private _wasSequenceNumberAlreadyProcessed; - private _initialize; - private initializeMessageBuilder; - private initializeMessageState; - private _clearTimeout; - private _clearMessageStateTimeouts; - private _clearMessageVideoStateTimeouts; - private _clearHeartbeatTimeout; - private _clearKeepaliveTimeout; - private _clearConnectTimeout; - private _clearLookupTimeout; - private _clearLocalLookupRetryTimeout; - private _clearLookupRetryTimeout; - private _clearLookup2RetryTimeout; - private _clearLookup2Timeout; - private _clearESDDisconnectTimeout; - private _clearSecondaryCommandTimeout; - private sendMessage; - private _disconnected; - private closeEnergySavingDevice; - private renewDSKKey; - private localLookup; - private cloudLookup; - private cloudLookup2; - private cloudLookupWithTurnServer; - private localLookupByAddress; - private cloudLookupByAddress; - private cloudLookupByAddress2; - private cloudLookupByAddressWithTurnServer; - isConnected(): boolean; - private _startConnectTimeout; - private _connect; - private lookup; - connect(host?: string): Promise; - private sendCamCheck; - private sendCamCheck2; - sendPing(address: Address): Promise; - sendCommandWithIntString(p2pcommand: P2PCommand, customData?: CustomData): void; - sendCommandWithInt(p2pcommand: P2PCommand, customData?: CustomData): void; - sendCommandWithStringPayload(p2pcommand: P2PCommand, customData?: CustomData): void; - sendCommandWithString(p2pcommand: P2PCommand, customData?: CustomData): void; - sendCommandPing(channel?: number): void; - sendCommandDevicePing(channel?: number): void; - sendCommandWithoutData(commandType: CommandType, channel?: number): void; - private sendQueuedMessage; - private sendCommand; - private resendNotAcknowledgedCommand; - private _sendCommand; - private handleMsg; - private parseDataMessage; - private handleData; - private isIFrame; - private waitForStreamData; - private handleDataBinaryAndVideo; - private handleDataControl; - private sendAck; - private getDataType; - close(): Promise; - private getHeartbeatInterval; - private onClose; - private onError; - private scheduleHeartbeat; - private scheduleP2PKeepalive; - getDownloadRSAPrivateKey(): NodeRSA; - setDownloadRSAPrivateKeyPem(pem: string): void; - getRSAPrivateKey(): NodeRSA | null; - private initializeStream; - private endStream; - private endRTSPStream; - private emitStreamStartEvent; - private emitStreamStopEvent; - isStreaming(channel: number, datatype: P2PDataType): boolean; - isLiveStreaming(channel: number): boolean; - private isCurrentlyStreaming; - isRTSPLiveStreaming(channel: number): boolean; - isDownloading(channel: number): boolean; - getLockSequenceNumber(): number; - incLockSequenceNumber(): number; - setConnectionType(type: P2PConnectionType): void; - getConnectionType(): P2PConnectionType; - isEnergySavingDevice(): boolean; - private getDSKKeys; - updateRawStation(value: StationListResponse): void; - private initializeTalkbackStream; - private sendTalkbackAudioFrame; - private onTalkbackStreamClose; - private onTalkbackStreamError; - private _sendVideoData; - isTalkbackOngoing(channel: number): boolean; - startTalkback(channel?: number): void; - stopTalkback(channel?: number): void; - setLockAESKey(commandCode: number, aesKey: string): void; - getLockAESKey(commandCode: number): string | undefined; - isConnecting(): boolean; -} diff --git a/build/p2p/session.js b/build/p2p/session.js deleted file mode 100644 index 811ef820..00000000 --- a/build/p2p/session.js +++ /dev/null @@ -1,2678 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.P2PClientProtocol = void 0; -const dgram_1 = require("dgram"); -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const stream_1 = require("stream"); -const sweet_collections_1 = require("sweet-collections"); -const date_and_time_1 = __importDefault(require("date-and-time")); -const utils_1 = require("./utils"); -const types_1 = require("./types"); -const types_2 = require("../http/types"); -const device_1 = require("../http/device"); -const utils_2 = require("../http/utils"); -const talkback_1 = require("./talkback"); -const error_1 = require("../error"); -const types_3 = require("../push/types"); -const ble_1 = require("./ble"); -const http_1 = require("../http"); -const utils_3 = require("../utils"); -const logging_1 = require("../logging"); -class P2PClientProtocol extends tiny_typed_emitter_1.TypedEmitter { - MAX_RETRIES = 10; - MAX_COMMAND_RESULT_WAIT = 30 * 1000; - MAX_GATEWAY_COMMAND_RESULT_WAIT = 5 * 1000; - MAX_CONNECTION_TIMEOUT = 25 * 1000; - MAX_AKNOWLEDGE_TIMEOUT = 5 * 1000; - MAX_LOOKUP_TIMEOUT = 20 * 1000; - LOCAL_LOOKUP_RETRY_TIMEOUT = 1 * 1000; - LOOKUP_RETRY_TIMEOUT = 1 * 1000; - LOOKUP2_TIMEOUT = 3 * 1000; - LOOKUP2_RETRY_TIMEOUT = 1 * 1000; - MAX_EXPECTED_SEQNO_WAIT = 20 * 1000; - HEARTBEAT_INTERVAL = 5 * 1000; - MAX_COMMAND_QUEUE_TIMEOUT = 120 * 1000; - AUDIO_CODEC_ANALYZE_TIMEOUT = 650; - KEEPALIVE_INTERVAL = 2 * 1000; - ESD_DISCONNECT_TIMEOUT = 30 * 1000; - MAX_STREAM_DATA_WAIT = 5 * 1000; - RESEND_NOT_ACKNOWLEDGED_COMMAND = 100; - UDP_RECVBUFFERSIZE_BYTES = 1048576; - MAX_PAYLOAD_BYTES = 1028; - MAX_PACKET_BYTES = 1024; - MAX_VIDEO_PACKET_BYTES = 655360; - P2P_DATA_HEADER_BYTES = 16; - MAX_SEQUENCE_NUMBER = 65535; - LOOP_RUNAWAY_LIMIT = 1000; - /* - * SEQUENCE_PROCESSING_BOUNDARY is used to determine if an incoming sequence number - * that is lower than the expected one was already processed. - * If it is within the boundary, it is determined as 'already processed', - * If it is even lower, it is assumed that the sequence count has reached - * MAX_SEQUENCE_NUMBER and restarted at 0. - * */ - SEQUENCE_PROCESSING_BOUNDARY = 20000; // worth of approx. 90 seconds of continous streaming - socket; - binded = false; - connected = false; - connecting = false; - terminating = false; - p2pTurnHandshaking = {}; - p2pTurnConfirmed = false; - seqNumber = 0; - offsetDataSeqNumber = 0; - videoSeqNumber = 0; - lockSeqNumber = -1; - expectedSeqNo = {}; - currentMessageBuilder = {}; - currentMessageState = {}; - talkbackStream; - downloadTotalBytes = 0; - downloadReceivedBytes = 0; - cloudAddresses; - messageStates = new sweet_collections_1.SortedMap((a, b) => a - b); - messageVideoStates = new sweet_collections_1.SortedMap((a, b) => a - b); - sendQueue = new Array(); - connectTimeout; - lookupTimeout; - localLookupRetryTimeout; - lookupRetryTimeout; - lookup2Timeout; - lookup2RetryTimeout; - heartbeatTimeout; - keepaliveTimeout; - esdDisconnectTimeout; - secondaryCommandTimeout; - connectTime = null; - lastPong = null; - lastPongData = undefined; - connectionType = types_1.P2PConnectionType.QUICKEST; - energySavingDevice = false; - p2pSeqMapping = new Map(); - p2pDataSeqNumber = 0; - connectAddress = undefined; - localIPAddress = undefined; - preferredIPAddress = undefined; - listeningPort = 0; - dskKey = ""; - dskExpiration = null; - deviceSNs = {}; - api; - rawStation; - customDataStaging = {}; - lockPublicKey; - lockAESKeys = new Map(); - channel = http_1.Station.CHANNEL; - encryption = types_1.EncryptionType.NONE; - p2pKey; - enableEmbeddedPKCS1Support = false; - constructor(rawStation, api, ipAddress, listeningPort = 0, publicKey = "", enableEmbeddedPKCS1Support = false) { - super(); - this.api = api; - this.lockPublicKey = publicKey; - this.preferredIPAddress = ipAddress; - if (listeningPort >= 0) - this.listeningPort = listeningPort; - this.enableEmbeddedPKCS1Support = enableEmbeddedPKCS1Support; - this.cloudAddresses = (0, utils_1.decodeP2PCloudIPs)(rawStation.app_conn); - logging_1.rootP2PLogger.debug("Loaded P2P cloud ip addresses", { stationSN: rawStation.station_sn, ipAddress: ipAddress, cloudAddresses: this.cloudAddresses }); - this.updateRawStation(rawStation); - this.socket = (0, dgram_1.createSocket)("udp4"); - this.socket.on("message", (msg, rinfo) => this.handleMsg(msg, rinfo)); - this.socket.on("error", (error) => this.onError(error)); - this.socket.on("close", () => this.onClose()); - this._initialize(); - } - _incrementSequence(sequence) { - if (sequence < this.MAX_SEQUENCE_NUMBER) - return sequence + 1; - return 0; - } - _isBetween(n, lowBoundary, highBoundary) { - if (n < lowBoundary) - return false; - if (n >= highBoundary) - return false; - return true; - } - _wasSequenceNumberAlreadyProcessed(expectedSequence, receivedSequence) { - if ((expectedSequence - this.SEQUENCE_PROCESSING_BOUNDARY) > 0) { // complete boundary without squence number reset - return this._isBetween(receivedSequence, expectedSequence - this.SEQUENCE_PROCESSING_BOUNDARY, expectedSequence); - } - else { // there was a sequence number reset recently - const isInRangeAfterReset = this._isBetween(receivedSequence, 0, expectedSequence); - const isInRangeBeforeReset = this._isBetween(receivedSequence, this.MAX_SEQUENCE_NUMBER + (expectedSequence - this.SEQUENCE_PROCESSING_BOUNDARY), this.MAX_SEQUENCE_NUMBER); - return (isInRangeBeforeReset || isInRangeAfterReset); - } - } - _initialize() { - let rsaKey; - this.connected = false; - this.p2pTurnHandshaking = {}; - this.p2pTurnConfirmed = false; - this.connecting = false; - this.lastPong = null; - this.lastPongData = undefined; - this.connectTime = null; - this.seqNumber = 0; - this.offsetDataSeqNumber = 0; - this.videoSeqNumber = 0; - this.p2pDataSeqNumber = 0; - this.connectAddress = undefined; - this.customDataStaging = {}; - this.encryption = types_1.EncryptionType.NONE; - this.p2pKey = undefined; - this.lockAESKeys.clear(); - this._clearMessageStateTimeouts(); - this._clearMessageVideoStateTimeouts(); - this.messageStates.clear(); - this.messageVideoStates.clear(); - this.p2pSeqMapping.clear(); - for (let datatype = 0; datatype < 4; datatype++) { - this.expectedSeqNo[datatype] = 0; - if (datatype === types_1.P2PDataType.VIDEO) - rsaKey = (0, utils_1.getNewRSAPrivateKey)(this.enableEmbeddedPKCS1Support); - else - rsaKey = null; - this.initializeMessageBuilder(datatype); - this.initializeMessageState(datatype, rsaKey); - this.initializeStream(datatype); - } - } - initializeMessageBuilder(datatype) { - this.currentMessageBuilder[datatype] = { - header: { - commandId: 0, - bytesToRead: 0, - channel: 0, - signCode: 0, - type: 0 - }, - bytesRead: 0, - messages: {} - }; - } - initializeMessageState(datatype, rsaKey = null) { - this.currentMessageState[datatype] = { - leftoverData: Buffer.from([]), - queuedData: new sweet_collections_1.SortedMap((a, b) => a - b), - rsaKey: rsaKey, - videoStream: null, - audioStream: null, - invalidStream: false, - p2pStreaming: false, - p2pStreamNotStarted: true, - p2pStreamChannel: -1, - p2pStreamFirstAudioDataReceived: false, - p2pStreamFirstVideoDataReceived: false, - p2pStreamMetadata: { - videoCodec: types_1.VideoCodec.H264, - videoFPS: 15, - videoHeight: 1080, - videoWidth: 1920, - audioCodec: types_1.AudioCodec.NONE - }, - rtspStream: {}, - rtspStreaming: {}, - receivedFirstIFrame: false, - preFrameVideoData: Buffer.from([]), - p2pTalkback: false, - p2pTalkbackChannel: -1 - }; - } - _clearTimeout(timeout) { - if (!!timeout) { - clearTimeout(timeout); - } - } - _clearMessageStateTimeouts() { - for (const message of this.messageStates.values()) { - this._clearTimeout(message.timeout); - } - } - _clearMessageVideoStateTimeouts() { - for (const message of this.messageVideoStates.values()) { - this._clearTimeout(message.timeout); - } - } - _clearHeartbeatTimeout() { - this._clearTimeout(this.heartbeatTimeout); - this.heartbeatTimeout = undefined; - } - _clearKeepaliveTimeout() { - this._clearTimeout(this.keepaliveTimeout); - this.keepaliveTimeout = undefined; - } - _clearConnectTimeout() { - this._clearTimeout(this.connectTimeout); - this.connectTimeout = undefined; - } - _clearLookupTimeout() { - this._clearTimeout(this.lookupTimeout); - this.lookupTimeout = undefined; - } - _clearLocalLookupRetryTimeout() { - this._clearTimeout(this.localLookupRetryTimeout); - this.localLookupRetryTimeout = undefined; - } - _clearLookupRetryTimeout() { - this._clearTimeout(this.lookupRetryTimeout); - this.lookupRetryTimeout = undefined; - } - _clearLookup2RetryTimeout() { - this._clearTimeout(this.lookup2RetryTimeout); - this.lookup2RetryTimeout = undefined; - } - _clearLookup2Timeout() { - this._clearTimeout(this.lookup2Timeout); - this.lookup2Timeout = undefined; - } - _clearESDDisconnectTimeout() { - this._clearTimeout(this.esdDisconnectTimeout); - this.esdDisconnectTimeout = undefined; - } - _clearSecondaryCommandTimeout() { - this._clearTimeout(this.secondaryCommandTimeout); - this.secondaryCommandTimeout = undefined; - } - async sendMessage(errorSubject, address, msgID, payload) { - await (0, utils_1.sendMessage)(this.socket, address, msgID, payload).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`${errorSubject} - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, address: address, msgID: msgID.toString("hex"), payload: payload?.toString("hex") }); - }); - } - _disconnected() { - this._clearHeartbeatTimeout(); - this._clearKeepaliveTimeout(); - this._clearLocalLookupRetryTimeout(); - this._clearLookupRetryTimeout(); - this._clearLookup2Timeout(); - this._clearLookupTimeout(); - this._clearConnectTimeout(); - this._clearESDDisconnectTimeout(); - this._clearSecondaryCommandTimeout(); - this._clearMessageStateTimeouts(); - this._clearMessageVideoStateTimeouts(); - if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming) { - this.endStream(types_1.P2PDataType.VIDEO); - } - if (this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming) { - this.endStream(types_1.P2PDataType.BINARY); - } - for (const channel in this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming) { - this.endRTSPStream(Number.parseInt(channel)); - } - this.sendQueue = this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING); - if (this.connected) { - this.emit("close"); - } - else if (!this.terminating) { - this.emit("timeout"); - } - this._initialize(); - } - closeEnergySavingDevice() { - if (this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING).length === 0 && - this.energySavingDevice && - !this.isCurrentlyStreaming() && - Array.from(this.messageStates.values()).filter((msgState) => msgState.acknowledged === false).length === 0) { - if (this.esdDisconnectTimeout === undefined) { - logging_1.rootP2PLogger.debug(`Energy saving device - No more p2p commands to execute or running streams, initiate disconnect timeout in ${this.ESD_DISCONNECT_TIMEOUT} milliseconds...`, { stationSN: this.rawStation.station_sn }); - this.esdDisconnectTimeout = setTimeout(() => { - this.esdDisconnectTimeout = undefined; - this.sendMessage(`Closing of connection for battery saving`, this.connectAddress, types_1.RequestMessageType.END); - logging_1.rootP2PLogger.info(`Initiated closing of connection to station ${this.rawStation.station_sn} for saving battery.`); - this.terminating = true; - this._disconnected(); - }, this.ESD_DISCONNECT_TIMEOUT); - } - } - } - async renewDSKKey() { - if (this.dskKey === "" || (this.dskExpiration && (new Date()).getTime() >= this.dskExpiration.getTime())) { - logging_1.rootP2PLogger.debug(`DSK keys not present or expired, get/renew it`, { stationSN: this.rawStation.station_sn, dskKey: this.dskKey, dskExpiration: this.dskExpiration }); - await this.getDSKKeys(); - } - } - localLookup(host) { - logging_1.rootP2PLogger.debug(`Trying to local lookup address for station ${this.rawStation.station_sn} with host ${host}`); - this.localLookupByAddress({ host: host, port: 32108 }); - this._clearLocalLookupRetryTimeout(); - this.lookupRetryTimeout = setTimeout(() => { - this.localLookup(host); - }, this.LOCAL_LOOKUP_RETRY_TIMEOUT); - } - cloudLookup() { - this.cloudAddresses.map((address) => this.cloudLookupByAddress(address)); - this._clearLookupRetryTimeout(); - this.lookupRetryTimeout = setTimeout(() => { - this.cloudLookup(); - }, this.LOOKUP_RETRY_TIMEOUT); - } - cloudLookup2() { - this.cloudAddresses.map((address) => this.cloudLookupByAddress2(address)); - this._clearLookup2RetryTimeout(); - this.lookup2RetryTimeout = setTimeout(() => { - this.cloudLookup2(); - }, this.LOOKUP2_RETRY_TIMEOUT); - } - cloudLookupWithTurnServer(origAddress, data) { - this.cloudAddresses.map((address) => this.cloudLookupByAddressWithTurnServer(address, origAddress, data)); - } - async localLookupByAddress(address) { - // Send lookup message - const msgId = types_1.RequestMessageType.LOCAL_LOOKUP; - const payload = Buffer.from([0, 0]); - await this.sendMessage(`Local lookup address`, address, msgId, payload); - } - async cloudLookupByAddress(address) { - // Send lookup message - const msgId = types_1.RequestMessageType.LOOKUP_WITH_KEY; - const payload = (0, utils_1.buildLookupWithKeyPayload)(this.socket, this.rawStation.p2p_did, this.dskKey); - await this.sendMessage(`Cloud lookup addresses`, address, msgId, payload); - } - async cloudLookupByAddress2(address) { - // Send lookup message2 - const msgId = types_1.RequestMessageType.LOOKUP_WITH_KEY2; - const payload = (0, utils_1.buildLookupWithKeyPayload2)(this.rawStation.p2p_did, this.dskKey); - await this.sendMessage(`Cloud lookup addresses (2)`, address, msgId, payload); - } - async cloudLookupByAddressWithTurnServer(address, origAddress, data) { - // Send lookup message3 - const msgId = types_1.RequestMessageType.TURN_LOOKUP_WITH_KEY; - const payload = (0, utils_1.buildLookupWithKeyPayload3)(this.rawStation.p2p_did, origAddress, data); - await this.sendMessage(`Cloud lookup addresses with turn server`, address, msgId, payload); - } - isConnected() { - return this.connected; - } - _startConnectTimeout() { - if (this.connectTimeout === undefined) - this.connectTimeout = setTimeout(() => { - logging_1.rootP2PLogger.warn(`Tried all hosts, no connection could be established to station ${this.rawStation.station_sn}.`); - this._disconnected(); - }, this.MAX_CONNECTION_TIMEOUT); - } - _connect(address, p2p_did) { - logging_1.rootP2PLogger.debug(`Connecting to host ${address.host} on port ${address.port} (CHECK_CAM)`, { stationSN: this.rawStation.station_sn, address: address, p2pDid: p2p_did }); - this.sendCamCheck(address, p2p_did); - for (let i = address.port - 3; i < address.port; i++) - this.sendCamCheck({ host: address.host, port: i }, p2p_did); - for (let i = address.port + 1; i <= address.port + 3; i++) - this.sendCamCheck({ host: address.host, port: i }, p2p_did); - this._startConnectTimeout(); - } - lookup(host) { - if (host === undefined) { - if (this.preferredIPAddress !== undefined) { - host = this.preferredIPAddress; - } - else if (this.localIPAddress !== undefined) { - host = this.localIPAddress; - } - else { - const localIP = (0, utils_1.getLocalIpAddress)(); - host = localIP.substring(0, localIP.lastIndexOf(".") + 1).concat("255"); - } - } - this.localLookup(host); - this.cloudLookup(); - this._clearLookup2Timeout(); - this.lookup2Timeout = setTimeout(() => { - this.cloudLookup2(); - }, this.LOOKUP2_TIMEOUT); - this._clearLookupTimeout(); - this.lookupTimeout = setTimeout(() => { - this.lookupTimeout = undefined; - logging_1.rootP2PLogger.error(`All address lookup tentatives failed.`, { stationSN: this.rawStation.station_sn }); - if (this.localIPAddress !== undefined) - this.localIPAddress = undefined; - this._disconnected(); - }, this.MAX_LOOKUP_TIMEOUT); - } - async connect(host) { - if (!this.connected && !this.connecting && this.rawStation.p2p_did !== undefined) { - this.connecting = true; - this.terminating = false; - await this.renewDSKKey(); - if (!this.binded) - this.socket.bind(this.listeningPort, () => { - this.binded = true; - try { - this.socket.setRecvBufferSize(this.UDP_RECVBUFFERSIZE_BYTES); - this.socket.setBroadcast(true); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`connect - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, host: host, currentRecBufferSize: this.socket.getRecvBufferSize(), recBufferRequestedSize: this.UDP_RECVBUFFERSIZE_BYTES }); - } - this.lookup(host); - }); - else { - this.lookup(host); - } - } - } - async sendCamCheck(address, p2p_did) { - const payload = (0, utils_1.buildCheckCamPayload)(p2p_did); - await this.sendMessage(`Send cam check`, address, types_1.RequestMessageType.CHECK_CAM, payload); - } - async sendCamCheck2(address, data) { - const payload = (0, utils_1.buildCheckCamPayload2)(this.rawStation.p2p_did, data); - await this.sendMessage(`Send cam check (2)`, address, types_1.RequestMessageType.CHECK_CAM2, payload); - } - async sendPing(address) { - if ((this.lastPong && ((new Date().getTime() - this.lastPong) / this.getHeartbeatInterval() >= this.MAX_RETRIES)) || - (this.connectTime && !this.lastPong && ((new Date().getTime() - this.connectTime) / this.getHeartbeatInterval() >= this.MAX_RETRIES))) { - if (!this.energySavingDevice) - logging_1.rootP2PLogger.warn(`Heartbeat check failed for station ${this.rawStation.station_sn}. Connection seems lost. Try to reconnect...`); - this._disconnected(); - } - await this.sendMessage(`Send ping`, address, types_1.RequestMessageType.PING, this.lastPongData); - } - sendCommandWithIntString(p2pcommand, customData) { - if (p2pcommand.channel === undefined) - p2pcommand.channel = 0; - if (p2pcommand.value === undefined || typeof p2pcommand.value !== "number") - throw new TypeError("value must be a number"); - this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithIntString, undefined, customData); - } - sendCommandWithInt(p2pcommand, customData) { - if (p2pcommand.channel === undefined) - p2pcommand.channel = this.channel; - if (p2pcommand.value === undefined || typeof p2pcommand.value !== "number") - throw new TypeError("value must be a number"); - this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithInt, undefined, customData); - } - sendCommandWithStringPayload(p2pcommand, customData) { - if (p2pcommand.channel === undefined) - p2pcommand.channel = 0; - if (p2pcommand.value === undefined || typeof p2pcommand.value !== "string") - throw new TypeError("value must be a string"); - let nested_commandType = undefined; - let nested_commandType2 = undefined; - logging_1.rootP2PLogger.debug(`sendCommandWithStringPayload:`, { p2pcommand: p2pcommand, customData: customData }); - if (p2pcommand.commandType == types_1.CommandType.CMD_SET_PAYLOAD) { - try { - const json = JSON.parse(p2pcommand.value); - nested_commandType = json.cmd; - if (json.payload && json.payload.apiCommand !== undefined) { - nested_commandType2 = json.payload.apiCommand; - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`sendCommandWithStringPayload CMD_SET_PAYLOAD - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, p2pcommand: p2pcommand, customData: customData }); - } - } - else if (p2pcommand.commandType == types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD) { - try { - const json = JSON.parse(p2pcommand.value); - nested_commandType = json.commandType; - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`sendCommandWithStringPayload CMD_DOORBELL_SET_PAYLOAD - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, p2pcommand: p2pcommand, customData: customData }); - } - } - this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithStringPayload, nested_commandType, customData, nested_commandType2); - } - sendCommandWithString(p2pcommand, customData) { - if (p2pcommand.channel === undefined) - p2pcommand.channel = this.channel; - if (p2pcommand.strValue === undefined) - throw new TypeError("strValue must be defined"); - if (p2pcommand.strValueSub === undefined) - throw new TypeError("strValueSub must be defined"); - this.sendCommand(p2pcommand, types_1.InternalP2PCommandType.WithString, p2pcommand.commandType, customData); - } - sendCommandPing(channel = this.channel) { - this.sendCommand({ - commandType: types_1.CommandType.CMD_PING, - channel: channel - }, types_1.InternalP2PCommandType.WithoutData); - } - sendCommandDevicePing(channel = this.channel) { - this.sendCommand({ - commandType: types_1.CommandType.CMD_GET_DEVICE_PING, - channel: channel - }, types_1.InternalP2PCommandType.WithoutData); - } - sendCommandWithoutData(commandType, channel = this.channel) { - this.sendCommand({ - commandType: commandType, - channel: channel - }, types_1.InternalP2PCommandType.WithoutData); - } - sendQueuedMessage() { - if (this.sendQueue.length > 0) { - if (this.connected) { - let queuedMessage; - while ((queuedMessage = this.sendQueue.shift()) !== undefined) { - let exists = false; - let waitingAcknowledge = false; - this.messageStates.forEach(stateMessage => { - if (stateMessage.commandType === queuedMessage.p2pCommand.commandType && stateMessage.nestedCommandType === queuedMessage.nestedCommandType && !stateMessage.acknowledged) { - exists = true; - } - if (!stateMessage.acknowledged || stateMessage.commandType === types_1.CommandType.CMD_GATEWAYINFO) { - waitingAcknowledge = true; - } - }); - if (!exists && !waitingAcknowledge) { - this._sendCommand(queuedMessage); - break; - } - else { - this.sendQueue.unshift(queuedMessage); - break; - } - } - } - else if (!this.connected && this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING).length > 0) { - logging_1.rootP2PLogger.debug(`Initiate station p2p connection to send queued data`, { stationSN: this.rawStation.station_sn, queuedDataCount: this.sendQueue.filter((queue) => queue.p2pCommand.commandType !== types_1.CommandType.CMD_PING && queue.p2pCommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING).length }); - this.connect(); - } - } - this.closeEnergySavingDevice(); - } - sendCommand(p2pcommand, p2pcommandType, nestedCommandType, customData, nested_commandType2) { - const message = { - p2pCommand: p2pcommand, - nestedCommandType: nestedCommandType, - nestedCommandType2: nested_commandType2, - timestamp: +new Date, - customData: customData, - p2pCommandType: p2pcommandType - }; - this.sendQueue.push(message); - if (p2pcommand.commandType !== types_1.CommandType.CMD_PING && p2pcommand.commandType !== types_1.CommandType.CMD_GET_DEVICE_PING) - this._clearESDDisconnectTimeout(); - this.sendQueuedMessage(); - } - resendNotAcknowledgedCommand(sequence) { - const messageState = this.messageStates.get(sequence); - if (messageState) { - this._clearTimeout(messageState.retryTimeout); - messageState.retryTimeout = setTimeout(() => { - if (this.connectAddress) { - (0, utils_1.sendMessage)(this.socket, this.connectAddress, types_1.RequestMessageType.DATA, messageState.data).catch((err) => { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`resendNotAcknowledgedCommand - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, sequence: sequence }); - }); - this.resendNotAcknowledgedCommand(sequence); - } - }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); - } - } - async _sendCommand(message) { - if ((0, utils_1.isP2PQueueMessage)(message)) { - const ageing = +new Date - message.timestamp; - if (ageing <= this.MAX_COMMAND_QUEUE_TIMEOUT) { - const commandHeader = (0, utils_1.buildCommandHeader)(this.seqNumber, message.p2pCommand.commandType); - let payload; - const channel = message.p2pCommand.channel !== undefined ? message.p2pCommand.channel : 0; - switch (message.p2pCommandType) { - case types_1.InternalP2PCommandType.WithInt: - payload = (0, utils_1.buildIntCommandPayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.value, message.p2pCommand.strValue === undefined ? "" : message.p2pCommand.strValue, channel); - break; - case types_1.InternalP2PCommandType.WithIntString: - payload = (0, utils_1.buildIntStringCommandPayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.value, message.p2pCommand.valueSub === undefined ? 0 : message.p2pCommand.valueSub, message.p2pCommand.strValue === undefined ? "" : message.p2pCommand.strValue, message.p2pCommand.strValueSub === undefined ? "" : message.p2pCommand.strValueSub, channel); - //TODO: Check if this "if" can be moved elsewhere - if (message.p2pCommand.commandType === types_1.CommandType.CMD_NAS_TEST) { - this.currentMessageState[types_1.P2PDataType.DATA].rtspStream[channel] = message.p2pCommand.value === 1 ? true : false; - } - break; - case types_1.InternalP2PCommandType.WithString: - payload = (0, utils_1.buildStringTypeCommandPayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.strValue, message.p2pCommand.strValueSub, channel); - break; - case types_1.InternalP2PCommandType.WithStringPayload: - payload = (0, utils_1.buildCommandWithStringTypePayload)(this.encryption, this.p2pKey, this.rawStation.station_sn, this.rawStation.p2p_did, message.p2pCommand.commandType, message.p2pCommand.value, channel); - break; - default: - payload = (0, utils_1.buildVoidCommandPayload)(channel); - break; - } - const data = Buffer.concat([commandHeader, payload]); - const messageState = { - sequence: this.seqNumber, - commandType: message.p2pCommand.commandType, - nestedCommandType: message.nestedCommandType, - nestedCommandType2: message.nestedCommandType2, - channel: channel, - data: data, - retries: 0, - acknowledged: false, - customData: message.customData - }; - message = messageState; - this.seqNumber = this._incrementSequence(this.seqNumber); - } - else if (message.p2pCommand.commandType === types_1.CommandType.CMD_PING || message.p2pCommand.commandType === types_1.CommandType.CMD_GET_DEVICE_PING) { - return; - } - else { - logging_1.rootP2PLogger.warn(`Command aged out from send queue for station ${this.rawStation.station_sn}`, { commandType: message.p2pCommand.commandType, nestedCommandType: message.nestedCommandType, channel: message.p2pCommand.channel, ageing: ageing, maxAgeing: this.MAX_COMMAND_QUEUE_TIMEOUT }); - this.emit("command", { - command_type: message.nestedCommandType !== undefined ? message.nestedCommandType : message.p2pCommand.commandType, - channel: message.p2pCommand.channel, - return_code: types_1.ErrorCode.ERROR_CONNECT_TIMEOUT, - customData: message.customData - }); - return; - } - } - else { - if (message.retries < this.MAX_RETRIES && message.returnCode !== types_1.ErrorCode.ERROR_CONNECT_TIMEOUT) { - if (message.returnCode === types_1.ErrorCode.ERROR_FAILED_TO_REQUEST) { - this.messageStates.delete(message.sequence); - message.sequence = this.seqNumber; - message.data.writeUInt16BE(message.sequence, 2); - this.seqNumber = this._incrementSequence(this.seqNumber); - this.messageStates.set(message.sequence, message); - } - message.retries++; - } - else { - logging_1.rootP2PLogger.error(`Max p2p command send retries reached.`, { stationSN: this.rawStation.station_sn, sequence: message.sequence, commandType: message.commandType, channel: message.channel, retries: message.retries, returnCode: message.returnCode }); - this.emit("command", { - command_type: message.nestedCommandType !== undefined ? message.nestedCommandType : message.commandType, - channel: message.channel, - return_code: types_1.ErrorCode.ERROR_COMMAND_TIMEOUT, - customData: message.customData - }); - if (message.commandType === types_1.CommandType.CMD_START_REALTIME_MEDIA || - (message.nestedCommandType === types_1.CommandType.CMD_START_REALTIME_MEDIA && message.commandType === types_1.CommandType.CMD_SET_PAYLOAD) || - message.commandType === types_1.CommandType.CMD_RECORD_VIEW || - (message.nestedCommandType === http_1.ParamType.COMMAND_START_LIVESTREAM && message.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD)) { - if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming && message.channel === this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreamChannel) { - this.endStream(types_1.P2PDataType.VIDEO); - } - } - else if (message.commandType === types_1.CommandType.CMD_DOWNLOAD_VIDEO) { - if (this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming && message.channel === this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel) { - this.endStream(types_1.P2PDataType.BINARY); - } - } - this.messageStates.delete(message.sequence); - this.sendQueuedMessage(); - return; - } - } - const messageState = message; - messageState.timeout = setTimeout(() => { - this._clearTimeout(messageState.retryTimeout); - this._sendCommand(messageState); - this._clearESDDisconnectTimeout(); - this.closeEnergySavingDevice(); - }, this.MAX_AKNOWLEDGE_TIMEOUT); - this.messageStates.set(messageState.sequence, messageState); - messageState.retryTimeout = setTimeout(() => { - this.resendNotAcknowledgedCommand(messageState.sequence); - }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); - if (messageState.commandType !== types_1.CommandType.CMD_PING) { - this.p2pSeqMapping.set(this.p2pDataSeqNumber, message.sequence); - logging_1.rootP2PLogger.trace(`Added sequence number mapping`, { stationSN: this.rawStation.station_sn, commandType: message.commandType, seqNumber: message.sequence, p2pDataSeqNumber: this.p2pDataSeqNumber, p2pSeqMappingCount: this.p2pSeqMapping.size }); - this.p2pDataSeqNumber = this._incrementSequence(this.p2pDataSeqNumber); - } - logging_1.rootP2PLogger.debug("Sending p2p command...", { station: this.rawStation.station_sn, sequence: messageState.sequence, commandType: messageState.commandType, channel: messageState.channel, retries: messageState.retries, messageStatesSize: this.messageStates.size }); - await this.sendMessage(`Send p2p command`, this.connectAddress, types_1.RequestMessageType.DATA, messageState.data); - if (messageState.retries === 0) { - if (messageState.commandType === types_1.CommandType.CMD_START_REALTIME_MEDIA || - (messageState.nestedCommandType === types_1.CommandType.CMD_START_REALTIME_MEDIA && messageState.commandType === types_1.CommandType.CMD_SET_PAYLOAD) || - messageState.commandType === types_1.CommandType.CMD_RECORD_VIEW || - (messageState.nestedCommandType === http_1.ParamType.COMMAND_START_LIVESTREAM && messageState.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD)) { - if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming && messageState.channel !== this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreamChannel) { - this.endStream(types_1.P2PDataType.VIDEO); - } - this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreaming = true; - this.currentMessageState[types_1.P2PDataType.VIDEO].p2pStreamChannel = messageState.channel; - this.waitForStreamData(types_1.P2PDataType.VIDEO); - } - else if (messageState.commandType === types_1.CommandType.CMD_DOWNLOAD_VIDEO) { - if (this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming && messageState.channel !== this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel) { - this.endStream(types_1.P2PDataType.BINARY); - } - this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming = true; - this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel = message.channel; - this.waitForStreamData(types_1.P2PDataType.BINARY); - } - else if (messageState.commandType === types_1.CommandType.CMD_STOP_REALTIME_MEDIA) { //TODO: CommandType.CMD_RECORD_PLAY_CTRL only if stop - this.endStream(types_1.P2PDataType.VIDEO); - } - else if (messageState.commandType === types_1.CommandType.CMD_DOWNLOAD_CANCEL) { - this.endStream(types_1.P2PDataType.BINARY); - } - else if (messageState.commandType === types_1.CommandType.CMD_NAS_TEST) { - if (this.currentMessageState[types_1.P2PDataType.DATA].rtspStream[messageState.channel]) { - this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[messageState.channel] = true; - this.emit("rtsp livestream started", messageState.channel); - } - else { - this.endRTSPStream(messageState.channel); - } - } - } - } - handleMsg(msg, rinfo) { - if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOCAL_LOOKUP_RESP)) { - if (!this.connected) { - this._clearLookupTimeout(); - this._clearLocalLookupRetryTimeout(); - const p2pDid = `${msg.subarray(4, 12).toString("utf8").replace(/[\0]+$/g, "")}-${msg.subarray(12, 16).readUInt32BE().toString().padStart(6, "0")}-${msg.subarray(16, 24).toString("utf8").replace(/[\0]+$/g, "")}`; - logging_1.rootP2PLogger.trace(`Received message - LOCAL_LOOKUP_RESP - Got response`, { stationSN: this.rawStation.station_sn, ip: rinfo.address, port: rinfo.port, p2pDid: p2pDid }); - if (p2pDid === this.rawStation.p2p_did) { - logging_1.rootP2PLogger.debug(`Received message - LOCAL_LOOKUP_RESP - Wanted device was found, connect to it`, { stationSN: this.rawStation.station_sn, ip: rinfo.address, port: rinfo.port, p2pDid: p2pDid }); - this._connect({ host: rinfo.address, port: rinfo.port }, p2pDid); - } - else { - logging_1.rootP2PLogger.debug(`Received message - LOCAL_LOOKUP_RESP - Unwanted device was found, don't connect to it`, { stationSN: this.rawStation.station_sn, ip: rinfo.address, port: rinfo.port, p2pDid: p2pDid }); - } - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOOKUP_ADDR)) { - if (!this.connected) { - const port = msg.subarray(6, 8).readUInt16LE(); - const ip = `${msg[11]}.${msg[10]}.${msg[9]}.${msg[8]}`; - logging_1.rootP2PLogger.trace(`Received message - LOOKUP_ADDR - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { ip: ip, port: port } }); - if (ip === "0.0.0.0") { - logging_1.rootP2PLogger.trace(`Received message - LOOKUP_ADDR - Got invalid ip address 0.0.0.0, ignoring response...`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { ip: ip, port: port } }); - return; - } - if ((0, utils_1.isPrivateIp)(ip)) - this.localIPAddress = ip; - if (this.connectionType === types_1.P2PConnectionType.ONLY_LOCAL) { - if ((0, utils_1.isPrivateIp)(ip)) { - this._clearLookupTimeout(); - this._clearLookupRetryTimeout(); - logging_1.rootP2PLogger.debug(`Trying to connect in ONLY_LOCAL mode...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port }); - this._connect({ host: ip, port: port }, this.rawStation.p2p_did); - } - } - else if (this.connectionType === types_1.P2PConnectionType.QUICKEST) { - this._clearLookupTimeout(); - this._clearLookupRetryTimeout(); - logging_1.rootP2PLogger.debug(`Trying to connect in QUICKEST mode...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port }); - this._connect({ host: ip, port: port }, this.rawStation.p2p_did); - } - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.CAM_ID) || (0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_CAM_ID)) { - // Answer from the device to a CAM_CHECK message - if (!this.connected) { - logging_1.rootP2PLogger.debug(`Received message - CAM_ID - Connected to station ${this.rawStation.station_sn} on host ${rinfo.address} port ${rinfo.port}`); - this._clearLocalLookupRetryTimeout(); - this._clearLookupRetryTimeout(); - this._clearLookup2RetryTimeout(); - this._clearLookupTimeout(); - this._clearConnectTimeout(); - this._clearLookup2Timeout(); - this.connected = true; - this.connectTime = new Date().getTime(); - this.lastPong = null; - this.lastPongData = undefined; - this.connectAddress = { host: rinfo.address, port: rinfo.port }; - if ((0, utils_1.isPrivateIp)(rinfo.address)) - this.localIPAddress = rinfo.address; - this.scheduleHeartbeat(); - if (device_1.Device.isSmartSafe(this.rawStation.device_type)) { - const payload = (0, utils_1.buildVoidCommandPayload)(http_1.Station.CHANNEL); - const data = Buffer.concat([(0, utils_1.buildCommandHeader)(this.seqNumber, types_1.CommandType.CMD_GATEWAYINFO), payload]); - const message = { - sequence: this.seqNumber, - commandType: types_1.CommandType.CMD_GATEWAYINFO, - channel: http_1.Station.CHANNEL, - data: data, - retries: 0, - acknowledged: false, - }; - this.messageStates.set(message.sequence, message); - message.retryTimeout = setTimeout(() => { - this.resendNotAcknowledgedCommand(message.sequence); - }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); - this.seqNumber = this._incrementSequence(this.seqNumber); - this.sendMessage(`Send smartsafe gateway command to station`, this.connectAddress, types_1.RequestMessageType.DATA, data); - const tmpSendQueue = [...this.sendQueue]; - this.sendQueue = []; - this.sendCommandPing(http_1.Station.CHANNEL); - tmpSendQueue.forEach(element => { - this.sendQueue.push(element); - }); - } - else if (device_1.Device.isLockWifiR10(this.rawStation.device_type) || device_1.Device.isLockWifiR20(this.rawStation.device_type)) { - const tmpSendQueue = [...this.sendQueue]; - this.sendQueue = []; - const payload = (0, utils_1.buildVoidCommandPayload)(http_1.Station.CHANNEL); - const data = Buffer.concat([(0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_GATEWAYINFO), payload.subarray(0, payload.length - 2), (0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_PING).subarray(2), payload]); - const message = { - sequence: this.seqNumber, - commandType: types_1.CommandType.CMD_PING, - channel: http_1.Station.CHANNEL, - data: data, - retries: 0, - acknowledged: false, - }; - this.messageStates.set(message.sequence, message); - message.retryTimeout = setTimeout(() => { - this.resendNotAcknowledgedCommand(message.sequence); - }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); - this.seqNumber = this._incrementSequence(this.seqNumber); - this.sendMessage(`Send lock wifi gateway v12 command to station`, this.connectAddress, types_1.RequestMessageType.DATA, data); - tmpSendQueue.forEach(element => { - this.sendQueue.push(element); - }); - } - else if (this.rawStation.devices !== undefined && this.rawStation.devices !== null && this.rawStation.devices.length !== undefined && this.rawStation.devices.length > 0 && device_1.Device.isLockWifiVideo(this.rawStation.devices[0]?.device_type)) { - const tmpSendQueue = [...this.sendQueue]; - this.sendQueue = []; - const payload = (0, utils_1.buildVoidCommandPayload)(http_1.Station.CHANNEL); - const data = Buffer.concat([(0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_GATEWAYINFO), payload.subarray(0, payload.length - 2), (0, utils_1.buildCommandHeader)(0, types_1.CommandType.CMD_PING).subarray(2), payload]); - const message = { - sequence: this.seqNumber, - commandType: types_1.CommandType.CMD_PING, - channel: http_1.Station.CHANNEL, - data: data, - retries: 0, - acknowledged: false, - }; - this.messageStates.set(message.sequence, message); - message.retryTimeout = setTimeout(() => { - this.resendNotAcknowledgedCommand(message.sequence); - }, this.RESEND_NOT_ACKNOWLEDGED_COMMAND); - this.seqNumber = this._incrementSequence(this.seqNumber); - this.sendMessage(`Send lock wifi gateway command to station`, this.connectAddress, types_1.RequestMessageType.DATA, data); - tmpSendQueue.forEach(element => { - this.sendQueue.push(element); - }); - } - else { - const tmpSendQueue = [...this.sendQueue]; - this.sendQueue = []; - this.sendCommandWithoutData(types_1.CommandType.CMD_GATEWAYINFO, http_1.Station.CHANNEL); - tmpSendQueue.forEach(element => { - this.sendQueue.push(element); - }); - } - this.sendQueuedMessage(); - if (this.energySavingDevice) { - this.scheduleP2PKeepalive(); - } - this.emit("connect", this.connectAddress); - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.PONG)) { - // Response to a ping from our side - this.lastPong = new Date().getTime(); - if (msg.length > 4) - this.lastPongData = msg.subarray(4); - else - this.lastPongData = undefined; - return; - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.PING)) { - // Response with PONG to keep alive - this.sendMessage(`Send pong`, { host: rinfo.address, port: rinfo.port }, types_1.RequestMessageType.PONG); - return; - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.END)) { - // Connection is closed by device - logging_1.rootP2PLogger.debug(`Received message - END`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port }); - this.onClose(); - return; - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.ACK)) { - // Device ACK a message from our side - // Number of Acks sended in the message - const dataTypeBuffer = msg.subarray(4, 6); - const dataType = this.getDataType(dataTypeBuffer); - const numAcksBuffer = msg.subarray(6, 8); - const numAcks = numAcksBuffer.readUIntBE(0, numAcksBuffer.length); - for (let i = 1; i <= numAcks; i++) { - const idx = 6 + i * 2; - const seqBuffer = msg.subarray(idx, idx + 2); - const ackedSeqNo = seqBuffer.readUIntBE(0, seqBuffer.length); - // -> Message with seqNo was received at the station - logging_1.rootP2PLogger.trace(`Received message - ACK ${types_1.P2PDataType[dataType]} - sequence ${ackedSeqNo}`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, ackedSeqNo: ackedSeqNo, dataType: types_1.P2PDataType[dataType] }); - if (dataType === types_1.P2PDataType.DATA) { - const msg_state = this.messageStates.get(ackedSeqNo); - if (msg_state && !msg_state.acknowledged) { - this._clearTimeout(msg_state.retryTimeout); - this._clearTimeout(msg_state.timeout); - if (msg_state.commandType === types_1.CommandType.CMD_PING || msg_state.commandType === types_1.CommandType.CMD_GET_DEVICE_PING) { - this.messageStates.delete(ackedSeqNo); - this.sendQueuedMessage(); - } - else { - msg_state.acknowledged = true; - msg_state.timeout = setTimeout(() => { - //TODO: Retry command in these case? - if (msg_state.commandType !== types_1.CommandType.CMD_GATEWAYINFO) { - logging_1.rootP2PLogger.warn(`Result data for command not received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: msg_state.returnCode, data: msg_state.data } }); - this.emit("command", { - command_type: msg_state.nestedCommandType !== undefined ? msg_state.nestedCommandType : msg_state.commandType, - channel: msg_state.channel, - return_code: types_1.ErrorCode.ERROR_COMMAND_TIMEOUT, - customData: msg_state.customData - }); - } - else { - this.p2pSeqMapping.forEach((value, key, map) => { - if (value === ackedSeqNo) { - map.delete(key); - } - }); - this.p2pDataSeqNumber--; - logging_1.rootP2PLogger.debug(`Result data for command CMD_GATEWAYINFO not received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: msg_state.returnCode, data: msg_state.data } }); - } - this.messageStates.delete(ackedSeqNo); - this.sendQueuedMessage(); - }, msg_state.commandType !== types_1.CommandType.CMD_GATEWAYINFO ? this.MAX_COMMAND_RESULT_WAIT : this.MAX_GATEWAY_COMMAND_RESULT_WAIT); - this.messageStates.set(ackedSeqNo, msg_state); - this.sendQueuedMessage(); - } - } - } - else if (dataType === types_1.P2PDataType.VIDEO) { - const msg_state = this.messageVideoStates.get(ackedSeqNo); - if (msg_state) { - this._clearTimeout(msg_state.timeout); - this.messageVideoStates.delete(ackedSeqNo); - } - } - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.DATA)) { - if (this.connected) { - const seqNo = msg.subarray(6, 8).readUInt16BE(); - const dataTypeBuffer = msg.subarray(4, 6); - const dataType = this.getDataType(dataTypeBuffer); - const message = { - bytesToRead: msg.subarray(2, 4).readUInt16BE(), - type: dataType, - seqNo: seqNo, - data: msg.subarray(8) - }; - this.sendAck({ host: rinfo.address, port: rinfo.port }, dataTypeBuffer, seqNo); - logging_1.rootP2PLogger.debug(`Received message - DATA ${types_1.P2PDataType[message.type]} - Processing sequence ${message.seqNo}...`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo }); - if (message.seqNo === this.expectedSeqNo[dataType]) { - // expected seq packet arrived - const timeout = this.currentMessageState[dataType].waitForSeqNoTimeout; - if (!!timeout) { - clearTimeout(timeout); - this.currentMessageState[dataType].waitForSeqNoTimeout = undefined; - } - this.expectedSeqNo[dataType] = this._incrementSequence(this.expectedSeqNo[dataType]); - this.parseDataMessage(message); - logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received expected sequence`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); - let queuedMessage = this.currentMessageState[dataType].queuedData.get(this.expectedSeqNo[dataType]); - while (queuedMessage) { - logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[queuedMessage.type]} - Work off queued data`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: queuedMessage.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); - this.expectedSeqNo[dataType] = this._incrementSequence(this.expectedSeqNo[dataType]); - this.parseDataMessage(queuedMessage); - this.currentMessageState[dataType].queuedData.delete(queuedMessage.seqNo); - queuedMessage = this.currentMessageState[dataType].queuedData.get(this.expectedSeqNo[dataType]); - } - } - else if (this._wasSequenceNumberAlreadyProcessed(this.expectedSeqNo[dataType], message.seqNo)) { - // We have already seen this message, skip! - // This can happen because the device is sending the message till it gets a ACK - // which can take some time. - logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received already processed sequence`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); - return; - } - else { - if (!this.currentMessageState[dataType].waitForSeqNoTimeout) - this.currentMessageState[dataType].waitForSeqNoTimeout = setTimeout(() => { - this.endStream(dataType, true); - this.currentMessageState[dataType].waitForSeqNoTimeout = undefined; - }, this.MAX_EXPECTED_SEQNO_WAIT); - if (!this.currentMessageState[dataType].queuedData.get(message.seqNo)) { - this.currentMessageState[dataType].queuedData.set(message.seqNo, message); - logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received not expected sequence, added to the queue for future processing`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); - } - else { - logging_1.rootP2PLogger.trace(`Received message - DATA ${types_1.P2PDataType[message.type]} - Received not expected sequence, discarded since already present in queue for future processing`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, dataType: types_1.P2PDataType[message.type], seqNo: message.seqNo, expectedSeqNo: this.expectedSeqNo[dataType], queuedDataSize: this.currentMessageState[dataType].queuedData.size }); - } - } - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOOKUP_ADDR2)) { - if (!this.connected) { - const port = msg.subarray(6, 8).readUInt16LE(); - const ip = `${msg[11]}.${msg[10]}.${msg[9]}.${msg[8]}`; - const data = msg.subarray(20, 24); - this._clearLookupTimeout(); - this._clearLookupRetryTimeout(); - this._clearLookup2RetryTimeout(); - logging_1.rootP2PLogger.trace(`Received message - LOOKUP_ADDR2 - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { ip: ip, port: port, data: data.toString("hex") } }); - logging_1.rootP2PLogger.debug(`Connecting to host ${ip} on port ${port} (CHECK_CAM2)...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port, data: data.toString("hex") }); - for (let i = 0; i < 4; i++) - this.sendCamCheck2({ host: ip, port: port }, data); - this._startConnectTimeout(); - if (this.p2pTurnHandshaking[ip] === undefined) { - this.p2pTurnHandshaking[ip] = true; - this.sendMessage(`Send TURN_SERVER_INIT`, { host: ip, port: port }, types_1.RequestMessageType.TURN_SERVER_INIT); - } - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_OK)) { - if (!this.connected && !this.p2pTurnConfirmed) { - logging_1.rootP2PLogger.trace(`Received message - TURN_SERVER_OK - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { message: msg.toString("hex"), length: msg.length } }); - this.sendMessage(`Send TURN_CLIENT_OK`, { host: rinfo.address, port: rinfo.port }, types_1.RequestMessageType.TURN_CLIENT_OK); - this.p2pTurnConfirmed = true; - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_TOKEN)) { - if (!this.connected) { - const ip = `${msg[7]}.${msg[6]}.${msg[5]}.${msg[4]}`; - const port = msg.subarray(8, 10).readUInt16BE(); - const binaryIP = msg.subarray(4, 8); - logging_1.rootP2PLogger.debug(`Connecting to host ${ip} on port ${port} (CHECK_CAM2)...`, { stationSN: this.rawStation.station_sn, ip: ip, port: port, binaryIP: binaryIP.toString("hex") }); - for (let i = 0; i < 4; i++) - this.sendCamCheck2({ host: rinfo.address, port: port }, binaryIP); - logging_1.rootP2PLogger.trace(`Received message - TURN_SERVER_TOKEN - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { port: port, binaryIP: binaryIP.toString("hex") } }); - this.cloudLookupWithTurnServer({ host: rinfo.address, port: port }, binaryIP); - } - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_LOOKUP_OK) || (0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.UNKNOWN_83) || (0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.TURN_SERVER_LIST)) { - // Do nothing / ignore - } - else if ((0, utils_1.hasHeader)(msg, types_1.ResponseMessageType.LOOKUP_RESP)) { - if (!this.connected) { - const responseCode = msg.subarray(4, 6).readUInt16LE(); - logging_1.rootP2PLogger.trace(`Received message - LOOKUP_RESP - Got response`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { responseCode: responseCode } }); - } - } - else { - logging_1.rootP2PLogger.debug(`Received unknown message`, { stationSN: this.rawStation.station_sn, remoteAddress: rinfo.address, remotePort: rinfo.port, response: { message: msg.toString("hex"), length: msg.length } }); - } - } - parseDataMessage(message) { - if ((message.type === types_1.P2PDataType.BINARY || message.type === types_1.P2PDataType.VIDEO) && !this.currentMessageState[message.type].p2pStreaming) { - logging_1.rootP2PLogger.trace(`Parsing message - DATA ${types_1.P2PDataType[message.type]} - Stream not started ignore this data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, header: this.currentMessageBuilder[message.type].header, bytesRead: this.currentMessageBuilder[message.type].bytesRead, bytesToRead: message.bytesToRead, messageSize: message.data.length }); - } - else { - if (this.currentMessageState[message.type].leftoverData.length > 0) { - message.data = Buffer.concat([this.currentMessageState[message.type].leftoverData, message.data]); - this.currentMessageState[message.type].leftoverData = Buffer.from([]); - } - let data = message.data; - let runaway_limit = 0; - do { - // is this the first message? - const firstPartMessage = data.subarray(0, 4).toString() === utils_1.MAGIC_WORD; - if (firstPartMessage) { - const header = { - commandId: 0, - bytesToRead: 0, - channel: 0, - signCode: 0, - type: 0 - }; - header.commandId = data.subarray(4, 6).readUIntLE(0, 2); - header.bytesToRead = data.subarray(6, 10).readUIntLE(0, 4); - header.channel = data.subarray(12, 13).readUInt8(); - header.signCode = data.subarray(13, 14).readUInt8(); - header.type = data.subarray(14, 15).readUInt8(); - this.currentMessageBuilder[message.type].header = header; - data = data.subarray(this.P2P_DATA_HEADER_BYTES); - if (data.length >= header.bytesToRead) { - const payload = data.subarray(0, header.bytesToRead); - this.currentMessageBuilder[message.type].messages[message.seqNo] = payload; - this.currentMessageBuilder[message.type].bytesRead = payload.byteLength; - data = data.subarray(header.bytesToRead); - if (data.length <= this.P2P_DATA_HEADER_BYTES) { - this.currentMessageState[message.type].leftoverData = data; - data = Buffer.from([]); - } - } - else { - if (data.length <= this.P2P_DATA_HEADER_BYTES) { - this.currentMessageState[message.type].leftoverData = data; - } - else { - this.currentMessageBuilder[message.type].messages[message.seqNo] = data; - this.currentMessageBuilder[message.type].bytesRead = data.byteLength; - } - data = Buffer.from([]); - } - } - else { - // finish message and print - if (this.currentMessageBuilder[message.type].header.bytesToRead - this.currentMessageBuilder[message.type].bytesRead <= data.length) { - const payload = data.subarray(0, this.currentMessageBuilder[message.type].header.bytesToRead - this.currentMessageBuilder[message.type].bytesRead); - this.currentMessageBuilder[message.type].messages[message.seqNo] = payload; - this.currentMessageBuilder[message.type].bytesRead += payload.byteLength; - data = data.subarray(payload.byteLength); - if (data.length <= this.P2P_DATA_HEADER_BYTES) { - this.currentMessageState[message.type].leftoverData = data; - data = Buffer.from([]); - } - } - else { - if (data.length <= this.P2P_DATA_HEADER_BYTES) { - this.currentMessageState[message.type].leftoverData = data; - } - else { - this.currentMessageBuilder[message.type].messages[message.seqNo] = data; - this.currentMessageBuilder[message.type].bytesRead += data.byteLength; - } - data = Buffer.from([]); - } - } - logging_1.rootP2PLogger.trace(`Parsing message - DATA ${types_1.P2PDataType[message.type]} - Received data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, header: this.currentMessageBuilder[message.type].header, bytesRead: this.currentMessageBuilder[message.type].bytesRead, bytesToRead: this.currentMessageBuilder[message.type].header.bytesToRead, firstPartMessage: firstPartMessage, messageSize: message.data.length, runaway_limit: runaway_limit }); - if (this.currentMessageBuilder[message.type].bytesRead === this.currentMessageBuilder[message.type].header.bytesToRead) { - const completeMessage = (0, utils_1.sortP2PMessageParts)(this.currentMessageBuilder[message.type].messages); - const data_message = { - ...this.currentMessageBuilder[message.type].header, - seqNo: (message.seqNo + this.offsetDataSeqNumber), - dataType: message.type, - data: completeMessage - }; - this.handleData(data_message); - this.initializeMessageBuilder(message.type); - if (data.length > 0 && message.type === types_1.P2PDataType.DATA) { - logging_1.rootP2PLogger.debug(`Parsing message - DATA ${types_1.P2PDataType[message.type]} - Parsed data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, data_message: data_message, datalen: data.length, data: data.toString("hex"), offsetDataSeqNumber: this.offsetDataSeqNumber, seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber }); - this.offsetDataSeqNumber++; - } - } - runaway_limit++; - } while ((data.length > 0) && (runaway_limit < this.LOOP_RUNAWAY_LIMIT)); - if (runaway_limit >= this.LOOP_RUNAWAY_LIMIT) { - logging_1.rootP2PLogger.warn(`Infinite loop detected (limit >= ${this.LOOP_RUNAWAY_LIMIT}) during parsing of p2p message`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, dataType: types_1.P2PDataType[message.type], header: this.currentMessageBuilder[message.type].header, bytesRead: this.currentMessageBuilder[message.type].bytesRead, bytesToRead: this.currentMessageBuilder[message.type].header.bytesToRead, message: message.data.toString("hex"), messageSize: message.data.length }); - this.initializeMessageBuilder(message.type); - } - } - } - handleData(message) { - if (message.dataType === types_1.P2PDataType.CONTROL) { - this.handleDataControl(message); - } - else if (message.dataType === types_1.P2PDataType.DATA) { - const commandStr = types_1.CommandType[message.commandId]; - const result_msg = message.type === 1 ? true : false; - if (result_msg) { - let return_code = 0; - let resultData; - if (message.bytesToRead > 0) { - if (message.signCode > 0) { - try { - message.data = (0, utils_1.decryptP2PData)(message.data, this.p2pKey); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Decrypt Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - } - return_code = message.data.subarray(0, 4).readUInt32LE() | 0; - resultData = message.data.subarray(4); - } - const error_codeStr = types_1.ErrorCode[return_code]; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Received data`, { stationSN: this.rawStation.station_sn, seqNo: message.seqNo, commandIdName: commandStr, commandId: message.commandId, resultCodeName: error_codeStr, resultCode: return_code, resultData: resultData?.toString("hex"), data: message.data.toString("hex"), seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber }); - let msg_state = this.messageStates.get(message.seqNo); - const goodSeqNumber = this.p2pSeqMapping.get(message.seqNo); - if (goodSeqNumber) { - this.p2pSeqMapping.delete(message.seqNo); - msg_state = this.messageStates.get(goodSeqNumber); - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Result data received - Detecting correct sequence number`, { stationSN: this.rawStation.station_sn, commandIdName: commandStr, commandId: message.commandId, seqNumber: message.seqNo, newSeqNumber: goodSeqNumber, p2pSeqMappingCount: this.p2pSeqMapping.size }); - message.seqNo = goodSeqNumber; - } - if (msg_state) { - if (msg_state.commandType === message.commandId) { - this._clearTimeout(msg_state.timeout); - const command_type = msg_state.nestedCommandType !== undefined ? msg_state.nestedCommandType : msg_state.commandType; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Result data for command received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: return_code, data: msg_state.data, customData: msg_state.customData }, resultCodeName: error_codeStr, resultCode: return_code }); - if (return_code === types_1.ErrorCode.ERROR_FAILED_TO_REQUEST) { - msg_state.returnCode = return_code; - this._sendCommand(msg_state); - } - else { - if (command_type !== types_1.CommandType.CMD_GATEWAYINFO) { - this.emit("command", { - command_type: command_type, - channel: msg_state.channel, - return_code: return_code, - customData: msg_state.customData - }); - } - this.messageStates.delete(message.seqNo); - if (command_type === types_1.CommandType.CMD_SMARTSAFE_SETTINGS || command_type === types_1.CommandType.CMD_SET_PAYLOAD_LOCKV12 || command_type === types_1.CommandType.CMD_TRANSFER_PAYLOAD) { - if (msg_state.customData) { - for (const index of Object.keys(this.customDataStaging)) { - const id = Number.parseInt(index); - if (new Date().getTime() - this.customDataStaging[id].timestamp > 2 * 60 * 1000) { - delete this.customDataStaging[id]; - } - } - this.customDataStaging[msg_state.nestedCommandType2 ? msg_state.nestedCommandType2 : msg_state.nestedCommandType ? msg_state.nestedCommandType : msg_state.commandType] = { - channel: msg_state.channel, - customData: msg_state.customData, - timestamp: new Date().getTime(), - }; - } - this.secondaryCommandTimeout = setTimeout(() => { - logging_1.rootP2PLogger.warn(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Result data for secondary command not received`, { stationSN: this.rawStation.station_sn, message: { sequence: msg_state.sequence, commandType: msg_state.commandType, nestedCommandType: msg_state.nestedCommandType, channel: msg_state.channel, acknowledged: msg_state.acknowledged, retries: msg_state.retries, returnCode: msg_state.returnCode, data: msg_state.data, customData: msg_state.customData } }); - this.secondaryCommandTimeout = undefined; - this.emit("secondary command", { - command_type: msg_state.nestedCommandType !== undefined ? msg_state.nestedCommandType : msg_state.commandType, - channel: msg_state.channel, - return_code: types_1.ErrorCode.ERROR_COMMAND_TIMEOUT, - customData: msg_state.customData - }); - this._clearESDDisconnectTimeout(); - this.sendQueuedMessage(); - }, this.MAX_COMMAND_RESULT_WAIT); - } - else { - this._clearESDDisconnectTimeout(); - this.sendQueuedMessage(); - } - if (msg_state.commandType === types_1.CommandType.CMD_START_REALTIME_MEDIA || - (msg_state.nestedCommandType === types_1.CommandType.CMD_START_REALTIME_MEDIA && msg_state.commandType === types_1.CommandType.CMD_SET_PAYLOAD) || - msg_state.commandType === types_1.CommandType.CMD_RECORD_VIEW || - (msg_state.nestedCommandType === http_1.ParamType.COMMAND_START_LIVESTREAM && msg_state.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD)) { - this.waitForStreamData(types_1.P2PDataType.VIDEO, true); - } - else if (msg_state.commandType === types_1.CommandType.CMD_DOWNLOAD_VIDEO) { - this.waitForStreamData(types_1.P2PDataType.BINARY, true); - } - else if (msg_state.commandType === types_1.CommandType.CMD_START_TALKBACK || (msg_state.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD && msg_state.nestedCommandType === types_1.IndoorSoloSmartdropCommandType.CMD_START_SPEAK)) { - if (return_code === types_1.ErrorCode.ERROR_PPCS_SUCCESSFUL) { - this.startTalkback(msg_state.channel); - } - else if (return_code === types_1.ErrorCode.ERROR_NOT_FIND_DEV) { - this.emit("talkback error", msg_state.channel, new error_1.TalkbackError("Someone is responding now.", { context: { station: this.rawStation.station_sn, channel: msg_state.channel } })); - } - else if (return_code === types_1.ErrorCode.ERROR_DEV_BUSY) { - this.emit("talkback error", msg_state.channel, new error_1.TalkbackError("Wait a second, device is busy.", { context: { station: this.rawStation.station_sn, channel: msg_state.channel } })); - } - else { - this.emit("talkback error", msg_state.channel, new error_1.TalkbackError("Connect failed please try again later.", { context: { station: this.rawStation.station_sn, channel: msg_state.channel } })); - } - } - else if (msg_state.commandType === types_1.CommandType.CMD_STOP_TALKBACK || (msg_state.commandType === types_1.CommandType.CMD_DOORBELL_SET_PAYLOAD && msg_state.nestedCommandType === types_1.IndoorSoloSmartdropCommandType.CMD_END_SPEAK)) { - this.stopTalkback(msg_state.channel); - } - else if (msg_state.commandType === types_1.CommandType.CMD_SDINFO_EX && resultData && resultData.length >= 8) { - const totalCapacity = resultData.subarray(0, 4).readUInt32LE(); - const availableCapacity = resultData.subarray(4, 8).readUInt32LE(); - if (return_code >= -1) { - this.emit("sd info ex", return_code, totalCapacity, availableCapacity); - } - } - } - } - else { - this.messageStates.delete(message.seqNo); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Expected different command type for received sequencenumber!`, { stationSN: this.rawStation.station_sn, msg_sequence: msg_state.sequence, msg_channel: msg_state.channel, msg_commandType: msg_state.commandType, seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber, message: { seqNo: message.seqNo, commandType: types_1.CommandType[message.commandId], channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); - logging_1.rootP2PLogger.warn(`P2P protocol instability detected for station ${this.rawStation.station_sn}. Please reinitialise the connection to solve the problem!`); - } - } - else if (message.commandId !== types_1.CommandType.CMD_PING && message.commandId !== types_1.CommandType.CMD_GET_DEVICE_PING && message.commandId !== types_1.CommandType.CMD_GATEWAYINFO) { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Received unexpected data!`, { stationSN: this.rawStation.station_sn, seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber, message: { seqNo: message.seqNo, commandType: types_1.CommandType[message.commandId], channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Unsupported response`, { stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, commandType: message.commandId, channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); - } - } - else if (message.dataType === types_1.P2PDataType.VIDEO || message.dataType === types_1.P2PDataType.BINARY) { - this.handleDataBinaryAndVideo(message); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented data type`, { stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, commandType: message.commandId, channel: message.channel, signCode: message.signCode, data: message.data.toString("hex") } }); - } - } - isIFrame(data, isKeyFrame) { - if (this.rawStation.station_sn.startsWith("T8410") || this.rawStation.station_sn.startsWith("T8400") || this.rawStation.station_sn.startsWith("T8401") || this.rawStation.station_sn.startsWith("T8411") || - this.rawStation.station_sn.startsWith("T8202") || this.rawStation.station_sn.startsWith("T8422") || this.rawStation.station_sn.startsWith("T8424") || this.rawStation.station_sn.startsWith("T8423") || - this.rawStation.station_sn.startsWith("T8130") || this.rawStation.station_sn.startsWith("T8131") || this.rawStation.station_sn.startsWith("T8420") || this.rawStation.station_sn.startsWith("T8440") || - this.rawStation.station_sn.startsWith("T8171") || this.rawStation.station_sn.startsWith("T8426") || - this.rawStation.station_sn.startsWith("T8441") || this.rawStation.station_sn.startsWith("T8442") || (0, utils_1.checkT8420)(this.rawStation.station_sn)) { - //TODO: Need to add battery doorbells as seen in source => T8210,T8220,T8221,T8222 - return isKeyFrame; - } - const iframe = (0, utils_1.isIFrame)(data); - if (iframe === false) { - // Fallback - return isKeyFrame; - } - return iframe; - } - waitForStreamData(dataType, sendStopCommand = false) { - if (this.currentMessageState[dataType].p2pStreamingTimeout) { - clearTimeout(this.currentMessageState[dataType].p2pStreamingTimeout); - } - this.currentMessageState[dataType].p2pStreamingTimeout = setTimeout(() => { - logging_1.rootP2PLogger.info(`Stopping the station stream for the device ${this.deviceSNs[this.currentMessageState[dataType].p2pStreamChannel]?.sn}, because we haven't received any data for ${this.MAX_STREAM_DATA_WAIT / 1000} seconds`); - this.endStream(dataType, sendStopCommand); - }, this.MAX_STREAM_DATA_WAIT); - } - handleDataBinaryAndVideo(message) { - if (!this.currentMessageState[message.dataType].invalidStream) { - switch (message.commandId) { - case types_1.CommandType.CMD_VIDEO_FRAME: - this.waitForStreamData(message.dataType, true); - const videoMetaData = { - streamType: 0, - videoSeqNo: 0, - videoFPS: 15, - videoWidth: 1920, - videoHeight: 1080, - videoTimestamp: 0, - videoDataLength: 0, - aesKey: "" - }; - const data_length = message.data.readUInt32LE(); - const isKeyFrame = message.data.subarray(4, 5).readUInt8() === 1 ? true : false; - videoMetaData.videoDataLength = message.data.subarray(0, 4).readUInt32LE(); - videoMetaData.streamType = message.data.subarray(5, 6).readUInt8(); - videoMetaData.videoSeqNo = message.data.subarray(6, 8).readUInt16LE(); - videoMetaData.videoFPS = message.data.subarray(8, 10).readUInt16LE(); - videoMetaData.videoWidth = message.data.subarray(10, 12).readUInt16LE(); - videoMetaData.videoHeight = message.data.subarray(12, 14).readUInt16LE(); - videoMetaData.videoTimestamp = message.data.subarray(14, 20).readUIntLE(0, 6); - let payloadStart = 22; - if (message.signCode > 0 && data_length >= 128) { - const key = message.data.subarray(22, 150); - const rsaKey = this.currentMessageState[message.dataType].rsaKey; - if (rsaKey) { - try { - videoMetaData.aesKey = rsaKey.decrypt(key).toString("hex"); - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Decrypted AES key`, { stationSN: this.rawStation.station_sn, key: videoMetaData.aesKey }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.warn(`Error: AES key could not be decrypted! The entire stream is discarded.`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, key: key.toString("hex") }); - this.currentMessageState[message.dataType].invalidStream = true; - this.emit("livestream error", message.channel, new error_1.LivestreamError("Station AES key could not be decrypted! The entire stream is discarded.", { context: { station: this.rawStation.station_sn } })); - return; - } - } - else { - logging_1.rootP2PLogger.warn(`Private RSA key is missing! Stream could not be decrypted. The entire stream for station ${this.rawStation.station_sn} is discarded.`); - this.currentMessageState[message.dataType].invalidStream = true; - this.emit("livestream error", message.channel, new error_1.LivestreamError("Station Private RSA key is missing! Stream could not be decrypted. The entire stream is discarded.", { context: { station: this.rawStation.station_sn } })); - return; - } - payloadStart = 151; - } - let video_data; - if (videoMetaData.aesKey !== "") { - const encrypted_data = message.data.subarray(payloadStart, payloadStart + 128); - const unencrypted_data = message.data.subarray(payloadStart + 128, payloadStart + videoMetaData.videoDataLength); - video_data = Buffer.concat([(0, utils_1.decryptAESData)(videoMetaData.aesKey, encrypted_data), unencrypted_data]); - } - else { - video_data = message.data.subarray(payloadStart, payloadStart + videoMetaData.videoDataLength); - } - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME`, { stationSN: this.rawStation.station_sn, dataSize: message.data.length, metadata: videoMetaData, videoDataSize: video_data.length }); - this.currentMessageState[message.dataType].p2pStreamMetadata.videoFPS = videoMetaData.videoFPS; - this.currentMessageState[message.dataType].p2pStreamMetadata.videoHeight = videoMetaData.videoHeight; - this.currentMessageState[message.dataType].p2pStreamMetadata.videoWidth = videoMetaData.videoWidth; - if (!this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived) { - if (this.rawStation.station_sn.startsWith("T8410") || this.rawStation.station_sn.startsWith("T8400") || this.rawStation.station_sn.startsWith("T8401") || this.rawStation.station_sn.startsWith("T8411") || - this.rawStation.station_sn.startsWith("T8202") || this.rawStation.station_sn.startsWith("T8422") || this.rawStation.station_sn.startsWith("T8424") || this.rawStation.station_sn.startsWith("T8423") || - this.rawStation.station_sn.startsWith("T8130") || this.rawStation.station_sn.startsWith("T8131") || this.rawStation.station_sn.startsWith("T8420") || this.rawStation.station_sn.startsWith("T8440") || - this.rawStation.station_sn.startsWith("T8171") || this.rawStation.station_sn.startsWith("T8426") || - this.rawStation.station_sn.startsWith("T8441") || this.rawStation.station_sn.startsWith("T8442") || (0, utils_1.checkT8420)(this.rawStation.station_sn)) { - this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = videoMetaData.streamType === 1 ? types_1.VideoCodec.H264 : videoMetaData.streamType === 2 ? types_1.VideoCodec.H265 : (0, utils_1.getVideoCodec)(video_data); - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Video codec information received from packet`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); - } - else if (this.isIFrame(video_data, isKeyFrame)) { - this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = (0, utils_1.getVideoCodec)(video_data); - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Video codec extracted from video data`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); - } - else { - this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = (0, utils_1.getVideoCodec)(video_data); - if (this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec === types_1.VideoCodec.UNKNOWN) { - this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec = videoMetaData.streamType === 1 ? types_1.VideoCodec.H264 : videoMetaData.streamType === 2 ? types_1.VideoCodec.H265 : types_1.VideoCodec.UNKNOWN; - if (this.currentMessageState[message.dataType].p2pStreamMetadata.videoCodec === types_1.VideoCodec.UNKNOWN) { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Unknown video codec`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Fallback, using video codec information received from packet`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME - Fallback, video codec extracted from video data`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, metadata: videoMetaData }); - } - } - this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived = true; - if (!this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived) { - this.currentMessageState[message.dataType].waitForAudioData = setTimeout(() => { - this.currentMessageState[message.dataType].waitForAudioData = undefined; - this.currentMessageState[message.dataType].p2pStreamMetadata.audioCodec = types_1.AudioCodec.NONE; - this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived = true; - if (this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived && this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived && this.currentMessageState[message.dataType].p2pStreamNotStarted) { - this.emitStreamStartEvent(message.dataType); - } - }, this.AUDIO_CODEC_ANALYZE_TIMEOUT); - } - } - if (this.currentMessageState[message.dataType].p2pStreamNotStarted) { - if (this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived && this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived) { - this.emitStreamStartEvent(message.dataType); - } - } - if (message.dataType === types_1.P2PDataType.VIDEO) { - if ((0, utils_1.findStartCode)(video_data)) { - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME: startcode found`, { stationSN: this.rawStation.station_sn, isKeyFrame: isKeyFrame, preFrameVideoDataLength: this.currentMessageState[message.dataType].preFrameVideoData.length }); - if (!this.currentMessageState[message.dataType].receivedFirstIFrame) - this.currentMessageState[message.dataType].receivedFirstIFrame = this.isIFrame(video_data, isKeyFrame); - if (this.currentMessageState[message.dataType].receivedFirstIFrame) { - if (this.currentMessageState[message.dataType].preFrameVideoData.length > this.MAX_VIDEO_PACKET_BYTES) - this.currentMessageState[message.dataType].preFrameVideoData = Buffer.from([]); - if (this.currentMessageState[message.dataType].preFrameVideoData.length > 0) { - this.currentMessageState[message.dataType].videoStream?.push(this.currentMessageState[message.dataType].preFrameVideoData); - } - this.currentMessageState[message.dataType].preFrameVideoData = Buffer.from(video_data); - } - else { - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME: Skipping because first frame is not an I frame.`, { stationSN: this.rawStation.station_sn }); - } - } - else { - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_VIDEO_FRAME: No startcode found`, { stationSN: this.rawStation.station_sn, isKeyFrame: isKeyFrame, preFrameVideoDataLength: this.currentMessageState[message.dataType].preFrameVideoData.length }); - if (this.currentMessageState[message.dataType].preFrameVideoData.length > 0) { - this.currentMessageState[message.dataType].preFrameVideoData = Buffer.concat([this.currentMessageState[message.dataType].preFrameVideoData, video_data]); - } - } - } - else if (message.dataType === types_1.P2PDataType.BINARY) { - this.currentMessageState[message.dataType].videoStream?.push(video_data); - } - break; - case types_1.CommandType.CMD_AUDIO_FRAME: - this.waitForStreamData(message.dataType, true); - const audioMetaData = { - audioType: types_1.AudioCodec.NONE, - audioSeqNo: 0, - audioTimestamp: 0, - audioDataLength: 0 - }; - audioMetaData.audioDataLength = message.data.subarray(0, 4).readUInt32LE(); - audioMetaData.audioType = message.data.subarray(5, 6).readUInt8(); - audioMetaData.audioSeqNo = message.data.subarray(6, 8).readUInt16LE(); - audioMetaData.audioTimestamp = message.data.subarray(8, 14).readUIntLE(0, 6); - const audio_data = Buffer.from(message.data.subarray(16)); - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_AUDIO_FRAME`, { stationSN: this.rawStation.station_sn, dataSize: message.data.length, metadata: audioMetaData, audioDataSize: audio_data.length }); - if (this.currentMessageState[message.dataType].waitForAudioData !== undefined) { - clearTimeout(this.currentMessageState[message.dataType].waitForAudioData); - } - if (!this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived) { - this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived = true; - this.currentMessageState[message.dataType].p2pStreamMetadata.audioCodec = audioMetaData.audioType === 0 ? types_1.AudioCodec.AAC : audioMetaData.audioType === 1 ? types_1.AudioCodec.AAC_LC : audioMetaData.audioType === 7 ? types_1.AudioCodec.AAC_ELD : types_1.AudioCodec.UNKNOWN; - } - if (this.currentMessageState[message.dataType].p2pStreamNotStarted) { - if (this.currentMessageState[message.dataType].p2pStreamFirstAudioDataReceived && this.currentMessageState[message.dataType].p2pStreamFirstVideoDataReceived) { - this.emitStreamStartEvent(message.dataType); - } - } - this.currentMessageState[message.dataType].audioStream?.push(audio_data); - break; - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented message`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, data: message.data.toString("hex") }); - break; - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Invalid stream data, dropping complete stream`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, data: message.data.toString("hex") }); - } - } - handleDataControl(message) { - try { - let data = message.data; - if (message.signCode > 0) { - //data = decryptP2PData(message.data, this.p2pKey!); - try { - data = (0, utils_1.decryptP2PData)(message.data, Buffer.from((0, utils_1.getP2PCommandEncryptionKey)(this.rawStation.station_sn, this.rawStation.p2p_did))); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Decrypt Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - } - logging_1.rootP2PLogger.trace(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Received data`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, data: message.data.toString("hex"), seqNumber: this.seqNumber, p2pDataSeqNumber: this.p2pDataSeqNumber, offsetDataSeqNumber: this.offsetDataSeqNumber }); - switch (message.commandId) { - case types_1.CommandType.CMD_GET_ALARM_MODE: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Alarm mode changed to: ${types_2.AlarmMode[data.readUIntBE(0, 1)]}`, { stationSN: this.rawStation.station_sn, }); - this.emit("alarm mode", data.readUIntBE(0, 1)); - break; - case types_1.CommandType.CMD_CAMERA_INFO: - try { - const cameraData = (0, utils_1.getNullTerminatedString)(data, "utf8"); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Camera info`, { stationSN: this.rawStation.station_sn, cameraInfo: cameraData }); - this.emit("camera info", (0, utils_3.parseJSON)(cameraData, logging_1.rootP2PLogger)); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Camera info - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_CONVERT_MP4_OK: - const totalBytes = data.subarray(1).readUInt32LE(); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_CONVERT_MP4_OK`, { stationSN: this.rawStation.station_sn, channel: message.channel, totalBytes: totalBytes }); - this.downloadTotalBytes = totalBytes; - this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreaming = true; - this.currentMessageState[types_1.P2PDataType.BINARY].p2pStreamChannel = message.channel; - break; - case types_1.CommandType.CMD_WIFI_CONFIG: - const rssi = data.readInt32LE(); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_WIFI_CONFIG`, { stationSN: this.rawStation.station_sn, channel: message.channel, rssi: rssi }); - this.emit("wifi rssi", message.channel, rssi); - break; - case types_1.CommandType.CMD_DOWNLOAD_FINISH: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOWNLOAD_FINISH`, { stationSN: this.rawStation.station_sn, channel: message.channel }); - this.endStream(types_1.P2PDataType.BINARY); - break; - case types_1.CommandType.CMD_DOORBELL_NOTIFY_PAYLOAD: - try { - const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORBELL_NOTIFY_PAYLOAD`, { stationSN: this.rawStation.station_sn, payload: str }); - //TODO: Finish implementation, emit an event... - //VDBStreamInfo (1005) and VoltageEvent (1015) - //this.emit("", parseJSON(str, this.log) as xy); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORBELL_NOTIFY_PAYLOAD - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_NAS_SWITCH: - try { - const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NAS_SWITCH`, { stationSN: this.rawStation.station_sn, payload: str }); - this.emit("rtsp url", message.channel, str); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NAS_SWITCH - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.SUB1G_REP_UNPLUG_POWER_LINE: - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_UNPLUG_POWER_LINE`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); - const chargeType = data.subarray(0, 4).readUInt32LE(); - const batteryLevel = data.subarray(4, 8).readUInt32LE(); - this.emit("charging state", message.channel, chargeType, batteryLevel); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_UNPLUG_POWER_LINE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.SUB1G_REP_RUNTIME_STATE: - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_RUNTIME_STATE`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); - const batteryLevel = data.subarray(0, 4).readUInt32LE(); - const temperature = data.subarray(4, 8).readUInt32LE(); - this.emit("runtime state", message.channel, batteryLevel, temperature); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - SUB1G_REP_RUNTIME_STATE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_SET_FLOODLIGHT_MANUAL_SWITCH: - try { - const enabled = data.readUIntBE(0, 1) === 1 ? true : false; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_FLOODLIGHT_MANUAL_SWITCH`, { stationSN: this.rawStation.station_sn, enabled: enabled, payload: data.toString() }); - this.emit("floodlight manual switch", message.channel, enabled); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_FLOODLIGHT_MANUAL_SWITCH - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_GET_DEVICE_PING: - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DEVICE_PING`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); - this.sendCommandDevicePing(message.channel); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DEVICE_PING - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_NOTIFY_PAYLOAD: - try { - logging_1.rootP2PLogger.debug(`Station Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD`, { stationSN: this.rawStation.station_sn, payload: data.toString() }); - const json = (0, utils_3.parseJSON)((0, utils_1.getNullTerminatedString)(data, "utf8"), logging_1.rootP2PLogger); - if (json !== undefined) { - if (device_1.Device.isLockWifi(this.rawStation.device_type, this.rawStation.station_sn)) { - //TODO: Implement notification payload or T8520 - if (json.cmd === types_1.CommandType.P2P_ADD_PW || json.cmd === types_1.CommandType.P2P_QUERY_PW || json.cmd === types_1.CommandType.P2P_GET_LOCK_PARAM || json.cmd === types_1.CommandType.P2P_GET_USER_AND_PW_ID) { - // encrypted data - //TODO: Handle decryption of encrypted Data (AES) - For decryption use the cached aeskey used for sending the command! - const aesKey = this.getLockAESKey(json.cmd); - if (aesKey !== undefined) { - const decryptedPayload = (0, utils_1.decryptPayloadData)(Buffer.from(json.payload, "base64"), Buffer.from(aesKey, "hex"), Buffer.from((0, utils_1.getLockVectorBytes)(this.rawStation.station_sn), "hex")).toString(); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock - Received`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decryptedPayload: decryptedPayload, aesKey: aesKey }); - switch (json.cmd) { - case types_1.CommandType.P2P_ADD_PW: - // decryptedPayload: {"code":0,"passwordId":"002C"} - break; - } - } - } - else if (json.cmd === types_1.CommandType.P2P_QUERY_STATUS_IN_LOCK) { - // Example: {"code":0,"slBattery":"82","slState":"4","trigger":2} - const payload = json.payload; - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, payload.slBattery); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, payload.slState); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Not implemented`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); - } - } - else if (json.cmd === types_1.CommandType.P2P_QUERY_STATUS_IN_LOCK) { - // Example: {"code":0,"slBattery":"99","slState":"4","slOpenDirection":"1","trigger":2} - const payload = json.payload; - this.emit("parameter", message.channel, types_1.CommandType.CMD_GET_BATTERY, payload.slBattery); - this.emit("parameter", message.channel, types_1.CommandType.CMD_DOORLOCK_GET_STATE, payload.slState); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_NIGHT_VISION_SIDE, payload.slOpenDirection); - } - else if (json.cmd === types_1.CommandType.CMD_DOORLOCK_P2P_SEQ) { - if (device_1.Device.isLockWifi(this.rawStation.devices[0]?.device_type, this.rawStation.devices[0]?.device_sn) || device_1.Device.isLockWifiNoFinger(this.rawStation.devices[0]?.device_type)) { - const payload = json.payload; - if (payload.seq_num !== undefined) { - this.lockSeqNumber = payload.seq_num; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Lock sequence number`, { stationSN: this.rawStation.station_sn, lockSeqNumber: this.lockSeqNumber, payload: payload }); - } - if (payload.lock_cmd > 0) { - this.emit("sequence error", message.channel, payload.lock_cmd, payload.seq_num, payload.stationSn); - } - } - else { - const payload = json.payload; - if (payload.seq_num !== undefined) { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Lock sequence number`, { stationSN: this.rawStation.station_sn, oldSequenceNumber: this.lockSeqNumber, newSequenceNumber: this.lockSeqNumber + 1, payload: payload }); - this.lockSeqNumber = payload.seq_num + 1; - } - if (payload.lock_cmd > 0) { - if (device_1.Device.isLockWifiR10(this.rawStation.devices[0]?.device_type) || device_1.Device.isLockWifiR20(this.rawStation.devices[0]?.device_type)) { - this.emit("sequence error", message.channel, types_1.ESLCommand[types_1.ESLBleCommand[payload.lock_cmd]], payload.seq_num, payload.dev_sn); - } - else if (device_1.Device.isLockWifiT8506(this.rawStation.devices[0]?.device_type) || device_1.Device.isLockWifiT8502(this.rawStation.devices[0]?.device_type) || device_1.Device.isLockWifiT8510P(this.rawStation.devices[0]?.device_type, this.rawStation.devices[0]?.device_sn) || device_1.Device.isLockWifiT8520P(this.rawStation.devices[0]?.device_type, this.rawStation.devices[0]?.device_sn)) { - this.emit("sequence error", message.channel, types_1.SmartLockCommand[payload.bus_type == types_1.SmartLockFunctionType.TYPE_2 ? types_1.SmartLockBleCommandFunctionType2[payload.lock_cmd] : types_1.SmartLockBleCommandFunctionType1[payload.lock_cmd]], payload.seq_num, payload.dev_sn); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Lock sequence number - Unknwon device`, { stationSN: this.rawStation.station_sn, oldSequenceNumber: this.lockSeqNumber, newSequenceNumber: this.lockSeqNumber + 1, payload: payload }); - } - } - } - } - else if (json.cmd === types_1.CommandType.CMD_DOORLOCK_DATA_PASS_THROUGH) { - const payload = json.payload; - if (this.deviceSNs[message.channel] !== undefined) { - if (payload.lock_payload !== undefined) { - const decoded = (0, utils_1.decodeBase64)((0, utils_1.decodeLockPayload)(Buffer.from(payload.lock_payload))); - const key = (0, utils_1.generateBasicLockAESKey)(this.deviceSNs[message.channel].adminUserId, this.rawStation.station_sn); - const iv = (0, utils_1.getLockVectorBytes)(this.rawStation.station_sn); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORLOCK_DATA_PASS_THROUGH`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, key: key, iv: iv, decoded: decoded.toString("hex") }); - payload.lock_payload = (0, utils_1.decryptLockAESData)(key, iv, decoded).toString("hex"); - switch (payload.lock_cmd) { - case types_1.ESLBleCommand.NOTIFY: - const notifyBuffer = Buffer.from(payload.lock_payload, "hex"); - this.emit("parameter", message.channel, types_1.CommandType.CMD_GET_BATTERY, notifyBuffer.subarray(3, 4).readInt8().toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_DOORLOCK_GET_STATE, notifyBuffer.subarray(6, 7).readInt8().toString()); - break; - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DOORLOCK_DATA_PASS_THROUGH - Not implemented`, { stationSN: this.rawStation.station_sn, message: data.toString() }); - break; - } - } - } - } - else if (json.cmd === types_1.CommandType.CMD_SET_PAYLOAD_LOCKV12) { - const payload = json.payload; - if (payload.lock_payload !== undefined) { - const fac = ble_1.BleCommandFactory.parseLockV12(payload.lock_payload); - if (fac.getCommandCode() !== types_1.ESLBleCommand.NOTIFY) { - const aesKey = this.getLockAESKey(fac.getCommandCode()); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 - Received`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), aesKey: aesKey }); - let data = fac.getData(); - try { - if (aesKey !== undefined) { - data = (0, utils_1.decryptPayloadData)(data, Buffer.from(aesKey, "hex"), Buffer.from((0, utils_1.getLockVectorBytes)(this.rawStation.station_sn), "hex")); - } - const returnCode = data.readInt8(0); - const commandType = Number.parseInt(types_1.ESLCommand[types_1.ESLBleCommand[fac.getCommandCode()]]); - const customData = { - ...this.customDataStaging[commandType] - }; - if (this.customDataStaging[commandType]) { - const result = { - channel: customData.channel, - command_type: commandType, - return_code: returnCode, - customData: customData.customData - }; - this.emit("secondary command", result); - delete this.customDataStaging[commandType]; - } - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 return code: ${returnCode}`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decoded: data.toString("hex"), bleCommandCode: types_1.ESLBleCommand[fac.getCommandCode()], returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); - const parsePayload = new utils_2.ParsePayload(data.subarray(1)); - switch (fac.getCommandCode()) { - case types_1.ESLBleCommand.QUERY_STATUS_IN_LOCK: - case types_1.ESLBleCommand.NOTIFY: - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, parsePayload.readInt8(ble_1.BleParameterIndex.TWO).toString()); - break; - case types_1.ESLBleCommand.GET_LOCK_PARAM: - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_LOCK_SOUND, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.TWO).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER, parsePayload.readUint16LE(ble_1.BleParameterIndex.THREE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE, parsePayload.readInt8(ble_1.BleParameterIndex.FOUR).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.FIVE)); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.SIX)); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.SEVEN).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT, parsePayload.readInt8(ble_1.BleParameterIndex.EIGHT).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN, parsePayload.readUint16LE(ble_1.BleParameterIndex.NINE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS, parsePayload.readInt8(ble_1.BleParameterIndex.TEN).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE, parsePayload.readInt8(ble_1.BleParameterIndex.ELEVEN).toString()); - //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_LOG, parsePayload.readInt8(BleParameterIndex.TWELVE).toString()); - //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_WIFI_STATUS, parsePayload.readInt8(BleParameterIndex.THIRTEEN).toString()); - break; - case types_1.ESLBleCommand.ADD_PW: - if (customData && customData.customData && customData.customData.command && customData.customData.command.name === http_1.CommandName.DeviceAddUser) { - this.api.updateUserPassword(customData.customData.command.value?.deviceSN, customData.customData.command.value?.shortUserId, parsePayload.readStringHex(ble_1.BleParameterIndex.ONE), customData.customData.command.value?.schedule); - } - break; - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Not implemented`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); - break; - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 unable to decrypt (maybe event from other lock connection)`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, payload: payload }); - } - this._clearSecondaryCommandTimeout(); - this.sendQueuedMessage(); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 - Received notify`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Lock V12 - Unexpected response`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); - } - } - else if (json.cmd === types_1.CommandType.CMD_TRANSFER_PAYLOAD) { - const payload = json.payload; - if (payload.lock_payload !== undefined) { - try { - const fac = ble_1.BleCommandFactory.parseSmartLock(payload.lock_payload); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Received`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); - if (!fac.isPartial()) { - let data = fac.getData(); - if (data) { - if (fac.isEncrypted()) { - const aesKey = (0, utils_1.generateSmartLockAESKey)(this.rawStation.member.admin_user_id, Number.parseInt(payload.time, 16)); - const iv = (0, utils_1.getLockVectorBytes)(payload.dev_sn); - if (aesKey !== undefined) { - data = (0, utils_1.decryptPayloadData)(data, aesKey, Buffer.from(iv, "hex")); - } - } - if (data.length > 0 && fac.getDataType() !== undefined) { - const returnCode = data.readInt8(0); - const functionTypeCommand = fac.getDataType() === types_1.SmartLockFunctionType.TYPE_2 ? types_1.SmartLockBleCommandFunctionType2 : types_1.SmartLockBleCommandFunctionType1; - const commandType = Number.parseInt(types_1.SmartLockCommand[functionTypeCommand[fac.getCommandCode()]]); - const customData = { - ...this.customDataStaging[commandType] - }; - if (this.customDataStaging[commandType]) { - const result = { - channel: customData.channel, - command_type: commandType, - return_code: returnCode, - customData: customData.customData - }; - this.emit("secondary command", result); - delete this.customDataStaging[commandType]; - } - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock return code: ${returnCode}`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decoded: data.toString("hex"), bleCommandCode: functionTypeCommand[fac.getCommandCode()], returnCode: returnCode }); - const parsePayload = new utils_2.ParsePayload(data.subarray(1)); - if (fac.getDataType() === types_1.SmartLockFunctionType.TYPE_2) { - switch (fac.getCommandCode()) { - case types_1.SmartLockBleCommandFunctionType2.QUERY_STATUS_IN_LOCK: - case types_1.SmartLockBleCommandFunctionType2.NOTIFY: - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_BATTERY_LEVEL, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_QUERY_STATUS, parsePayload.readInt8(ble_1.BleParameterIndex.TWO).toString()); - break; - case types_1.SmartLockBleCommandFunctionType2.GET_LOCK_PARAM: - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.ONE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_TIMER, parsePayload.readUint16LE(ble_1.BleParameterIndex.TWO).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE, parsePayload.readInt8(ble_1.BleParameterIndex.THREE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.FOUR)); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME, parsePayload.readStringHex(ble_1.BleParameterIndex.FIVE)); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_ONE_TOUCH_LOCK, parsePayload.readInt8(ble_1.BleParameterIndex.SIX).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_SCRAMBLE_PASSCODE, parsePayload.readInt8(ble_1.BleParameterIndex.SEVEN).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_PROTECT, parsePayload.readInt8(ble_1.BleParameterIndex.EIGHT).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS, parsePayload.readInt8(ble_1.BleParameterIndex.NINE).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN, parsePayload.readUint16LE(ble_1.BleParameterIndex.TEN).toString()); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTLOCK_LOCK_SOUND, parsePayload.readInt8(ble_1.BleParameterIndex.ELEVEN).toString()); - //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_WIFI_STATUS, parsePayload.readInt8(BleParameterIndex.TWELVE).toString()); - //this.emit("parameter", message.channel, CommandType.CMD_SMARTLOCK_LOG, parsePayload.readInt8(BleParameterIndex.THIRTEEN).toString()); - break; - case types_1.SmartLockBleCommandFunctionType2.ADD_PW: - if (customData && customData.customData && customData.customData.command && customData.customData.command.name === http_1.CommandName.DeviceAddUser) { - this.api.updateUserPassword(customData.customData.command.value?.deviceSN, customData.customData.command.value?.shortUserId, parsePayload.readStringHex(ble_1.BleParameterIndex.ONE), customData.customData.command.value?.schedule); - } - break; - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Not implemented`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); - break; - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Not implemented`, { stationSN: this.rawStation.station_sn, fac: fac.toString(), returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Unsupported data length or missint function type`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - No data`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Partial data`, { stationSN: this.rawStation.station_sn, fac: fac.toString() }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, payload: payload }); - } - this._clearSecondaryCommandTimeout(); - this.sendQueuedMessage(); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Smart Lock - Unexpected response`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); - } - } - else if (device_1.Device.isSmartSafe(this.rawStation.device_type)) { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd }); - switch (json.cmd) { - case types_1.CommandType.CMD_SMARTSAFE_SETTINGS: - { - const payload = json.payload; - try { - const data = (0, utils_1.decodeSmartSafeData)(this.rawStation.station_sn, Buffer.from(payload.data, "hex")); - const returnCode = data.data.readInt8(0); - const customData = { - ...this.customDataStaging[payload.prj_id] - }; - if (this.customDataStaging[payload.prj_id]) { - const result = { - channel: customData.channel, - command_type: payload.prj_id, - return_code: returnCode, - customData: customData.customData - }; - this.emit("secondary command", result); - delete this.customDataStaging[payload.prj_id]; - } - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe return code: ${data.data.readInt8(0)}`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, decoded: data, commandCode: types_1.SmartSafeCommandCode[data.commandCode], returnCode: returnCode, channel: customData?.channel, customData: customData?.customData }); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, payload: payload }); - } - this._clearSecondaryCommandTimeout(); - this.sendQueuedMessage(); - break; - } - case types_1.CommandType.CMD_SMARTSAFE_STATUS_UPDATE: - { - const payload = json.payload; - switch (payload.event_type) { - case types_3.SmartSafeEvent.LOCK_STATUS: - { - const eventValues = payload.event_value; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe Status update - LOCK_STATUS`, { stationSN: this.rawStation.station_sn, eventValues: eventValues }); - /* - type values: - 1: Unlocked by PIN - 2: Unlocked by User - 3: Unlocked by key - 4: Unlocked by App - 5: Unlocked by Dual Unlock - */ - if (eventValues.action === 0) { - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "0"); - } - else if (eventValues.action === 1) { - this.emit("parameter", message.channel, types_1.CommandType.CMD_SMARTSAFE_LOCK_STATUS, "1"); - } - else if (eventValues.action === 2) { - this.emit("jammed", message.channel); - } - else if (eventValues.action === 3) { - this.emit("low battery", message.channel); - } - break; - } - case types_3.SmartSafeEvent.SHAKE_ALARM: - this.emit("shake alarm", message.channel, payload.event_value); - break; - case types_3.SmartSafeEvent.ALARM_911: - this.emit("911 alarm", message.channel, payload.event_value); - break; - //case SmartSafeEvent.BATTERY_STATUS: - // break; - case types_3.SmartSafeEvent.INPUT_ERR_MAX: - this.emit("wrong try-protect alarm", message.channel); - break; - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe Status update - Not implemented`, { stationSN: this.rawStation.station_sn, message: data.toString() }); - break; - } - break; - } - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD SmartSafe - Not implemented`, { stationSN: this.rawStation.station_sn, message: data.toString() }); - break; - } - } - else if (json.cmd === types_1.CommandType.CMD_ENTRY_SENSOR_STATUS) { - // {"cmd":1550,"payload":{"status":1}} - const payload = json.payload; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD EntrySensor Status update`, { stationSN: this.rawStation.station_sn, status: payload?.status }); - if (payload) { - this.emit("sensor status", message.channel, payload.status); - } - } - else if (json.cmd === types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_STATUS) { - // {"cmd":7500,"payload":{"type":24,"notify_tag":"","door_id":2}} - const payload = json.payload; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD GarageDoor Status update`, { stationSN: this.rawStation.station_sn, doorId: payload?.door_id, status: payload?.type, notify_tag: payload?.notify_tag }); - if (payload) { - this.emit("garage door status", message.channel, payload.door_id, payload.type); - } - } - else if (json.cmd === types_1.CommandType.CMD_STORAGE_INFO_HB3) { - const payload = json.payload; - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD StorageInfo HB3 update`, { stationSN: this.rawStation.station_sn, body: payload?.body }); - if (payload) { - this.emit("storage info hb3", message.channel, payload.body); - } - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD - Not implemented`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[json.cmd], commandId: json.cmd, message: data.toString() }); - } - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_NOTIFY_PAYLOAD Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString() } }); - } - break; - case types_1.CommandType.CMD_GET_DELAY_ALARM: - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DELAY_ALARM :`, { stationSN: this.rawStation.station_sn, payload: data.toString("hex") }); - //When the alarm is armed, CMD_GET_DELAY_ALARM is called with event data 0, so ignore it - const alarmEventNumber = data.subarray(0, 4).readUInt32LE(); - const alarmDelay = data.subarray(4, 8).readUInt32LE(); - if (alarmEventNumber === 0) { - this.emit("alarm armed"); - } - else { - this.emit("alarm delay", alarmEventNumber, alarmDelay); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_DELAY_ALARM - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_SET_TONE_FILE: - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_TONE_FILE :`, { stationSN: this.rawStation.station_sn, payload: data.toString("hex") }); - const alarmEventNumber = data.subarray(0, 4).readUInt32LE(); - this.emit("alarm event", alarmEventNumber); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_TONE_FILE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_SET_SNOOZE_MODE: - // Received for station managed devices when snooze time ends - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_SNOOZE_MODE`, { stationSN: this.rawStation.station_sn, payload: Buffer.from(data.toString(), "base64").toString() }); - this.emit("parameter", message.channel, types_1.CommandType.CMD_SET_SNOOZE_MODE, data.toString()); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_SET_SNOOZE_MODE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_PING: - // Ignore - break; - case types_1.CommandType.CMD_DATABASE_IMAGE: - // Received data for preview image download - try { - const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE_IMAGE`, { stationSN: this.rawStation.station_sn, message: str }); - const image = (0, utils_3.parseJSON)(str, logging_1.rootP2PLogger); - this.emit("image download", image.file, (0, utils_2.decodeImage)(this.rawStation.p2p_did, Buffer.from(image.content, "base64"))); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE_IMAGE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString() } }); - } - break; - case types_1.CommandType.CMD_GET_TFCARD_STATUS: - try { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_TFCARD_STATUS :`, { stationSN: this.rawStation.station_sn, payload: data.toString("hex") }); - const tfCardStatus = data.subarray(0, 4).readUInt32LE(); - this.emit("tfcard status", message.channel, tfCardStatus); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GET_TFCARD_STATUS - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - break; - case types_1.CommandType.CMD_DATABASE: - try { - const str = (0, utils_1.getNullTerminatedString)(data, "utf8"); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE :`, { stationSN: this.rawStation.station_sn, payload: str }); - const databaseResponse = (0, utils_3.parseJSON)(str, logging_1.rootP2PLogger); - switch (databaseResponse.cmd) { - case types_1.CommandType.CMD_DATABASE_QUERY_LATEST_INFO: - { - let data = []; - if (databaseResponse.data !== undefined && databaseResponse.data !== "[]") - data = databaseResponse.data; - const result = []; - for (const record of data) { - if (record.payload.crop_hb3_path !== "") { - result.push({ - device_sn: record.device_sn, - event_count: record.payload.event_count, - crop_local_path: record.payload.crop_hb3_path - }); - } - else { - result.push({ - device_sn: record.device_sn, - event_count: record.payload.event_count, - crop_cloud_path: record.payload.crop_cloud_path - }); - } - } - this.emit("database query latest", databaseResponse.mIntRet, result); - break; - } - case types_1.CommandType.CMD_DATABASE_COUNT_BY_DATE: { - let data = []; - if (databaseResponse.data !== undefined && databaseResponse.data !== "[]") - data = databaseResponse.data; - const result = []; - for (const record of data) { - result.push({ - day: date_and_time_1.default.parse(record.days, "YYYYMMDD"), - count: record.count - }); - } - this.emit("database count by date", databaseResponse.mIntRet, result); - break; - } - case types_1.CommandType.CMD_DATABASE_QUERY_LOCAL: { - let data = []; - if (databaseResponse.data !== undefined && databaseResponse.data !== "[]") - data = databaseResponse.data; - const result = new sweet_collections_1.SortedMap((a, b) => a - b); - for (const record of data) { - for (const tableRecord of record.payload) { - let tmpRecord = result.get(tableRecord.record_id); - if (tmpRecord === undefined) { - tmpRecord = { - record_id: tableRecord.record_id, - device_sn: tableRecord.device_sn, - station_sn: tableRecord.station_sn, - }; - } - if (record.table_name === "history_record_info") { - tmpRecord.history = { - device_type: tableRecord.device_type, - account: tableRecord.account, - start_time: date_and_time_1.default.parse(tableRecord.start_time, "YYYY-MM-DD HH:mm:ss"), - end_time: date_and_time_1.default.parse(tableRecord.end_time, "YYYY-MM-DD HH:mm:ss"), - frame_num: tableRecord.frame_num, - storage_type: tableRecord.storage_type, - storage_cloud: tableRecord.storage_cloud, - cipher_id: tableRecord.cipher_id, - vision: tableRecord.vision, - video_type: tableRecord.video_type, - has_lock: tableRecord.has_lock, - automation_id: tableRecord.automation_id, - trigger_type: tableRecord.trigger_type, - push_mode: tableRecord.push_mode, - mic_status: tableRecord.mic_status, - res_change: tableRecord.res_change, - res_best_width: tableRecord.res_best_width, - res_best_height: tableRecord.res_best_height, - self_learning: tableRecord.self_learning, - storage_path: tableRecord.storage_path, - thumb_path: tableRecord.thumb_path, - write_status: tableRecord.write_status, - cloud_path: tableRecord.cloud_path, - folder_size: tableRecord.folder_size, - storage_status: tableRecord.storage_status, - storage_label: tableRecord.storage_label, - time_zone: tableRecord.time_zone, - mp4_cloud: tableRecord.mp4_cloud, - snapshot_cloud: tableRecord.snapshot_cloud, - table_version: tableRecord.table_version, - }; - } - else if (record.table_name === "record_crop_picture_info") { - if (tmpRecord.picture === undefined) { - tmpRecord.picture = []; - } - tmpRecord.picture.push({ - picture_id: tableRecord.picture_id, - detection_type: tableRecord.detection_type, - person_id: tableRecord.person_id, - crop_path: tableRecord.crop_path, - event_time: date_and_time_1.default.parse(tableRecord.event_time, "YYYY-MM-DD HH:mm:ss"), - person_recog_flag: tableRecord.person_recog_flag, - crop_pic_quality: tableRecord.crop_pic_quality, - pic_marking_flag: tableRecord.pic_marking_flag, - group_id: tableRecord.group_id, - crop_id: tableRecord.crop_id, - start_time: date_and_time_1.default.parse(tableRecord.start_time, "YYYY-MM-DD HH:mm:ss"), - storage_type: tableRecord.storage_type, - storage_status: tableRecord.storage_status, - storage_label: tableRecord.storage_label, - table_version: tableRecord.table_version, - update_time: tableRecord.update_time, - }); - } - else { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented - CMD_DATABASE_QUERY_LOCAL - table_name: ${record.table_name}`, { stationSN: this.rawStation.station_sn }); - } - result.set(tableRecord.record_id, tmpRecord); - } - } - this.emit("database query local", databaseResponse.mIntRet, Array.from(result.values())); - break; - } - case types_1.CommandType.CMD_DATABASE_DELETE: { - const data = databaseResponse.data; - let failed_delete = []; - if (databaseResponse.data !== undefined && data.failed_delete !== "[]") - failed_delete = data.failed_delete; - this.emit("database delete", databaseResponse.mIntRet, failed_delete); - break; - } - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented - CMD_DATABASE message`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, databaseResponse: databaseResponse }); - break; - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_DATABASE - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString() } }); - } - break; - case types_1.CommandType.CMD_GATEWAYINFO: - const cipherID = data.subarray(0, 2).readUInt16LE(); - //const unknownNumber = data.subarray(2, 2).readUInt16LE(); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - cipherID`, { stationSN: this.rawStation.station_sn, channel: message.channel, data: data.toString("hex"), cipherID: cipherID }); - const encryptedKey = (0, utils_1.readNullTerminatedBuffer)(data.subarray(4)); - this.api.getCipher(/*this.rawStation.station_sn, */ cipherID, this.rawStation.member.admin_user_id).then((cipher) => { - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - get cipher with cipherID`, { stationSN: this.rawStation.station_sn, channel: message.channel, data: data.toString("hex"), cipherID: cipherID, cipher: JSON.stringify(cipher) }); - if (cipher !== undefined) { - this.encryption = types_1.EncryptionType.LEVEL_2; - const rsa = (0, utils_1.getRSAPrivateKey)(cipher.private_key, this.enableEmbeddedPKCS1Support); - this.p2pKey = rsa.decrypt(encryptedKey); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - set encryption level 2`, { stationSN: this.rawStation.station_sn, key: this.p2pKey.toString("hex") }); - } - else { - this.encryption = types_1.EncryptionType.LEVEL_1; - this.p2pKey = Buffer.from((0, utils_1.getP2PCommandEncryptionKey)(this.rawStation.station_sn, this.rawStation.p2p_did)); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - set encryption level 1`, { stationSN: this.rawStation.station_sn, key: this.p2pKey.toString("hex") }); - } - this._clearTimeout(this.messageStates.get(message.seqNo)?.timeout); - this.p2pSeqMapping.forEach((value, key, map) => { - if (value === message.seqNo) { - map.delete(key); - } - }); - this.p2pDataSeqNumber--; - this.messageStates.delete(message.seqNo); - this.sendQueuedMessage(); - }).catch((err) => { - const error = (0, error_1.ensureError)(err); - this.encryption = types_1.EncryptionType.LEVEL_1; - this.p2pKey = Buffer.from((0, utils_1.getP2PCommandEncryptionKey)(this.rawStation.station_sn, this.rawStation.p2p_did)); - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - CMD_GATEWAYINFO - set encryption level 1 (fallback)`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") }, key: this.p2pKey.toString("hex") }); - this._clearTimeout(this.messageStates.get(message.seqNo)?.timeout); - this.p2pSeqMapping.forEach((value, key, map) => { - if (value === message.seqNo) { - map.delete(key); - } - }); - this.p2pDataSeqNumber--; - this.messageStates.delete(message.seqNo); - this.sendQueuedMessage(); - }); - break; - default: - logging_1.rootP2PLogger.debug(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Not implemented`, { stationSN: this.rawStation.station_sn, commandIdName: types_1.CommandType[message.commandId], commandId: message.commandId, channel: message.channel, data: data.toString("hex") }); - break; - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Handle DATA ${types_1.P2PDataType[message.dataType]} - Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn, message: { seqNo: message.seqNo, channel: message.channel, commandType: types_1.CommandType[message.commandId], signCode: message.signCode, type: message.type, dataType: types_1.P2PDataType[message.dataType], data: message.data.toString("hex") } }); - } - } - async sendAck(address, dataType, seqNo) { - const num_pending_acks = 1; // Max possible: 17 in one ack packet - const pendingAcksBuffer = Buffer.allocUnsafe(2); - pendingAcksBuffer.writeUInt16BE(num_pending_acks, 0); - const seqBuffer = Buffer.allocUnsafe(2); - seqBuffer.writeUInt16BE(seqNo, 0); - const payload = Buffer.concat([dataType, pendingAcksBuffer, seqBuffer]); - await this.sendMessage(`Send ack`, address, types_1.RequestMessageType.ACK, payload); - } - getDataType(input) { - if (input.compare(types_1.P2PDataTypeHeader.DATA) === 0) { - return types_1.P2PDataType.DATA; - } - else if (input.compare(types_1.P2PDataTypeHeader.VIDEO) === 0) { - return types_1.P2PDataType.VIDEO; - } - else if (input.compare(types_1.P2PDataTypeHeader.CONTROL) === 0) { - return types_1.P2PDataType.CONTROL; - } - else if (input.compare(types_1.P2PDataTypeHeader.BINARY) === 0) { - return types_1.P2PDataType.BINARY; - } - return types_1.P2PDataType.UNKNOWN; - } - async close() { - this.terminating = true; - this._clearLookupTimeout(); - this._clearLocalLookupRetryTimeout(); - this._clearLookupRetryTimeout(); - this._clearConnectTimeout(); - this._clearHeartbeatTimeout(); - this._clearMessageStateTimeouts(); - this._clearMessageVideoStateTimeouts(); - this._clearSecondaryCommandTimeout(); - this.sendQueue = []; - if (this.socket) { - if (this.connected) { - await this.sendMessage(`Send end connection`, this.connectAddress, types_1.RequestMessageType.END); - this._disconnected(); - } - else { - this._initialize(); - } - } - } - getHeartbeatInterval() { - return this.HEARTBEAT_INTERVAL; - } - onClose() { - this.socket.removeAllListeners(); - this.socket = (0, dgram_1.createSocket)("udp4"); - this.socket.on("message", (msg, rinfo) => this.handleMsg(msg, rinfo)); - this.socket.on("error", (error) => this.onError(error)); - this.socket.on("close", () => this.onClose()); - this.binded = false; - this._disconnected(); - } - onError(err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.debug(`Socket Error:`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn }); - } - scheduleHeartbeat() { - if (this.isConnected()) { - this.sendPing(this.connectAddress); - this.heartbeatTimeout = setTimeout(() => { - this.scheduleHeartbeat(); - }, this.getHeartbeatInterval()); - } - else { - logging_1.rootP2PLogger.debug(`Heartbeat not activated because no connection is present!`, { stationSN: this.rawStation.station_sn }); - } - } - scheduleP2PKeepalive() { - if (this.isConnected()) { - this.sendCommandPing(http_1.Station.CHANNEL); - this.keepaliveTimeout = setTimeout(() => { - this.scheduleP2PKeepalive(); - }, this.KEEPALIVE_INTERVAL); - this.closeEnergySavingDevice(); - } - else { - logging_1.rootP2PLogger.debug(`P2P keepalive not activated because no connection is present`, { stationSN: this.rawStation.station_sn }); - } - } - getDownloadRSAPrivateKey() { - if (this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey === null) { - this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey = (0, utils_1.getNewRSAPrivateKey)(this.enableEmbeddedPKCS1Support); - } - return this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey; - } - setDownloadRSAPrivateKeyPem(pem) { - this.currentMessageState[types_1.P2PDataType.BINARY].rsaKey = (0, utils_1.getRSAPrivateKey)(pem, this.enableEmbeddedPKCS1Support); - } - getRSAPrivateKey() { - return this.currentMessageState[types_1.P2PDataType.VIDEO].rsaKey; - } - initializeStream(datatype) { - this.currentMessageState[datatype].videoStream?.destroy(); - this.currentMessageState[datatype].audioStream?.destroy(); - this.currentMessageState[datatype].videoStream = null; - this.currentMessageState[datatype].audioStream = null; - this.currentMessageState[datatype].videoStream = new stream_1.Readable({ autoDestroy: true, - // eslint-disable-next-line @typescript-eslint/no-empty-function - read() { } /*, - - destroy(this, error, _callback) { - if (error) { - this.emit("error", error); - } - this.emit("end"); - this.emit("close"); - }*/ - }); - this.currentMessageState[datatype].audioStream = new stream_1.Readable({ autoDestroy: true, - // eslint-disable-next-line @typescript-eslint/no-empty-function - read() { } /*, - - destroy(this, error, _callback) { - if (error) { - this.emit("error", error); - } - this.emit("end"); - this.emit("close"); - }*/ - }); - this.currentMessageState[datatype].p2pStreaming = false; - if (this.currentMessageState[datatype].waitForSeqNoTimeout !== undefined) { - clearTimeout(this.currentMessageState[datatype].waitForSeqNoTimeout); - this.currentMessageState[datatype].waitForSeqNoTimeout = undefined; - } - if (this.currentMessageState[datatype].waitForAudioData !== undefined) { - clearTimeout(this.currentMessageState[datatype].waitForAudioData); - this.currentMessageState[datatype].waitForAudioData = undefined; - } - } - endStream(datatype, sendStopCommand = false) { - if (this.currentMessageState[datatype].p2pStreaming) { - if (sendStopCommand) { - switch (datatype) { - case types_1.P2PDataType.VIDEO: - this.sendCommandWithInt({ - commandType: types_1.CommandType.CMD_STOP_REALTIME_MEDIA, - value: this.currentMessageState[datatype].p2pStreamChannel, - channel: this.currentMessageState[datatype].p2pStreamChannel - }, { - command: { - name: http_1.CommandName.DeviceStopLivestream - } - }); - break; - case types_1.P2PDataType.BINARY: - this.sendCommandWithInt({ - commandType: types_1.CommandType.CMD_DOWNLOAD_CANCEL, - value: this.currentMessageState[datatype].p2pStreamChannel, - strValueSub: this.rawStation.member.admin_user_id, - channel: this.currentMessageState[datatype].p2pStreamChannel - }, { - command: { - name: http_1.CommandName.DeviceCancelDownload - } - }); - break; - } - } - this.currentMessageState[datatype].p2pStreaming = false; - this.currentMessageState[datatype].videoStream?.push(null); - this.currentMessageState[datatype].audioStream?.push(null); - if (this.currentMessageState[datatype].p2pStreamingTimeout) { - clearTimeout(this.currentMessageState[datatype].p2pStreamingTimeout); - this.currentMessageState[datatype].p2pStreamingTimeout = undefined; - } - if (!this.currentMessageState[datatype].invalidStream && !this.currentMessageState[datatype].p2pStreamNotStarted) - this.emitStreamStopEvent(datatype); - if (this.currentMessageState[datatype].queuedData.size > 0) { - this.expectedSeqNo[datatype] = this._incrementSequence([...this.currentMessageState[datatype].queuedData.keys()][this.currentMessageState[datatype].queuedData.size - 1]); - } - this.initializeMessageBuilder(datatype); - this.initializeMessageState(datatype, this.currentMessageState[datatype].rsaKey); - this.initializeStream(datatype); - this.closeEnergySavingDevice(); - } - } - endRTSPStream(channel) { - if (this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel]) { - this.currentMessageState[types_1.P2PDataType.DATA].rtspStream[channel] = false; - this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel] = false; - this.emit("rtsp livestream stopped", channel); - } - } - emitStreamStartEvent(datatype) { - this.currentMessageState[datatype].p2pStreamNotStarted = false; - if (datatype === types_1.P2PDataType.VIDEO) { - this.emit("livestream started", this.currentMessageState[datatype].p2pStreamChannel, this.currentMessageState[datatype].p2pStreamMetadata, this.currentMessageState[datatype].videoStream, this.currentMessageState[datatype].audioStream); - } - else if (datatype === types_1.P2PDataType.BINARY) { - this.emit("download started", this.currentMessageState[datatype].p2pStreamChannel, this.currentMessageState[datatype].p2pStreamMetadata, this.currentMessageState[datatype].videoStream, this.currentMessageState[datatype].audioStream); - } - } - emitStreamStopEvent(datatype) { - if (datatype === types_1.P2PDataType.VIDEO) { - this.emit("livestream stopped", this.currentMessageState[datatype].p2pStreamChannel); - } - else if (datatype === types_1.P2PDataType.BINARY) { - this.emit("download finished", this.currentMessageState[datatype].p2pStreamChannel); - } - } - isStreaming(channel, datatype) { - if (this.currentMessageState[datatype].p2pStreamChannel === channel) - return this.currentMessageState[datatype].p2pStreaming; - return false; - } - isLiveStreaming(channel) { - return this.isStreaming(channel, types_1.P2PDataType.VIDEO); - } - isCurrentlyStreaming() { - for (const element of Object.values(this.currentMessageState)) { - if (element.p2pStreaming || element.p2pTalkback) - return true; - } - return false; - } - isRTSPLiveStreaming(channel) { - return this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel] ? this.currentMessageState[types_1.P2PDataType.DATA].rtspStreaming[channel] : false; - } - isDownloading(channel) { - return this.isStreaming(channel, types_1.P2PDataType.BINARY); - } - getLockSequenceNumber() { - if (this.lockSeqNumber === -1) { - let deviceType = undefined; - let deviceSN = undefined; - if (this.rawStation?.devices?.length > 0) { - deviceType = this.rawStation?.devices[0]?.device_type; - deviceSN = this.rawStation?.devices[0]?.device_sn; - } - this.lockSeqNumber = (0, utils_1.generateLockSequence)(deviceType, deviceSN); - } - return this.lockSeqNumber; - } - incLockSequenceNumber() { - if (this.lockSeqNumber === -1) { - this.getLockSequenceNumber(); - } - else - this.lockSeqNumber++; - return this.lockSeqNumber; - } - setConnectionType(type) { - this.connectionType = type; - } - getConnectionType() { - return this.connectionType; - } - isEnergySavingDevice() { - return this.energySavingDevice; - } - async getDSKKeys() { - if (this.api.isConnected()) { - try { - const data = { - invalid_dsks: {}, - station_sns: [this.rawStation.station_sn], - transaction: `${new Date().getTime()}` - }; - data.invalid_dsks[this.rawStation.station_sn] = ""; - const response = await this.api.request({ - method: "post", - endpoint: "v1/app/equipment/get_dsk_keys", - data: data - }); - logging_1.rootP2PLogger.debug(`Get DSK keys - Response:`, { stationSN: this.rawStation.station_sn, data: response.data }); - if (response.status == 200) { - const result = response.data; - if (result.code == 0) { - const dataresult = result.data; - dataresult.dsk_keys.forEach(key => { - if (key.station_sn == this.rawStation.station_sn) { - this.dskKey = key.dsk_key; - this.dskExpiration = new Date(key.expiration * 1000); - logging_1.rootP2PLogger.debug(`Get DSK keys - received key and expiration`, { stationSN: this.rawStation.station_sn, dskKey: this.dskKey, dskExpiration: this.dskExpiration }); - } - }); - } - else { - logging_1.rootP2PLogger.error(`Get DSK keys - Response code not ok`, { stationSN: this.rawStation.station_sn, code: result.code, msg: result.msg }); - } - } - else { - logging_1.rootP2PLogger.error(`Get DSK keys - Status return code not 200`, { stationSN: this.rawStation.station_sn, status: response.status, statusText: response.statusText }); - } - } - catch (err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.error(`Get DSK keys - Generic Error`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn }); - } - } - } - updateRawStation(value) { - this.rawStation = value; - this.channel = http_1.Station.getChannel(value.device_type); - if (this.rawStation.devices?.length > 0) { - if (!this.energySavingDevice) { - for (const device of this.rawStation.devices) { - if (device.device_sn === this.rawStation.station_sn && device_1.Device.hasBattery(device.device_type)) { - this.energySavingDevice = true; - break; - } - } - if (this.energySavingDevice) - logging_1.rootP2PLogger.debug(`Identified standalone battery device ${this.rawStation.station_sn} => activate p2p keepalive command`); - } - } - else { - this.energySavingDevice = false; - } - if (this.rawStation.devices) - for (const device of this.rawStation.devices) { - this.deviceSNs[device.device_channel] = { - sn: device.device_sn, - adminUserId: this.rawStation.member.admin_user_id - }; - } - } - initializeTalkbackStream(channel = 0) { - this.talkbackStream = new talkback_1.TalkbackStream(); - this.talkbackStream.on("data", (audioData) => { this.sendTalkbackAudioFrame(audioData, channel); }); - this.talkbackStream.on("error", (error) => { this.onTalkbackStreamError(error); }); - this.talkbackStream.on("close", () => { this.onTalkbackStreamClose(); }); - } - sendTalkbackAudioFrame(audioData, channel) { - const messageHeader = (0, utils_1.buildCommandHeader)(this.videoSeqNumber, types_1.CommandType.CMD_AUDIO_FRAME, types_1.P2PDataTypeHeader.VIDEO); - const messageAudioHeader = (0, utils_1.buildTalkbackAudioFrameHeader)(audioData, channel); - const messageData = Buffer.concat([messageHeader, messageAudioHeader, audioData]); - const message = { - sequence: this.videoSeqNumber, - channel: channel, - data: messageData, - retries: 0 - }; - this.videoSeqNumber = this._incrementSequence(this.videoSeqNumber); - this._sendVideoData(message); - } - onTalkbackStreamClose() { - this.talkbackStream?.removeAllListeners(); - } - onTalkbackStreamError(err) { - const error = (0, error_1.ensureError)(err); - logging_1.rootP2PLogger.debug(`Talkback Stream Error:`, { error: (0, utils_3.getError)(error), stationSN: this.rawStation.station_sn }); - } - async _sendVideoData(message) { - if (message.retries < this.MAX_RETRIES) { - message.retries++; - } - else { - logging_1.rootP2PLogger.error(`Sending video data - Max send video data retries ${this.messageVideoStates.get(message.sequence)?.retries} reached. Discard data.`, { stationSN: this.rawStation.station_sn, sequence: message.sequence, channel: message.channel, retries: message.retries }); - this.messageVideoStates.delete(message.sequence); - this.emit("talkback error", message.channel, new error_1.TalkbackError("Max send video data retries reached. Discard data packet.", { context: { station: this.rawStation.station_sn, channel: message.channel, retries: message.retries } })); - return; - } - message = message; - message.timeout = setTimeout(() => { - this._sendVideoData(message); - }, this.MAX_AKNOWLEDGE_TIMEOUT); - this.messageVideoStates.set(message.sequence, message); - logging_1.rootP2PLogger.trace("Sending p2p video data...", { station: this.rawStation.station_sn, sequence: message.sequence, channel: message.channel, retries: message.retries, messageVideoStatesSize: this.messageVideoStates.size }); - await this.sendMessage(`Send video data`, this.connectAddress, types_1.RequestMessageType.DATA, message.data); - } - isTalkbackOngoing(channel) { - if (this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkbackChannel === channel) - return this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkback; - return false; - } - startTalkback(channel = 0) { - this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkback = true; - this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkbackChannel = channel; - this.initializeTalkbackStream(channel); - this.talkbackStream?.startTalkback(); - this.emit("talkback started", channel, this.talkbackStream); - } - stopTalkback(channel = 0) { - this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkback = false; - this.currentMessageState[types_1.P2PDataType.VIDEO].p2pTalkbackChannel = -1; - this.talkbackStream?.stopTalkback(); - this.emit("talkback stopped", channel); - this.closeEnergySavingDevice(); - } - setLockAESKey(commandCode, aesKey) { - this.lockAESKeys.set(commandCode, aesKey); - } - getLockAESKey(commandCode) { - return this.lockAESKeys.get(commandCode); - } - isConnecting() { - return this.connecting; - } -} -exports.P2PClientProtocol = P2PClientProtocol; -//# sourceMappingURL=session.js.map \ No newline at end of file diff --git a/build/p2p/session.js.map b/build/p2p/session.js.map deleted file mode 100644 index 71b3fa06..00000000 --- a/build/p2p/session.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/p2p/session.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/talkback.d.ts b/build/p2p/talkback.d.ts deleted file mode 100644 index 65befb23..00000000 --- a/build/p2p/talkback.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Transform } from "stream"; -export declare class TalkbackStream extends Transform { - private isStreaming; - constructor(); - _transform(data: Buffer, _encoding: string, callback: (err?: Error | null) => void): void; - startTalkback(): void; - stopTalkback(): void; -} diff --git a/build/p2p/talkback.js b/build/p2p/talkback.js deleted file mode 100644 index 84b98769..00000000 --- a/build/p2p/talkback.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TalkbackStream = void 0; -const stream_1 = require("stream"); -class TalkbackStream extends stream_1.Transform { - isStreaming = false; - constructor() { - super(); - } - _transform(data, _encoding, callback) { - if (this.isStreaming) - this.push(data); - callback(); - } - startTalkback() { - this.isStreaming = true; - } - stopTalkback() { - this.isStreaming = false; - } -} -exports.TalkbackStream = TalkbackStream; -//# sourceMappingURL=talkback.js.map \ No newline at end of file diff --git a/build/p2p/talkback.js.map b/build/p2p/talkback.js.map deleted file mode 100644 index f1411a56..00000000 --- a/build/p2p/talkback.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"talkback.js","sourceRoot":"","sources":["../../src/p2p/talkback.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,MAAa,cAAe,SAAQ,kBAAS;IAEjC,WAAW,GAAG,KAAK,CAAC;IAE5B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,SAAiB,EAAE,QAAsC;QAC9E,IAAG,IAAI,CAAC,WAAW;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,EAAE,CAAC;IACf,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;CACJ;AArBD,wCAqBC"} \ No newline at end of file diff --git a/build/p2p/types.d.ts b/build/p2p/types.d.ts deleted file mode 100644 index db95cf25..00000000 --- a/build/p2p/types.d.ts +++ /dev/null @@ -1,1164 +0,0 @@ -import { LockV12P2PCommandType, SmartLockP2PCommandType } from "./models"; -export declare const RequestMessageType: { - STUN: Buffer; - LOOKUP: Buffer; - LOOKUP_WITH_KEY: Buffer; - LOOKUP_WITH_KEY2: Buffer; - TURN_LOOKUP_WITH_KEY: Buffer; - TURN_SERVER_INIT: Buffer; - TURN_CLIENT_OK: Buffer; - CHECK_CAM2: Buffer; - LOCAL_LOOKUP: Buffer; - PING: Buffer; - PONG: Buffer; - CHECK_CAM: Buffer; - DATA: Buffer; - ACK: Buffer; - END: Buffer; -}; -export declare const ResponseMessageType: { - STUN: Buffer; - LOOKUP_RESP: Buffer; - LOOKUP_ADDR: Buffer; - LOCAL_LOOKUP_RESP: Buffer; - TURN_SERVER_LIST: Buffer; - TURN_SERVER_OK: Buffer; - TURN_SERVER_TOKEN: Buffer; - TURN_SERVER_LOOKUP_OK: Buffer; - LOOKUP_ADDR2: Buffer; - UNKNOWN_83: Buffer; - TURN_SERVER_CAM_ID: Buffer; - END: Buffer; - PONG: Buffer; - PING: Buffer; - CAM_ID: Buffer; - ACK: Buffer; - DATA: Buffer; -}; -export declare enum P2PDataType { - UNKNOWN = -1, - DATA = 0, - VIDEO = 1, - CONTROL = 2, - BINARY = 3 -} -export declare const P2PDataTypeHeader: { - DATA: Buffer; - VIDEO: Buffer; - CONTROL: Buffer; - BINARY: Buffer; -}; -export declare enum CommandType { - ARM_DELAY_AWAY = 1158, - ARM_DELAY_CUS1 = 1159, - ARM_DELAY_CUS2 = 1160, - ARM_DELAY_CUS3 = 1161, - ARM_DELAY_HOME = 1157, - ARM_DELAY_OFF = 1180, - AUTOMATION_DATA = 1278, - AUTOMATION_ID_LIST = 1165, - CMD_ALARM_DELAY_AWAY = 1167, - CMD_ALARM_DELAY_CUSTOM1 = 1168, - CMD_ALARM_DELAY_CUSTOM2 = 1169, - CMD_ALARM_DELAY_CUSTOM3 = 1170, - CMD_ALARM_DELAY_HOME = 1166, - CMD_AUDDEC_SWITCH = 1017, - CMD_AUDIO_FRAME = 1301, - CMD_BATCH_RECORD = 1049, - CMD_BAT_DOORBELL_CHIME_SWITCH = 1702, - CMD_BAT_DOORBELL_DINGDONG_R = 1718, - CMD_BAT_DOORBELL_DINGDONG_V = 1717, - CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH = 1703, - CMD_BAT_DOORBELL_ONLY_AI = 1719, - CMD_BAT_DOORBELL_QUICK_RESPONSE = 1706, - CMD_BAT_DOORBELL_SET_AC_VALUE = 1714, - CMD_BAT_DOORBELL_SET_ELECTRONIC_RINGTONE_TIME = 1709, - CMD_BAT_DOORBELL_SET_LED_ENABLE = 1716, - CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE = 1710, - CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME = 1708, - CMD_BAT_DOORBELL_UPDATE_QUICK_RESPONSE = 1707, - CMD_BAT_DOORBELL_VIDEO_QUALITY = 1705, - CMD_BAT_DOORBELL_VIDEO_QUALITY2 = 2730, - CMD_BAT_DOORBELL_RECORD_QUALITY2 = 2731, - CMD_BAT_DOORBELL_WDR_SWITCH = 1704, - CMD_BIND_BROADCAST = 1000, - CMD_BIND_SYNC_ACCOUNT_INFO = 1001, - CMD_BIND_SYNC_ACCOUNT_INFO_EX = 1054, - CMD_CAMERA_INFO = 1103, - CMD_CHANGE_PWD = 1030, - CMD_CHANGE_WIFI_PWD = 1031, - CMD_CLOSE_AUDDEC = 1018, - CMD_CLOSE_DEV_LED = 1046, - CMD_CLOSE_EAS = 1016, - CMD_CLOSE_IRCUT = 1014, - CMD_CLOSE_PIR = 1012, - CMD_COLLECT_RECORD = 1047, - CMD_CONVERT_MP4_OK = 1303, - CMD_DECOLLECT_RECORD = 1048, - CMD_DELLETE_RECORD = 1027, - CMD_DEL_FACE_PHOTO = 1234, - CMD_DEL_USER_PHOTO = 1232, - CMD_DEVS_BIND_BROADCASE = 1038, - CMD_DEVS_BIND_NOTIFY = 1039, - CMD_DEVS_LOCK = 1019, - CMD_DEVS_SWITCH = 1035, - CMD_DEVS_TO_FACTORY = 1037, - CMD_DEVS_UNBIND = 1040, - CMD_DEVS_UNLOCK = 1020, - CMD_DEV_LED_SWITCH = 1045, - CMD_DEV_PUSHMSG_MODE = 1252, - CMD_DEV_RECORD_AUTOSTOP = 1251, - CMD_DEV_RECORD_INTERVAL = 1250, - CMD_DEV_RECORD_TIMEOUT = 1249, - CMD_DOWNLOAD_FINISH = 1304, - CMD_DOORBELL_NOTIFY_PAYLOAD = 1701, - CMD_DOORBELL_SET_PAYLOAD = 1700, - CMD_DOORLOCK_ACCOUNT_UNBIND = 1915, - CMD_DOORLOCK_BIND = 1910, - CMD_DOORLOCK_DATA_PASS_THROUGH = 1911, - CMD_DOORLOCK_DATA_PASS_THROUGH_ERR = 1918, - CMD_DOORLOCK_GET_STATE = 1912, - CMD_DOORLOCK_ONLINE_REPORT = 1917, - CMD_DOORLOCK_OTA = 1914, - CMD_DOORLOCK_P2P_SEQ = 1916, - CMD_DOORLOCK_SET_PUSH_MODE = 1919, - CMD_DOOR_SENSOR_ALARM_ENABLE = 1506, - CMD_DOOR_SENSOR_DOOR_EVT = 1503, - CMD_DOOR_SENSOR_ENABLE_LED = 1505, - CMD_DOOR_SENSOR_GET_DOOR_STATE = 1502, - CMD_DOOR_SENSOR_GET_INFO = 1501, - CMD_DOOR_SENSOR_INFO_REPORT = 1500, - CMD_DOOR_SENSOR_LOW_POWER_REPORT = 1504, - CMD_DOWNLOAD_CANCEL = 1051, - CMD_DOWNLOAD_VIDEO = 1024, - CMD_EAS_SWITCH = 1015, - CMD_ENTRY_SENSOR_BAT_STATE = 1552, - CMD_ENTRY_SENSOR_CHANGE_TIME = 1551, - CMD_ENTRY_SENSOR_STATUS = 1550, - CMD_FLOODLIGHT_BROADCAST = 902, - CMD_FORMAT_SD = 1029, - CMD_FORMAT_SD_PROGRESS = 1053, - CMD_GATEWAYINFO = 1100, - CMD_GEO_ADD_USER_INFO = 1259, - CMD_GEO_DEL_USER_INFO = 1261, - CMD_GEO_SET_USER_STATUS = 1258, - CMD_GEO_UPDATE_LOC_SETTING = 1262, - CMD_GEO_UPDATE_USER_INFO = 1260, - CMD_GET_ADMIN_PWD = 1122, - CMD_GET_ALARM_MODE = 1151, - CMD_GET_ARMING_INFO = 1107, - CMD_GET_ARMING_STATUS = 1108, - CMD_GET_AUDDEC_INFO = 1109, - CMD_GET_AUDDEC_SENSITIVITY = 1110, - CMD_GET_AUDDE_CSTATUS = 1111, - CMD_GET_AWAY_ACTION = 1239, - CMD_GET_BATTERY = 1101, - CMD_GET_BATTERY_TEMP = 1138, - CMD_GET_CAMERA_LOCK = 1119, - CMD_GET_CHARGE_STATUS = 1136, - CMD_GET_CUSTOM1_ACTION = 1148, - CMD_GET_CUSTOM2_ACTION = 1149, - CMD_GET_CUSTOM3_ACTION = 1150, - CMD_GET_DELAY_ALARM = 1164, - CMD_GET_DEVICE_PING = 1152, - CMD_GET_DEVS_NAME = 1129, - CMD_GET_DEVS_RSSI_LIST = 1274, - CMD_GET_DEV_CLOUD_STATUS = 1182, - CMD_GET_DEV_HK_RECORD_STATUS = 1181, - CMD_GET_DEV_STATUS = 1131, - CMD_GET_DEV_TONE_INFO = 1127, - CMD_GET_DEV_UPGRADE = 1134, - CMD_GET_EAS_STATUS = 1118, - CMD_GET_EXCEPTION_LOG = 1124, - CMD_GET_FLOODLIGHT_WIFI_LIST = 1405, - CMD_GET_GATEWAY_LOCK = 1120, - CMD_GET_HOME_ACTION = 1225, - CMD_GET_HUB_LAN_IP = 1176, - CMD_GET_HUB_LOG = 1132, - CMD_GET_HUB_LOGIG = 1140, - CMD_GET_HUB_NAME = 1128, - CMD_GET_HUB_POWER_SUPPLY = 1137, - CMD_GET_HUB_TONE_INFO = 1126, - CMD_GET_HUB_UPGRADE = 1133, - CMD_GET_IRCUTSENSITIVITY = 1114, - CMD_GET_IRMODE = 1113, - CMD_GET_MDETECT_PARAM = 1105, - CMD_GET_MIRRORMODE = 1112, - CMD_GET_NEWVESION = 1125, - CMD_GET_OFF_ACTION = 1177, - CMD_GET_P2P_CONN_STATUS = 1130, - CMD_GET_PIRCTRL = 1116, - CMD_GET_PIRINFO = 1115, - CMD_GET_PIRSENSITIVITY = 1117, - CMD_GET_RECORD_TIME = 1104, - CMD_GET_REPEATER_CONN_TEST_RESULT = 1270, - CMD_GET_REPEATER_RSSI = 1266, - CMD_GET_REPEATER_SITE_LIST = 1263, - CMD_GET_SOLAR_SHOW = 1294, - CMD_GET_START_HOMEKIT = 1163, - CMD_GET_SUB1G_RSSI = 1141, - CMD_GET_TFCARD_FORMAT_STATUS = 1143, - CMD_GET_TFCARD_REPAIR_STATUS = 1153, - CMD_GET_TFCARD_STATUS = 1135, - CMD_GET_UPDATE_STATUS = 1121, - CMD_GET_UPGRADE_RESULT = 1043, - CMD_GET_WAN_LINK_STATUS = 1268, - CMD_GET_WAN_MODE = 1265, - CMD_GET_WIFI_PWD = 1123, - CMD_GET_WIFI_RSSI = 1142, - CMD_HUB_ALARM_TONE = 1281, - CMD_HUB_CLEAR_EMMC_VOLUME = 1800, - CMD_HUB_NOTIFY_ALARM = 1282, - CMD_HUB_NOTIFY_MODE = 1283, - CMD_HUB_REBOOT = 1034, - CMD_HUB_TO_FACTORY = 1036, - CMD_IRCUT_SWITCH = 1013, - CMD_KEYPAD_BATTERY_CAP_STATE = 1653, - CMD_KEYPAD_BATTERY_CHARGER_STATE = 1655, - CMD_KEYPAD_BATTERY_TEMP_STATE = 1654, - CMD_KEYPAD_GET_PASSWORD = 1657, - CMD_KEYPAD_GET_PASSWORD_LIST = 1662, - CMD_KEYPAD_IS_PSW_SET = 1670, - CMD_KEYPAD_PSW_OPEN = 1664, - CMD_KEYPAD_SET_CUSTOM_MAP = 1660, - CMD_KEYPAD_SET_PASSWORD = 1650, - CMD_LEAVING_DELAY_AWAY = 1172, - CMD_LEAVING_DELAY_CUSTOM1 = 1173, - CMD_LEAVING_DELAY_CUSTOM2 = 1174, - CMD_LEAVING_DELAY_CUSTOM3 = 1175, - CMD_LEAVING_DELAY_HOME = 1171, - CMD_LIVEVIEW_LED_SWITCH = 1056, - CMD_MDETECTINFO = 1106, - CMD_MOTION_SENSOR_BAT_STATE = 1601, - CMD_MOTION_SENSOR_ENABLE_LED = 1607, - CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE = 1613, - CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE = 1610, - CMD_MOTION_SENSOR_PIR_EVT = 1605, - CMD_MOTION_SENSOR_SET_CHIRP_TONE = 1611, - CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY = 1609, - CMD_MOTION_SENSOR_WORK_MODE = 1612, - CMD_NAS_SWITCH = 1145, - CMD_NAS_TEST = 1146, - CMD_NOTIFY_PAYLOAD = 1351, - CMD_P2P_DISCONNECT = 1044, - CMD_PING = 1139, - CMD_PIR_SWITCH = 1011, - CMD_RECORDDATE_SEARCH = 1041, - CMD_RECORDLIST_SEARCH = 1042, - CMD_RECORD_AUDIO_SWITCH = 1366, - CMD_RECORD_IMG = 1021, - CMD_RECORD_IMG_STOP = 1022, - CMD_RECORD_PLAY_CTRL = 1026, - CMD_RECORD_VIEW = 1025, - CMD_REPAIR_PROGRESS = 1058, - CMD_REPAIR_SD = 1057, - CMD_REPEATER_RSSI_TEST = 1269, - CMD_RF433_DONGLE_STATUS_CHANGE = 1900, - CMD_RF433_GET_DONGLE_STATE = 1901, - CMD_RF433_TRIGER_RING = 1902, - CMD_SDINFO = 1102, - CMD_SDINFO_EX = 1144, - CMD_SENSOR_SET_CHIRP_TONE = 1507, - CMD_SENSOR_SET_CHIRP_VOLUME = 1508, - CMD_SET_AI_NICKNAME = 1242, - CMD_SET_AI_PHOTO = 1231, - CMD_SET_AI_SWITCH = 1236, - CMD_SET_ALL_ACTION = 1255, - CMD_SET_ARMING = 1224, - CMD_SET_ARMING_SCHEDULE = 1211, - CMD_SET_AS_SERVER = 1237, - CMD_SET_AUDDEC_INFO = 1212, - CMD_SET_AUDDEC_SENSITIVITY = 1213, - CMD_SET_AUDIOSENSITIVITY = 1227, - CMD_SET_AUDIO_MUTE_RECORD = 1288, - CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT = 2123, - CMD_SET_AUTO_DELETE_RECORD = 1367, - CMD_SET_BITRATE = 1206, - CMD_SET_CUSTOM_MODE = 1256, - CMD_SET_DEVS_NAME = 1217, - CMD_SET_DEVS_OSD = 1214, - CMD_SET_DEVS_TONE_FILE = 1202, - CMD_SET_DEV_MD_RECORD = 1273, - CMD_SET_DEV_MIC_MUTE = 1240, - CMD_SET_DEV_MIC_VOLUME = 1229, - CMD_SET_DEV_SPEAKER_MUTE = 1241, - CMD_SET_DEV_SPEAKER_VOLUME = 1230, - CMD_SET_DEV_STORAGE_TYPE = 1228, - CMD_SET_DOORSENSOR_ALWAYS_OPEN = 1290, - CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY = 1291, - CMD_SET_FLOODLIGHT_BRIGHT_VALUE = 1401, - CMD_SET_FLOODLIGHT_DETECTION_AREA = 1407, - CMD_SET_FLOODLIGHT_LIGHT_SCHEDULE = 1404, - CMD_SET_FLOODLIGHT_MANUAL_SWITCH = 1400, - CMD_SET_FLOODLIGHT_STREET_LAMP = 1402, - CMD_SET_FLOODLIGHT_TOTAL_SWITCH = 1403, - CMD_SET_FLOODLIGHT_WIFI_CONNECT = 1406, - CMD_SET_GSSENSITIVITY = 1226, - CMD_SET_HUB_ALARM_AUTO_END = 1280, - CMD_SET_HUB_ALARM_CLOSE = 1279, - CMD_SET_HUB_AUDEC_STATUS = 1222, - CMD_SET_HUB_GS_STATUS = 1220, - CMD_SET_HUB_IRCUT_STATUS = 1219, - CMD_SET_HUB_MVDEC_STATUS = 1221, - CMD_SET_HUB_NAME = 1216, - CMD_SET_HUB_OSD = 1253, - CMD_SET_HUB_PIR_STATUS = 1218, - CMD_SET_HUB_SPK_VOLUME = 1235, - CMD_SET_IRMODE = 1208, - CMD_SET_JSON_SCHEDULE = 1254, - CMD_SET_LANGUAGE = 1200, - CMD_SET_LIGHT_CTRL_BRIGHT_PIR = 1412, - CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425 = 1422, - CMD_SET_LIGHT_CTRL_BRIGHT_SCH = 1413, - CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425 = 1421, - CMD_SET_LIGHT_CTRL_LAMP_VALUE = 1410, - CMD_SET_LIGHT_CTRL_PIR_SWITCH = 1408, - CMD_SET_LIGHT_CTRL_PIR_TIME = 1409, - CMD_SET_LIGHT_CTRL_SUNRISE_INFO = 1415, - CMD_SET_LIGHT_CTRL_SUNRISE_SWITCH = 1414, - CMD_SET_LIGHT_CTRL_TRIGGER = 1411, - CMD_SET_MDETECTPARAM = 1204, - CMD_SET_MDSENSITIVITY = 1272, - CMD_SET_MIRRORMODE = 1207, - CMD_SET_MOTION_SENSITIVITY = 1276, - CMD_SET_NAS_PASSWD = 1287, - CMD_SET_NIGHT_VISION_TYPE = 1277, - CMD_SET_NOTFACE_PUSHMSG = 1248, - CMD_SET_PAYLOAD = 1350, - CMD_SET_PIRSENSITIVITY = 1210, - CMD_SET_PIR_INFO = 1209, - CMD_SET_PIR_POWERMODE = 1246, - CMD_SET_PIR_TEST_MODE = 1243, - CMD_SET_POWER_CHARGE = 1293, - CMD_SET_PRIVACYPARAM = 1295, - CMD_SET_PRI_ACTION = 1233, - CMD_SET_PROMPT_VOLUME = 1292, - CMD_SET_PUSH_EFFECT = 1289, - CMD_SET_RECORDTIME = 1203, - CMD_SET_RECORD_QUALITY = 1286, - CMD_SET_REPEATER_PARAMS = 1264, - CMD_SET_RESOLUTION = 1205, - CMD_SET_SCHEDULE_DEFAULT = 1257, - CMD_SET_SNOOZE_MODE = 1271, - CMD_SET_STORGE_TYPE = 1223, - CMD_SET_TELNET = 1247, - CMD_SET_TIMEZONE = 1215, - CMD_SET_TONE_FILE = 1201, - CMD_SET_UPGRADE = 1238, - CMD_SNAPSHOT = 1028, - CMD_START_REALTIME_MEDIA = 1003, - CMD_START_RECORD = 1009, - CMD_START_REC_BROADCASE = 900, - CMD_START_TALKBACK = 1005, - CMD_START_VOICECALL = 1007, - CMD_STOP_REALTIME_MEDIA = 1004, - CMD_STOP_RECORD = 1010, - CMD_STOP_REC_BROADCASE = 901, - CMD_STOP_SHARE = 1023, - CMD_STOP_TALKBACK = 1006, - CMD_STOP_VOICECALL = 1008, - CMD_STREAM_MSG = 1302, - CMD_STRESS_TEST_OPER = 1050, - CMD_TIME_SYCN = 1033, - CMD_UNBIND_ACCOUNT = 1002, - CMD_VIDEO_FRAME = 1300, - CMD_WIFI_CONFIG = 1032, - SWITCH_TIME = 1162, - CMD_BATTERY_FALSE_EVENT_COUNT = 6056, - CMD_FLOODLIGHT_GET_WIFI_RSSI_INFO = 6080, - CMD_INDOOR_AI_CRYING_ENABLE = 6024, - CMD_INDOOR_AI_MOTION_ENABLE = 6023, - CMD_INDOOR_AI_PERSON_ENABLE = 6022, - CMD_INDOOR_AI_PET_ENABLE = 6026, - CMD_INDOOR_AI_SOUND_ENABLE = 6025, - CMD_INDOOR_SET_MOTION_DETECTION_TYPE = 6027, - CMD_INDOOR_CONTINUE_RECORD_SCHEDULE = 6013, - CMD_INDOOR_DET_SET_ACTIVE_ZONE = 6042, - CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE = 6040, - CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE = 6045, - CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX = 6041, - CMD_INDOOR_DET_SET_PET_ENABLE = 6047, - CMD_INDOOR_DET_SET_PET_EXPEL_RESPONSOR = 6048, - CMD_INDOOR_DET_SET_PET_EXPEL_RESP_IDX = 6049, - CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE = 6043, - CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE = 6046, - CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX = 6044, - CMD_INDOOR_EVENT_COUNT = 6053, - CMD_INDOOR_HK_ACTIVE_HOMEKIT = 6061, - CMD_INDOOR_HK_GET_HK_BIND_STATUS = 6062, - CMD_INDOOR_LED_SWITCH = 6014, - CMD_INDOOR_NAS_STORAGE_TYPE = 6050, - CMD_INDOOR_OWNER_STREAM_TYPE = 6052, - CMD_INDOOR_PAN_CALIBRATION = 6017, - CMD_OUTDOOR_PAN_CALIBRATION = 6251, - CMD_INDOOR_PAN_MOTION_TRACK = 6016, - CMD_INDOOR_PAN_SPEED = 6015, - CMD_INDOOR_PUSH_JUMP_TYPE = 6021, - CMD_INDOOR_PUSH_NOTIFY_TYPE = 6020, - CMD_INDOOR_SET_CONTINUE_ENABLE = 6010, - CMD_INDOOR_SET_CONTINUE_TYPE = 6011, - CMD_INDOOR_SET_RECORD_AUDIO_ENABLE = 6012, - CMD_INDOOR_SHOW_SDCARD = 6054, - CMD_INDOOR_TFCARD_NAS_STATUS = 6051, - CMD_INDOOR_ROTATE = 6030, - CMD_OUTDOOR_ROTATE = 6038, - CMD_INDOOR_ENABLE_PRIVACY_MODE = 6090, - CMD_INDOOR_SET_PRIVACY_ANGLE = 6091, - CMD_INDOOR_DEFAULT_ANGLE_SET = 6092, - CMD_INDOOR_DEFAULT_ANGLE_ENABLE = 6093, - CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME = 6094, - CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK = 6095, - CMD_T8200X_SET_RINGTONE_VOLUME = 6096, - CMD_IN_TEST_MODE = 6072, - CMD_PLAY_BACK_EVENT_STOP = 1055, - CMD_SET_DETECT_TYPE = 6071, - CMD_SET_PIR_SENSITIVITY = 6070, - CMD_SMARTLOCK_QUERY_BATTERY_LEVEL = 6001, - CMD_SMARTLOCK_QUERY_STATUS = 6000, - P2P_ADD_PW = 1950, - P2P_CALIBRATE_LOCK = 1960, - P2P_DELETE_FINGER = 1953, - P2P_DELETE_USER = 1951, - P2P_ENTER_OTA = 1238, - P2P_GET_FINGER_PW_USAGE = 1963, - P2P_GET_LOCK_PARAM = 1959, - P2P_GET_USER_AND_PW_ID = 1964, - P2P_ON_OFF_LOCK = 1961, - P2P_PULL_BLE = 1962, - P2P_QUERY_PW = 1954, - P2P_QUERY_STATUS_IN_LOCK = 1955, - P2P_RESET = 1040, - P2P_SET_LOCK_PARAM = 1958, - P2P_UPDATE_PW = 1957, - P2P_UPDATE_USER_TIME = 1956, - SUB1G_REP_BIND_FAILED = 2109, - SUB1G_REP_CHARGE_STATE = 2108, - SUB1G_REP_POWER_OFF = 2110, - SUB1G_REP_RUNTIME_STATE = 2107, - SUB1G_REP_UNPLUG_POWER_LINE = 2111, - CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425 = 6073, - CMD_FLOODLIGHT_SET_DETECTION_RANGE = 6086, - CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY = 6087, - CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY = 6081, - CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY = 6083, - CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY = 6085, - CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY = 6107, - CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION = 6032, - CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION = 6033, - CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION = 6035, - CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE = 6031, - CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION = 6098, - CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL = 6100, - CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION = 6101, - CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE = 6102, - CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT = 6105, - CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION = 6106, - CMD_FLOODLIGHT_SET_AUTO_CALIBRATION = 6099, - CMD_SMARTLOCK_AUTO_LOCK = 6500, - CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE = 6501, - CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME = 6601, - CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME = 6602, - CMD_SMARTLOCK_LOCK_SOUND = 6505, - CMD_SMARTLOCK_LOG = 6700, - CMD_SMARTLOCK_NOTIFICATION = 6506, - CMD_SMARTLOCK_NOTIFICATION_LOCKED = 6606, - CMD_SMARTLOCK_NOTIFICATION_UNLOCKED = 6605, - CMD_SMARTLOCK_ONE_TOUCH_LOCK = 6502, - CMD_SMARTLOCK_SCRAMBLE_PASSCODE = 6504, - CMD_SMARTLOCK_WIFI_STATUS = 6507, - CMD_SMARTLOCK_WRONG_TRY_PROTECT = 6503, - CMD_SMARTLOCK_AUTO_LOCK_TIMER = 6600, - CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN = 6604, - CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS = 6603, - CMD_SMARTLOCK_NIGHT_VISION_ENHANCE = 6614, - CMD_SMARTLOCK_NIGHT_VISION_SIDE = 6615, - CMD_SMARTLOCK_LEFT_OPEN_ALARM = 6616, - CMD_SMARTLOCK_TAMPER_ALARM = 6617, - CMD_SMARTLOCK_VOLUME = 6618, - CMD_DOORBELL_DUAL_VIEW_MODE = 2700, - CMD_DOORBELL_DUAL_VIEW_MODE2 = 6243, - CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY = 2705, - CMD_DOORBELL_DUAL_RADAR_WD_SWITCH = 2706, - CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE = 2707, - CMD_DOORBELL_DUAL_RADAR_WD_TIME = 2708, - CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH = 2709, - CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE = 2710, - CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME = 2711, - CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH = 2712, - CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME = 2713, - CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH = 2714, - CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE = 2715, - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE = 2716, - CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH = 2723, - CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT = 2725, - CMD_SMARTSAFE_ALERT_VOLUME = 1946165264, - CMD_SMARTSAFE_IS_ENABLE_BEEP = 1946165248, - CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT = 1946165251, - CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN = 1946165262, - CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM = 1946165255, - CMD_SMARTSAFE_IS_ENABLE_STATUS_CHANGE_NOTIFY = 1946165258, - CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK = 1946165256, - CMD_SMARTSAFE_IS_PWD_SET = 1946165254, - CMD_SMARTSAFE_IS_SET_PREFIX_PWD = 1946165257, - CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL = 1946165250, - CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND = 1946165261, - CMD_SMARTSAFE_LEFT_OPEN_SECONDS = 1946165263, - CMD_SMARTSAFE_LOCK_STATUS = 1946165260, - CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES = 1946165252, - CMD_SMARTSAFE_NOTIF = 1946165265, - CMD_SMARTSAFE_PANIC_FINGER_COUNT = 1946165268, - CMD_SMARTSAFE_POWER_SAVE_ON = 1946165267, - CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS = 1946165253, - CMD_SMARTSAFE_REMOTE_OPEN_TYPE = 1946165266, - CMD_SMARTSAFE_RSSI = 1946165259, - CMD_SMARTSAFE_VOLUME = 1946165249, - CMD_SMARTSAFE_PARAM_BASE = 1946165248, - CMD_SMARTSAFE_SETTINGS = 1946157056, - CMD_SMARTSAFE_STATUS_UPDATE = 1946157057, - CMD_SET_PAYLOAD_LOCKV12 = 1930, - CMD_SET_MOTION_DETECTION_TYPE_HB3 = 1298, - CMD_GET_WORKING_DAYS_HB3 = 1191, - CMD_GET_DETECTED_EVENTS_HB3 = 1192, - CMD_GET_RECORDED_EVENTS_HB3 = 1193, - CELLULAR_INFO = 7002, - CELLULAR_SIGNAL_STRENGTH = 7006, - CMD_DATABASE_COUNT = 10005, - CMD_DATABASE_COUNT_BY_DEVICE = 10012, - CMD_DATABASE_COUNT_BY_DATE = 10008, - CMD_DATABASE_DELETE = 10001, - CMD_DATABASE_DOWNLOAD = 8001, - CMD_DATABASE_IMAGE = 1308, - CMD_DATABASE_QUERY = 10000, - CMD_DATABASE_QUERY_BY_DATE = 10006, - CMD_DATABASE_QUERY_COMBINATION = 10009, - CMD_DATABASE_QUERY_COMBINATION_WITH_AI = 10011, - CMD_DATABASE_QUERY_LATEST_INFO = 10013, - CMD_DATABASE_SYNC = 10003, - CMD_DATABASE_UPDATE = 10002, - CMD_DATABASE = 1306, - CMD_SYNC_QUERY_RECENT_PACKAGE_INFO = 10018, - CMD_DATABASE_QUERY_LOCAL = 10017, - CMD_WALL_LIGHT_SPEAKER_VOLUME = 6342, - CMD_WALL_LIGHT_ALERT_VOLUME = 6347, - CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN = 6330, - CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL = 6332, - CMD_WALL_LIGHT_NOTIFICATION = 6334, - CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN = 6335, - CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL = 6337, - CMD_WALL_LIGHT_NOTIFICATION_TYPE = 6338, - CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS = 6379,// [{"color":16760832},{"color":16744448},{"color":16728320},{"color":16720384},{"color":16711696},{"color":3927961},{"color":1568995},{"color":485368},{"color":9983},{"color":4664060},{"color":16769280}] - CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES = 6380,// [{"name":"Aurora","mode":1,"id":0,"speed":4000,"colors":[65321,65468,28671,9215,42239]},{"name":"Warmth","mode":1,"id":1,"speed":4000,"colors":[16758528,16744448,16732160,16719360,16742144]},{"name":"Let's Party","mode":2,"id":2,"speed":500,"colors":[16718080,16756736,65298,40703,4980991]}] - CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE = 6381, - CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE = 6382, - CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE = 6383, - CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING = 6361, - CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING = 6384, - CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING = 6366, - CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING = 6367, - CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING = 6385, - CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING = 6372, - CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING = 6373, - CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING = 6386, - CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING = 6378, - CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING = 7511, - CMD_CAMERA_GARAGE_DOOR_STATUS = 7500, - CMD_CAMERA_GARAGE_DOOR_CALIBRATE = 7505, - CMD_CAMERA_GARAGE_DOOR_SENSORS = 7503, - CMD_STORAGE_INFO_HB3 = 1307, - CMD_SET_FLICKER_ADJUSTMENT = 8000, - CMD_SET_CROSS_CAMERA_TRACKING = 1065, - CMD_SET_TRACKING_ASSISTANCE = 1069, - CMD_SET_CONTINUOUS_TRACKING_TIME = 1070, - CMD_SET_CROSS_TRACKING_CAMERA_LIST = 1072, - CMD_SET_CROSS_TRACKING_GROUP_LIST = 1073, - CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350 = 6208, - CMD_INDOOR_ENABLE_PRIVACY_MODE_S350 = 6250, - CMD_MOTION_SET_LEAVING_DETECTION = 2726, - CMD_MOTION_SET_LEAVING_REACTIONS = 2727, - CMD_SMARKLOCK_ADD_FINGER = 1965, - CMD_SMARKLOCK_ADD_FINGER_STEP = 1967, - CMD_SMARKLOCK_CANCLE_FINGER = 1966, - CMD_SMARTLOCK_ALARM_NOTIFY = 1970, - CMD_SMARTLOCK_ALARM_STOP = 1971, - CMD_SMARTLOCK_GET_DOOR_STATUS = 1972, - CMD_TRANSFER_PAYLOAD = 1940, - CMD_WIFILOCK_KEYPAD_ENTER_OTA = 1933, - CMD_SMART_DROP_DELIVERY_MODE = 2103, - CMD_SMART_DROP_OPEN = 2105, - CMD_SMART_DROP_OPEN_LID = 2100, - CMD_SMART_DROP_IS_DENIED_DELIVERY = 2106, - CMD_SMART_DROP_HAS_MASTER_PIN = 2109, - CMD_SMART_DROP_IS_PIN_REQUIRED = 2107 -} -export declare enum MessageType { - INIT_P2P_CLIENT_TYPE = 1, - CONNECT_P2P_TYPE = 2, - DEINIT_P2P_CLIENT_TYPE = 3, - SET_COMMAND_WITH_INT_TYPE = 4, - GET_COMMAND_WITH_INT_TYPE = 5, - SET_COMMAND_WITH_STRING_TYPE = 6, - GET_COMMAND_WITH_STRING_TYPE = 7, - SET_REC_BROADCAT_STATE_TYPE = 8, - SET_COMMAND_WITH_M_STRING = 9, - SET_COMMAND_WITH_INT_STRING_TYPE = 10, - SET_SCHEDULE_TYPE = 11, - BATCH_DEL_EVENT_TYPE = 12, - ADD_AI_FACE_INFO_TYPE = 13, - SET_COMMAND_WITH_2INT_MSTRING = 14, - CHECK_HUB_STATE = 15, - SET_COMMAND_WITH_2STR_INT = 16, - BIND_HUB_TYPE = 17, - P2P_BIND_HUB_TYPE = 18 -} -export declare enum ErrorCode { - ERROR_BIND_CLIENT_SOCKET_CREATE_FAIL = -304, - ERROR_BIND_CLIENT_SOCKET_RECEIVE_LEN_ERROR = -307, - ERROR_BIND_CLIENT_SOCKET_RECEIVE_TIMEOUT = -306, - ERROR_BIND_CLIENT_SOCKET_SEND_FAIL = -305, - ERROR_BIND_COMMAND_ERROR = -309, - ERROR_BIND_PARAM_NULL = -308, - ERROR_BROADCAST_RECEIVE_SN_NULL = -303, - ERROR_BROADCAST_RECEIVE_TIME_OUT = -302, - ERROR_BROADCAST_START_ALREADY_RUNNING = -300, - ERROR_BROADCAST_STOP_SOCKET_FD_ERROR = -301, - ERROR_CLOSE_HOMEKIT = -143, - ERROR_COMMAND_TIMEOUT = -133, - ERROR_CONNECT_TIMEOUT = -134, - ERROR_DEV_BUSY = -114, - ERROR_DEV_CLOSE = -128, - ERROR_DEV_OFFLINE = -109, - ERROR_DEV_UPDATEING = -113, - ERROR_GET_EXEC_RESULT = -120, - ERROR_HAVE_CONNECT = -101, - ERROR_HIGHT_TEMPERATURE = -121, - ERROR_HUB_NON_ADMIN = -125, - ERROR_HUB_UPDATEING = -112, - ERROR_INVALID_ACCOUNT = -104, - ERROR_INVALID_COMMAND = -103, - ERROR_INVALID_PARAM = -110, - ERROR_INVALID_PARAM_LEN = -107, - ERROR_MAX_DEV_CONNECT_NUM = -123, - ERROR_MAX_HUB_CONNECT_NUM = -102, - ERROR_MAX_NAS_CONNECT_NUM = -130, - ERROR_MODE_DISABLE = -129, - ERROR_NETWORK_NOT_AVAILABLE = 998, - ERROR_NOT_FACE = -115, - ERROR_NOT_FIND_DEV = -106, - ERROR_NOT_TFCARD = -118, - ERROR_NULL_POINT = -100, - ERROR_OPEN_FILE_FAIL = -111, - ERROR_PARAM_NO_CHANGE = -116, - ERROR_PIPE_FAIL = -124, - ERROR_PLAY_STOP = -127, - ERROR_POWER_LOW = -117, - ERROR_PPCS_ALREADY_INITIALIZED = -2, - ERROR_PPCS_CONNECTING = -126, - ERROR_PPCS_DEVICE_NOT_ONLINE = -6, - ERROR_PPCS_FAIL_TO_CREATE_THREAD = -22, - ERROR_PPCS_FAIL_TO_RESOLVE_NAME = -7, - ERROR_PPCS_ID_OUT_OF_DATE = -9, - ERROR_PPCS_INVALID_APILICENSE = -21, - ERROR_PPCS_INVALID_DSK = -23, - ERROR_PPCS_INVALID_ID = -4, - ERROR_PPCS_INVALID_PARAMETER = -5, - ERROR_PPCS_INVALID_PREFIX = -8, - ERROR_PPCS_INVALID_SESSION_HANDLE = -11, - ERROR_PPCS_MAX_SESSION = -17, - ERROR_PPCS_NOT_INITIALIZED = -1, - ERROR_PPCS_NO_RELAY_SERVER_AVAILABLE = -10, - ERROR_PPCS_RELAY = 1, - ERROR_PPCS_REMOTE_SITE_BUFFER_FULL = -15, - ERROR_PPCS_SESSION_CLOSED_CALLED = -14, - ERROR_PPCS_SESSION_CLOSED_INSUFFICIENT_MEMORY = -20, - ERROR_PPCS_SESSION_CLOSED_REMOTE = -12, - ERROR_PPCS_SESSION_CLOSED_TIMEOUT = -13, - ERROR_PPCS_SUCCESSFUL = 0, - ERROR_PPCS_TIME_OUT = -3, - ERROR_PPCS_UDP_PORT_BIND_FAILED = -18, - ERROR_PPCS_USER_CONNECT_BREAK = -19, - ERROR_PPCS_USER_LISTEN_BREAK = -16, - ERROR_SET_P2P_INFO = -122, - ERROR_STATION_HAS_BIND = 20020, - ERROR_TFCARD_FORMATING = -119, - ERROR_TFCARD_REPAIRING = -135, - ERROR_TFCARD_VOLUME_OVERFLOW = -132, - ERROR_WAIT_TIMEOUT = -108, - ERROR_WAKEUP_CAMRA_TYPE = -131, - ERROR_WRITE_FLASH = -105, - ERROR_XM_BASE = -200, - ERROR_XM_WIFI_DISCONNECT = -203, - ERROR_XM_WIFI_TIMEOUT = -205, - ERROR_XM_WIFI_WAKEUP_FAIL = -204, - ERROR_LIMIT_REACHED = -500, - ERROR_FAILED_TO_REQUEST = 503, - ERROR_SEQUENCE_NUMBER = -151 -} -export declare enum TFCardStatus { - NULL = -1, - NORMAL = 0, - NON_ORIGINAL = 1, - MOUNT_FAIL = 2, - FORMAT_FAIL = 3, - REMOVE = 4, - FORMATING = 5, - BUSY = 6, - E2FSCK_FAIL_MOUNT_RW = 7, - E2FSCK_FAIL_MOUNT_FAIL_REINSERT = 8, - E2FSCK_FAIL_MOUNT_RO = 9, - E2FSCK_FAIL_MOUNT_RW_ERR = 10, - REPAIRING = 11, - MOUNT_FAIL_E2FSCK_ERROR = 12, - MOUNT_FAIL_E2FSCK_TIMEOUT = 13, - MOUNT_RW_E2FSCK_ERROR = 14, - MOUNT_RW_E2FSCK_TIMEOUT = 15, - MOUNT_RO_E2FSCK_OK = 16, - MOUNT_RO_E2FSCK_ERROR = 17, - MOUNT_RO_E2FSCK_TIMEOUT = 18, - MOUNT_RERR_E2FSCK_OK = 19, - MOUNT_RERR_E2FSCK_ERROR = 20, - MOUNT_RERR_E2FSCK_TIMEOUT = 21, - UNNORMAL_IO_ERROR = 22, - RISK = 23, - MOUNTING = 24 -} -export declare enum AlarmEvent { - HUB_STOP = 0, - DEV_STOP = 1, - GSENSOR = 2, - PIR = 3, - APP = 4, - HOT = 5, - DOOR = 6, - CAMERA_PIR = 7, - MOTION_SENSOR = 8, - CAMERA_GSENSOR = 9, - CAMERA_APP = 10, - CAMERA_LINKAGE = 11, - HUB_KEYPAD = 13, - HUB_STOP_BY_KEYPAD = 15, - HUB_STOP_BY_APP = 16, - HUB_STOP_BY_HAND = 17, - APP_LIGHT = 22, - APP_LIGHT_SOUND = 23, - MOTION_APP_LIGHT = 24, - MOTION_APP_LIGHT_ALARM = 25 -} -export declare enum WatermarkSetting1 { - OFF = 0, - ON = 1 -} -export declare enum WatermarkSetting2 { - OFF = 1, - ON = 2 -} -export declare enum WatermarkSetting3 { - OFF = 0, - TIMESTAMP = 1, - TIMESTAMP_AND_LOGO = 2 -} -export declare enum WatermarkSetting4 { - TIMESTAMP = 0, - TIMESTAMP_AND_LOGO = 1, - OFF = 2 -} -export declare enum WatermarkSetting5 { - LOGO = 1, - OFF = 2 -} -export declare enum PanTiltDirection { - ROTATE360 = 0, - LEFT = 1, - RIGHT = 2, - UP = 3, - DOWN = 4 -} -export declare enum VideoCodec { - UNKNOWN = -1, - H264 = 0, - H265 = 1 -} -export declare enum AudioCodec { - UNKNOWN = -1, - NONE = 0, - AAC = 1,// 0 - AAC_LC = 2,// 1 - AAC_ELD = 3 -} -export declare enum ESLCommand { - ACTIVATE_DEVICE = 107, - ADD_FINGER = 6003, - ADD_FINGER_STEP = 6029, - ADD_PW = 6002, - BIND_LOCK = 101, - CALIBRATE_LOCK = 6017, - CANCEL_ADD_FINGER = 115, - CHECK_KEYPAD_CONNECT = 130, - CREATE_TEMPORARY_PW = 125, - DELETE_FINGER = 6006, - DELETE_LOCK_EVENT = 127, - DELETE_PW = 6005, - DELETE_USER = 6004, - ECDH_CONSULT = 131, - ECDH_MODE_GET_PUBLIC_KEY = 138, - END_BIND = 102, - ENTER_OTA = 6020, - ENTER_OTA_UPDATE = 116, - GET_FINGER_PW_USAGE = 6022, - GET_KEYPAD_INFO = 136, - GET_LOCK_PARAM = 6016, - GET_LOCK_PUBLIC_KEY = 121, - GET_USER_ID_AND_PW_ID = 6027, - HEART_BEAT = 6001, - KEYPAD_ENTER_OTA = 135, - KEYPAD_VERIFY_APP = 134, - LOCK_KEYPAD_BIND_NOTIFY = 133, - MANUAL_CALIBRATE = 128, - MODIFY_NAME = 119, - NOTIFY = 110, - ON_OFF_LOCK = 6018, - PULL_BLE = 6024, - QUERY_ALL_USERS = 6007, - QUERY_LOCK_RECORD = 122, - QUERY_ONE_USER = 6008, - QUERY_PW = 6009, - QUERY_PW_LIST = 6010, - QUERY_STATUS_IN_LOCK = 6012, - QUERY_STATUS_IN_SERVER = 6011, - RECEIVE_SEQ_NUM = 6028, - REMOVE_DEVICE = 124, - REMOVE_KEYPAD = 137, - RESET = 6019, - SAVE_LOCK_PARAM_TO_SERVER = 6023, - SEND_LOCK_INFO_TO_KEYPAD = 132, - SEND_OTA_PACKAGE = 117, - SET_LOCK_PARAM = 6015, - SHUT_DOWN_BLE = 6026, - TEMPORARY_PW_LIST = 126, - UPDATE_PW = 6014, - UPDATE_USER_TIME = 6013, - VERIFY_IDENTITY = 6000, - VERIFY_PW = 118, - WIFI_CONNECT = 106, - WIFI_LIST = 105, - WIFI_SCAN = 104 -} -export declare enum ESLBleCommand { - BIND_LOCK = 1, - VERIFY_IDENTITY = 2, - HEART_BEAT = 3, - ACTIVATE_DEVICE = 4, - ADD_PW = 5, - CALIBRATE_LOCK = 7, - ON_OFF_LOCK = 8, - RESET = 9, - WIFI_SCAN = 10, - WIFI_LIST = 11, - WIFI_CONNECT = 12, - ADD_FINGER = 13, - DELETE_FINGER = 14, - DELETE_USER = 15, - CANCEL_ADD_FINGER = 16, - QUERY_STATUS_IN_LOCK = 17, - NOTIFY = 18, - END_BIND = 21, - GET_LOCK_PUBLIC_KEY = 22, - VERIFY_PW = 23, - QUERY_LOCK_RECORD = 24, - QUERY_ALL_USERS = 25, - QUERY_PW = 26, - UPDATE_PW = 27, - UPDATE_USER_TIME = 28, - MODIFY_NAME = 29, - GET_FINGER_PW_USAGE = 30, - ENTER_OTA_UPDATE = 31, - SEND_OTA_PACKAGE = 32, - GET_LOCK_PARAM = 33, - SET_LOCK_PARAM = 34, - SHUT_DOWN_BLE = 36 -} -export declare enum ESLAnkerBleConstant { - a = -95, - b = -94, - c = -93, - d = -92, - e = -91, - f = -90, - g = -89, - h = -88, - i = -87, - j = -86 -} -export declare enum P2PConnectionType { - ONLY_LOCAL = 1, - QUICKEST = 2 -} -export declare enum IndoorSoloSmartdropCommandType { - CMD_ANSWERING_RING_RECORD = 1027, - CMD_AUDIO_RECORD = 1029, - CMD_BRIGHTNESS = 1021, - CMD_CHIME_BIND = 1007, - CMD_CHIME_OPEN = 1006, - CMD_DELETE_HISTORY_FILE = 1011, - CMD_DELETE_METERING_ZONE = 1014, - CMD_ENABLE_HDR = 1019, - CMD_END_SPEAK = 1002, - CMD_FIXED_RESOLUTION = 1018, - CMD_LED_NIGHT_OPEN = 1026, - CMD_MOTION_ADVANCE_OPTION_DEFAULT = 1028, - CMD_MOTION_DETECTION_PACKAGE = 1016, - CMD_MOTION_DETECTION_ZONE = 1009, - CMD_MOTION_DETECTION_ZONE_DELETE = 1008, - CMD_MOTION_UN_DETECTION_ZONE = 1024, - CMD_MOTION_UN_DETECTION_ZONE_DELETE = 1025, - CMD_QUERY_DEVICE_VOLTAGE = 1015, - CMD_QUICK_RESPONSE = 1004, - CMD_SEND_VIDEO_BITRATE = 1017, - CMD_SET_METERING_ZONE = 1013, - CMD_SET_RINGTONE_VOLUME = 1012, - CMD_START_LIVE = 1000, - CMD_START_SPEAK = 1001, - CMD_STREAM_INFO = 1005, - CMD_UPDATE_QUICK_RESPONSE = 1010, - CMD_VIDEO_DISTORTIONCORRECTION = 1022, - CMD_VIDEO_QUALITY = 1020, - CMD_VIDEO_RECORD_QUALITY = 1023, - CMD_ZOOM_REGION = 1003 -} -export declare enum SmartSafeCommandCode { - BIND_CMD = 1, - VERIFY_IDENTITY = 2, - DEFAULT = 3, - ACTIVATE_DEVICE = 4, - ADD_PASSWORD = 5, - QUERY_IS_SET_PASSWORD = 6, - ADD_FINGERPRINT = 7, - DELETE_FINGERPRINT = 8, - QUERY_FINGERPRINT_LIST = 9, - ENTER_OTA_UPDATE = 10, - SEND_OTA_PACKAGE = 11, - QUERY_LOCK_STATUS = 12, - UNLOCK = 13, - QUERY_BATTERY = 14, - SET_LOCK_ALARM = 15, - SET_CRACK_PROTECT = 16, - UNLOAD_BATTERY = 17, - QUERY_FW_CODE = 18, - SCAN_WIFI = 19, - QUERY_WIFI_LIST = 20, - CONNECT_WIFI = 21, - QUERY_CRACK_PROTECT = 22, - QUERY_LOCK_ALARM = 23, - QUERY_SCRAMBLE_PASSWORD = 24, - SET_SCRAMBLE_PASSWORD = 25, - QUERY_DUAL_UNLOCK = 26, - SET_DUAL_UNLOCK = 27, - UNLOCK_EVENTS = 28, - CANCEL_FINGERPRINT = 29, - ACTIVE_WIFI = 30, - SET_VOLUME = 31, - QUERY_VOLUME = 32, - SET_LIGHT = 33, - QUERY_LIGHT = 34, - SET_SHAKE = 35, - QUERY_SHAKE = 36, - UNBIND = 37, - UPDATE_FINGERPRINT = 38, - UPDATE_NAME = 39, - SET_PUSH = 40, - QUERY_PUSH = 41, - SET_VOLUME_ALERT = 42, - QUERY_VOLUME_ALERT = 43, - QUERY_PASSWORD = 44, - SET_UNLOCK_MODE = 45, - QUERY_UNLOCK_MODE = 46, - SET_VERIFY_PIN = 47, - UNLOCK_EVENTS2 = 48, - UNLOCK_EVENTS3 = 49, - SET_POWERSAVE = 50, - QUERY_POWERSAVE = 51, - SEND_WIFI_OTA = 52, - QUERY_IS_SET_PANIC_FINGERPRINT = 53 -} -export declare enum SmartSafeAlarm911Event { - CANCEL_ALARM = 0, - ALARM = 1, - ALARM_SUCCESS = 2, - ALARM_NOT_OPEN = 3, - ALARM_OPEN_FAILED = 4 -} -export declare enum SmartSafeShakeAlarmEvent { - CANCEL_ALARM = 0, - ALARM = 1 -} -export declare enum SmartSafeBatteryTemperatureEvent { - NORMAL = 0, - LOW = 1, - HIGH = 2 -} -export declare enum SmartSafeBatteryStatusEvent { - NOT_CHARGING = 0, - CHARGING = 1 -} -export declare enum DatabaseReturnCode { - ERROR_DB_NOT_READY = -1100, - SUCCESSFUL = 0 -} -export declare enum P2PStorageType { - NONE = 0, - EMMC = 1, - HD = 2, - SDCARD = 3, - SENSOR = 4, - ALARM = 5 -} -export declare enum FilterStorageType { - NONE = 0, - LOCAL = 1, - CLOUD = 2 -} -export declare enum FilterEventType { - ALL = 0, - VIDEO = 1, - ALERT = 2 -} -export declare enum FeatureTag { - USER = 0, - STRANGER = 1, - SELF_LEARNING_NO_CONFIRM = 2, - SELF_LEARNING_CONFIRM = 3, - SELF_LEARNING_ERROR_CONFIRM = 4 -} -export declare enum FilterDetectType { - NOT_SUPPORT = 0, - PERSON_FACE = 1, - PERSON_BODY = 2, - VEHICLE = 4, - PET = 8, - SOUND = 128, - CRYING = 256, - PACKAGE = 512, - PACKAGE_PICK_UP = 512, - PACKAGE_DELIVERED = 1024, - CROSS_DELIVERED = 2048 -} -export declare enum CalibrateGarageType { - ROLLER_DOOR = 1, - SECTIONAL_DOOR = 2, - TILT_DOOR = 3 -} -export interface LockV12P2PCommand { - aesKey: string; - bleCommand: number; - payload: LockV12P2PCommandType; -} -export interface SmartLockP2PCommand { - bleCommand: number; - payload: SmartLockP2PCommandType; -} -export declare enum EncryptionType { - NONE = 0, - LEVEL_1 = 1, - LEVEL_2 = 2 -} -export declare enum InternalP2PCommandType { - WithIntString = 0, - WithInt = 1, - WithStringPayload = 2, - WithString = 3, - WithoutData = 4 -} -export declare enum TrackerCommandType { - COMMAND_ANTILOST = 1001, - COMMAND_AUDIO_SETTING = 999, - COMMAND_BATTERY = 1003, - COMMAND_LOCATION = 1002, - COMMAND_LOST_MODE = 998, - COMMAND_NEW_LOCATION = 1008, - COMMAND_NOTIFICATION = 1004, - COMMAND_OPEN_ANTI_TOUCH = 1010, - COMMAND_TYPE_FINDMYPHONE = 1000, - DISTURB_LOCATION_LIST = 1007, - LOCATION_ADDRESS = 1006, - LOCATION_NEW_ADDRESS = 1009, - TYPE_ICON_INDEX = 1005 -} -export declare enum SmartLockCommand { - CALIBRATE_LOCK = 6017, - QUERY_STATUS_IN_LOCK = 6012, - ON_OFF_LOCK = 6018, - ADD_PW = 6002, - UPDATE_USER_TIME = 146, - UPDATE_PW = 6014, - QUERY_PW = 6009, - ADD_FINGER = 6003, - CANCEL_ADD_FINGER = 115, - DELETE_FINGER = 6006, - UPDATE_FINGER_NAME = 119, - QUERY_ALL_USERS = 6007, - DELETE_USER = 6004, - GET_FINGER_PW_USAGE = 6022, - WIFI_SCAN = 104, - WIFI_LIST = 105, - WIFI_CONNECT = 106, - ACTIVATE_DEVICE = 107, - SET_LOCK_PARAM = 6015, - GET_LOCK_PARAM = 6016, - GET_LOCK_EVENT = 122, - PULL_BLE = 6024, - NOTIFY = 142, - CONNECT = 138, - DISCONNECT = 141, - CAPACITY_NEGOTIATION = 139, - SET_CAPACITY = 140, - VERIFY_IDENTIFY = 6000, - BIND = 101, - UNBIND = 124, - HEARTBEAT = 6001, - RESET = 6019, - BIND_SUCCESS = 102 -} -export declare enum SmartLockFunctionType { - TYPE_1 = 1, - TYPE_2 = 2 -} -export declare enum SmartLockBleCommandFunctionType1 { - CONNECT = 1, - DISCONNECT = 2, - CAPACITY_NEGOTIATION = 3, - SET_CAPACITY = 5, - VERIFY_IDENTIFY = 34, - BIND = 35, - UNBIND = 36, - HEARTBEAT = 38, - GET_DEVICE_INFO = 41, - GET_OTA_STATUS = 44, - OTA_OPERATION = 45, - OTA_DATA_SENDING = 46, - RESET = 47, - BIND_SUCCESS = 48 -} -export declare enum SmartLockBleCommandFunctionType2 { - CALIBRATE_LOCK = 33, - QUERY_STATUS_IN_LOCK = 34, - ON_OFF_LOCK = 35, - ADD_PW = 36, - UPDATE_USER_TIME = 37, - UPDATE_PW = 38, - QUERY_PW = 39, - ADD_FINGER = 40, - CANCEL_ADD_FINGER = 41, - DELETE_FINGER = 42, - UPDATE_FINGER_NAME = 43, - QUERY_ALL_USERS = 44, - DELETE_USER = 45, - GET_FINGER_PW_USAGE = 46, - WIFI_SCAN = 48, - WIFI_LIST = 49, - WIFI_CONNECT = 50, - ACTIVATE_DEVICE = 51, - SET_LOCK_PARAM = 52, - GET_LOCK_PARAM = 53, - GET_LOCK_EVENT = 56, - PULL_BLE = 61, - NOTIFY = 74 -} diff --git a/build/p2p/types.js b/build/p2p/types.js deleted file mode 100644 index e6dfab37..00000000 --- a/build/p2p/types.js +++ /dev/null @@ -1,1219 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SmartLockBleCommandFunctionType2 = exports.SmartLockBleCommandFunctionType1 = exports.SmartLockFunctionType = exports.SmartLockCommand = exports.TrackerCommandType = exports.InternalP2PCommandType = exports.EncryptionType = exports.CalibrateGarageType = exports.FilterDetectType = exports.FeatureTag = exports.FilterEventType = exports.FilterStorageType = exports.P2PStorageType = exports.DatabaseReturnCode = exports.SmartSafeBatteryStatusEvent = exports.SmartSafeBatteryTemperatureEvent = exports.SmartSafeShakeAlarmEvent = exports.SmartSafeAlarm911Event = exports.SmartSafeCommandCode = exports.IndoorSoloSmartdropCommandType = exports.P2PConnectionType = exports.ESLAnkerBleConstant = exports.ESLBleCommand = exports.ESLCommand = exports.AudioCodec = exports.VideoCodec = exports.PanTiltDirection = exports.WatermarkSetting5 = exports.WatermarkSetting4 = exports.WatermarkSetting3 = exports.WatermarkSetting2 = exports.WatermarkSetting1 = exports.AlarmEvent = exports.TFCardStatus = exports.ErrorCode = exports.MessageType = exports.CommandType = exports.P2PDataTypeHeader = exports.P2PDataType = exports.ResponseMessageType = exports.RequestMessageType = void 0; -exports.RequestMessageType = { - STUN: Buffer.from([0xF1, 0x00]), - LOOKUP: Buffer.from([0xF1, 0x20]), - LOOKUP_WITH_KEY: Buffer.from([0xF1, 0x26]), - LOOKUP_WITH_KEY2: Buffer.from([0xF1, 0x6a]), - TURN_LOOKUP_WITH_KEY: Buffer.from([0xF1, 0x80]), - TURN_SERVER_INIT: Buffer.from([0xF1, 0x70]), - TURN_CLIENT_OK: Buffer.from([0xF1, 0x72]), - CHECK_CAM2: Buffer.from([0xF1, 0x83]), - LOCAL_LOOKUP: Buffer.from([0xF1, 0x30]), - PING: Buffer.from([0xF1, 0xE0]), - PONG: Buffer.from([0xF1, 0xE1]), - CHECK_CAM: Buffer.from([0xF1, 0x41]), - DATA: Buffer.from([0xF1, 0xD0]), - ACK: Buffer.from([0xF1, 0xD1]), - END: Buffer.from([0xF1, 0xF0]) -}; -exports.ResponseMessageType = { - STUN: Buffer.from([0xF1, 0x01]), - LOOKUP_RESP: Buffer.from([0xF1, 0x21]), - LOOKUP_ADDR: Buffer.from([0xF1, 0x40]), - LOCAL_LOOKUP_RESP: Buffer.from([0xF1, 0x41]), - TURN_SERVER_LIST: Buffer.from([0xF1, 0x69]), - TURN_SERVER_OK: Buffer.from([0xF1, 0x71]), - TURN_SERVER_TOKEN: Buffer.from([0xF1, 0x73]), - TURN_SERVER_LOOKUP_OK: Buffer.from([0xF1, 0x81]), - LOOKUP_ADDR2: Buffer.from([0xF1, 0x82]), - UNKNOWN_83: Buffer.from([0xF1, 0x83]), - TURN_SERVER_CAM_ID: Buffer.from([0xF1, 0x84]), - END: Buffer.from([0xF1, 0xF0]), - PONG: Buffer.from([0xF1, 0xE1]), - PING: Buffer.from([0xF1, 0xE0]), - CAM_ID: Buffer.from([0xF1, 0x42]), - ACK: Buffer.from([0xF1, 0xD1]), - DATA: Buffer.from([0xF1, 0xD0]) -}; -var P2PDataType; -(function (P2PDataType) { - P2PDataType[P2PDataType["UNKNOWN"] = -1] = "UNKNOWN"; - P2PDataType[P2PDataType["DATA"] = 0] = "DATA"; - P2PDataType[P2PDataType["VIDEO"] = 1] = "VIDEO"; - P2PDataType[P2PDataType["CONTROL"] = 2] = "CONTROL"; - P2PDataType[P2PDataType["BINARY"] = 3] = "BINARY"; -})(P2PDataType || (exports.P2PDataType = P2PDataType = {})); -exports.P2PDataTypeHeader = { - DATA: Buffer.from([0xD1, P2PDataType.DATA]), - VIDEO: Buffer.from([0xD1, P2PDataType.VIDEO]), - CONTROL: Buffer.from([0xD1, P2PDataType.CONTROL]), - BINARY: Buffer.from([0xD1, P2PDataType.BINARY]) -}; -var CommandType; -(function (CommandType) { - //com.oceanwing.battery.cam.zmedia.model.CommandType - CommandType[CommandType["ARM_DELAY_AWAY"] = 1158] = "ARM_DELAY_AWAY"; - CommandType[CommandType["ARM_DELAY_CUS1"] = 1159] = "ARM_DELAY_CUS1"; - CommandType[CommandType["ARM_DELAY_CUS2"] = 1160] = "ARM_DELAY_CUS2"; - CommandType[CommandType["ARM_DELAY_CUS3"] = 1161] = "ARM_DELAY_CUS3"; - CommandType[CommandType["ARM_DELAY_HOME"] = 1157] = "ARM_DELAY_HOME"; - CommandType[CommandType["ARM_DELAY_OFF"] = 1180] = "ARM_DELAY_OFF"; - CommandType[CommandType["AUTOMATION_DATA"] = 1278] = "AUTOMATION_DATA"; - CommandType[CommandType["AUTOMATION_ID_LIST"] = 1165] = "AUTOMATION_ID_LIST"; - CommandType[CommandType["CMD_ALARM_DELAY_AWAY"] = 1167] = "CMD_ALARM_DELAY_AWAY"; - CommandType[CommandType["CMD_ALARM_DELAY_CUSTOM1"] = 1168] = "CMD_ALARM_DELAY_CUSTOM1"; - CommandType[CommandType["CMD_ALARM_DELAY_CUSTOM2"] = 1169] = "CMD_ALARM_DELAY_CUSTOM2"; - CommandType[CommandType["CMD_ALARM_DELAY_CUSTOM3"] = 1170] = "CMD_ALARM_DELAY_CUSTOM3"; - CommandType[CommandType["CMD_ALARM_DELAY_HOME"] = 1166] = "CMD_ALARM_DELAY_HOME"; - CommandType[CommandType["CMD_AUDDEC_SWITCH"] = 1017] = "CMD_AUDDEC_SWITCH"; - CommandType[CommandType["CMD_AUDIO_FRAME"] = 1301] = "CMD_AUDIO_FRAME"; - CommandType[CommandType["CMD_BATCH_RECORD"] = 1049] = "CMD_BATCH_RECORD"; - CommandType[CommandType["CMD_BAT_DOORBELL_CHIME_SWITCH"] = 1702] = "CMD_BAT_DOORBELL_CHIME_SWITCH"; - CommandType[CommandType["CMD_BAT_DOORBELL_DINGDONG_R"] = 1718] = "CMD_BAT_DOORBELL_DINGDONG_R"; - CommandType[CommandType["CMD_BAT_DOORBELL_DINGDONG_V"] = 1717] = "CMD_BAT_DOORBELL_DINGDONG_V"; - CommandType[CommandType["CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH"] = 1703] = "CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH"; - CommandType[CommandType["CMD_BAT_DOORBELL_ONLY_AI"] = 1719] = "CMD_BAT_DOORBELL_ONLY_AI"; - CommandType[CommandType["CMD_BAT_DOORBELL_QUICK_RESPONSE"] = 1706] = "CMD_BAT_DOORBELL_QUICK_RESPONSE"; - CommandType[CommandType["CMD_BAT_DOORBELL_SET_AC_VALUE"] = 1714] = "CMD_BAT_DOORBELL_SET_AC_VALUE"; - CommandType[CommandType["CMD_BAT_DOORBELL_SET_ELECTRONIC_RINGTONE_TIME"] = 1709] = "CMD_BAT_DOORBELL_SET_ELECTRONIC_RINGTONE_TIME"; - CommandType[CommandType["CMD_BAT_DOORBELL_SET_LED_ENABLE"] = 1716] = "CMD_BAT_DOORBELL_SET_LED_ENABLE"; - CommandType[CommandType["CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE"] = 1710] = "CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE"; - CommandType[CommandType["CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME"] = 1708] = "CMD_BAT_DOORBELL_SET_RINGTONE_VOLUME"; - CommandType[CommandType["CMD_BAT_DOORBELL_UPDATE_QUICK_RESPONSE"] = 1707] = "CMD_BAT_DOORBELL_UPDATE_QUICK_RESPONSE"; - CommandType[CommandType["CMD_BAT_DOORBELL_VIDEO_QUALITY"] = 1705] = "CMD_BAT_DOORBELL_VIDEO_QUALITY"; - CommandType[CommandType["CMD_BAT_DOORBELL_VIDEO_QUALITY2"] = 2730] = "CMD_BAT_DOORBELL_VIDEO_QUALITY2"; - CommandType[CommandType["CMD_BAT_DOORBELL_RECORD_QUALITY2"] = 2731] = "CMD_BAT_DOORBELL_RECORD_QUALITY2"; - CommandType[CommandType["CMD_BAT_DOORBELL_WDR_SWITCH"] = 1704] = "CMD_BAT_DOORBELL_WDR_SWITCH"; - CommandType[CommandType["CMD_BIND_BROADCAST"] = 1000] = "CMD_BIND_BROADCAST"; - CommandType[CommandType["CMD_BIND_SYNC_ACCOUNT_INFO"] = 1001] = "CMD_BIND_SYNC_ACCOUNT_INFO"; - CommandType[CommandType["CMD_BIND_SYNC_ACCOUNT_INFO_EX"] = 1054] = "CMD_BIND_SYNC_ACCOUNT_INFO_EX"; - CommandType[CommandType["CMD_CAMERA_INFO"] = 1103] = "CMD_CAMERA_INFO"; - CommandType[CommandType["CMD_CHANGE_PWD"] = 1030] = "CMD_CHANGE_PWD"; - CommandType[CommandType["CMD_CHANGE_WIFI_PWD"] = 1031] = "CMD_CHANGE_WIFI_PWD"; - CommandType[CommandType["CMD_CLOSE_AUDDEC"] = 1018] = "CMD_CLOSE_AUDDEC"; - CommandType[CommandType["CMD_CLOSE_DEV_LED"] = 1046] = "CMD_CLOSE_DEV_LED"; - CommandType[CommandType["CMD_CLOSE_EAS"] = 1016] = "CMD_CLOSE_EAS"; - CommandType[CommandType["CMD_CLOSE_IRCUT"] = 1014] = "CMD_CLOSE_IRCUT"; - CommandType[CommandType["CMD_CLOSE_PIR"] = 1012] = "CMD_CLOSE_PIR"; - CommandType[CommandType["CMD_COLLECT_RECORD"] = 1047] = "CMD_COLLECT_RECORD"; - CommandType[CommandType["CMD_CONVERT_MP4_OK"] = 1303] = "CMD_CONVERT_MP4_OK"; - CommandType[CommandType["CMD_DECOLLECT_RECORD"] = 1048] = "CMD_DECOLLECT_RECORD"; - CommandType[CommandType["CMD_DELLETE_RECORD"] = 1027] = "CMD_DELLETE_RECORD"; - CommandType[CommandType["CMD_DEL_FACE_PHOTO"] = 1234] = "CMD_DEL_FACE_PHOTO"; - CommandType[CommandType["CMD_DEL_USER_PHOTO"] = 1232] = "CMD_DEL_USER_PHOTO"; - CommandType[CommandType["CMD_DEVS_BIND_BROADCASE"] = 1038] = "CMD_DEVS_BIND_BROADCASE"; - CommandType[CommandType["CMD_DEVS_BIND_NOTIFY"] = 1039] = "CMD_DEVS_BIND_NOTIFY"; - CommandType[CommandType["CMD_DEVS_LOCK"] = 1019] = "CMD_DEVS_LOCK"; - CommandType[CommandType["CMD_DEVS_SWITCH"] = 1035] = "CMD_DEVS_SWITCH"; - CommandType[CommandType["CMD_DEVS_TO_FACTORY"] = 1037] = "CMD_DEVS_TO_FACTORY"; - CommandType[CommandType["CMD_DEVS_UNBIND"] = 1040] = "CMD_DEVS_UNBIND"; - CommandType[CommandType["CMD_DEVS_UNLOCK"] = 1020] = "CMD_DEVS_UNLOCK"; - CommandType[CommandType["CMD_DEV_LED_SWITCH"] = 1045] = "CMD_DEV_LED_SWITCH"; - CommandType[CommandType["CMD_DEV_PUSHMSG_MODE"] = 1252] = "CMD_DEV_PUSHMSG_MODE"; - CommandType[CommandType["CMD_DEV_RECORD_AUTOSTOP"] = 1251] = "CMD_DEV_RECORD_AUTOSTOP"; - CommandType[CommandType["CMD_DEV_RECORD_INTERVAL"] = 1250] = "CMD_DEV_RECORD_INTERVAL"; - CommandType[CommandType["CMD_DEV_RECORD_TIMEOUT"] = 1249] = "CMD_DEV_RECORD_TIMEOUT"; - CommandType[CommandType["CMD_DOWNLOAD_FINISH"] = 1304] = "CMD_DOWNLOAD_FINISH"; - CommandType[CommandType["CMD_DOORBELL_NOTIFY_PAYLOAD"] = 1701] = "CMD_DOORBELL_NOTIFY_PAYLOAD"; - CommandType[CommandType["CMD_DOORBELL_SET_PAYLOAD"] = 1700] = "CMD_DOORBELL_SET_PAYLOAD"; - CommandType[CommandType["CMD_DOORLOCK_ACCOUNT_UNBIND"] = 1915] = "CMD_DOORLOCK_ACCOUNT_UNBIND"; - CommandType[CommandType["CMD_DOORLOCK_BIND"] = 1910] = "CMD_DOORLOCK_BIND"; - CommandType[CommandType["CMD_DOORLOCK_DATA_PASS_THROUGH"] = 1911] = "CMD_DOORLOCK_DATA_PASS_THROUGH"; - CommandType[CommandType["CMD_DOORLOCK_DATA_PASS_THROUGH_ERR"] = 1918] = "CMD_DOORLOCK_DATA_PASS_THROUGH_ERR"; - CommandType[CommandType["CMD_DOORLOCK_GET_STATE"] = 1912] = "CMD_DOORLOCK_GET_STATE"; - CommandType[CommandType["CMD_DOORLOCK_ONLINE_REPORT"] = 1917] = "CMD_DOORLOCK_ONLINE_REPORT"; - CommandType[CommandType["CMD_DOORLOCK_OTA"] = 1914] = "CMD_DOORLOCK_OTA"; - CommandType[CommandType["CMD_DOORLOCK_P2P_SEQ"] = 1916] = "CMD_DOORLOCK_P2P_SEQ"; - CommandType[CommandType["CMD_DOORLOCK_SET_PUSH_MODE"] = 1919] = "CMD_DOORLOCK_SET_PUSH_MODE"; - CommandType[CommandType["CMD_DOOR_SENSOR_ALARM_ENABLE"] = 1506] = "CMD_DOOR_SENSOR_ALARM_ENABLE"; - CommandType[CommandType["CMD_DOOR_SENSOR_DOOR_EVT"] = 1503] = "CMD_DOOR_SENSOR_DOOR_EVT"; - CommandType[CommandType["CMD_DOOR_SENSOR_ENABLE_LED"] = 1505] = "CMD_DOOR_SENSOR_ENABLE_LED"; - CommandType[CommandType["CMD_DOOR_SENSOR_GET_DOOR_STATE"] = 1502] = "CMD_DOOR_SENSOR_GET_DOOR_STATE"; - CommandType[CommandType["CMD_DOOR_SENSOR_GET_INFO"] = 1501] = "CMD_DOOR_SENSOR_GET_INFO"; - CommandType[CommandType["CMD_DOOR_SENSOR_INFO_REPORT"] = 1500] = "CMD_DOOR_SENSOR_INFO_REPORT"; - CommandType[CommandType["CMD_DOOR_SENSOR_LOW_POWER_REPORT"] = 1504] = "CMD_DOOR_SENSOR_LOW_POWER_REPORT"; - CommandType[CommandType["CMD_DOWNLOAD_CANCEL"] = 1051] = "CMD_DOWNLOAD_CANCEL"; - CommandType[CommandType["CMD_DOWNLOAD_VIDEO"] = 1024] = "CMD_DOWNLOAD_VIDEO"; - CommandType[CommandType["CMD_EAS_SWITCH"] = 1015] = "CMD_EAS_SWITCH"; - CommandType[CommandType["CMD_ENTRY_SENSOR_BAT_STATE"] = 1552] = "CMD_ENTRY_SENSOR_BAT_STATE"; - CommandType[CommandType["CMD_ENTRY_SENSOR_CHANGE_TIME"] = 1551] = "CMD_ENTRY_SENSOR_CHANGE_TIME"; - CommandType[CommandType["CMD_ENTRY_SENSOR_STATUS"] = 1550] = "CMD_ENTRY_SENSOR_STATUS"; - CommandType[CommandType["CMD_FLOODLIGHT_BROADCAST"] = 902] = "CMD_FLOODLIGHT_BROADCAST"; - CommandType[CommandType["CMD_FORMAT_SD"] = 1029] = "CMD_FORMAT_SD"; - CommandType[CommandType["CMD_FORMAT_SD_PROGRESS"] = 1053] = "CMD_FORMAT_SD_PROGRESS"; - CommandType[CommandType["CMD_GATEWAYINFO"] = 1100] = "CMD_GATEWAYINFO"; - CommandType[CommandType["CMD_GEO_ADD_USER_INFO"] = 1259] = "CMD_GEO_ADD_USER_INFO"; - CommandType[CommandType["CMD_GEO_DEL_USER_INFO"] = 1261] = "CMD_GEO_DEL_USER_INFO"; - CommandType[CommandType["CMD_GEO_SET_USER_STATUS"] = 1258] = "CMD_GEO_SET_USER_STATUS"; - CommandType[CommandType["CMD_GEO_UPDATE_LOC_SETTING"] = 1262] = "CMD_GEO_UPDATE_LOC_SETTING"; - CommandType[CommandType["CMD_GEO_UPDATE_USER_INFO"] = 1260] = "CMD_GEO_UPDATE_USER_INFO"; - CommandType[CommandType["CMD_GET_ADMIN_PWD"] = 1122] = "CMD_GET_ADMIN_PWD"; - CommandType[CommandType["CMD_GET_ALARM_MODE"] = 1151] = "CMD_GET_ALARM_MODE"; - CommandType[CommandType["CMD_GET_ARMING_INFO"] = 1107] = "CMD_GET_ARMING_INFO"; - CommandType[CommandType["CMD_GET_ARMING_STATUS"] = 1108] = "CMD_GET_ARMING_STATUS"; - CommandType[CommandType["CMD_GET_AUDDEC_INFO"] = 1109] = "CMD_GET_AUDDEC_INFO"; - CommandType[CommandType["CMD_GET_AUDDEC_SENSITIVITY"] = 1110] = "CMD_GET_AUDDEC_SENSITIVITY"; - CommandType[CommandType["CMD_GET_AUDDE_CSTATUS"] = 1111] = "CMD_GET_AUDDE_CSTATUS"; - CommandType[CommandType["CMD_GET_AWAY_ACTION"] = 1239] = "CMD_GET_AWAY_ACTION"; - CommandType[CommandType["CMD_GET_BATTERY"] = 1101] = "CMD_GET_BATTERY"; - CommandType[CommandType["CMD_GET_BATTERY_TEMP"] = 1138] = "CMD_GET_BATTERY_TEMP"; - CommandType[CommandType["CMD_GET_CAMERA_LOCK"] = 1119] = "CMD_GET_CAMERA_LOCK"; - CommandType[CommandType["CMD_GET_CHARGE_STATUS"] = 1136] = "CMD_GET_CHARGE_STATUS"; - CommandType[CommandType["CMD_GET_CUSTOM1_ACTION"] = 1148] = "CMD_GET_CUSTOM1_ACTION"; - CommandType[CommandType["CMD_GET_CUSTOM2_ACTION"] = 1149] = "CMD_GET_CUSTOM2_ACTION"; - CommandType[CommandType["CMD_GET_CUSTOM3_ACTION"] = 1150] = "CMD_GET_CUSTOM3_ACTION"; - CommandType[CommandType["CMD_GET_DELAY_ALARM"] = 1164] = "CMD_GET_DELAY_ALARM"; - CommandType[CommandType["CMD_GET_DEVICE_PING"] = 1152] = "CMD_GET_DEVICE_PING"; - CommandType[CommandType["CMD_GET_DEVS_NAME"] = 1129] = "CMD_GET_DEVS_NAME"; - CommandType[CommandType["CMD_GET_DEVS_RSSI_LIST"] = 1274] = "CMD_GET_DEVS_RSSI_LIST"; - CommandType[CommandType["CMD_GET_DEV_CLOUD_STATUS"] = 1182] = "CMD_GET_DEV_CLOUD_STATUS"; - CommandType[CommandType["CMD_GET_DEV_HK_RECORD_STATUS"] = 1181] = "CMD_GET_DEV_HK_RECORD_STATUS"; - CommandType[CommandType["CMD_GET_DEV_STATUS"] = 1131] = "CMD_GET_DEV_STATUS"; - CommandType[CommandType["CMD_GET_DEV_TONE_INFO"] = 1127] = "CMD_GET_DEV_TONE_INFO"; - CommandType[CommandType["CMD_GET_DEV_UPGRADE"] = 1134] = "CMD_GET_DEV_UPGRADE"; - CommandType[CommandType["CMD_GET_EAS_STATUS"] = 1118] = "CMD_GET_EAS_STATUS"; - CommandType[CommandType["CMD_GET_EXCEPTION_LOG"] = 1124] = "CMD_GET_EXCEPTION_LOG"; - CommandType[CommandType["CMD_GET_FLOODLIGHT_WIFI_LIST"] = 1405] = "CMD_GET_FLOODLIGHT_WIFI_LIST"; - CommandType[CommandType["CMD_GET_GATEWAY_LOCK"] = 1120] = "CMD_GET_GATEWAY_LOCK"; - CommandType[CommandType["CMD_GET_HOME_ACTION"] = 1225] = "CMD_GET_HOME_ACTION"; - CommandType[CommandType["CMD_GET_HUB_LAN_IP"] = 1176] = "CMD_GET_HUB_LAN_IP"; - CommandType[CommandType["CMD_GET_HUB_LOG"] = 1132] = "CMD_GET_HUB_LOG"; - CommandType[CommandType["CMD_GET_HUB_LOGIG"] = 1140] = "CMD_GET_HUB_LOGIG"; - CommandType[CommandType["CMD_GET_HUB_NAME"] = 1128] = "CMD_GET_HUB_NAME"; - CommandType[CommandType["CMD_GET_HUB_POWER_SUPPLY"] = 1137] = "CMD_GET_HUB_POWER_SUPPLY"; - CommandType[CommandType["CMD_GET_HUB_TONE_INFO"] = 1126] = "CMD_GET_HUB_TONE_INFO"; - CommandType[CommandType["CMD_GET_HUB_UPGRADE"] = 1133] = "CMD_GET_HUB_UPGRADE"; - CommandType[CommandType["CMD_GET_IRCUTSENSITIVITY"] = 1114] = "CMD_GET_IRCUTSENSITIVITY"; - CommandType[CommandType["CMD_GET_IRMODE"] = 1113] = "CMD_GET_IRMODE"; - CommandType[CommandType["CMD_GET_MDETECT_PARAM"] = 1105] = "CMD_GET_MDETECT_PARAM"; - CommandType[CommandType["CMD_GET_MIRRORMODE"] = 1112] = "CMD_GET_MIRRORMODE"; - CommandType[CommandType["CMD_GET_NEWVESION"] = 1125] = "CMD_GET_NEWVESION"; - CommandType[CommandType["CMD_GET_OFF_ACTION"] = 1177] = "CMD_GET_OFF_ACTION"; - CommandType[CommandType["CMD_GET_P2P_CONN_STATUS"] = 1130] = "CMD_GET_P2P_CONN_STATUS"; - CommandType[CommandType["CMD_GET_PIRCTRL"] = 1116] = "CMD_GET_PIRCTRL"; - CommandType[CommandType["CMD_GET_PIRINFO"] = 1115] = "CMD_GET_PIRINFO"; - CommandType[CommandType["CMD_GET_PIRSENSITIVITY"] = 1117] = "CMD_GET_PIRSENSITIVITY"; - CommandType[CommandType["CMD_GET_RECORD_TIME"] = 1104] = "CMD_GET_RECORD_TIME"; - CommandType[CommandType["CMD_GET_REPEATER_CONN_TEST_RESULT"] = 1270] = "CMD_GET_REPEATER_CONN_TEST_RESULT"; - CommandType[CommandType["CMD_GET_REPEATER_RSSI"] = 1266] = "CMD_GET_REPEATER_RSSI"; - CommandType[CommandType["CMD_GET_REPEATER_SITE_LIST"] = 1263] = "CMD_GET_REPEATER_SITE_LIST"; - CommandType[CommandType["CMD_GET_SOLAR_SHOW"] = 1294] = "CMD_GET_SOLAR_SHOW"; - CommandType[CommandType["CMD_GET_START_HOMEKIT"] = 1163] = "CMD_GET_START_HOMEKIT"; - CommandType[CommandType["CMD_GET_SUB1G_RSSI"] = 1141] = "CMD_GET_SUB1G_RSSI"; - CommandType[CommandType["CMD_GET_TFCARD_FORMAT_STATUS"] = 1143] = "CMD_GET_TFCARD_FORMAT_STATUS"; - CommandType[CommandType["CMD_GET_TFCARD_REPAIR_STATUS"] = 1153] = "CMD_GET_TFCARD_REPAIR_STATUS"; - CommandType[CommandType["CMD_GET_TFCARD_STATUS"] = 1135] = "CMD_GET_TFCARD_STATUS"; - CommandType[CommandType["CMD_GET_UPDATE_STATUS"] = 1121] = "CMD_GET_UPDATE_STATUS"; - CommandType[CommandType["CMD_GET_UPGRADE_RESULT"] = 1043] = "CMD_GET_UPGRADE_RESULT"; - CommandType[CommandType["CMD_GET_WAN_LINK_STATUS"] = 1268] = "CMD_GET_WAN_LINK_STATUS"; - CommandType[CommandType["CMD_GET_WAN_MODE"] = 1265] = "CMD_GET_WAN_MODE"; - CommandType[CommandType["CMD_GET_WIFI_PWD"] = 1123] = "CMD_GET_WIFI_PWD"; - CommandType[CommandType["CMD_GET_WIFI_RSSI"] = 1142] = "CMD_GET_WIFI_RSSI"; - CommandType[CommandType["CMD_HUB_ALARM_TONE"] = 1281] = "CMD_HUB_ALARM_TONE"; - CommandType[CommandType["CMD_HUB_CLEAR_EMMC_VOLUME"] = 1800] = "CMD_HUB_CLEAR_EMMC_VOLUME"; - CommandType[CommandType["CMD_HUB_NOTIFY_ALARM"] = 1282] = "CMD_HUB_NOTIFY_ALARM"; - CommandType[CommandType["CMD_HUB_NOTIFY_MODE"] = 1283] = "CMD_HUB_NOTIFY_MODE"; - CommandType[CommandType["CMD_HUB_REBOOT"] = 1034] = "CMD_HUB_REBOOT"; - CommandType[CommandType["CMD_HUB_TO_FACTORY"] = 1036] = "CMD_HUB_TO_FACTORY"; - CommandType[CommandType["CMD_IRCUT_SWITCH"] = 1013] = "CMD_IRCUT_SWITCH"; - CommandType[CommandType["CMD_KEYPAD_BATTERY_CAP_STATE"] = 1653] = "CMD_KEYPAD_BATTERY_CAP_STATE"; - CommandType[CommandType["CMD_KEYPAD_BATTERY_CHARGER_STATE"] = 1655] = "CMD_KEYPAD_BATTERY_CHARGER_STATE"; - CommandType[CommandType["CMD_KEYPAD_BATTERY_TEMP_STATE"] = 1654] = "CMD_KEYPAD_BATTERY_TEMP_STATE"; - CommandType[CommandType["CMD_KEYPAD_GET_PASSWORD"] = 1657] = "CMD_KEYPAD_GET_PASSWORD"; - CommandType[CommandType["CMD_KEYPAD_GET_PASSWORD_LIST"] = 1662] = "CMD_KEYPAD_GET_PASSWORD_LIST"; - CommandType[CommandType["CMD_KEYPAD_IS_PSW_SET"] = 1670] = "CMD_KEYPAD_IS_PSW_SET"; - CommandType[CommandType["CMD_KEYPAD_PSW_OPEN"] = 1664] = "CMD_KEYPAD_PSW_OPEN"; - CommandType[CommandType["CMD_KEYPAD_SET_CUSTOM_MAP"] = 1660] = "CMD_KEYPAD_SET_CUSTOM_MAP"; - CommandType[CommandType["CMD_KEYPAD_SET_PASSWORD"] = 1650] = "CMD_KEYPAD_SET_PASSWORD"; - CommandType[CommandType["CMD_LEAVING_DELAY_AWAY"] = 1172] = "CMD_LEAVING_DELAY_AWAY"; - CommandType[CommandType["CMD_LEAVING_DELAY_CUSTOM1"] = 1173] = "CMD_LEAVING_DELAY_CUSTOM1"; - CommandType[CommandType["CMD_LEAVING_DELAY_CUSTOM2"] = 1174] = "CMD_LEAVING_DELAY_CUSTOM2"; - CommandType[CommandType["CMD_LEAVING_DELAY_CUSTOM3"] = 1175] = "CMD_LEAVING_DELAY_CUSTOM3"; - CommandType[CommandType["CMD_LEAVING_DELAY_HOME"] = 1171] = "CMD_LEAVING_DELAY_HOME"; - CommandType[CommandType["CMD_LIVEVIEW_LED_SWITCH"] = 1056] = "CMD_LIVEVIEW_LED_SWITCH"; - CommandType[CommandType["CMD_MDETECTINFO"] = 1106] = "CMD_MDETECTINFO"; - CommandType[CommandType["CMD_MOTION_SENSOR_BAT_STATE"] = 1601] = "CMD_MOTION_SENSOR_BAT_STATE"; - CommandType[CommandType["CMD_MOTION_SENSOR_ENABLE_LED"] = 1607] = "CMD_MOTION_SENSOR_ENABLE_LED"; - CommandType[CommandType["CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE"] = 1613] = "CMD_MOTION_SENSOR_ENTER_USER_TEST_MODE"; - CommandType[CommandType["CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE"] = 1610] = "CMD_MOTION_SENSOR_EXIT_USER_TEST_MODE"; - CommandType[CommandType["CMD_MOTION_SENSOR_PIR_EVT"] = 1605] = "CMD_MOTION_SENSOR_PIR_EVT"; - CommandType[CommandType["CMD_MOTION_SENSOR_SET_CHIRP_TONE"] = 1611] = "CMD_MOTION_SENSOR_SET_CHIRP_TONE"; - CommandType[CommandType["CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY"] = 1609] = "CMD_MOTION_SENSOR_SET_PIR_SENSITIVITY"; - CommandType[CommandType["CMD_MOTION_SENSOR_WORK_MODE"] = 1612] = "CMD_MOTION_SENSOR_WORK_MODE"; - CommandType[CommandType["CMD_NAS_SWITCH"] = 1145] = "CMD_NAS_SWITCH"; - CommandType[CommandType["CMD_NAS_TEST"] = 1146] = "CMD_NAS_TEST"; - CommandType[CommandType["CMD_NOTIFY_PAYLOAD"] = 1351] = "CMD_NOTIFY_PAYLOAD"; - CommandType[CommandType["CMD_P2P_DISCONNECT"] = 1044] = "CMD_P2P_DISCONNECT"; - CommandType[CommandType["CMD_PING"] = 1139] = "CMD_PING"; - CommandType[CommandType["CMD_PIR_SWITCH"] = 1011] = "CMD_PIR_SWITCH"; - CommandType[CommandType["CMD_RECORDDATE_SEARCH"] = 1041] = "CMD_RECORDDATE_SEARCH"; - CommandType[CommandType["CMD_RECORDLIST_SEARCH"] = 1042] = "CMD_RECORDLIST_SEARCH"; - CommandType[CommandType["CMD_RECORD_AUDIO_SWITCH"] = 1366] = "CMD_RECORD_AUDIO_SWITCH"; - CommandType[CommandType["CMD_RECORD_IMG"] = 1021] = "CMD_RECORD_IMG"; - CommandType[CommandType["CMD_RECORD_IMG_STOP"] = 1022] = "CMD_RECORD_IMG_STOP"; - CommandType[CommandType["CMD_RECORD_PLAY_CTRL"] = 1026] = "CMD_RECORD_PLAY_CTRL"; - CommandType[CommandType["CMD_RECORD_VIEW"] = 1025] = "CMD_RECORD_VIEW"; - CommandType[CommandType["CMD_REPAIR_PROGRESS"] = 1058] = "CMD_REPAIR_PROGRESS"; - CommandType[CommandType["CMD_REPAIR_SD"] = 1057] = "CMD_REPAIR_SD"; - CommandType[CommandType["CMD_REPEATER_RSSI_TEST"] = 1269] = "CMD_REPEATER_RSSI_TEST"; - CommandType[CommandType["CMD_RF433_DONGLE_STATUS_CHANGE"] = 1900] = "CMD_RF433_DONGLE_STATUS_CHANGE"; - CommandType[CommandType["CMD_RF433_GET_DONGLE_STATE"] = 1901] = "CMD_RF433_GET_DONGLE_STATE"; - CommandType[CommandType["CMD_RF433_TRIGER_RING"] = 1902] = "CMD_RF433_TRIGER_RING"; - CommandType[CommandType["CMD_SDINFO"] = 1102] = "CMD_SDINFO"; - CommandType[CommandType["CMD_SDINFO_EX"] = 1144] = "CMD_SDINFO_EX"; - CommandType[CommandType["CMD_SENSOR_SET_CHIRP_TONE"] = 1507] = "CMD_SENSOR_SET_CHIRP_TONE"; - CommandType[CommandType["CMD_SENSOR_SET_CHIRP_VOLUME"] = 1508] = "CMD_SENSOR_SET_CHIRP_VOLUME"; - CommandType[CommandType["CMD_SET_AI_NICKNAME"] = 1242] = "CMD_SET_AI_NICKNAME"; - CommandType[CommandType["CMD_SET_AI_PHOTO"] = 1231] = "CMD_SET_AI_PHOTO"; - CommandType[CommandType["CMD_SET_AI_SWITCH"] = 1236] = "CMD_SET_AI_SWITCH"; - CommandType[CommandType["CMD_SET_ALL_ACTION"] = 1255] = "CMD_SET_ALL_ACTION"; - CommandType[CommandType["CMD_SET_ARMING"] = 1224] = "CMD_SET_ARMING"; - CommandType[CommandType["CMD_SET_ARMING_SCHEDULE"] = 1211] = "CMD_SET_ARMING_SCHEDULE"; - CommandType[CommandType["CMD_SET_AS_SERVER"] = 1237] = "CMD_SET_AS_SERVER"; - CommandType[CommandType["CMD_SET_AUDDEC_INFO"] = 1212] = "CMD_SET_AUDDEC_INFO"; - CommandType[CommandType["CMD_SET_AUDDEC_SENSITIVITY"] = 1213] = "CMD_SET_AUDDEC_SENSITIVITY"; - CommandType[CommandType["CMD_SET_AUDIOSENSITIVITY"] = 1227] = "CMD_SET_AUDIOSENSITIVITY"; - CommandType[CommandType["CMD_SET_AUDIO_MUTE_RECORD"] = 1288] = "CMD_SET_AUDIO_MUTE_RECORD"; - CommandType[CommandType["CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT"] = 2123] = "CMD_SET_AUDIO_MOTION_ACTIVATED_PROMPT"; - CommandType[CommandType["CMD_SET_AUTO_DELETE_RECORD"] = 1367] = "CMD_SET_AUTO_DELETE_RECORD"; - CommandType[CommandType["CMD_SET_BITRATE"] = 1206] = "CMD_SET_BITRATE"; - CommandType[CommandType["CMD_SET_CUSTOM_MODE"] = 1256] = "CMD_SET_CUSTOM_MODE"; - CommandType[CommandType["CMD_SET_DEVS_NAME"] = 1217] = "CMD_SET_DEVS_NAME"; - CommandType[CommandType["CMD_SET_DEVS_OSD"] = 1214] = "CMD_SET_DEVS_OSD"; - CommandType[CommandType["CMD_SET_DEVS_TONE_FILE"] = 1202] = "CMD_SET_DEVS_TONE_FILE"; - CommandType[CommandType["CMD_SET_DEV_MD_RECORD"] = 1273] = "CMD_SET_DEV_MD_RECORD"; - CommandType[CommandType["CMD_SET_DEV_MIC_MUTE"] = 1240] = "CMD_SET_DEV_MIC_MUTE"; - CommandType[CommandType["CMD_SET_DEV_MIC_VOLUME"] = 1229] = "CMD_SET_DEV_MIC_VOLUME"; - CommandType[CommandType["CMD_SET_DEV_SPEAKER_MUTE"] = 1241] = "CMD_SET_DEV_SPEAKER_MUTE"; - CommandType[CommandType["CMD_SET_DEV_SPEAKER_VOLUME"] = 1230] = "CMD_SET_DEV_SPEAKER_VOLUME"; - CommandType[CommandType["CMD_SET_DEV_STORAGE_TYPE"] = 1228] = "CMD_SET_DEV_STORAGE_TYPE"; - CommandType[CommandType["CMD_SET_DOORSENSOR_ALWAYS_OPEN"] = 1290] = "CMD_SET_DOORSENSOR_ALWAYS_OPEN"; - CommandType[CommandType["CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY"] = 1291] = "CMD_SET_DOORSENSOR_ALWAYS_OPEN_DELAY"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_BRIGHT_VALUE"] = 1401] = "CMD_SET_FLOODLIGHT_BRIGHT_VALUE"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_DETECTION_AREA"] = 1407] = "CMD_SET_FLOODLIGHT_DETECTION_AREA"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_LIGHT_SCHEDULE"] = 1404] = "CMD_SET_FLOODLIGHT_LIGHT_SCHEDULE"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_MANUAL_SWITCH"] = 1400] = "CMD_SET_FLOODLIGHT_MANUAL_SWITCH"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_STREET_LAMP"] = 1402] = "CMD_SET_FLOODLIGHT_STREET_LAMP"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_TOTAL_SWITCH"] = 1403] = "CMD_SET_FLOODLIGHT_TOTAL_SWITCH"; - CommandType[CommandType["CMD_SET_FLOODLIGHT_WIFI_CONNECT"] = 1406] = "CMD_SET_FLOODLIGHT_WIFI_CONNECT"; - CommandType[CommandType["CMD_SET_GSSENSITIVITY"] = 1226] = "CMD_SET_GSSENSITIVITY"; - CommandType[CommandType["CMD_SET_HUB_ALARM_AUTO_END"] = 1280] = "CMD_SET_HUB_ALARM_AUTO_END"; - CommandType[CommandType["CMD_SET_HUB_ALARM_CLOSE"] = 1279] = "CMD_SET_HUB_ALARM_CLOSE"; - CommandType[CommandType["CMD_SET_HUB_AUDEC_STATUS"] = 1222] = "CMD_SET_HUB_AUDEC_STATUS"; - CommandType[CommandType["CMD_SET_HUB_GS_STATUS"] = 1220] = "CMD_SET_HUB_GS_STATUS"; - CommandType[CommandType["CMD_SET_HUB_IRCUT_STATUS"] = 1219] = "CMD_SET_HUB_IRCUT_STATUS"; - CommandType[CommandType["CMD_SET_HUB_MVDEC_STATUS"] = 1221] = "CMD_SET_HUB_MVDEC_STATUS"; - CommandType[CommandType["CMD_SET_HUB_NAME"] = 1216] = "CMD_SET_HUB_NAME"; - CommandType[CommandType["CMD_SET_HUB_OSD"] = 1253] = "CMD_SET_HUB_OSD"; - CommandType[CommandType["CMD_SET_HUB_PIR_STATUS"] = 1218] = "CMD_SET_HUB_PIR_STATUS"; - CommandType[CommandType["CMD_SET_HUB_SPK_VOLUME"] = 1235] = "CMD_SET_HUB_SPK_VOLUME"; - CommandType[CommandType["CMD_SET_IRMODE"] = 1208] = "CMD_SET_IRMODE"; - CommandType[CommandType["CMD_SET_JSON_SCHEDULE"] = 1254] = "CMD_SET_JSON_SCHEDULE"; - CommandType[CommandType["CMD_SET_LANGUAGE"] = 1200] = "CMD_SET_LANGUAGE"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_PIR"] = 1412] = "CMD_SET_LIGHT_CTRL_BRIGHT_PIR"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425"] = 1422] = "CMD_SET_LIGHT_CTRL_BRIGHT_PIR_T8425"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_SCH"] = 1413] = "CMD_SET_LIGHT_CTRL_BRIGHT_SCH"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425"] = 1421] = "CMD_SET_LIGHT_CTRL_BRIGHT_SCH_T8425"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_LAMP_VALUE"] = 1410] = "CMD_SET_LIGHT_CTRL_LAMP_VALUE"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_PIR_SWITCH"] = 1408] = "CMD_SET_LIGHT_CTRL_PIR_SWITCH"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_PIR_TIME"] = 1409] = "CMD_SET_LIGHT_CTRL_PIR_TIME"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_SUNRISE_INFO"] = 1415] = "CMD_SET_LIGHT_CTRL_SUNRISE_INFO"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_SUNRISE_SWITCH"] = 1414] = "CMD_SET_LIGHT_CTRL_SUNRISE_SWITCH"; - CommandType[CommandType["CMD_SET_LIGHT_CTRL_TRIGGER"] = 1411] = "CMD_SET_LIGHT_CTRL_TRIGGER"; - CommandType[CommandType["CMD_SET_MDETECTPARAM"] = 1204] = "CMD_SET_MDETECTPARAM"; - CommandType[CommandType["CMD_SET_MDSENSITIVITY"] = 1272] = "CMD_SET_MDSENSITIVITY"; - CommandType[CommandType["CMD_SET_MIRRORMODE"] = 1207] = "CMD_SET_MIRRORMODE"; - CommandType[CommandType["CMD_SET_MOTION_SENSITIVITY"] = 1276] = "CMD_SET_MOTION_SENSITIVITY"; - CommandType[CommandType["CMD_SET_NAS_PASSWD"] = 1287] = "CMD_SET_NAS_PASSWD"; - CommandType[CommandType["CMD_SET_NIGHT_VISION_TYPE"] = 1277] = "CMD_SET_NIGHT_VISION_TYPE"; - CommandType[CommandType["CMD_SET_NOTFACE_PUSHMSG"] = 1248] = "CMD_SET_NOTFACE_PUSHMSG"; - CommandType[CommandType["CMD_SET_PAYLOAD"] = 1350] = "CMD_SET_PAYLOAD"; - CommandType[CommandType["CMD_SET_PIRSENSITIVITY"] = 1210] = "CMD_SET_PIRSENSITIVITY"; - CommandType[CommandType["CMD_SET_PIR_INFO"] = 1209] = "CMD_SET_PIR_INFO"; - CommandType[CommandType["CMD_SET_PIR_POWERMODE"] = 1246] = "CMD_SET_PIR_POWERMODE"; - CommandType[CommandType["CMD_SET_PIR_TEST_MODE"] = 1243] = "CMD_SET_PIR_TEST_MODE"; - CommandType[CommandType["CMD_SET_POWER_CHARGE"] = 1293] = "CMD_SET_POWER_CHARGE"; - CommandType[CommandType["CMD_SET_PRIVACYPARAM"] = 1295] = "CMD_SET_PRIVACYPARAM"; - CommandType[CommandType["CMD_SET_PRI_ACTION"] = 1233] = "CMD_SET_PRI_ACTION"; - CommandType[CommandType["CMD_SET_PROMPT_VOLUME"] = 1292] = "CMD_SET_PROMPT_VOLUME"; - CommandType[CommandType["CMD_SET_PUSH_EFFECT"] = 1289] = "CMD_SET_PUSH_EFFECT"; - CommandType[CommandType["CMD_SET_RECORDTIME"] = 1203] = "CMD_SET_RECORDTIME"; - CommandType[CommandType["CMD_SET_RECORD_QUALITY"] = 1286] = "CMD_SET_RECORD_QUALITY"; - CommandType[CommandType["CMD_SET_REPEATER_PARAMS"] = 1264] = "CMD_SET_REPEATER_PARAMS"; - CommandType[CommandType["CMD_SET_RESOLUTION"] = 1205] = "CMD_SET_RESOLUTION"; - CommandType[CommandType["CMD_SET_SCHEDULE_DEFAULT"] = 1257] = "CMD_SET_SCHEDULE_DEFAULT"; - CommandType[CommandType["CMD_SET_SNOOZE_MODE"] = 1271] = "CMD_SET_SNOOZE_MODE"; - CommandType[CommandType["CMD_SET_STORGE_TYPE"] = 1223] = "CMD_SET_STORGE_TYPE"; - CommandType[CommandType["CMD_SET_TELNET"] = 1247] = "CMD_SET_TELNET"; - CommandType[CommandType["CMD_SET_TIMEZONE"] = 1215] = "CMD_SET_TIMEZONE"; - CommandType[CommandType["CMD_SET_TONE_FILE"] = 1201] = "CMD_SET_TONE_FILE"; - CommandType[CommandType["CMD_SET_UPGRADE"] = 1238] = "CMD_SET_UPGRADE"; - CommandType[CommandType["CMD_SNAPSHOT"] = 1028] = "CMD_SNAPSHOT"; - CommandType[CommandType["CMD_START_REALTIME_MEDIA"] = 1003] = "CMD_START_REALTIME_MEDIA"; - CommandType[CommandType["CMD_START_RECORD"] = 1009] = "CMD_START_RECORD"; - CommandType[CommandType["CMD_START_REC_BROADCASE"] = 900] = "CMD_START_REC_BROADCASE"; - CommandType[CommandType["CMD_START_TALKBACK"] = 1005] = "CMD_START_TALKBACK"; - CommandType[CommandType["CMD_START_VOICECALL"] = 1007] = "CMD_START_VOICECALL"; - CommandType[CommandType["CMD_STOP_REALTIME_MEDIA"] = 1004] = "CMD_STOP_REALTIME_MEDIA"; - CommandType[CommandType["CMD_STOP_RECORD"] = 1010] = "CMD_STOP_RECORD"; - CommandType[CommandType["CMD_STOP_REC_BROADCASE"] = 901] = "CMD_STOP_REC_BROADCASE"; - CommandType[CommandType["CMD_STOP_SHARE"] = 1023] = "CMD_STOP_SHARE"; - CommandType[CommandType["CMD_STOP_TALKBACK"] = 1006] = "CMD_STOP_TALKBACK"; - CommandType[CommandType["CMD_STOP_VOICECALL"] = 1008] = "CMD_STOP_VOICECALL"; - CommandType[CommandType["CMD_STREAM_MSG"] = 1302] = "CMD_STREAM_MSG"; - CommandType[CommandType["CMD_STRESS_TEST_OPER"] = 1050] = "CMD_STRESS_TEST_OPER"; - CommandType[CommandType["CMD_TIME_SYCN"] = 1033] = "CMD_TIME_SYCN"; - CommandType[CommandType["CMD_UNBIND_ACCOUNT"] = 1002] = "CMD_UNBIND_ACCOUNT"; - CommandType[CommandType["CMD_VIDEO_FRAME"] = 1300] = "CMD_VIDEO_FRAME"; - CommandType[CommandType["CMD_WIFI_CONFIG"] = 1032] = "CMD_WIFI_CONFIG"; - CommandType[CommandType["SWITCH_TIME"] = 1162] = "SWITCH_TIME"; - CommandType[CommandType["CMD_BATTERY_FALSE_EVENT_COUNT"] = 6056] = "CMD_BATTERY_FALSE_EVENT_COUNT"; - CommandType[CommandType["CMD_FLOODLIGHT_GET_WIFI_RSSI_INFO"] = 6080] = "CMD_FLOODLIGHT_GET_WIFI_RSSI_INFO"; - //CMD_FLOODLIGHT_SET_PIR_TEST_MODE = 6081, - CommandType[CommandType["CMD_INDOOR_AI_CRYING_ENABLE"] = 6024] = "CMD_INDOOR_AI_CRYING_ENABLE"; - CommandType[CommandType["CMD_INDOOR_AI_MOTION_ENABLE"] = 6023] = "CMD_INDOOR_AI_MOTION_ENABLE"; - CommandType[CommandType["CMD_INDOOR_AI_PERSON_ENABLE"] = 6022] = "CMD_INDOOR_AI_PERSON_ENABLE"; - CommandType[CommandType["CMD_INDOOR_AI_PET_ENABLE"] = 6026] = "CMD_INDOOR_AI_PET_ENABLE"; - CommandType[CommandType["CMD_INDOOR_AI_SOUND_ENABLE"] = 6025] = "CMD_INDOOR_AI_SOUND_ENABLE"; - CommandType[CommandType["CMD_INDOOR_SET_MOTION_DETECTION_TYPE"] = 6027] = "CMD_INDOOR_SET_MOTION_DETECTION_TYPE"; - CommandType[CommandType["CMD_INDOOR_CONTINUE_RECORD_SCHEDULE"] = 6013] = "CMD_INDOOR_CONTINUE_RECORD_SCHEDULE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_ACTIVE_ZONE"] = 6042] = "CMD_INDOOR_DET_SET_ACTIVE_ZONE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE"] = 6040] = "CMD_INDOOR_DET_SET_MOTION_DETECT_ENABLE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE"] = 6045] = "CMD_INDOOR_DET_SET_MOTION_DETECT_TYPE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX"] = 6041] = "CMD_INDOOR_DET_SET_MOTION_SENSITIVITY_IDX"; - CommandType[CommandType["CMD_INDOOR_DET_SET_PET_ENABLE"] = 6047] = "CMD_INDOOR_DET_SET_PET_ENABLE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_PET_EXPEL_RESPONSOR"] = 6048] = "CMD_INDOOR_DET_SET_PET_EXPEL_RESPONSOR"; - CommandType[CommandType["CMD_INDOOR_DET_SET_PET_EXPEL_RESP_IDX"] = 6049] = "CMD_INDOOR_DET_SET_PET_EXPEL_RESP_IDX"; - CommandType[CommandType["CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE"] = 6043] = "CMD_INDOOR_DET_SET_SOUND_DETECT_ENABLE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE"] = 6046] = "CMD_INDOOR_DET_SET_SOUND_DETECT_TYPE"; - CommandType[CommandType["CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX"] = 6044] = "CMD_INDOOR_DET_SET_SOUND_SENSITIVITY_IDX"; - CommandType[CommandType["CMD_INDOOR_EVENT_COUNT"] = 6053] = "CMD_INDOOR_EVENT_COUNT"; - CommandType[CommandType["CMD_INDOOR_HK_ACTIVE_HOMEKIT"] = 6061] = "CMD_INDOOR_HK_ACTIVE_HOMEKIT"; - CommandType[CommandType["CMD_INDOOR_HK_GET_HK_BIND_STATUS"] = 6062] = "CMD_INDOOR_HK_GET_HK_BIND_STATUS"; - CommandType[CommandType["CMD_INDOOR_LED_SWITCH"] = 6014] = "CMD_INDOOR_LED_SWITCH"; - CommandType[CommandType["CMD_INDOOR_NAS_STORAGE_TYPE"] = 6050] = "CMD_INDOOR_NAS_STORAGE_TYPE"; - CommandType[CommandType["CMD_INDOOR_OWNER_STREAM_TYPE"] = 6052] = "CMD_INDOOR_OWNER_STREAM_TYPE"; - CommandType[CommandType["CMD_INDOOR_PAN_CALIBRATION"] = 6017] = "CMD_INDOOR_PAN_CALIBRATION"; - CommandType[CommandType["CMD_OUTDOOR_PAN_CALIBRATION"] = 6251] = "CMD_OUTDOOR_PAN_CALIBRATION"; - CommandType[CommandType["CMD_INDOOR_PAN_MOTION_TRACK"] = 6016] = "CMD_INDOOR_PAN_MOTION_TRACK"; - CommandType[CommandType["CMD_INDOOR_PAN_SPEED"] = 6015] = "CMD_INDOOR_PAN_SPEED"; - CommandType[CommandType["CMD_INDOOR_PUSH_JUMP_TYPE"] = 6021] = "CMD_INDOOR_PUSH_JUMP_TYPE"; - CommandType[CommandType["CMD_INDOOR_PUSH_NOTIFY_TYPE"] = 6020] = "CMD_INDOOR_PUSH_NOTIFY_TYPE"; - CommandType[CommandType["CMD_INDOOR_SET_CONTINUE_ENABLE"] = 6010] = "CMD_INDOOR_SET_CONTINUE_ENABLE"; - CommandType[CommandType["CMD_INDOOR_SET_CONTINUE_TYPE"] = 6011] = "CMD_INDOOR_SET_CONTINUE_TYPE"; - CommandType[CommandType["CMD_INDOOR_SET_RECORD_AUDIO_ENABLE"] = 6012] = "CMD_INDOOR_SET_RECORD_AUDIO_ENABLE"; - CommandType[CommandType["CMD_INDOOR_SHOW_SDCARD"] = 6054] = "CMD_INDOOR_SHOW_SDCARD"; - CommandType[CommandType["CMD_INDOOR_TFCARD_NAS_STATUS"] = 6051] = "CMD_INDOOR_TFCARD_NAS_STATUS"; - CommandType[CommandType["CMD_INDOOR_ROTATE"] = 6030] = "CMD_INDOOR_ROTATE"; - CommandType[CommandType["CMD_OUTDOOR_ROTATE"] = 6038] = "CMD_OUTDOOR_ROTATE"; - CommandType[CommandType["CMD_INDOOR_ENABLE_PRIVACY_MODE"] = 6090] = "CMD_INDOOR_ENABLE_PRIVACY_MODE"; - CommandType[CommandType["CMD_INDOOR_SET_PRIVACY_ANGLE"] = 6091] = "CMD_INDOOR_SET_PRIVACY_ANGLE"; - CommandType[CommandType["CMD_INDOOR_DEFAULT_ANGLE_SET"] = 6092] = "CMD_INDOOR_DEFAULT_ANGLE_SET"; - CommandType[CommandType["CMD_INDOOR_DEFAULT_ANGLE_ENABLE"] = 6093] = "CMD_INDOOR_DEFAULT_ANGLE_ENABLE"; - CommandType[CommandType["CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME"] = 6094] = "CMD_INDOOR_DEFAULT_ANGLE_IDLE_TIME"; - CommandType[CommandType["CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK"] = 6095] = "CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK"; - CommandType[CommandType["CMD_T8200X_SET_RINGTONE_VOLUME"] = 6096] = "CMD_T8200X_SET_RINGTONE_VOLUME"; - CommandType[CommandType["CMD_IN_TEST_MODE"] = 6072] = "CMD_IN_TEST_MODE"; - CommandType[CommandType["CMD_PLAY_BACK_EVENT_STOP"] = 1055] = "CMD_PLAY_BACK_EVENT_STOP"; - CommandType[CommandType["CMD_SET_DETECT_TYPE"] = 6071] = "CMD_SET_DETECT_TYPE"; - CommandType[CommandType["CMD_SET_PIR_SENSITIVITY"] = 6070] = "CMD_SET_PIR_SENSITIVITY"; - CommandType[CommandType["CMD_SMARTLOCK_QUERY_BATTERY_LEVEL"] = 6001] = "CMD_SMARTLOCK_QUERY_BATTERY_LEVEL"; - CommandType[CommandType["CMD_SMARTLOCK_QUERY_STATUS"] = 6000] = "CMD_SMARTLOCK_QUERY_STATUS"; - CommandType[CommandType["P2P_ADD_PW"] = 1950] = "P2P_ADD_PW"; - CommandType[CommandType["P2P_CALIBRATE_LOCK"] = 1960] = "P2P_CALIBRATE_LOCK"; - CommandType[CommandType["P2P_DELETE_FINGER"] = 1953] = "P2P_DELETE_FINGER"; - CommandType[CommandType["P2P_DELETE_USER"] = 1951] = "P2P_DELETE_USER"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - CommandType[CommandType["P2P_ENTER_OTA"] = 1238] = "P2P_ENTER_OTA"; - CommandType[CommandType["P2P_GET_FINGER_PW_USAGE"] = 1963] = "P2P_GET_FINGER_PW_USAGE"; - CommandType[CommandType["P2P_GET_LOCK_PARAM"] = 1959] = "P2P_GET_LOCK_PARAM"; - CommandType[CommandType["P2P_GET_USER_AND_PW_ID"] = 1964] = "P2P_GET_USER_AND_PW_ID"; - CommandType[CommandType["P2P_ON_OFF_LOCK"] = 1961] = "P2P_ON_OFF_LOCK"; - CommandType[CommandType["P2P_PULL_BLE"] = 1962] = "P2P_PULL_BLE"; - CommandType[CommandType["P2P_QUERY_PW"] = 1954] = "P2P_QUERY_PW"; - CommandType[CommandType["P2P_QUERY_STATUS_IN_LOCK"] = 1955] = "P2P_QUERY_STATUS_IN_LOCK"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - CommandType[CommandType["P2P_RESET"] = 1040] = "P2P_RESET"; - CommandType[CommandType["P2P_SET_LOCK_PARAM"] = 1958] = "P2P_SET_LOCK_PARAM"; - CommandType[CommandType["P2P_UPDATE_PW"] = 1957] = "P2P_UPDATE_PW"; - CommandType[CommandType["P2P_UPDATE_USER_TIME"] = 1956] = "P2P_UPDATE_USER_TIME"; - CommandType[CommandType["SUB1G_REP_BIND_FAILED"] = 2109] = "SUB1G_REP_BIND_FAILED"; - CommandType[CommandType["SUB1G_REP_CHARGE_STATE"] = 2108] = "SUB1G_REP_CHARGE_STATE"; - CommandType[CommandType["SUB1G_REP_POWER_OFF"] = 2110] = "SUB1G_REP_POWER_OFF"; - CommandType[CommandType["SUB1G_REP_RUNTIME_STATE"] = 2107] = "SUB1G_REP_RUNTIME_STATE"; - CommandType[CommandType["SUB1G_REP_UNPLUG_POWER_LINE"] = 2111] = "SUB1G_REP_UNPLUG_POWER_LINE"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425"] = 6073] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_T8425"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE"] = 6086] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY"] = 6087] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_STD_SENSITIVITY"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY"] = 6081] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_LEFT_SENSITIVITY"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY"] = 6083] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_MIDDLE_SENSITIVITY"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY"] = 6085] = "CMD_FLOODLIGHT_SET_DETECTION_RANGE_ADV_RIGHT_SENSITIVITY"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY"] = 6107] = "CMD_FLOODLIGHT_SET_MOTION_TRACKING_SENSITIVITY"; - CommandType[CommandType["CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION"] = 6032] = "CMD_FLOODLIGHT_SAVE_MOTION_PRESET_POSITION"; - CommandType[CommandType["CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION"] = 6033] = "CMD_FLOODLIGHT_DELETE_MOTION_PRESET_POSITION"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION"] = 6035] = "CMD_FLOODLIGHT_SET_MOTION_PRESET_POSITION"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE"] = 6031] = "CMD_FLOODLIGHT_SET_MOTION_AUTO_CRUISE"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION"] = 6098] = "CMD_FLOODLIGHT_SET_MOTION_OUT_OF_VIEW_DETECTION"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL"] = 6100] = "CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MANUAL"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION"] = 6101] = "CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_MOTION"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE"] = 6102] = "CMD_FLOODLIGHT_SET_LIGHT_COLOR_TEMP_SCHEDULE"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT"] = 6105] = "CMD_FLOODLIGHT_SET_VIDEO_NIGHTVISION_IMAGE_ADJUSTMENT"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION"] = 6106] = "CMD_FLOODLIGHT_SET_VIDEO_COLOR_NIGHTVISION"; - CommandType[CommandType["CMD_FLOODLIGHT_SET_AUTO_CALIBRATION"] = 6099] = "CMD_FLOODLIGHT_SET_AUTO_CALIBRATION"; - CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK"] = 6500] = "CMD_SMARTLOCK_AUTO_LOCK"; - CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE"] = 6501] = "CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE"; - CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME"] = 6601] = "CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_STARTTIME"; - CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME"] = 6602] = "CMD_SMARTLOCK_AUTO_LOCK_SCHEDULE_ENDTIME"; - CommandType[CommandType["CMD_SMARTLOCK_LOCK_SOUND"] = 6505] = "CMD_SMARTLOCK_LOCK_SOUND"; - CommandType[CommandType["CMD_SMARTLOCK_LOG"] = 6700] = "CMD_SMARTLOCK_LOG"; - CommandType[CommandType["CMD_SMARTLOCK_NOTIFICATION"] = 6506] = "CMD_SMARTLOCK_NOTIFICATION"; - CommandType[CommandType["CMD_SMARTLOCK_NOTIFICATION_LOCKED"] = 6606] = "CMD_SMARTLOCK_NOTIFICATION_LOCKED"; - CommandType[CommandType["CMD_SMARTLOCK_NOTIFICATION_UNLOCKED"] = 6605] = "CMD_SMARTLOCK_NOTIFICATION_UNLOCKED"; - CommandType[CommandType["CMD_SMARTLOCK_ONE_TOUCH_LOCK"] = 6502] = "CMD_SMARTLOCK_ONE_TOUCH_LOCK"; - CommandType[CommandType["CMD_SMARTLOCK_SCRAMBLE_PASSCODE"] = 6504] = "CMD_SMARTLOCK_SCRAMBLE_PASSCODE"; - CommandType[CommandType["CMD_SMARTLOCK_WIFI_STATUS"] = 6507] = "CMD_SMARTLOCK_WIFI_STATUS"; - CommandType[CommandType["CMD_SMARTLOCK_WRONG_TRY_PROTECT"] = 6503] = "CMD_SMARTLOCK_WRONG_TRY_PROTECT"; - CommandType[CommandType["CMD_SMARTLOCK_AUTO_LOCK_TIMER"] = 6600] = "CMD_SMARTLOCK_AUTO_LOCK_TIMER"; - CommandType[CommandType["CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN"] = 6604] = "CMD_SMARTLOCK_WRONG_TRY_LOCKDOWN"; - CommandType[CommandType["CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS"] = 6603] = "CMD_SMARTLOCK_WRONG_TRY_ATTEMPTS"; - CommandType[CommandType["CMD_SMARTLOCK_NIGHT_VISION_ENHANCE"] = 6614] = "CMD_SMARTLOCK_NIGHT_VISION_ENHANCE"; - CommandType[CommandType["CMD_SMARTLOCK_NIGHT_VISION_SIDE"] = 6615] = "CMD_SMARTLOCK_NIGHT_VISION_SIDE"; - //CMD_SMARTLOCK_OPEN_DIRECTION = 6615, - CommandType[CommandType["CMD_SMARTLOCK_LEFT_OPEN_ALARM"] = 6616] = "CMD_SMARTLOCK_LEFT_OPEN_ALARM"; - CommandType[CommandType["CMD_SMARTLOCK_TAMPER_ALARM"] = 6617] = "CMD_SMARTLOCK_TAMPER_ALARM"; - CommandType[CommandType["CMD_SMARTLOCK_VOLUME"] = 6618] = "CMD_SMARTLOCK_VOLUME"; - CommandType[CommandType["CMD_DOORBELL_DUAL_VIEW_MODE"] = 2700] = "CMD_DOORBELL_DUAL_VIEW_MODE"; - CommandType[CommandType["CMD_DOORBELL_DUAL_VIEW_MODE2"] = 6243] = "CMD_DOORBELL_DUAL_VIEW_MODE2"; - CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY"] = 2705] = "CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY"; - CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_SWITCH"] = 2706] = "CMD_DOORBELL_DUAL_RADAR_WD_SWITCH"; - CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE"] = 2707] = "CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE"; - CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_TIME"] = 2708] = "CMD_DOORBELL_DUAL_RADAR_WD_TIME"; - CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH"] = 2709] = "CMD_DOORBELL_DUAL_PACKAGE_GUARD_SWITCH"; - CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE"] = 2710] = "CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE"; - CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME"] = 2711] = "CMD_DOORBELL_DUAL_PACKAGE_GUARD_TIME"; - CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH"] = 2712] = "CMD_DOORBELL_DUAL_PACKAGE_STRAND_SWITCH"; - CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME"] = 2713] = "CMD_DOORBELL_DUAL_PACKAGE_STRAND_TIME"; - CommandType[CommandType["CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH"] = 2714] = "CMD_DOORBELL_DUAL_PACKAGE_ASSISTANT_SWITCH"; - CommandType[CommandType["CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE"] = 2715] = "CMD_DOORBELL_DUAL_RADAR_WD_AUTO_RESPONSE"; - CommandType[CommandType["CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE"] = 2716] = "CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE"; - CommandType[CommandType["CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH"] = 2723] = "CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH"; - CommandType[CommandType["CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT"] = 2725] = "CMD_DOORBELL_DUAL_NOTIFICATION_HUMAN_DETECT"; - CommandType[CommandType["CMD_SMARTSAFE_ALERT_VOLUME"] = 1946165264] = "CMD_SMARTSAFE_ALERT_VOLUME"; - CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_BEEP"] = 1946165248] = "CMD_SMARTSAFE_IS_ENABLE_BEEP"; - CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT"] = 1946165251] = "CMD_SMARTSAFE_IS_ENABLE_CRACK_PROTECT"; - CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN"] = 1946165262] = "CMD_SMARTSAFE_IS_ENABLE_LEFT_OPEN"; - CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM"] = 1946165255] = "CMD_SMARTSAFE_IS_ENABLE_SHAKE_ALARM"; - CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_STATUS_CHANGE_NOTIFY"] = 1946165258] = "CMD_SMARTSAFE_IS_ENABLE_STATUS_CHANGE_NOTIFY"; - CommandType[CommandType["CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK"] = 1946165256] = "CMD_SMARTSAFE_IS_ENABLE_TOW_FACTOR_CHK"; - CommandType[CommandType["CMD_SMARTSAFE_IS_PWD_SET"] = 1946165254] = "CMD_SMARTSAFE_IS_PWD_SET"; - CommandType[CommandType["CMD_SMARTSAFE_IS_SET_PREFIX_PWD"] = 1946165257] = "CMD_SMARTSAFE_IS_SET_PREFIX_PWD"; - CommandType[CommandType["CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL"] = 1946165250] = "CMD_SMARTSAFE_LED_BRIGHTNESS_LEVEL"; - CommandType[CommandType["CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND"] = 1946165261] = "CMD_SMARTSAFE_LED_BRIGHTNESS_SECOND"; - CommandType[CommandType["CMD_SMARTSAFE_LEFT_OPEN_SECONDS"] = 1946165263] = "CMD_SMARTSAFE_LEFT_OPEN_SECONDS"; - CommandType[CommandType["CMD_SMARTSAFE_LOCK_STATUS"] = 1946165260] = "CMD_SMARTSAFE_LOCK_STATUS"; - CommandType[CommandType["CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES"] = 1946165252] = "CMD_SMARTSAFE_MAX_WRONG_PIN_TIMES"; - CommandType[CommandType["CMD_SMARTSAFE_NOTIF"] = 1946165265] = "CMD_SMARTSAFE_NOTIF"; - CommandType[CommandType["CMD_SMARTSAFE_PANIC_FINGER_COUNT"] = 1946165268] = "CMD_SMARTSAFE_PANIC_FINGER_COUNT"; - CommandType[CommandType["CMD_SMARTSAFE_POWER_SAVE_ON"] = 1946165267] = "CMD_SMARTSAFE_POWER_SAVE_ON"; - CommandType[CommandType["CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS"] = 1946165253] = "CMD_SMARTSAFE_PROTECT_COOLDOWN_SECONDS"; - CommandType[CommandType["CMD_SMARTSAFE_REMOTE_OPEN_TYPE"] = 1946165266] = "CMD_SMARTSAFE_REMOTE_OPEN_TYPE"; - CommandType[CommandType["CMD_SMARTSAFE_RSSI"] = 1946165259] = "CMD_SMARTSAFE_RSSI"; - CommandType[CommandType["CMD_SMARTSAFE_VOLUME"] = 1946165249] = "CMD_SMARTSAFE_VOLUME"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - CommandType[CommandType["CMD_SMARTSAFE_PARAM_BASE"] = 1946165248] = "CMD_SMARTSAFE_PARAM_BASE"; - CommandType[CommandType["CMD_SMARTSAFE_SETTINGS"] = 1946157056] = "CMD_SMARTSAFE_SETTINGS"; - CommandType[CommandType["CMD_SMARTSAFE_STATUS_UPDATE"] = 1946157057] = "CMD_SMARTSAFE_STATUS_UPDATE"; - CommandType[CommandType["CMD_SET_PAYLOAD_LOCKV12"] = 1930] = "CMD_SET_PAYLOAD_LOCKV12"; - CommandType[CommandType["CMD_SET_MOTION_DETECTION_TYPE_HB3"] = 1298] = "CMD_SET_MOTION_DETECTION_TYPE_HB3"; - CommandType[CommandType["CMD_GET_WORKING_DAYS_HB3"] = 1191] = "CMD_GET_WORKING_DAYS_HB3"; - CommandType[CommandType["CMD_GET_DETECTED_EVENTS_HB3"] = 1192] = "CMD_GET_DETECTED_EVENTS_HB3"; - CommandType[CommandType["CMD_GET_RECORDED_EVENTS_HB3"] = 1193] = "CMD_GET_RECORDED_EVENTS_HB3"; - CommandType[CommandType["CELLULAR_INFO"] = 7002] = "CELLULAR_INFO"; - CommandType[CommandType["CELLULAR_SIGNAL_STRENGTH"] = 7006] = "CELLULAR_SIGNAL_STRENGTH"; - CommandType[CommandType["CMD_DATABASE_COUNT"] = 10005] = "CMD_DATABASE_COUNT"; - CommandType[CommandType["CMD_DATABASE_COUNT_BY_DEVICE"] = 10012] = "CMD_DATABASE_COUNT_BY_DEVICE"; - CommandType[CommandType["CMD_DATABASE_COUNT_BY_DATE"] = 10008] = "CMD_DATABASE_COUNT_BY_DATE"; - CommandType[CommandType["CMD_DATABASE_DELETE"] = 10001] = "CMD_DATABASE_DELETE"; - CommandType[CommandType["CMD_DATABASE_DOWNLOAD"] = 8001] = "CMD_DATABASE_DOWNLOAD"; - CommandType[CommandType["CMD_DATABASE_IMAGE"] = 1308] = "CMD_DATABASE_IMAGE"; - CommandType[CommandType["CMD_DATABASE_QUERY"] = 10000] = "CMD_DATABASE_QUERY"; - CommandType[CommandType["CMD_DATABASE_QUERY_BY_DATE"] = 10006] = "CMD_DATABASE_QUERY_BY_DATE"; - CommandType[CommandType["CMD_DATABASE_QUERY_COMBINATION"] = 10009] = "CMD_DATABASE_QUERY_COMBINATION"; - CommandType[CommandType["CMD_DATABASE_QUERY_COMBINATION_WITH_AI"] = 10011] = "CMD_DATABASE_QUERY_COMBINATION_WITH_AI"; - CommandType[CommandType["CMD_DATABASE_QUERY_LATEST_INFO"] = 10013] = "CMD_DATABASE_QUERY_LATEST_INFO"; - CommandType[CommandType["CMD_DATABASE_SYNC"] = 10003] = "CMD_DATABASE_SYNC"; - CommandType[CommandType["CMD_DATABASE_UPDATE"] = 10002] = "CMD_DATABASE_UPDATE"; - CommandType[CommandType["CMD_DATABASE"] = 1306] = "CMD_DATABASE"; - CommandType[CommandType["CMD_SYNC_QUERY_RECENT_PACKAGE_INFO"] = 10018] = "CMD_SYNC_QUERY_RECENT_PACKAGE_INFO"; - CommandType[CommandType["CMD_DATABASE_QUERY_LOCAL"] = 10017] = "CMD_DATABASE_QUERY_LOCAL"; - CommandType[CommandType["CMD_WALL_LIGHT_SPEAKER_VOLUME"] = 6342] = "CMD_WALL_LIGHT_SPEAKER_VOLUME"; - CommandType[CommandType["CMD_WALL_LIGHT_ALERT_VOLUME"] = 6347] = "CMD_WALL_LIGHT_ALERT_VOLUME"; - CommandType[CommandType["CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN"] = 6330] = "CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_HUMAN"; - CommandType[CommandType["CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL"] = 6332] = "CMD_WALL_LIGHT_MOTION_DETECTION_TYPE_ALL"; - CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION"] = 6334] = "CMD_WALL_LIGHT_NOTIFICATION"; - CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN"] = 6335] = "CMD_WALL_LIGHT_NOTIFICATION_TYPE_HUMAN"; - CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL"] = 6337] = "CMD_WALL_LIGHT_NOTIFICATION_TYPE_ALL"; - CommandType[CommandType["CMD_WALL_LIGHT_NOTIFICATION_TYPE"] = 6338] = "CMD_WALL_LIGHT_NOTIFICATION_TYPE"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS"] = 6379] = "CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES"] = 6380] = "CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE"] = 6381] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_LIGHTING_ACTIVE_MODE"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE"] = 6382] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_LIGHTING_ACTIVE_MODE"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE"] = 6383] = "CMD_WALL_LIGHT_SETTINGS_MOTION_LIGHTING_ACTIVE_MODE"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING"] = 6361] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_DAILY_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING"] = 6384] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING"] = 6366] = "CMD_WALL_LIGHT_SETTINGS_MANUAL_DYNAMIC_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING"] = 6367] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DAILY_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING"] = 6385] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING"] = 6372] = "CMD_WALL_LIGHT_SETTINGS_SCHEDULE_DYNAMIC_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING"] = 6373] = "CMD_WALL_LIGHT_SETTINGS_MOTION_DAILY_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING"] = 6386] = "CMD_WALL_LIGHT_SETTINGS_MOTION_COLORED_LIGHTING"; - CommandType[CommandType["CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING"] = 6378] = "CMD_WALL_LIGHT_SETTINGS_MOTION_DYNAMIC_LIGHTING"; - CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING"] = 7511] = "CMD_CAMERA_GARAGE_DOOR_CONTROL_WARNING"; - CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_STATUS"] = 7500] = "CMD_CAMERA_GARAGE_DOOR_STATUS"; - //CMD_CAMERA_GARAGE_DOOR_UNKNOWN1 = 7501, - //CMD_CAMERA_GARAGE_DOOR_UNKNOWN2 = 7502, - CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_CALIBRATE"] = 7505] = "CMD_CAMERA_GARAGE_DOOR_CALIBRATE"; - //CMD_CAMERA_GARAGE_DOOR_UNKNOWN3 = 7506, - CommandType[CommandType["CMD_CAMERA_GARAGE_DOOR_SENSORS"] = 7503] = "CMD_CAMERA_GARAGE_DOOR_SENSORS"; - CommandType[CommandType["CMD_STORAGE_INFO_HB3"] = 1307] = "CMD_STORAGE_INFO_HB3"; - CommandType[CommandType["CMD_SET_FLICKER_ADJUSTMENT"] = 8000] = "CMD_SET_FLICKER_ADJUSTMENT"; - CommandType[CommandType["CMD_SET_CROSS_CAMERA_TRACKING"] = 1065] = "CMD_SET_CROSS_CAMERA_TRACKING"; - CommandType[CommandType["CMD_SET_TRACKING_ASSISTANCE"] = 1069] = "CMD_SET_TRACKING_ASSISTANCE"; - CommandType[CommandType["CMD_SET_CONTINUOUS_TRACKING_TIME"] = 1070] = "CMD_SET_CONTINUOUS_TRACKING_TIME"; - CommandType[CommandType["CMD_SET_CROSS_TRACKING_CAMERA_LIST"] = 1072] = "CMD_SET_CROSS_TRACKING_CAMERA_LIST"; - CommandType[CommandType["CMD_SET_CROSS_TRACKING_GROUP_LIST"] = 1073] = "CMD_SET_CROSS_TRACKING_GROUP_LIST"; - CommandType[CommandType["CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350"] = 6208] = "CMD_INDOOR_SET_SOUND_DETECT_ROUND_LOOK_S350"; - CommandType[CommandType["CMD_INDOOR_ENABLE_PRIVACY_MODE_S350"] = 6250] = "CMD_INDOOR_ENABLE_PRIVACY_MODE_S350"; - CommandType[CommandType["CMD_MOTION_SET_LEAVING_DETECTION"] = 2726] = "CMD_MOTION_SET_LEAVING_DETECTION"; - CommandType[CommandType["CMD_MOTION_SET_LEAVING_REACTIONS"] = 2727] = "CMD_MOTION_SET_LEAVING_REACTIONS"; - CommandType[CommandType["CMD_SMARKLOCK_ADD_FINGER"] = 1965] = "CMD_SMARKLOCK_ADD_FINGER"; - CommandType[CommandType["CMD_SMARKLOCK_ADD_FINGER_STEP"] = 1967] = "CMD_SMARKLOCK_ADD_FINGER_STEP"; - CommandType[CommandType["CMD_SMARKLOCK_CANCLE_FINGER"] = 1966] = "CMD_SMARKLOCK_CANCLE_FINGER"; - CommandType[CommandType["CMD_SMARTLOCK_ALARM_NOTIFY"] = 1970] = "CMD_SMARTLOCK_ALARM_NOTIFY"; - CommandType[CommandType["CMD_SMARTLOCK_ALARM_STOP"] = 1971] = "CMD_SMARTLOCK_ALARM_STOP"; - CommandType[CommandType["CMD_SMARTLOCK_GET_DOOR_STATUS"] = 1972] = "CMD_SMARTLOCK_GET_DOOR_STATUS"; - CommandType[CommandType["CMD_TRANSFER_PAYLOAD"] = 1940] = "CMD_TRANSFER_PAYLOAD"; - CommandType[CommandType["CMD_WIFILOCK_KEYPAD_ENTER_OTA"] = 1933] = "CMD_WIFILOCK_KEYPAD_ENTER_OTA"; - CommandType[CommandType["CMD_SMART_DROP_DELIVERY_MODE"] = 2103] = "CMD_SMART_DROP_DELIVERY_MODE"; - CommandType[CommandType["CMD_SMART_DROP_OPEN"] = 2105] = "CMD_SMART_DROP_OPEN"; - CommandType[CommandType["CMD_SMART_DROP_OPEN_LID"] = 2100] = "CMD_SMART_DROP_OPEN_LID"; - CommandType[CommandType["CMD_SMART_DROP_IS_DENIED_DELIVERY"] = 2106] = "CMD_SMART_DROP_IS_DENIED_DELIVERY"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - CommandType[CommandType["CMD_SMART_DROP_HAS_MASTER_PIN"] = 2109] = "CMD_SMART_DROP_HAS_MASTER_PIN"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - CommandType[CommandType["CMD_SMART_DROP_IS_PIN_REQUIRED"] = 2107] = "CMD_SMART_DROP_IS_PIN_REQUIRED"; -})(CommandType || (exports.CommandType = CommandType = {})); -var MessageType; -(function (MessageType) { - //com.oceanwing.battery.cam.zmedia.model.FunctionType - MessageType[MessageType["INIT_P2P_CLIENT_TYPE"] = 1] = "INIT_P2P_CLIENT_TYPE"; - MessageType[MessageType["CONNECT_P2P_TYPE"] = 2] = "CONNECT_P2P_TYPE"; - MessageType[MessageType["DEINIT_P2P_CLIENT_TYPE"] = 3] = "DEINIT_P2P_CLIENT_TYPE"; - MessageType[MessageType["SET_COMMAND_WITH_INT_TYPE"] = 4] = "SET_COMMAND_WITH_INT_TYPE"; - MessageType[MessageType["GET_COMMAND_WITH_INT_TYPE"] = 5] = "GET_COMMAND_WITH_INT_TYPE"; - MessageType[MessageType["SET_COMMAND_WITH_STRING_TYPE"] = 6] = "SET_COMMAND_WITH_STRING_TYPE"; - MessageType[MessageType["GET_COMMAND_WITH_STRING_TYPE"] = 7] = "GET_COMMAND_WITH_STRING_TYPE"; - MessageType[MessageType["SET_REC_BROADCAT_STATE_TYPE"] = 8] = "SET_REC_BROADCAT_STATE_TYPE"; - MessageType[MessageType["SET_COMMAND_WITH_M_STRING"] = 9] = "SET_COMMAND_WITH_M_STRING"; - MessageType[MessageType["SET_COMMAND_WITH_INT_STRING_TYPE"] = 10] = "SET_COMMAND_WITH_INT_STRING_TYPE"; - MessageType[MessageType["SET_SCHEDULE_TYPE"] = 11] = "SET_SCHEDULE_TYPE"; - MessageType[MessageType["BATCH_DEL_EVENT_TYPE"] = 12] = "BATCH_DEL_EVENT_TYPE"; - MessageType[MessageType["ADD_AI_FACE_INFO_TYPE"] = 13] = "ADD_AI_FACE_INFO_TYPE"; - MessageType[MessageType["SET_COMMAND_WITH_2INT_MSTRING"] = 14] = "SET_COMMAND_WITH_2INT_MSTRING"; - MessageType[MessageType["CHECK_HUB_STATE"] = 15] = "CHECK_HUB_STATE"; - MessageType[MessageType["SET_COMMAND_WITH_2STR_INT"] = 16] = "SET_COMMAND_WITH_2STR_INT"; - MessageType[MessageType["BIND_HUB_TYPE"] = 17] = "BIND_HUB_TYPE"; - MessageType[MessageType["P2P_BIND_HUB_TYPE"] = 18] = "P2P_BIND_HUB_TYPE"; -})(MessageType || (exports.MessageType = MessageType = {})); -var ErrorCode; -(function (ErrorCode) { - //com.oceanwing.battery.cam.zmedia.model.MediaErrorCode - ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_CREATE_FAIL"] = -304] = "ERROR_BIND_CLIENT_SOCKET_CREATE_FAIL"; - ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_RECEIVE_LEN_ERROR"] = -307] = "ERROR_BIND_CLIENT_SOCKET_RECEIVE_LEN_ERROR"; - ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_RECEIVE_TIMEOUT"] = -306] = "ERROR_BIND_CLIENT_SOCKET_RECEIVE_TIMEOUT"; - ErrorCode[ErrorCode["ERROR_BIND_CLIENT_SOCKET_SEND_FAIL"] = -305] = "ERROR_BIND_CLIENT_SOCKET_SEND_FAIL"; - ErrorCode[ErrorCode["ERROR_BIND_COMMAND_ERROR"] = -309] = "ERROR_BIND_COMMAND_ERROR"; - ErrorCode[ErrorCode["ERROR_BIND_PARAM_NULL"] = -308] = "ERROR_BIND_PARAM_NULL"; - ErrorCode[ErrorCode["ERROR_BROADCAST_RECEIVE_SN_NULL"] = -303] = "ERROR_BROADCAST_RECEIVE_SN_NULL"; - ErrorCode[ErrorCode["ERROR_BROADCAST_RECEIVE_TIME_OUT"] = -302] = "ERROR_BROADCAST_RECEIVE_TIME_OUT"; - ErrorCode[ErrorCode["ERROR_BROADCAST_START_ALREADY_RUNNING"] = -300] = "ERROR_BROADCAST_START_ALREADY_RUNNING"; - ErrorCode[ErrorCode["ERROR_BROADCAST_STOP_SOCKET_FD_ERROR"] = -301] = "ERROR_BROADCAST_STOP_SOCKET_FD_ERROR"; - ErrorCode[ErrorCode["ERROR_CLOSE_HOMEKIT"] = -143] = "ERROR_CLOSE_HOMEKIT"; - ErrorCode[ErrorCode["ERROR_COMMAND_TIMEOUT"] = -133] = "ERROR_COMMAND_TIMEOUT"; - ErrorCode[ErrorCode["ERROR_CONNECT_TIMEOUT"] = -134] = "ERROR_CONNECT_TIMEOUT"; - ErrorCode[ErrorCode["ERROR_DEV_BUSY"] = -114] = "ERROR_DEV_BUSY"; - ErrorCode[ErrorCode["ERROR_DEV_CLOSE"] = -128] = "ERROR_DEV_CLOSE"; - ErrorCode[ErrorCode["ERROR_DEV_OFFLINE"] = -109] = "ERROR_DEV_OFFLINE"; - ErrorCode[ErrorCode["ERROR_DEV_UPDATEING"] = -113] = "ERROR_DEV_UPDATEING"; - ErrorCode[ErrorCode["ERROR_GET_EXEC_RESULT"] = -120] = "ERROR_GET_EXEC_RESULT"; - ErrorCode[ErrorCode["ERROR_HAVE_CONNECT"] = -101] = "ERROR_HAVE_CONNECT"; - ErrorCode[ErrorCode["ERROR_HIGHT_TEMPERATURE"] = -121] = "ERROR_HIGHT_TEMPERATURE"; - ErrorCode[ErrorCode["ERROR_HUB_NON_ADMIN"] = -125] = "ERROR_HUB_NON_ADMIN"; - ErrorCode[ErrorCode["ERROR_HUB_UPDATEING"] = -112] = "ERROR_HUB_UPDATEING"; - ErrorCode[ErrorCode["ERROR_INVALID_ACCOUNT"] = -104] = "ERROR_INVALID_ACCOUNT"; - ErrorCode[ErrorCode["ERROR_INVALID_COMMAND"] = -103] = "ERROR_INVALID_COMMAND"; - ErrorCode[ErrorCode["ERROR_INVALID_PARAM"] = -110] = "ERROR_INVALID_PARAM"; - ErrorCode[ErrorCode["ERROR_INVALID_PARAM_LEN"] = -107] = "ERROR_INVALID_PARAM_LEN"; - ErrorCode[ErrorCode["ERROR_MAX_DEV_CONNECT_NUM"] = -123] = "ERROR_MAX_DEV_CONNECT_NUM"; - ErrorCode[ErrorCode["ERROR_MAX_HUB_CONNECT_NUM"] = -102] = "ERROR_MAX_HUB_CONNECT_NUM"; - ErrorCode[ErrorCode["ERROR_MAX_NAS_CONNECT_NUM"] = -130] = "ERROR_MAX_NAS_CONNECT_NUM"; - ErrorCode[ErrorCode["ERROR_MODE_DISABLE"] = -129] = "ERROR_MODE_DISABLE"; - ErrorCode[ErrorCode["ERROR_NETWORK_NOT_AVAILABLE"] = 998] = "ERROR_NETWORK_NOT_AVAILABLE"; - ErrorCode[ErrorCode["ERROR_NOT_FACE"] = -115] = "ERROR_NOT_FACE"; - ErrorCode[ErrorCode["ERROR_NOT_FIND_DEV"] = -106] = "ERROR_NOT_FIND_DEV"; - ErrorCode[ErrorCode["ERROR_NOT_TFCARD"] = -118] = "ERROR_NOT_TFCARD"; - ErrorCode[ErrorCode["ERROR_NULL_POINT"] = -100] = "ERROR_NULL_POINT"; - ErrorCode[ErrorCode["ERROR_OPEN_FILE_FAIL"] = -111] = "ERROR_OPEN_FILE_FAIL"; - ErrorCode[ErrorCode["ERROR_PARAM_NO_CHANGE"] = -116] = "ERROR_PARAM_NO_CHANGE"; - ErrorCode[ErrorCode["ERROR_PIPE_FAIL"] = -124] = "ERROR_PIPE_FAIL"; - ErrorCode[ErrorCode["ERROR_PLAY_STOP"] = -127] = "ERROR_PLAY_STOP"; - ErrorCode[ErrorCode["ERROR_POWER_LOW"] = -117] = "ERROR_POWER_LOW"; - ErrorCode[ErrorCode["ERROR_PPCS_ALREADY_INITIALIZED"] = -2] = "ERROR_PPCS_ALREADY_INITIALIZED"; - ErrorCode[ErrorCode["ERROR_PPCS_CONNECTING"] = -126] = "ERROR_PPCS_CONNECTING"; - ErrorCode[ErrorCode["ERROR_PPCS_DEVICE_NOT_ONLINE"] = -6] = "ERROR_PPCS_DEVICE_NOT_ONLINE"; - ErrorCode[ErrorCode["ERROR_PPCS_FAIL_TO_CREATE_THREAD"] = -22] = "ERROR_PPCS_FAIL_TO_CREATE_THREAD"; - ErrorCode[ErrorCode["ERROR_PPCS_FAIL_TO_RESOLVE_NAME"] = -7] = "ERROR_PPCS_FAIL_TO_RESOLVE_NAME"; - ErrorCode[ErrorCode["ERROR_PPCS_ID_OUT_OF_DATE"] = -9] = "ERROR_PPCS_ID_OUT_OF_DATE"; - ErrorCode[ErrorCode["ERROR_PPCS_INVALID_APILICENSE"] = -21] = "ERROR_PPCS_INVALID_APILICENSE"; - ErrorCode[ErrorCode["ERROR_PPCS_INVALID_DSK"] = -23] = "ERROR_PPCS_INVALID_DSK"; - ErrorCode[ErrorCode["ERROR_PPCS_INVALID_ID"] = -4] = "ERROR_PPCS_INVALID_ID"; - ErrorCode[ErrorCode["ERROR_PPCS_INVALID_PARAMETER"] = -5] = "ERROR_PPCS_INVALID_PARAMETER"; - ErrorCode[ErrorCode["ERROR_PPCS_INVALID_PREFIX"] = -8] = "ERROR_PPCS_INVALID_PREFIX"; - ErrorCode[ErrorCode["ERROR_PPCS_INVALID_SESSION_HANDLE"] = -11] = "ERROR_PPCS_INVALID_SESSION_HANDLE"; - ErrorCode[ErrorCode["ERROR_PPCS_MAX_SESSION"] = -17] = "ERROR_PPCS_MAX_SESSION"; - ErrorCode[ErrorCode["ERROR_PPCS_NOT_INITIALIZED"] = -1] = "ERROR_PPCS_NOT_INITIALIZED"; - ErrorCode[ErrorCode["ERROR_PPCS_NO_RELAY_SERVER_AVAILABLE"] = -10] = "ERROR_PPCS_NO_RELAY_SERVER_AVAILABLE"; - ErrorCode[ErrorCode["ERROR_PPCS_RELAY"] = 1] = "ERROR_PPCS_RELAY"; - ErrorCode[ErrorCode["ERROR_PPCS_REMOTE_SITE_BUFFER_FULL"] = -15] = "ERROR_PPCS_REMOTE_SITE_BUFFER_FULL"; - ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_CALLED"] = -14] = "ERROR_PPCS_SESSION_CLOSED_CALLED"; - ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_INSUFFICIENT_MEMORY"] = -20] = "ERROR_PPCS_SESSION_CLOSED_INSUFFICIENT_MEMORY"; - ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_REMOTE"] = -12] = "ERROR_PPCS_SESSION_CLOSED_REMOTE"; - ErrorCode[ErrorCode["ERROR_PPCS_SESSION_CLOSED_TIMEOUT"] = -13] = "ERROR_PPCS_SESSION_CLOSED_TIMEOUT"; - ErrorCode[ErrorCode["ERROR_PPCS_SUCCESSFUL"] = 0] = "ERROR_PPCS_SUCCESSFUL"; - ErrorCode[ErrorCode["ERROR_PPCS_TIME_OUT"] = -3] = "ERROR_PPCS_TIME_OUT"; - ErrorCode[ErrorCode["ERROR_PPCS_UDP_PORT_BIND_FAILED"] = -18] = "ERROR_PPCS_UDP_PORT_BIND_FAILED"; - ErrorCode[ErrorCode["ERROR_PPCS_USER_CONNECT_BREAK"] = -19] = "ERROR_PPCS_USER_CONNECT_BREAK"; - ErrorCode[ErrorCode["ERROR_PPCS_USER_LISTEN_BREAK"] = -16] = "ERROR_PPCS_USER_LISTEN_BREAK"; - ErrorCode[ErrorCode["ERROR_SET_P2P_INFO"] = -122] = "ERROR_SET_P2P_INFO"; - ErrorCode[ErrorCode["ERROR_STATION_HAS_BIND"] = 20020] = "ERROR_STATION_HAS_BIND"; - ErrorCode[ErrorCode["ERROR_TFCARD_FORMATING"] = -119] = "ERROR_TFCARD_FORMATING"; - ErrorCode[ErrorCode["ERROR_TFCARD_REPAIRING"] = -135] = "ERROR_TFCARD_REPAIRING"; - ErrorCode[ErrorCode["ERROR_TFCARD_VOLUME_OVERFLOW"] = -132] = "ERROR_TFCARD_VOLUME_OVERFLOW"; - ErrorCode[ErrorCode["ERROR_WAIT_TIMEOUT"] = -108] = "ERROR_WAIT_TIMEOUT"; - ErrorCode[ErrorCode["ERROR_WAKEUP_CAMRA_TYPE"] = -131] = "ERROR_WAKEUP_CAMRA_TYPE"; - ErrorCode[ErrorCode["ERROR_WRITE_FLASH"] = -105] = "ERROR_WRITE_FLASH"; - ErrorCode[ErrorCode["ERROR_XM_BASE"] = -200] = "ERROR_XM_BASE"; - ErrorCode[ErrorCode["ERROR_XM_WIFI_DISCONNECT"] = -203] = "ERROR_XM_WIFI_DISCONNECT"; - ErrorCode[ErrorCode["ERROR_XM_WIFI_TIMEOUT"] = -205] = "ERROR_XM_WIFI_TIMEOUT"; - ErrorCode[ErrorCode["ERROR_XM_WIFI_WAKEUP_FAIL"] = -204] = "ERROR_XM_WIFI_WAKEUP_FAIL"; - ErrorCode[ErrorCode["ERROR_LIMIT_REACHED"] = -500] = "ERROR_LIMIT_REACHED"; - ErrorCode[ErrorCode["ERROR_FAILED_TO_REQUEST"] = 503] = "ERROR_FAILED_TO_REQUEST"; - ErrorCode[ErrorCode["ERROR_SEQUENCE_NUMBER"] = -151] = "ERROR_SEQUENCE_NUMBER"; -})(ErrorCode || (exports.ErrorCode = ErrorCode = {})); -var TFCardStatus; -(function (TFCardStatus) { - TFCardStatus[TFCardStatus["NULL"] = -1] = "NULL"; - TFCardStatus[TFCardStatus["NORMAL"] = 0] = "NORMAL"; - TFCardStatus[TFCardStatus["NON_ORIGINAL"] = 1] = "NON_ORIGINAL"; - TFCardStatus[TFCardStatus["MOUNT_FAIL"] = 2] = "MOUNT_FAIL"; - TFCardStatus[TFCardStatus["FORMAT_FAIL"] = 3] = "FORMAT_FAIL"; - TFCardStatus[TFCardStatus["REMOVE"] = 4] = "REMOVE"; - TFCardStatus[TFCardStatus["FORMATING"] = 5] = "FORMATING"; - TFCardStatus[TFCardStatus["BUSY"] = 6] = "BUSY"; - TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_RW"] = 7] = "E2FSCK_FAIL_MOUNT_RW"; - TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_FAIL_REINSERT"] = 8] = "E2FSCK_FAIL_MOUNT_FAIL_REINSERT"; - TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_RO"] = 9] = "E2FSCK_FAIL_MOUNT_RO"; - TFCardStatus[TFCardStatus["E2FSCK_FAIL_MOUNT_RW_ERR"] = 10] = "E2FSCK_FAIL_MOUNT_RW_ERR"; - TFCardStatus[TFCardStatus["REPAIRING"] = 11] = "REPAIRING"; - TFCardStatus[TFCardStatus["MOUNT_FAIL_E2FSCK_ERROR"] = 12] = "MOUNT_FAIL_E2FSCK_ERROR"; - TFCardStatus[TFCardStatus["MOUNT_FAIL_E2FSCK_TIMEOUT"] = 13] = "MOUNT_FAIL_E2FSCK_TIMEOUT"; - TFCardStatus[TFCardStatus["MOUNT_RW_E2FSCK_ERROR"] = 14] = "MOUNT_RW_E2FSCK_ERROR"; - TFCardStatus[TFCardStatus["MOUNT_RW_E2FSCK_TIMEOUT"] = 15] = "MOUNT_RW_E2FSCK_TIMEOUT"; - TFCardStatus[TFCardStatus["MOUNT_RO_E2FSCK_OK"] = 16] = "MOUNT_RO_E2FSCK_OK"; - TFCardStatus[TFCardStatus["MOUNT_RO_E2FSCK_ERROR"] = 17] = "MOUNT_RO_E2FSCK_ERROR"; - TFCardStatus[TFCardStatus["MOUNT_RO_E2FSCK_TIMEOUT"] = 18] = "MOUNT_RO_E2FSCK_TIMEOUT"; - TFCardStatus[TFCardStatus["MOUNT_RERR_E2FSCK_OK"] = 19] = "MOUNT_RERR_E2FSCK_OK"; - TFCardStatus[TFCardStatus["MOUNT_RERR_E2FSCK_ERROR"] = 20] = "MOUNT_RERR_E2FSCK_ERROR"; - TFCardStatus[TFCardStatus["MOUNT_RERR_E2FSCK_TIMEOUT"] = 21] = "MOUNT_RERR_E2FSCK_TIMEOUT"; - TFCardStatus[TFCardStatus["UNNORMAL_IO_ERROR"] = 22] = "UNNORMAL_IO_ERROR"; - TFCardStatus[TFCardStatus["RISK"] = 23] = "RISK"; - TFCardStatus[TFCardStatus["MOUNTING"] = 24] = "MOUNTING"; -})(TFCardStatus || (exports.TFCardStatus = TFCardStatus = {})); -var AlarmEvent; -(function (AlarmEvent) { - //com.oceanwing.battery.cam.zmedia.model.ZControlResponse - AlarmEvent[AlarmEvent["HUB_STOP"] = 0] = "HUB_STOP"; - AlarmEvent[AlarmEvent["DEV_STOP"] = 1] = "DEV_STOP"; - AlarmEvent[AlarmEvent["GSENSOR"] = 2] = "GSENSOR"; - AlarmEvent[AlarmEvent["PIR"] = 3] = "PIR"; - AlarmEvent[AlarmEvent["APP"] = 4] = "APP"; - AlarmEvent[AlarmEvent["HOT"] = 5] = "HOT"; - AlarmEvent[AlarmEvent["DOOR"] = 6] = "DOOR"; - AlarmEvent[AlarmEvent["CAMERA_PIR"] = 7] = "CAMERA_PIR"; - AlarmEvent[AlarmEvent["MOTION_SENSOR"] = 8] = "MOTION_SENSOR"; - AlarmEvent[AlarmEvent["CAMERA_GSENSOR"] = 9] = "CAMERA_GSENSOR"; - AlarmEvent[AlarmEvent["CAMERA_APP"] = 10] = "CAMERA_APP"; - AlarmEvent[AlarmEvent["CAMERA_LINKAGE"] = 11] = "CAMERA_LINKAGE"; - AlarmEvent[AlarmEvent["HUB_KEYPAD"] = 13] = "HUB_KEYPAD"; - AlarmEvent[AlarmEvent["HUB_STOP_BY_KEYPAD"] = 15] = "HUB_STOP_BY_KEYPAD"; - AlarmEvent[AlarmEvent["HUB_STOP_BY_APP"] = 16] = "HUB_STOP_BY_APP"; - AlarmEvent[AlarmEvent["HUB_STOP_BY_HAND"] = 17] = "HUB_STOP_BY_HAND"; - AlarmEvent[AlarmEvent["APP_LIGHT"] = 22] = "APP_LIGHT"; - AlarmEvent[AlarmEvent["APP_LIGHT_SOUND"] = 23] = "APP_LIGHT_SOUND"; - AlarmEvent[AlarmEvent["MOTION_APP_LIGHT"] = 24] = "MOTION_APP_LIGHT"; - AlarmEvent[AlarmEvent["MOTION_APP_LIGHT_ALARM"] = 25] = "MOTION_APP_LIGHT_ALARM"; -})(AlarmEvent || (exports.AlarmEvent = AlarmEvent = {})); -// Doorbell, Solo cameras -var WatermarkSetting1; -(function (WatermarkSetting1) { - WatermarkSetting1[WatermarkSetting1["OFF"] = 0] = "OFF"; - WatermarkSetting1[WatermarkSetting1["ON"] = 1] = "ON"; -})(WatermarkSetting1 || (exports.WatermarkSetting1 = WatermarkSetting1 = {})); -// Battery doorbells, eufycam 1/e -var WatermarkSetting2; -(function (WatermarkSetting2) { - WatermarkSetting2[WatermarkSetting2["OFF"] = 1] = "OFF"; - WatermarkSetting2[WatermarkSetting2["ON"] = 2] = "ON"; -})(WatermarkSetting2 || (exports.WatermarkSetting2 = WatermarkSetting2 = {})); -// cameras 2x -var WatermarkSetting3; -(function (WatermarkSetting3) { - WatermarkSetting3[WatermarkSetting3["OFF"] = 0] = "OFF"; - WatermarkSetting3[WatermarkSetting3["TIMESTAMP"] = 1] = "TIMESTAMP"; - WatermarkSetting3[WatermarkSetting3["TIMESTAMP_AND_LOGO"] = 2] = "TIMESTAMP_AND_LOGO"; -})(WatermarkSetting3 || (exports.WatermarkSetting3 = WatermarkSetting3 = {})); -// Floodlight, Indoor cameras -var WatermarkSetting4; -(function (WatermarkSetting4) { - WatermarkSetting4[WatermarkSetting4["TIMESTAMP"] = 0] = "TIMESTAMP"; - WatermarkSetting4[WatermarkSetting4["TIMESTAMP_AND_LOGO"] = 1] = "TIMESTAMP_AND_LOGO"; - WatermarkSetting4[WatermarkSetting4["OFF"] = 2] = "OFF"; -})(WatermarkSetting4 || (exports.WatermarkSetting4 = WatermarkSetting4 = {})); -// Garage cameras -var WatermarkSetting5; -(function (WatermarkSetting5) { - WatermarkSetting5[WatermarkSetting5["LOGO"] = 1] = "LOGO"; - WatermarkSetting5[WatermarkSetting5["OFF"] = 2] = "OFF"; -})(WatermarkSetting5 || (exports.WatermarkSetting5 = WatermarkSetting5 = {})); -var PanTiltDirection; -(function (PanTiltDirection) { - PanTiltDirection[PanTiltDirection["ROTATE360"] = 0] = "ROTATE360"; - PanTiltDirection[PanTiltDirection["LEFT"] = 1] = "LEFT"; - PanTiltDirection[PanTiltDirection["RIGHT"] = 2] = "RIGHT"; - PanTiltDirection[PanTiltDirection["UP"] = 3] = "UP"; - PanTiltDirection[PanTiltDirection["DOWN"] = 4] = "DOWN"; -})(PanTiltDirection || (exports.PanTiltDirection = PanTiltDirection = {})); -var VideoCodec; -(function (VideoCodec) { - VideoCodec[VideoCodec["UNKNOWN"] = -1] = "UNKNOWN"; - VideoCodec[VideoCodec["H264"] = 0] = "H264"; - VideoCodec[VideoCodec["H265"] = 1] = "H265"; -})(VideoCodec || (exports.VideoCodec = VideoCodec = {})); -var AudioCodec; -(function (AudioCodec) { - AudioCodec[AudioCodec["UNKNOWN"] = -1] = "UNKNOWN"; - AudioCodec[AudioCodec["NONE"] = 0] = "NONE"; - AudioCodec[AudioCodec["AAC"] = 1] = "AAC"; - AudioCodec[AudioCodec["AAC_LC"] = 2] = "AAC_LC"; - AudioCodec[AudioCodec["AAC_ELD"] = 3] = "AAC_ELD"; -})(AudioCodec || (exports.AudioCodec = AudioCodec = {})); -var ESLCommand; -(function (ESLCommand) { - ESLCommand[ESLCommand["ACTIVATE_DEVICE"] = 107] = "ACTIVATE_DEVICE"; - ESLCommand[ESLCommand["ADD_FINGER"] = 6003] = "ADD_FINGER"; - ESLCommand[ESLCommand["ADD_FINGER_STEP"] = 6029] = "ADD_FINGER_STEP"; - ESLCommand[ESLCommand["ADD_PW"] = 6002] = "ADD_PW"; - ESLCommand[ESLCommand["BIND_LOCK"] = 101] = "BIND_LOCK"; - ESLCommand[ESLCommand["CALIBRATE_LOCK"] = 6017] = "CALIBRATE_LOCK"; - ESLCommand[ESLCommand["CANCEL_ADD_FINGER"] = 115] = "CANCEL_ADD_FINGER"; - ESLCommand[ESLCommand["CHECK_KEYPAD_CONNECT"] = 130] = "CHECK_KEYPAD_CONNECT"; - ESLCommand[ESLCommand["CREATE_TEMPORARY_PW"] = 125] = "CREATE_TEMPORARY_PW"; - ESLCommand[ESLCommand["DELETE_FINGER"] = 6006] = "DELETE_FINGER"; - ESLCommand[ESLCommand["DELETE_LOCK_EVENT"] = 127] = "DELETE_LOCK_EVENT"; - ESLCommand[ESLCommand["DELETE_PW"] = 6005] = "DELETE_PW"; - ESLCommand[ESLCommand["DELETE_USER"] = 6004] = "DELETE_USER"; - ESLCommand[ESLCommand["ECDH_CONSULT"] = 131] = "ECDH_CONSULT"; - ESLCommand[ESLCommand["ECDH_MODE_GET_PUBLIC_KEY"] = 138] = "ECDH_MODE_GET_PUBLIC_KEY"; - ESLCommand[ESLCommand["END_BIND"] = 102] = "END_BIND"; - ESLCommand[ESLCommand["ENTER_OTA"] = 6020] = "ENTER_OTA"; - ESLCommand[ESLCommand["ENTER_OTA_UPDATE"] = 116] = "ENTER_OTA_UPDATE"; - ESLCommand[ESLCommand["GET_FINGER_PW_USAGE"] = 6022] = "GET_FINGER_PW_USAGE"; - ESLCommand[ESLCommand["GET_KEYPAD_INFO"] = 136] = "GET_KEYPAD_INFO"; - ESLCommand[ESLCommand["GET_LOCK_PARAM"] = 6016] = "GET_LOCK_PARAM"; - ESLCommand[ESLCommand["GET_LOCK_PUBLIC_KEY"] = 121] = "GET_LOCK_PUBLIC_KEY"; - ESLCommand[ESLCommand["GET_USER_ID_AND_PW_ID"] = 6027] = "GET_USER_ID_AND_PW_ID"; - ESLCommand[ESLCommand["HEART_BEAT"] = 6001] = "HEART_BEAT"; - ESLCommand[ESLCommand["KEYPAD_ENTER_OTA"] = 135] = "KEYPAD_ENTER_OTA"; - ESLCommand[ESLCommand["KEYPAD_VERIFY_APP"] = 134] = "KEYPAD_VERIFY_APP"; - ESLCommand[ESLCommand["LOCK_KEYPAD_BIND_NOTIFY"] = 133] = "LOCK_KEYPAD_BIND_NOTIFY"; - ESLCommand[ESLCommand["MANUAL_CALIBRATE"] = 128] = "MANUAL_CALIBRATE"; - ESLCommand[ESLCommand["MODIFY_NAME"] = 119] = "MODIFY_NAME"; - ESLCommand[ESLCommand["NOTIFY"] = 110] = "NOTIFY"; - ESLCommand[ESLCommand["ON_OFF_LOCK"] = 6018] = "ON_OFF_LOCK"; - ESLCommand[ESLCommand["PULL_BLE"] = 6024] = "PULL_BLE"; - ESLCommand[ESLCommand["QUERY_ALL_USERS"] = 6007] = "QUERY_ALL_USERS"; - ESLCommand[ESLCommand["QUERY_LOCK_RECORD"] = 122] = "QUERY_LOCK_RECORD"; - ESLCommand[ESLCommand["QUERY_ONE_USER"] = 6008] = "QUERY_ONE_USER"; - ESLCommand[ESLCommand["QUERY_PW"] = 6009] = "QUERY_PW"; - ESLCommand[ESLCommand["QUERY_PW_LIST"] = 6010] = "QUERY_PW_LIST"; - ESLCommand[ESLCommand["QUERY_STATUS_IN_LOCK"] = 6012] = "QUERY_STATUS_IN_LOCK"; - ESLCommand[ESLCommand["QUERY_STATUS_IN_SERVER"] = 6011] = "QUERY_STATUS_IN_SERVER"; - ESLCommand[ESLCommand["RECEIVE_SEQ_NUM"] = 6028] = "RECEIVE_SEQ_NUM"; - ESLCommand[ESLCommand["REMOVE_DEVICE"] = 124] = "REMOVE_DEVICE"; - ESLCommand[ESLCommand["REMOVE_KEYPAD"] = 137] = "REMOVE_KEYPAD"; - ESLCommand[ESLCommand["RESET"] = 6019] = "RESET"; - ESLCommand[ESLCommand["SAVE_LOCK_PARAM_TO_SERVER"] = 6023] = "SAVE_LOCK_PARAM_TO_SERVER"; - ESLCommand[ESLCommand["SEND_LOCK_INFO_TO_KEYPAD"] = 132] = "SEND_LOCK_INFO_TO_KEYPAD"; - ESLCommand[ESLCommand["SEND_OTA_PACKAGE"] = 117] = "SEND_OTA_PACKAGE"; - ESLCommand[ESLCommand["SET_LOCK_PARAM"] = 6015] = "SET_LOCK_PARAM"; - ESLCommand[ESLCommand["SHUT_DOWN_BLE"] = 6026] = "SHUT_DOWN_BLE"; - ESLCommand[ESLCommand["TEMPORARY_PW_LIST"] = 126] = "TEMPORARY_PW_LIST"; - ESLCommand[ESLCommand["UPDATE_PW"] = 6014] = "UPDATE_PW"; - ESLCommand[ESLCommand["UPDATE_USER_TIME"] = 6013] = "UPDATE_USER_TIME"; - ESLCommand[ESLCommand["VERIFY_IDENTITY"] = 6000] = "VERIFY_IDENTITY"; - ESLCommand[ESLCommand["VERIFY_PW"] = 118] = "VERIFY_PW"; - ESLCommand[ESLCommand["WIFI_CONNECT"] = 106] = "WIFI_CONNECT"; - ESLCommand[ESLCommand["WIFI_LIST"] = 105] = "WIFI_LIST"; - ESLCommand[ESLCommand["WIFI_SCAN"] = 104] = "WIFI_SCAN"; -})(ESLCommand || (exports.ESLCommand = ESLCommand = {})); -var ESLBleCommand; -(function (ESLBleCommand) { - ESLBleCommand[ESLBleCommand["BIND_LOCK"] = 1] = "BIND_LOCK"; - ESLBleCommand[ESLBleCommand["VERIFY_IDENTITY"] = 2] = "VERIFY_IDENTITY"; - ESLBleCommand[ESLBleCommand["HEART_BEAT"] = 3] = "HEART_BEAT"; - ESLBleCommand[ESLBleCommand["ACTIVATE_DEVICE"] = 4] = "ACTIVATE_DEVICE"; - ESLBleCommand[ESLBleCommand["ADD_PW"] = 5] = "ADD_PW"; - ESLBleCommand[ESLBleCommand["CALIBRATE_LOCK"] = 7] = "CALIBRATE_LOCK"; - ESLBleCommand[ESLBleCommand["ON_OFF_LOCK"] = 8] = "ON_OFF_LOCK"; - ESLBleCommand[ESLBleCommand["RESET"] = 9] = "RESET"; - ESLBleCommand[ESLBleCommand["WIFI_SCAN"] = 10] = "WIFI_SCAN"; - ESLBleCommand[ESLBleCommand["WIFI_LIST"] = 11] = "WIFI_LIST"; - ESLBleCommand[ESLBleCommand["WIFI_CONNECT"] = 12] = "WIFI_CONNECT"; - ESLBleCommand[ESLBleCommand["ADD_FINGER"] = 13] = "ADD_FINGER"; - ESLBleCommand[ESLBleCommand["DELETE_FINGER"] = 14] = "DELETE_FINGER"; - ESLBleCommand[ESLBleCommand["DELETE_USER"] = 15] = "DELETE_USER"; - ESLBleCommand[ESLBleCommand["CANCEL_ADD_FINGER"] = 16] = "CANCEL_ADD_FINGER"; - ESLBleCommand[ESLBleCommand["QUERY_STATUS_IN_LOCK"] = 17] = "QUERY_STATUS_IN_LOCK"; - ESLBleCommand[ESLBleCommand["NOTIFY"] = 18] = "NOTIFY"; - ESLBleCommand[ESLBleCommand["END_BIND"] = 21] = "END_BIND"; - ESLBleCommand[ESLBleCommand["GET_LOCK_PUBLIC_KEY"] = 22] = "GET_LOCK_PUBLIC_KEY"; - ESLBleCommand[ESLBleCommand["VERIFY_PW"] = 23] = "VERIFY_PW"; - ESLBleCommand[ESLBleCommand["QUERY_LOCK_RECORD"] = 24] = "QUERY_LOCK_RECORD"; - ESLBleCommand[ESLBleCommand["QUERY_ALL_USERS"] = 25] = "QUERY_ALL_USERS"; - ESLBleCommand[ESLBleCommand["QUERY_PW"] = 26] = "QUERY_PW"; - ESLBleCommand[ESLBleCommand["UPDATE_PW"] = 27] = "UPDATE_PW"; - ESLBleCommand[ESLBleCommand["UPDATE_USER_TIME"] = 28] = "UPDATE_USER_TIME"; - ESLBleCommand[ESLBleCommand["MODIFY_NAME"] = 29] = "MODIFY_NAME"; - ESLBleCommand[ESLBleCommand["GET_FINGER_PW_USAGE"] = 30] = "GET_FINGER_PW_USAGE"; - ESLBleCommand[ESLBleCommand["ENTER_OTA_UPDATE"] = 31] = "ENTER_OTA_UPDATE"; - ESLBleCommand[ESLBleCommand["SEND_OTA_PACKAGE"] = 32] = "SEND_OTA_PACKAGE"; - ESLBleCommand[ESLBleCommand["GET_LOCK_PARAM"] = 33] = "GET_LOCK_PARAM"; - ESLBleCommand[ESLBleCommand["SET_LOCK_PARAM"] = 34] = "SET_LOCK_PARAM"; - ESLBleCommand[ESLBleCommand["SHUT_DOWN_BLE"] = 36] = "SHUT_DOWN_BLE"; -})(ESLBleCommand || (exports.ESLBleCommand = ESLBleCommand = {})); -var ESLAnkerBleConstant; -(function (ESLAnkerBleConstant) { - ESLAnkerBleConstant[ESLAnkerBleConstant["a"] = -95] = "a"; - ESLAnkerBleConstant[ESLAnkerBleConstant["b"] = -94] = "b"; - ESLAnkerBleConstant[ESLAnkerBleConstant["c"] = -93] = "c"; - ESLAnkerBleConstant[ESLAnkerBleConstant["d"] = -92] = "d"; - ESLAnkerBleConstant[ESLAnkerBleConstant["e"] = -91] = "e"; - ESLAnkerBleConstant[ESLAnkerBleConstant["f"] = -90] = "f"; - ESLAnkerBleConstant[ESLAnkerBleConstant["g"] = -89] = "g"; - ESLAnkerBleConstant[ESLAnkerBleConstant["h"] = -88] = "h"; - ESLAnkerBleConstant[ESLAnkerBleConstant["i"] = -87] = "i"; - ESLAnkerBleConstant[ESLAnkerBleConstant["j"] = -86] = "j"; -})(ESLAnkerBleConstant || (exports.ESLAnkerBleConstant = ESLAnkerBleConstant = {})); -var P2PConnectionType; -(function (P2PConnectionType) { - P2PConnectionType[P2PConnectionType["ONLY_LOCAL"] = 1] = "ONLY_LOCAL"; - P2PConnectionType[P2PConnectionType["QUICKEST"] = 2] = "QUICKEST"; -})(P2PConnectionType || (exports.P2PConnectionType = P2PConnectionType = {})); -var IndoorSoloSmartdropCommandType; -(function (IndoorSoloSmartdropCommandType) { - //com.eufy.security.indoorcam.logic.net.IcP2PCommandType - //com.eufy.security.smartdrop.logic.net.SDP2PCommandType - //com.eufy.security.solo.logic.net.SoloP2PCommandType - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_ANSWERING_RING_RECORD"] = 1027] = "CMD_ANSWERING_RING_RECORD"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_AUDIO_RECORD"] = 1029] = "CMD_AUDIO_RECORD"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_BRIGHTNESS"] = 1021] = "CMD_BRIGHTNESS"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_CHIME_BIND"] = 1007] = "CMD_CHIME_BIND"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_CHIME_OPEN"] = 1006] = "CMD_CHIME_OPEN"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_DELETE_HISTORY_FILE"] = 1011] = "CMD_DELETE_HISTORY_FILE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_DELETE_METERING_ZONE"] = 1014] = "CMD_DELETE_METERING_ZONE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_ENABLE_HDR"] = 1019] = "CMD_ENABLE_HDR"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_END_SPEAK"] = 1002] = "CMD_END_SPEAK"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_FIXED_RESOLUTION"] = 1018] = "CMD_FIXED_RESOLUTION"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_LED_NIGHT_OPEN"] = 1026] = "CMD_LED_NIGHT_OPEN"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_ADVANCE_OPTION_DEFAULT"] = 1028] = "CMD_MOTION_ADVANCE_OPTION_DEFAULT"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_DETECTION_PACKAGE"] = 1016] = "CMD_MOTION_DETECTION_PACKAGE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_DETECTION_ZONE"] = 1009] = "CMD_MOTION_DETECTION_ZONE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_DETECTION_ZONE_DELETE"] = 1008] = "CMD_MOTION_DETECTION_ZONE_DELETE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_UN_DETECTION_ZONE"] = 1024] = "CMD_MOTION_UN_DETECTION_ZONE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_MOTION_UN_DETECTION_ZONE_DELETE"] = 1025] = "CMD_MOTION_UN_DETECTION_ZONE_DELETE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_QUERY_DEVICE_VOLTAGE"] = 1015] = "CMD_QUERY_DEVICE_VOLTAGE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_QUICK_RESPONSE"] = 1004] = "CMD_QUICK_RESPONSE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_SEND_VIDEO_BITRATE"] = 1017] = "CMD_SEND_VIDEO_BITRATE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_SET_METERING_ZONE"] = 1013] = "CMD_SET_METERING_ZONE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_SET_RINGTONE_VOLUME"] = 1012] = "CMD_SET_RINGTONE_VOLUME"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_START_LIVE"] = 1000] = "CMD_START_LIVE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_START_SPEAK"] = 1001] = "CMD_START_SPEAK"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_STREAM_INFO"] = 1005] = "CMD_STREAM_INFO"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_UPDATE_QUICK_RESPONSE"] = 1010] = "CMD_UPDATE_QUICK_RESPONSE"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_VIDEO_DISTORTIONCORRECTION"] = 1022] = "CMD_VIDEO_DISTORTIONCORRECTION"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_VIDEO_QUALITY"] = 1020] = "CMD_VIDEO_QUALITY"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_VIDEO_RECORD_QUALITY"] = 1023] = "CMD_VIDEO_RECORD_QUALITY"; - IndoorSoloSmartdropCommandType[IndoorSoloSmartdropCommandType["CMD_ZOOM_REGION"] = 1003] = "CMD_ZOOM_REGION"; -})(IndoorSoloSmartdropCommandType || (exports.IndoorSoloSmartdropCommandType = IndoorSoloSmartdropCommandType = {})); -var SmartSafeCommandCode; -(function (SmartSafeCommandCode) { - SmartSafeCommandCode[SmartSafeCommandCode["BIND_CMD"] = 1] = "BIND_CMD"; - SmartSafeCommandCode[SmartSafeCommandCode["VERIFY_IDENTITY"] = 2] = "VERIFY_IDENTITY"; - SmartSafeCommandCode[SmartSafeCommandCode["DEFAULT"] = 3] = "DEFAULT"; - SmartSafeCommandCode[SmartSafeCommandCode["ACTIVATE_DEVICE"] = 4] = "ACTIVATE_DEVICE"; - SmartSafeCommandCode[SmartSafeCommandCode["ADD_PASSWORD"] = 5] = "ADD_PASSWORD"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_IS_SET_PASSWORD"] = 6] = "QUERY_IS_SET_PASSWORD"; - SmartSafeCommandCode[SmartSafeCommandCode["ADD_FINGERPRINT"] = 7] = "ADD_FINGERPRINT"; - SmartSafeCommandCode[SmartSafeCommandCode["DELETE_FINGERPRINT"] = 8] = "DELETE_FINGERPRINT"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_FINGERPRINT_LIST"] = 9] = "QUERY_FINGERPRINT_LIST"; - SmartSafeCommandCode[SmartSafeCommandCode["ENTER_OTA_UPDATE"] = 10] = "ENTER_OTA_UPDATE"; - SmartSafeCommandCode[SmartSafeCommandCode["SEND_OTA_PACKAGE"] = 11] = "SEND_OTA_PACKAGE"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_LOCK_STATUS"] = 12] = "QUERY_LOCK_STATUS"; - SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK"] = 13] = "UNLOCK"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_BATTERY"] = 14] = "QUERY_BATTERY"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_LOCK_ALARM"] = 15] = "SET_LOCK_ALARM"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_CRACK_PROTECT"] = 16] = "SET_CRACK_PROTECT"; - SmartSafeCommandCode[SmartSafeCommandCode["UNLOAD_BATTERY"] = 17] = "UNLOAD_BATTERY"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_FW_CODE"] = 18] = "QUERY_FW_CODE"; - SmartSafeCommandCode[SmartSafeCommandCode["SCAN_WIFI"] = 19] = "SCAN_WIFI"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_WIFI_LIST"] = 20] = "QUERY_WIFI_LIST"; - SmartSafeCommandCode[SmartSafeCommandCode["CONNECT_WIFI"] = 21] = "CONNECT_WIFI"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_CRACK_PROTECT"] = 22] = "QUERY_CRACK_PROTECT"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_LOCK_ALARM"] = 23] = "QUERY_LOCK_ALARM"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_SCRAMBLE_PASSWORD"] = 24] = "QUERY_SCRAMBLE_PASSWORD"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_SCRAMBLE_PASSWORD"] = 25] = "SET_SCRAMBLE_PASSWORD"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_DUAL_UNLOCK"] = 26] = "QUERY_DUAL_UNLOCK"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_DUAL_UNLOCK"] = 27] = "SET_DUAL_UNLOCK"; - SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK_EVENTS"] = 28] = "UNLOCK_EVENTS"; - SmartSafeCommandCode[SmartSafeCommandCode["CANCEL_FINGERPRINT"] = 29] = "CANCEL_FINGERPRINT"; - SmartSafeCommandCode[SmartSafeCommandCode["ACTIVE_WIFI"] = 30] = "ACTIVE_WIFI"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_VOLUME"] = 31] = "SET_VOLUME"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_VOLUME"] = 32] = "QUERY_VOLUME"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_LIGHT"] = 33] = "SET_LIGHT"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_LIGHT"] = 34] = "QUERY_LIGHT"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_SHAKE"] = 35] = "SET_SHAKE"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_SHAKE"] = 36] = "QUERY_SHAKE"; - SmartSafeCommandCode[SmartSafeCommandCode["UNBIND"] = 37] = "UNBIND"; - SmartSafeCommandCode[SmartSafeCommandCode["UPDATE_FINGERPRINT"] = 38] = "UPDATE_FINGERPRINT"; - SmartSafeCommandCode[SmartSafeCommandCode["UPDATE_NAME"] = 39] = "UPDATE_NAME"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_PUSH"] = 40] = "SET_PUSH"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_PUSH"] = 41] = "QUERY_PUSH"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_VOLUME_ALERT"] = 42] = "SET_VOLUME_ALERT"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_VOLUME_ALERT"] = 43] = "QUERY_VOLUME_ALERT"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_PASSWORD"] = 44] = "QUERY_PASSWORD"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_UNLOCK_MODE"] = 45] = "SET_UNLOCK_MODE"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_UNLOCK_MODE"] = 46] = "QUERY_UNLOCK_MODE"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_VERIFY_PIN"] = 47] = "SET_VERIFY_PIN"; - SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK_EVENTS2"] = 48] = "UNLOCK_EVENTS2"; - SmartSafeCommandCode[SmartSafeCommandCode["UNLOCK_EVENTS3"] = 49] = "UNLOCK_EVENTS3"; - SmartSafeCommandCode[SmartSafeCommandCode["SET_POWERSAVE"] = 50] = "SET_POWERSAVE"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_POWERSAVE"] = 51] = "QUERY_POWERSAVE"; - SmartSafeCommandCode[SmartSafeCommandCode["SEND_WIFI_OTA"] = 52] = "SEND_WIFI_OTA"; - SmartSafeCommandCode[SmartSafeCommandCode["QUERY_IS_SET_PANIC_FINGERPRINT"] = 53] = "QUERY_IS_SET_PANIC_FINGERPRINT"; -})(SmartSafeCommandCode || (exports.SmartSafeCommandCode = SmartSafeCommandCode = {})); -var SmartSafeAlarm911Event; -(function (SmartSafeAlarm911Event) { - SmartSafeAlarm911Event[SmartSafeAlarm911Event["CANCEL_ALARM"] = 0] = "CANCEL_ALARM"; - SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM"] = 1] = "ALARM"; - SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM_SUCCESS"] = 2] = "ALARM_SUCCESS"; - SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM_NOT_OPEN"] = 3] = "ALARM_NOT_OPEN"; - SmartSafeAlarm911Event[SmartSafeAlarm911Event["ALARM_OPEN_FAILED"] = 4] = "ALARM_OPEN_FAILED"; -})(SmartSafeAlarm911Event || (exports.SmartSafeAlarm911Event = SmartSafeAlarm911Event = {})); -var SmartSafeShakeAlarmEvent; -(function (SmartSafeShakeAlarmEvent) { - SmartSafeShakeAlarmEvent[SmartSafeShakeAlarmEvent["CANCEL_ALARM"] = 0] = "CANCEL_ALARM"; - SmartSafeShakeAlarmEvent[SmartSafeShakeAlarmEvent["ALARM"] = 1] = "ALARM"; -})(SmartSafeShakeAlarmEvent || (exports.SmartSafeShakeAlarmEvent = SmartSafeShakeAlarmEvent = {})); -var SmartSafeBatteryTemperatureEvent; -(function (SmartSafeBatteryTemperatureEvent) { - SmartSafeBatteryTemperatureEvent[SmartSafeBatteryTemperatureEvent["NORMAL"] = 0] = "NORMAL"; - SmartSafeBatteryTemperatureEvent[SmartSafeBatteryTemperatureEvent["LOW"] = 1] = "LOW"; - SmartSafeBatteryTemperatureEvent[SmartSafeBatteryTemperatureEvent["HIGH"] = 2] = "HIGH"; -})(SmartSafeBatteryTemperatureEvent || (exports.SmartSafeBatteryTemperatureEvent = SmartSafeBatteryTemperatureEvent = {})); -var SmartSafeBatteryStatusEvent; -(function (SmartSafeBatteryStatusEvent) { - SmartSafeBatteryStatusEvent[SmartSafeBatteryStatusEvent["NOT_CHARGING"] = 0] = "NOT_CHARGING"; - SmartSafeBatteryStatusEvent[SmartSafeBatteryStatusEvent["CHARGING"] = 1] = "CHARGING"; -})(SmartSafeBatteryStatusEvent || (exports.SmartSafeBatteryStatusEvent = SmartSafeBatteryStatusEvent = {})); -var DatabaseReturnCode; -(function (DatabaseReturnCode) { - DatabaseReturnCode[DatabaseReturnCode["ERROR_DB_NOT_READY"] = -1100] = "ERROR_DB_NOT_READY"; - DatabaseReturnCode[DatabaseReturnCode["SUCCESSFUL"] = 0] = "SUCCESSFUL"; -})(DatabaseReturnCode || (exports.DatabaseReturnCode = DatabaseReturnCode = {})); -var P2PStorageType; -(function (P2PStorageType) { - P2PStorageType[P2PStorageType["NONE"] = 0] = "NONE"; - P2PStorageType[P2PStorageType["EMMC"] = 1] = "EMMC"; - P2PStorageType[P2PStorageType["HD"] = 2] = "HD"; - P2PStorageType[P2PStorageType["SDCARD"] = 3] = "SDCARD"; - P2PStorageType[P2PStorageType["SENSOR"] = 4] = "SENSOR"; - P2PStorageType[P2PStorageType["ALARM"] = 5] = "ALARM"; -})(P2PStorageType || (exports.P2PStorageType = P2PStorageType = {})); -var FilterStorageType; -(function (FilterStorageType) { - FilterStorageType[FilterStorageType["NONE"] = 0] = "NONE"; - FilterStorageType[FilterStorageType["LOCAL"] = 1] = "LOCAL"; - FilterStorageType[FilterStorageType["CLOUD"] = 2] = "CLOUD"; -})(FilterStorageType || (exports.FilterStorageType = FilterStorageType = {})); -var FilterEventType; -(function (FilterEventType) { - FilterEventType[FilterEventType["ALL"] = 0] = "ALL"; - FilterEventType[FilterEventType["VIDEO"] = 1] = "VIDEO"; - FilterEventType[FilterEventType["ALERT"] = 2] = "ALERT"; -})(FilterEventType || (exports.FilterEventType = FilterEventType = {})); -var FeatureTag; -(function (FeatureTag) { - FeatureTag[FeatureTag["USER"] = 0] = "USER"; - FeatureTag[FeatureTag["STRANGER"] = 1] = "STRANGER"; - FeatureTag[FeatureTag["SELF_LEARNING_NO_CONFIRM"] = 2] = "SELF_LEARNING_NO_CONFIRM"; - FeatureTag[FeatureTag["SELF_LEARNING_CONFIRM"] = 3] = "SELF_LEARNING_CONFIRM"; - FeatureTag[FeatureTag["SELF_LEARNING_ERROR_CONFIRM"] = 4] = "SELF_LEARNING_ERROR_CONFIRM"; -})(FeatureTag || (exports.FeatureTag = FeatureTag = {})); -var FilterDetectType; -(function (FilterDetectType) { - FilterDetectType[FilterDetectType["NOT_SUPPORT"] = 0] = "NOT_SUPPORT"; - FilterDetectType[FilterDetectType["PERSON_FACE"] = 1] = "PERSON_FACE"; - FilterDetectType[FilterDetectType["PERSON_BODY"] = 2] = "PERSON_BODY"; - FilterDetectType[FilterDetectType["VEHICLE"] = 4] = "VEHICLE"; - FilterDetectType[FilterDetectType["PET"] = 8] = "PET"; - FilterDetectType[FilterDetectType["SOUND"] = 128] = "SOUND"; - FilterDetectType[FilterDetectType["CRYING"] = 256] = "CRYING"; - FilterDetectType[FilterDetectType["PACKAGE"] = 512] = "PACKAGE"; - // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values - FilterDetectType[FilterDetectType["PACKAGE_PICK_UP"] = 512] = "PACKAGE_PICK_UP"; - FilterDetectType[FilterDetectType["PACKAGE_DELIVERED"] = 1024] = "PACKAGE_DELIVERED"; - FilterDetectType[FilterDetectType["CROSS_DELIVERED"] = 2048] = "CROSS_DELIVERED"; -})(FilterDetectType || (exports.FilterDetectType = FilterDetectType = {})); -var CalibrateGarageType; -(function (CalibrateGarageType) { - CalibrateGarageType[CalibrateGarageType["ROLLER_DOOR"] = 1] = "ROLLER_DOOR"; - CalibrateGarageType[CalibrateGarageType["SECTIONAL_DOOR"] = 2] = "SECTIONAL_DOOR"; - CalibrateGarageType[CalibrateGarageType["TILT_DOOR"] = 3] = "TILT_DOOR"; -})(CalibrateGarageType || (exports.CalibrateGarageType = CalibrateGarageType = {})); -var EncryptionType; -(function (EncryptionType) { - EncryptionType[EncryptionType["NONE"] = 0] = "NONE"; - EncryptionType[EncryptionType["LEVEL_1"] = 1] = "LEVEL_1"; - EncryptionType[EncryptionType["LEVEL_2"] = 2] = "LEVEL_2"; -})(EncryptionType || (exports.EncryptionType = EncryptionType = {})); -var InternalP2PCommandType; -(function (InternalP2PCommandType) { - InternalP2PCommandType[InternalP2PCommandType["WithIntString"] = 0] = "WithIntString"; - InternalP2PCommandType[InternalP2PCommandType["WithInt"] = 1] = "WithInt"; - InternalP2PCommandType[InternalP2PCommandType["WithStringPayload"] = 2] = "WithStringPayload"; - InternalP2PCommandType[InternalP2PCommandType["WithString"] = 3] = "WithString"; - InternalP2PCommandType[InternalP2PCommandType["WithoutData"] = 4] = "WithoutData"; -})(InternalP2PCommandType || (exports.InternalP2PCommandType = InternalP2PCommandType = {})); -var TrackerCommandType; -(function (TrackerCommandType) { - TrackerCommandType[TrackerCommandType["COMMAND_ANTILOST"] = 1001] = "COMMAND_ANTILOST"; - TrackerCommandType[TrackerCommandType["COMMAND_AUDIO_SETTING"] = 999] = "COMMAND_AUDIO_SETTING"; - TrackerCommandType[TrackerCommandType["COMMAND_BATTERY"] = 1003] = "COMMAND_BATTERY"; - TrackerCommandType[TrackerCommandType["COMMAND_LOCATION"] = 1002] = "COMMAND_LOCATION"; - TrackerCommandType[TrackerCommandType["COMMAND_LOST_MODE"] = 998] = "COMMAND_LOST_MODE"; - TrackerCommandType[TrackerCommandType["COMMAND_NEW_LOCATION"] = 1008] = "COMMAND_NEW_LOCATION"; - TrackerCommandType[TrackerCommandType["COMMAND_NOTIFICATION"] = 1004] = "COMMAND_NOTIFICATION"; - TrackerCommandType[TrackerCommandType["COMMAND_OPEN_ANTI_TOUCH"] = 1010] = "COMMAND_OPEN_ANTI_TOUCH"; - TrackerCommandType[TrackerCommandType["COMMAND_TYPE_FINDMYPHONE"] = 1000] = "COMMAND_TYPE_FINDMYPHONE"; - TrackerCommandType[TrackerCommandType["DISTURB_LOCATION_LIST"] = 1007] = "DISTURB_LOCATION_LIST"; - TrackerCommandType[TrackerCommandType["LOCATION_ADDRESS"] = 1006] = "LOCATION_ADDRESS"; - TrackerCommandType[TrackerCommandType["LOCATION_NEW_ADDRESS"] = 1009] = "LOCATION_NEW_ADDRESS"; - TrackerCommandType[TrackerCommandType["TYPE_ICON_INDEX"] = 1005] = "TYPE_ICON_INDEX"; -})(TrackerCommandType || (exports.TrackerCommandType = TrackerCommandType = {})); -var SmartLockCommand; -(function (SmartLockCommand) { - SmartLockCommand[SmartLockCommand["CALIBRATE_LOCK"] = 6017] = "CALIBRATE_LOCK"; - SmartLockCommand[SmartLockCommand["QUERY_STATUS_IN_LOCK"] = 6012] = "QUERY_STATUS_IN_LOCK"; - SmartLockCommand[SmartLockCommand["ON_OFF_LOCK"] = 6018] = "ON_OFF_LOCK"; - SmartLockCommand[SmartLockCommand["ADD_PW"] = 6002] = "ADD_PW"; - SmartLockCommand[SmartLockCommand["UPDATE_USER_TIME"] = 146] = "UPDATE_USER_TIME"; - SmartLockCommand[SmartLockCommand["UPDATE_PW"] = 6014] = "UPDATE_PW"; - SmartLockCommand[SmartLockCommand["QUERY_PW"] = 6009] = "QUERY_PW"; - SmartLockCommand[SmartLockCommand["ADD_FINGER"] = 6003] = "ADD_FINGER"; - SmartLockCommand[SmartLockCommand["CANCEL_ADD_FINGER"] = 115] = "CANCEL_ADD_FINGER"; - SmartLockCommand[SmartLockCommand["DELETE_FINGER"] = 6006] = "DELETE_FINGER"; - SmartLockCommand[SmartLockCommand["UPDATE_FINGER_NAME"] = 119] = "UPDATE_FINGER_NAME"; - SmartLockCommand[SmartLockCommand["QUERY_ALL_USERS"] = 6007] = "QUERY_ALL_USERS"; - SmartLockCommand[SmartLockCommand["DELETE_USER"] = 6004] = "DELETE_USER"; - SmartLockCommand[SmartLockCommand["GET_FINGER_PW_USAGE"] = 6022] = "GET_FINGER_PW_USAGE"; - SmartLockCommand[SmartLockCommand["WIFI_SCAN"] = 104] = "WIFI_SCAN"; - SmartLockCommand[SmartLockCommand["WIFI_LIST"] = 105] = "WIFI_LIST"; - SmartLockCommand[SmartLockCommand["WIFI_CONNECT"] = 106] = "WIFI_CONNECT"; - SmartLockCommand[SmartLockCommand["ACTIVATE_DEVICE"] = 107] = "ACTIVATE_DEVICE"; - SmartLockCommand[SmartLockCommand["SET_LOCK_PARAM"] = 6015] = "SET_LOCK_PARAM"; - SmartLockCommand[SmartLockCommand["GET_LOCK_PARAM"] = 6016] = "GET_LOCK_PARAM"; - SmartLockCommand[SmartLockCommand["GET_LOCK_EVENT"] = 122] = "GET_LOCK_EVENT"; - SmartLockCommand[SmartLockCommand["PULL_BLE"] = 6024] = "PULL_BLE"; - SmartLockCommand[SmartLockCommand["NOTIFY"] = 142] = "NOTIFY"; - SmartLockCommand[SmartLockCommand["CONNECT"] = 138] = "CONNECT"; - SmartLockCommand[SmartLockCommand["DISCONNECT"] = 141] = "DISCONNECT"; - SmartLockCommand[SmartLockCommand["CAPACITY_NEGOTIATION"] = 139] = "CAPACITY_NEGOTIATION"; - SmartLockCommand[SmartLockCommand["SET_CAPACITY"] = 140] = "SET_CAPACITY"; - SmartLockCommand[SmartLockCommand["VERIFY_IDENTIFY"] = 6000] = "VERIFY_IDENTIFY"; - SmartLockCommand[SmartLockCommand["BIND"] = 101] = "BIND"; - SmartLockCommand[SmartLockCommand["UNBIND"] = 124] = "UNBIND"; - SmartLockCommand[SmartLockCommand["HEARTBEAT"] = 6001] = "HEARTBEAT"; - SmartLockCommand[SmartLockCommand["RESET"] = 6019] = "RESET"; - SmartLockCommand[SmartLockCommand["BIND_SUCCESS"] = 102] = "BIND_SUCCESS"; -})(SmartLockCommand || (exports.SmartLockCommand = SmartLockCommand = {})); -var SmartLockFunctionType; -(function (SmartLockFunctionType) { - SmartLockFunctionType[SmartLockFunctionType["TYPE_1"] = 1] = "TYPE_1"; - SmartLockFunctionType[SmartLockFunctionType["TYPE_2"] = 2] = "TYPE_2"; -})(SmartLockFunctionType || (exports.SmartLockFunctionType = SmartLockFunctionType = {})); -var SmartLockBleCommandFunctionType1; -(function (SmartLockBleCommandFunctionType1) { - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["CONNECT"] = 1] = "CONNECT"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["DISCONNECT"] = 2] = "DISCONNECT"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["CAPACITY_NEGOTIATION"] = 3] = "CAPACITY_NEGOTIATION"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["SET_CAPACITY"] = 5] = "SET_CAPACITY"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["VERIFY_IDENTIFY"] = 34] = "VERIFY_IDENTIFY"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["BIND"] = 35] = "BIND"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["UNBIND"] = 36] = "UNBIND"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["HEARTBEAT"] = 38] = "HEARTBEAT"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["GET_DEVICE_INFO"] = 41] = "GET_DEVICE_INFO"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["GET_OTA_STATUS"] = 44] = "GET_OTA_STATUS"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["OTA_OPERATION"] = 45] = "OTA_OPERATION"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["OTA_DATA_SENDING"] = 46] = "OTA_DATA_SENDING"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["RESET"] = 47] = "RESET"; - SmartLockBleCommandFunctionType1[SmartLockBleCommandFunctionType1["BIND_SUCCESS"] = 48] = "BIND_SUCCESS"; -})(SmartLockBleCommandFunctionType1 || (exports.SmartLockBleCommandFunctionType1 = SmartLockBleCommandFunctionType1 = {})); -var SmartLockBleCommandFunctionType2; -(function (SmartLockBleCommandFunctionType2) { - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["CALIBRATE_LOCK"] = 33] = "CALIBRATE_LOCK"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["QUERY_STATUS_IN_LOCK"] = 34] = "QUERY_STATUS_IN_LOCK"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ON_OFF_LOCK"] = 35] = "ON_OFF_LOCK"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ADD_PW"] = 36] = "ADD_PW"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["UPDATE_USER_TIME"] = 37] = "UPDATE_USER_TIME"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["UPDATE_PW"] = 38] = "UPDATE_PW"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["QUERY_PW"] = 39] = "QUERY_PW"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ADD_FINGER"] = 40] = "ADD_FINGER"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["CANCEL_ADD_FINGER"] = 41] = "CANCEL_ADD_FINGER"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["DELETE_FINGER"] = 42] = "DELETE_FINGER"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["UPDATE_FINGER_NAME"] = 43] = "UPDATE_FINGER_NAME"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["QUERY_ALL_USERS"] = 44] = "QUERY_ALL_USERS"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["DELETE_USER"] = 45] = "DELETE_USER"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["GET_FINGER_PW_USAGE"] = 46] = "GET_FINGER_PW_USAGE"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["WIFI_SCAN"] = 48] = "WIFI_SCAN"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["WIFI_LIST"] = 49] = "WIFI_LIST"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["WIFI_CONNECT"] = 50] = "WIFI_CONNECT"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["ACTIVATE_DEVICE"] = 51] = "ACTIVATE_DEVICE"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["SET_LOCK_PARAM"] = 52] = "SET_LOCK_PARAM"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["GET_LOCK_PARAM"] = 53] = "GET_LOCK_PARAM"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["GET_LOCK_EVENT"] = 56] = "GET_LOCK_EVENT"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["PULL_BLE"] = 61] = "PULL_BLE"; - SmartLockBleCommandFunctionType2[SmartLockBleCommandFunctionType2["NOTIFY"] = 74] = "NOTIFY"; -})(SmartLockBleCommandFunctionType2 || (exports.SmartLockBleCommandFunctionType2 = SmartLockBleCommandFunctionType2 = {})); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/p2p/types.js.map b/build/p2p/types.js.map deleted file mode 100644 index f64d1d8b..00000000 --- a/build/p2p/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/p2p/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/p2p/utils.d.ts b/build/p2p/utils.d.ts deleted file mode 100644 index 01c81e51..00000000 --- a/build/p2p/utils.d.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Socket } from "dgram"; -import NodeRSA from "node-rsa"; -import { P2PMessageParts, P2PMessageState, P2PQueueMessage, RGBColor } from "./interfaces"; -import { CommandType, ESLCommand, LockV12P2PCommand, SmartSafeCommandCode, VideoCodec, EncryptionType, SmartLockP2PCommand, SmartLockFunctionType, SmartLockCommand } from "./types"; -import { Address, LockP2PCommandType, SmartSafeNotificationResponse, SmartSafeP2PCommandType } from "./models"; -import { DeviceType } from "../http/types"; -export declare const MAGIC_WORD = "XZYH"; -export declare const isPrivateIp: (ip: string) => boolean; -export declare const getLocalIpAddress: (init?: string) => string; -export declare const isP2PCommandEncrypted: (cmd: CommandType) => boolean; -export declare const getP2PCommandEncryptionKey: (serialNumber: string, p2pDid: string) => string; -export declare const encryptP2PData: (data: Buffer, key: Buffer) => Buffer; -export declare const decryptP2PData: (data: Buffer, key: Buffer) => Buffer; -export declare const paddingP2PData: (data: Buffer, blocksize?: number) => Buffer; -export declare const buildLookupWithKeyPayload: (socket: Socket, p2pDid: string, dskKey: string) => Buffer; -export declare const buildLookupWithKeyPayload2: (p2pDid: string, dskKey: string) => Buffer; -export declare const buildLookupWithKeyPayload3: (p2pDid: string, address: Address, data: Buffer) => Buffer; -export declare const buildCheckCamPayload: (p2pDid: string) => Buffer; -export declare const buildCheckCamPayload2: (p2pDid: string, data: Buffer) => Buffer; -export declare const buildIntCommandPayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, value: number, strValue?: string, channel?: number) => Buffer; -export declare const buildStringTypeCommandPayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, strValue: string, strValueSub: string, channel?: number) => Buffer; -export declare const buildIntStringCommandPayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, value: number, valueSub?: number, strValue?: string, strValueSub?: string, channel?: number) => Buffer; -export declare const sendMessage: (socket: Socket, address: { - host: string; - port: number; -}, msgID: Buffer, payload?: Buffer) => Promise; -export declare const hasHeader: (msg: Buffer, searchedType: Buffer) => boolean; -export declare const buildCommandHeader: (seqNumber: number, commandType: CommandType, p2pDataTypeHeader?: Buffer | null) => Buffer; -export declare const buildCommandWithStringTypePayload: (encryptionType: EncryptionType, encryptionKey: Buffer | undefined, serialNumber: string, p2pDid: string, commandType: CommandType, value: string, channel?: number) => Buffer; -export declare const sortP2PMessageParts: (messages: P2PMessageParts) => Buffer; -export declare const getRSAPrivateKey: (pem: string, enableEmbeddedPKCS1Support?: boolean) => NodeRSA; -export declare const getNewRSAPrivateKey: (enableEmbeddedPKCS1Support?: boolean) => NodeRSA; -export declare const decryptAESData: (hexkey: string, data: Buffer) => Buffer; -export declare const findStartCode: (data: Buffer) => boolean; -export declare const isIFrame: (data: Buffer) => boolean; -export declare const decryptLockAESData: (key: string, iv: string, data: Buffer) => Buffer; -export declare const encryptLockAESData: (key: string, iv: string, data: Buffer) => Buffer; -export declare const generateBasicLockAESKey: (adminID: string, stationSN: string) => string; -export declare const getCurrentTimeInSeconds: () => number; -export declare const generateLockSequence: (deviceType?: DeviceType, serialnumber?: string) => number; -export declare const encodeLockPayload: (data: string) => Buffer; -export declare const getLockVectorBytes: (data: string) => string; -export declare const decodeLockPayload: (data: Buffer) => string; -export declare const decodeBase64: (data: string) => Buffer; -export declare const eslTimestamp: (timestamp_in_sec?: number) => number[]; -export declare const generateAdvancedLockAESKey: () => string; -export declare const getVideoCodec: (data: Buffer) => VideoCodec; -export declare const checkT8420: (serialNumber: string) => boolean; -export declare const buildVoidCommandPayload: (channel?: number) => Buffer; -export declare function isP2PQueueMessage(type: P2PQueueMessage | P2PMessageState): type is P2PQueueMessage; -export declare const encryptPayloadData: (data: string | Buffer, key: Buffer, iv: Buffer) => Buffer; -export declare const decryptPayloadData: (data: Buffer, key: Buffer, iv: Buffer) => Buffer; -export declare const eufyKDF: (key: Buffer) => Buffer; -export declare const getAdvancedLockKey: (key: string, publicKey: string) => string; -export declare const getLockV12Key: (key: string, publicKey: string) => string; -export declare const buildTalkbackAudioFrameHeader: (audioData: Buffer, channel?: number) => Buffer; -export declare const decodeP2PCloudIPs: (data: string) => Array
; -export declare const decodeSmartSafeData: (deviceSN: string, data: Buffer) => SmartSafeNotificationResponse; -export declare const getSmartSafeP2PCommand: (deviceSN: string, user_id: string, command: CommandType, intCommand: SmartSafeCommandCode, channel: number, sequence: number, data: Buffer) => SmartSafeP2PCommandType; -export declare const getLockP2PCommand: (deviceSN: string, user_id: string, command: CommandType, channel: number, lockPublicKey: string, payload: any) => LockP2PCommandType; -export declare const getLockV12P2PCommand: (deviceSN: string, user_id: string, command: CommandType | ESLCommand, channel: number, lockPublicKey: string, sequence: number, data: Buffer) => LockV12P2PCommand; -export declare const DecimalToRGBColor: (color: number) => RGBColor; -export declare const RGBColorToDecimal: (color: RGBColor) => number; -export declare const getNullTerminatedString: (data: Buffer, encoding?: BufferEncoding) => string; -export declare const isUsbCharging: (value: number) => boolean; -export declare const isSolarCharging: (value: number) => boolean; -export declare const isPlugSolarCharging: (value: number) => boolean; -export declare const isCharging: (value: number) => boolean; -export declare const getSmartLockCurrentTimeInSeconds: () => number; -export declare const generateSmartLockAESKey: (adminUserId: string, time: number) => Buffer; -export declare const getSmartLockP2PCommand: (deviceSN: string, user_id: string, command: CommandType | SmartLockCommand, channel: number, sequence: number, data: Buffer, functionType?: SmartLockFunctionType) => SmartLockP2PCommand; -export declare const readNullTerminatedBuffer: (input: Buffer) => Buffer; diff --git a/build/p2p/utils.js b/build/p2p/utils.js deleted file mode 100644 index d820f832..00000000 --- a/build/p2p/utils.js +++ /dev/null @@ -1,824 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getLockP2PCommand = exports.getSmartSafeP2PCommand = exports.decodeSmartSafeData = exports.decodeP2PCloudIPs = exports.buildTalkbackAudioFrameHeader = exports.getLockV12Key = exports.getAdvancedLockKey = exports.eufyKDF = exports.decryptPayloadData = exports.encryptPayloadData = exports.buildVoidCommandPayload = exports.checkT8420 = exports.getVideoCodec = exports.generateAdvancedLockAESKey = exports.eslTimestamp = exports.decodeBase64 = exports.decodeLockPayload = exports.getLockVectorBytes = exports.encodeLockPayload = exports.generateLockSequence = exports.getCurrentTimeInSeconds = exports.generateBasicLockAESKey = exports.encryptLockAESData = exports.decryptLockAESData = exports.isIFrame = exports.findStartCode = exports.decryptAESData = exports.getNewRSAPrivateKey = exports.getRSAPrivateKey = exports.sortP2PMessageParts = exports.buildCommandWithStringTypePayload = exports.buildCommandHeader = exports.hasHeader = exports.sendMessage = exports.buildIntStringCommandPayload = exports.buildStringTypeCommandPayload = exports.buildIntCommandPayload = exports.buildCheckCamPayload2 = exports.buildCheckCamPayload = exports.buildLookupWithKeyPayload3 = exports.buildLookupWithKeyPayload2 = exports.buildLookupWithKeyPayload = exports.paddingP2PData = exports.decryptP2PData = exports.encryptP2PData = exports.getP2PCommandEncryptionKey = exports.isP2PCommandEncrypted = exports.getLocalIpAddress = exports.isPrivateIp = exports.MAGIC_WORD = void 0; -exports.readNullTerminatedBuffer = exports.getSmartLockP2PCommand = exports.generateSmartLockAESKey = exports.getSmartLockCurrentTimeInSeconds = exports.isCharging = exports.isPlugSolarCharging = exports.isSolarCharging = exports.isUsbCharging = exports.getNullTerminatedString = exports.RGBColorToDecimal = exports.DecimalToRGBColor = exports.getLockV12P2PCommand = void 0; -exports.isP2PQueueMessage = isP2PQueueMessage; -const node_rsa_1 = __importDefault(require("node-rsa")); -const CryptoJS = __importStar(require("crypto-js")); -const crypto_1 = require("crypto"); -const os = __importStar(require("os")); -const types_1 = require("./types"); -const device_1 = require("../http/device"); -const ble_1 = require("./ble"); -const logging_1 = require("../logging"); -exports.MAGIC_WORD = "XZYH"; -const isPrivateIp = (ip) => /^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || - /^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || - /^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || - /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || - /^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(ip) || - /^f[cd][0-9a-f]{2}:/i.test(ip) || - /^fe80:/i.test(ip) || - /^::1$/.test(ip) || - /^::$/.test(ip); -exports.isPrivateIp = isPrivateIp; -const stringWithLength = (input, chunkLength = 128) => { - const stringAsBuffer = Buffer.from(input); - const bufferSize = stringAsBuffer.byteLength < chunkLength ? chunkLength : Math.ceil(stringAsBuffer.byteLength / chunkLength) * chunkLength; - const result = Buffer.alloc(bufferSize); - stringAsBuffer.copy(result); - return result; -}; -const getLocalIpAddress = (init = "") => { - const ifaces = os.networkInterfaces(); - let localAddress = init; - for (const name in ifaces) { - const iface = ifaces[name].filter(function (details) { - return details.family === "IPv4" && details.internal === false; - }); - if (iface.length > 0) { - localAddress = iface[0].address; - break; - } - } - return localAddress; -}; -exports.getLocalIpAddress = getLocalIpAddress; -const p2pDidToBuffer = (p2pDid) => { - const p2pArray = p2pDid.split("-"); - const buf1 = stringWithLength(p2pArray[0], 8); - const buf2 = Buffer.allocUnsafe(4); - buf2.writeUInt32BE(Number.parseInt(p2pArray[1]), 0); - const buf3 = stringWithLength(p2pArray[2], 8); - return Buffer.concat([buf1, buf2, buf3], 20); -}; -const isP2PCommandEncrypted = function (cmd) { - return [1001, 1002, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1015, 1017, 1019, 1035, 1045, 1056, 1145, 1146, 1152, 1200, 1207, 1210, 1213, 1214, 1226, 1227, 1229, 1230, 1233, 1236, 1240, 1241, 1243, 1246, 1272, 1273, 1275, 1400, 1401, 1402, 1403, 1408, 1409, 1410, 1412, 1413, 1506, 1507, 1607, 1609, 1610, 1611, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1013, 1202, 1205, 1206, 1024, 1025, 1132, 1215, 1216, 1217, 1414, 1026, 1164, 1201, 1027, 1047, 1048, 1029, 1034, 1036, 1043, 1057, 1203, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1232, 1234, 1235, 1237, 1238, 1248, 1253, 1257, 1269, 1800, 1037, 1040, 1038, 1049, 1050, 1051, 1054, 1060, 1204, 1254, 1255, 1256, 1258, 1259, 1260, 1261, 1262, 1264, 1271, 1350, 1404, 1101, 1106, 1108, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1118, 1119, 1121, 1103, 1129, 1211, 1228, 1231, 1242, 1249, 1250, 1251, 1252, 1405, 1406, 1407, 1700].includes(cmd); -}; -exports.isP2PCommandEncrypted = isP2PCommandEncrypted; -const getP2PCommandEncryptionKey = function (serialNumber, p2pDid) { - return `${serialNumber.slice(-7)}${p2pDid.substring(p2pDid.indexOf("-"), p2pDid.indexOf("-") + 9)}`; -}; -exports.getP2PCommandEncryptionKey = getP2PCommandEncryptionKey; -const encryptP2PData = (data, key) => { - const cipher = (0, crypto_1.createCipheriv)("aes-128-ecb", key, null); - cipher.setAutoPadding(false); - return Buffer.concat([ - cipher.update(data), - cipher.final() - ]); -}; -exports.encryptP2PData = encryptP2PData; -const decryptP2PData = (data, key) => { - const decipher = (0, crypto_1.createDecipheriv)("aes-128-ecb", key, null); - decipher.setAutoPadding(false); - return Buffer.concat([ - decipher.update(data), - decipher.final() - ]); -}; -exports.decryptP2PData = decryptP2PData; -const paddingP2PData = (data, blocksize = 16) => { - const bufferSize = data.byteLength < blocksize ? blocksize : Math.ceil(data.byteLength / blocksize) * blocksize; - const result = Buffer.alloc(bufferSize); - data.copy(result); - return result; -}; -exports.paddingP2PData = paddingP2PData; -const buildLookupWithKeyPayload = (socket, p2pDid, dskKey) => { - const p2pDidBuffer = p2pDidToBuffer(p2pDid); - const addressInfo = socket.address(); - const port = addressInfo.port; - const portAsBuffer = Buffer.allocUnsafe(2); - portAsBuffer.writeUInt16LE(port, 0); - //const ip = socket.address().address; - const ip = (0, exports.getLocalIpAddress)(addressInfo.address); - const temp_buff = []; - ip.split(".").reverse().forEach(element => { - temp_buff.push(Number.parseInt(element)); - }); - const ipAsBuffer = Buffer.from(temp_buff); - const splitter = Buffer.from([0x00, 0x02]); - const magic = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00]); - const dskKeyAsBuffer = Buffer.from(dskKey); - const fourEmpty = Buffer.from([0x00, 0x00, 0x00, 0x00]); - return Buffer.concat([p2pDidBuffer, splitter, portAsBuffer, ipAsBuffer, magic, dskKeyAsBuffer, fourEmpty]); -}; -exports.buildLookupWithKeyPayload = buildLookupWithKeyPayload; -const buildLookupWithKeyPayload2 = (p2pDid, dskKey) => { - const p2pDidBuffer = p2pDidToBuffer(p2pDid); - const dskKeyAsBuffer = Buffer.from(dskKey); - const fourEmpty = Buffer.from([0x00, 0x00, 0x00, 0x00]); - return Buffer.concat([p2pDidBuffer, dskKeyAsBuffer, fourEmpty]); -}; -exports.buildLookupWithKeyPayload2 = buildLookupWithKeyPayload2; -const buildLookupWithKeyPayload3 = (p2pDid, address, data) => { - const p2pDidBuffer = p2pDidToBuffer(p2pDid); - const portAsBuffer = Buffer.allocUnsafe(2); - portAsBuffer.writeUInt16LE(address.port, 0); - const temp_buff = []; - address.host.split(".").reverse().forEach(element => { - temp_buff.push(Number.parseInt(element)); - }); - const ipAsBuffer = Buffer.from(temp_buff); - const splitter = Buffer.from([0x00, 0x02]); - const eightEmpty = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); - return Buffer.concat([p2pDidBuffer, splitter, portAsBuffer, ipAsBuffer, eightEmpty, data]); -}; -exports.buildLookupWithKeyPayload3 = buildLookupWithKeyPayload3; -const buildCheckCamPayload = (p2pDid) => { - const p2pDidBuffer = p2pDidToBuffer(p2pDid); - const magic = Buffer.from([0x00, 0x00, 0x00]); - return Buffer.concat([p2pDidBuffer, magic]); -}; -exports.buildCheckCamPayload = buildCheckCamPayload; -const buildCheckCamPayload2 = (p2pDid, data) => { - const p2pDidBuffer = p2pDidToBuffer(p2pDid); - const magic = Buffer.from([0x00, 0x00, 0x00, 0x00]); - return Buffer.concat([data, p2pDidBuffer, magic]); -}; -exports.buildCheckCamPayload2 = buildCheckCamPayload2; -const buildIntCommandPayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, value, strValue = "", channel = 255) => { - const emptyBuffer = Buffer.from([0x00, 0x00]); - const magicBuffer = Buffer.from([0x01, 0x00]); - const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; - const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); - const valueBuffer = Buffer.allocUnsafe(4); - valueBuffer.writeUInt32LE(value, 0); - const headerBuffer = Buffer.allocUnsafe(2); - const strValueBuffer = strValue.length === 0 ? Buffer.from([]) : stringWithLength(strValue); - const tmpDataBuffer = Buffer.concat([ - valueBuffer, - strValueBuffer - ]); - const dataBuffer = encrypted ? (0, exports.paddingP2PData)(tmpDataBuffer) : tmpDataBuffer; - headerBuffer.writeUInt16LE(dataBuffer.length, 0); - return Buffer.concat([ - headerBuffer, - emptyBuffer, - magicBuffer, - channelBuffer, - emptyBuffer, - encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer - ]); -}; -exports.buildIntCommandPayload = buildIntCommandPayload; -const buildStringTypeCommandPayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, strValue, strValueSub, channel = 255) => { - const emptyBuffer = Buffer.from([0x00, 0x00]); - const magicBuffer = Buffer.from([0x01, 0x00]); - const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; - const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); - const someBuffer = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00]); - const strValueBuffer = stringWithLength(strValue); - const strValueSubBuffer = stringWithLength(strValueSub); - const headerBuffer = Buffer.allocUnsafe(2); - const tmpDataBuffer = Buffer.concat([ - someBuffer, - strValueBuffer, - strValueSubBuffer - ]); - const dataBuffer = encrypted ? (0, exports.paddingP2PData)(tmpDataBuffer) : tmpDataBuffer; - headerBuffer.writeUInt16LE(dataBuffer.length, 0); - return Buffer.concat([ - headerBuffer, - emptyBuffer, - magicBuffer, - channelBuffer, - emptyBuffer, - encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer - ]); -}; -exports.buildStringTypeCommandPayload = buildStringTypeCommandPayload; -const buildIntStringCommandPayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, value, valueSub = 0, strValue = "", strValueSub = "", channel = 0) => { - const emptyBuffer = Buffer.from([0x00, 0x00]); - const magicBuffer = Buffer.from([0x01, 0x00]); - const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; - const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); - const someintBuffer = Buffer.allocUnsafe(4); - someintBuffer.writeUInt32LE(valueSub, 0); - const valueBuffer = Buffer.allocUnsafe(4); - valueBuffer.writeUInt32LE(value, 0); - const strValueBuffer = strValue.length === 0 ? Buffer.from([]) : stringWithLength(strValue); - const strValueSubBuffer = strValueSub.length === 0 ? Buffer.from([]) : stringWithLength(strValueSub); - const headerBuffer = Buffer.allocUnsafe(2); - const tmpDataBuffer = Buffer.concat([ - someintBuffer, - valueBuffer, - strValueBuffer, - strValueSubBuffer - ]); - const dataBuffer = encrypted ? (0, exports.paddingP2PData)(tmpDataBuffer) : tmpDataBuffer; - headerBuffer.writeUInt16LE(dataBuffer.length, 0); - return Buffer.concat([ - headerBuffer, - emptyBuffer, - magicBuffer, - channelBuffer, - emptyBuffer, - encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer - ]); -}; -exports.buildIntStringCommandPayload = buildIntStringCommandPayload; -const sendMessage = async (socket, address, msgID, payload) => { - if (!payload) - payload = Buffer.from([]); - const payloadLen = Buffer.allocUnsafe(2); - payloadLen.writeUInt16BE(payload.length, 0); - const message = Buffer.concat([msgID, payloadLen, payload], 4 + payload.length); - return new Promise((resolve, reject) => { - socket.send(message, address.port, address.host, (err, bytes) => { - return err ? reject(err) : resolve(bytes); - }); - }); -}; -exports.sendMessage = sendMessage; -const hasHeader = (msg, searchedType) => { - const header = Buffer.allocUnsafe(2); - msg.copy(header, 0, 0, 2); - return Buffer.compare(header, searchedType) === 0; -}; -exports.hasHeader = hasHeader; -const buildCommandHeader = (seqNumber, commandType, p2pDataTypeHeader = null) => { - let dataTypeBuffer = types_1.P2PDataTypeHeader.DATA; - if (p2pDataTypeHeader !== null && - (Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.DATA) === 0 || - Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.BINARY) === 0 || - Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.CONTROL) === 0 || - Buffer.compare(p2pDataTypeHeader, types_1.P2PDataTypeHeader.VIDEO) === 0)) { - dataTypeBuffer = p2pDataTypeHeader; - } - const seqAsBuffer = Buffer.allocUnsafe(2); - seqAsBuffer.writeUInt16BE(seqNumber, 0); - const magicString = Buffer.from(exports.MAGIC_WORD); - const commandTypeBuffer = Buffer.allocUnsafe(2); - commandTypeBuffer.writeUInt16LE(commandType, 0); - return Buffer.concat([dataTypeBuffer, seqAsBuffer, magicString, commandTypeBuffer]); -}; -exports.buildCommandHeader = buildCommandHeader; -const buildCommandWithStringTypePayload = (encryptionType, encryptionKey, serialNumber, p2pDid, commandType, value, channel = 0) => { - const headerBuffer = Buffer.allocUnsafe(2); - const emptyBuffer = Buffer.from([0x00, 0x00]); - const magicBuffer = Buffer.from([0x01, 0x00]); - const encrypted = (0, exports.isP2PCommandEncrypted)(commandType) && encryptionType !== types_1.EncryptionType.NONE && encryptionKey?.length === 16; - const channelBuffer = Buffer.from([channel, encrypted ? encryptionType : 0]); - const dataBuffer = encrypted ? (0, exports.paddingP2PData)(Buffer.from(value)) : Buffer.from(value); - headerBuffer.writeUInt16LE(dataBuffer.length, 0); - return Buffer.concat([ - headerBuffer, - emptyBuffer, - magicBuffer, - channelBuffer, - emptyBuffer, - encrypted ? (0, exports.encryptP2PData)(dataBuffer, encryptionKey) : dataBuffer - ]); -}; -exports.buildCommandWithStringTypePayload = buildCommandWithStringTypePayload; -const sortP2PMessageParts = (messages) => { - let completeMessage = Buffer.from([]); - Object.keys(messages).map(Number) - .sort((a, b) => { - if (Math.abs(a - b) > 65000) { - if (a < b) { - return 1; - } - else if (b < a) { - return -1; - } - } - return a - b; - }) // assure the seqNumbers are in correct order - .forEach((key) => { - completeMessage = Buffer.concat([completeMessage, messages[key]]); - }); - return completeMessage; -}; -exports.sortP2PMessageParts = sortP2PMessageParts; -const getRSAPrivateKey = (pem, enableEmbeddedPKCS1Support = false) => { - const key = new node_rsa_1.default(); - if (pem.indexOf("\n") !== -1) { - pem = pem.replaceAll("\n", ""); - } - if (pem.startsWith("-----BEGIN RSA PRIVATE KEY-----")) { - pem = pem.replace("-----BEGIN RSA PRIVATE KEY-----", "").replace("-----END RSA PRIVATE KEY-----", ""); - } - key.importKey(pem, "pkcs8"); - const options = { - encryptionScheme: "pkcs1" - }; - if (enableEmbeddedPKCS1Support) { - options.environment = "browser"; - } - key.setOptions(options); - return key; -}; -exports.getRSAPrivateKey = getRSAPrivateKey; -const getNewRSAPrivateKey = (enableEmbeddedPKCS1Support = false) => { - const key = new node_rsa_1.default({ b: 1024 }); - const options = { - encryptionScheme: "pkcs1" - }; - if (enableEmbeddedPKCS1Support) { - options.environment = "browser"; - } - key.setOptions(options); - return key; -}; -exports.getNewRSAPrivateKey = getNewRSAPrivateKey; -const decryptAESData = (hexkey, data) => { - const key = CryptoJS.enc.Hex.parse(hexkey); - const cipherParams = CryptoJS.lib.CipherParams.create({ - ciphertext: CryptoJS.enc.Hex.parse(data.toString("hex")) - }); - const decrypted = CryptoJS.AES.decrypt(cipherParams, key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.NoPadding - }); - return Buffer.from(CryptoJS.enc.Hex.stringify(decrypted), "hex"); -}; -exports.decryptAESData = decryptAESData; -const findStartCode = (data) => { - if (data !== undefined && data.length > 0) { - if (data.length >= 4) { - const startcode = [...data.subarray(0, 4)]; - if ((startcode[0] === 0 && startcode[1] === 0 && startcode[2] === 1) || (startcode[0] === 0 && startcode[1] === 0 && startcode[2] === 0 && startcode[3] === 1)) - return true; - } - else if (data.length === 3) { - const startcode = [...data.subarray(0, 3)]; - if ((startcode[0] === 0 && startcode[1] === 0 && startcode[2] === 1)) - return true; - } - } - return false; -}; -exports.findStartCode = findStartCode; -const isIFrame = (data) => { - const validValues = [64, 66, 68, 78, 101, 103]; - if (data !== undefined && data.length > 0) { - if (data.length >= 5) { - const startcode = [...data.subarray(0, 5)]; - if (validValues.includes(startcode[3]) || validValues.includes(startcode[4])) - return true; - } - } - return false; -}; -exports.isIFrame = isIFrame; -const decryptLockAESData = (key, iv, data) => { - const ekey = CryptoJS.enc.Hex.parse(key); - const eiv = CryptoJS.enc.Hex.parse(iv); - const cipherParams = CryptoJS.lib.CipherParams.create({ - ciphertext: CryptoJS.enc.Hex.parse(data.toString("hex")) - }); - const decrypted = CryptoJS.AES.decrypt(cipherParams, ekey, { - iv: eiv, - mode: CryptoJS.mode.CBC, - padding: CryptoJS.pad.Pkcs7 - }); - return Buffer.from(CryptoJS.enc.Hex.stringify(decrypted), "hex"); -}; -exports.decryptLockAESData = decryptLockAESData; -const encryptLockAESData = (key, iv, data) => { - const ekey = CryptoJS.enc.Hex.parse(key); - const eiv = CryptoJS.enc.Hex.parse(iv); - const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Hex.parse(data.toString("hex")), ekey, { - iv: eiv, - mode: CryptoJS.mode.CBC, - padding: CryptoJS.pad.Pkcs7 - }); - return Buffer.from(CryptoJS.enc.Hex.stringify(encrypted.ciphertext), "hex"); -}; -exports.encryptLockAESData = encryptLockAESData; -const generateBasicLockAESKey = (adminID, stationSN) => { - const encoder = new TextEncoder(); - const encOwnerID = encoder.encode(adminID); - const encStationSerial = encoder.encode(stationSN); - const array = [104, -83, -72, 38, -107, 99, -110, 17, -95, -121, 54, 57, -46, -98, -111, 89]; - for (let i = 0; i < 16; i++) { - array[i] = (array[i] + encStationSerial[((encStationSerial[i] * 3) + 5) % 16] + encOwnerID[((encOwnerID[i] * 3) + 5) % 40]); - } - return Buffer.from(array).toString("hex"); -}; -exports.generateBasicLockAESKey = generateBasicLockAESKey; -const getCurrentTimeInSeconds = function () { - return Math.trunc(new Date().getTime() / 1000); -}; -exports.getCurrentTimeInSeconds = getCurrentTimeInSeconds; -const generateLockSequence = (deviceType, serialnumber) => { - if (deviceType !== undefined && serialnumber !== undefined) - if (device_1.Device.isLockWifi(deviceType, serialnumber) || device_1.Device.isLockWifiNoFinger(deviceType)) - return Math.trunc(Math.random() * 1000); - return (0, exports.getCurrentTimeInSeconds)(); -}; -exports.generateLockSequence = generateLockSequence; -const encodeLockPayload = (data) => { - const encoder = new TextEncoder(); - const encData = encoder.encode(data); - const length = encData.length; - const old_buffer = Buffer.from(encData); - if (length % 16 == 0) { - return old_buffer; - } - const new_length = (Math.trunc(length / 16) + 1) * 16; - const new_buffer = Buffer.alloc(new_length); - old_buffer.copy(new_buffer, 0); - return new_buffer; -}; -exports.encodeLockPayload = encodeLockPayload; -const getLockVectorBytes = (data) => { - const encoder = new TextEncoder(); - const encData = encoder.encode(data); - const old_buffer = Buffer.from(encData); - if (encData.length >= 16) - return old_buffer.toString("hex"); - const new_buffer = Buffer.alloc(16); - old_buffer.copy(new_buffer, 0); - return new_buffer.toString("hex"); -}; -exports.getLockVectorBytes = getLockVectorBytes; -const decodeLockPayload = (data) => { - const decoder = new TextDecoder(); - return decoder.decode(data); -}; -exports.decodeLockPayload = decodeLockPayload; -const decodeBase64 = (data) => { - const base64RegExp = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/; - if (base64RegExp.test(data)) - return Buffer.from(data, "base64"); - return Buffer.from(data); -}; -exports.decodeBase64 = decodeBase64; -const eslTimestamp = function (timestamp_in_sec = new Date().getTime() / 1000) { - const array = []; - for (let pos = 0; pos < 4; pos++) { - array[pos] = ((timestamp_in_sec >> (pos * 8)) & 255); - } - return array; -}; -exports.eslTimestamp = eslTimestamp; -const generateAdvancedLockAESKey = () => { - const randomBytesArray = [...(0, crypto_1.randomBytes)(16)]; - let result = ""; - for (let pos = 0; pos < randomBytesArray.length; pos++) { - result += "0123456789ABCDEF".charAt((randomBytesArray[pos] >> 4) & 15); - result += "0123456789ABCDEF".charAt(randomBytesArray[pos] & 15); - } - return result; -}; -exports.generateAdvancedLockAESKey = generateAdvancedLockAESKey; -const getVideoCodec = (data) => { - if (data !== undefined && data.length > 0) { - if (data.length >= 5) { - const h265Values = [38, 64, 66, 68, 78]; - const startcode = [...data.subarray(0, 5)]; - if (h265Values.includes(startcode[3]) || h265Values.includes(startcode[4])) { - return types_1.VideoCodec.H265; - } - else if (startcode[3] === 103 || startcode[4] === 103) { - return types_1.VideoCodec.H264; - } - } - return types_1.VideoCodec.H264; - } - return types_1.VideoCodec.UNKNOWN; // Maybe return h264 as Eufy does? -}; -exports.getVideoCodec = getVideoCodec; -const checkT8420 = (serialNumber) => { - if (!(serialNumber !== undefined && serialNumber !== null && serialNumber.length > 0 && serialNumber.startsWith("T8420")) || serialNumber.length <= 7 || serialNumber[6] != "6") { - return false; - } - return true; -}; -exports.checkT8420 = checkT8420; -const buildVoidCommandPayload = (channel = 255) => { - const headerBuffer = Buffer.from([0x00, 0x00]); - const emptyBuffer = Buffer.from([0x00, 0x00]); - const magicBuffer = Buffer.from([0x01, 0x00]); - const channelBuffer = Buffer.from([channel, 0x00]); - return Buffer.concat([ - headerBuffer, - emptyBuffer, - magicBuffer, - channelBuffer, - emptyBuffer - ]); -}; -exports.buildVoidCommandPayload = buildVoidCommandPayload; -function isP2PQueueMessage(type) { - return type.p2pCommand !== undefined; -} -const encryptPayloadData = (data, key, iv) => { - const cipher = (0, crypto_1.createCipheriv)("aes-128-cbc", key, iv); - return Buffer.concat([ - cipher.update(data), - cipher.final() - ]); -}; -exports.encryptPayloadData = encryptPayloadData; -const decryptPayloadData = (data, key, iv) => { - const cipher = (0, crypto_1.createDecipheriv)("aes-128-cbc", key, iv); - return Buffer.concat([ - cipher.update(data), - cipher.final() - ]); -}; -exports.decryptPayloadData = decryptPayloadData; -const eufyKDF = (key) => { - const hash_length = 32; - const digest_length = 48; - const staticBuffer = Buffer.from("ECIES"); - const steps = Math.ceil(digest_length / hash_length); - const buffer = Buffer.alloc(hash_length * steps); - let tmpBuffer = staticBuffer; - for (let step = 0; step < steps; ++step) { - tmpBuffer = (0, crypto_1.createHmac)("sha256", key).update(tmpBuffer).digest(); - const digest = (0, crypto_1.createHmac)("sha256", key).update(Buffer.concat([tmpBuffer, staticBuffer])).digest(); - digest.copy(buffer, hash_length * step); - } - return buffer.subarray(0, digest_length); -}; -exports.eufyKDF = eufyKDF; -const getAdvancedLockKey = (key, publicKey) => { - const ecdh = (0, crypto_1.createECDH)("prime256v1"); - ecdh.generateKeys(); - const secret = ecdh.computeSecret(Buffer.concat([Buffer.from("04", "hex"), Buffer.from(publicKey, "hex")])); - const randomValue = (0, crypto_1.randomBytes)(16); - const derivedKey = (0, exports.eufyKDF)(secret); - const encryptedData = (0, exports.encryptPayloadData)(key, derivedKey.subarray(0, 16), randomValue); - const hmac = (0, crypto_1.createHmac)("sha256", derivedKey.subarray(16)); - hmac.update(randomValue); - hmac.update(encryptedData); - const hmacDigest = hmac.digest(); - return Buffer.concat([Buffer.from(ecdh.getPublicKey("hex", "compressed"), "hex"), randomValue, encryptedData, hmacDigest]).toString("hex"); -}; -exports.getAdvancedLockKey = getAdvancedLockKey; -const getLockV12Key = (key, publicKey) => { - const ecdh = (0, crypto_1.createECDH)("prime256v1"); - ecdh.generateKeys(); - const secret = ecdh.computeSecret(Buffer.concat([Buffer.from("04", "hex"), Buffer.from(publicKey, "hex")])); - const randomValue = (0, crypto_1.randomBytes)(16); - const derivedKey = (0, exports.eufyKDF)(secret); - const encryptedData = (0, exports.encryptPayloadData)(Buffer.from(key, "hex"), derivedKey.subarray(0, 16), randomValue); - const hmac = (0, crypto_1.createHmac)("sha256", derivedKey.subarray(16)); - hmac.update(randomValue); - hmac.update(encryptedData); - const hmacDigest = hmac.digest(); - return Buffer.concat([Buffer.from(ecdh.getPublicKey("hex", "compressed"), "hex"), randomValue, encryptedData, hmacDigest]).toString("hex"); -}; -exports.getLockV12Key = getLockV12Key; -const buildTalkbackAudioFrameHeader = (audioData, channel = 0) => { - const audioDataLength = Buffer.allocUnsafe(4); - audioDataLength.writeUInt32LE(audioData.length); - const unknown1 = Buffer.alloc(1); - const audioType = Buffer.alloc(1); - const audioSeq = Buffer.alloc(2); - const audioTimestamp = Buffer.alloc(8); - const audioDataHeader = Buffer.concat([audioDataLength, unknown1, audioType, audioSeq, audioTimestamp]); - const bytesToRead = Buffer.allocUnsafe(4); - bytesToRead.writeUInt32LE(audioData.length + audioDataHeader.length); - const magicBuffer = Buffer.from([0x01, 0x00]); - const channelBuffer = Buffer.from([channel, 0x00]); - const emptyBuffer = Buffer.from([0x00, 0x00]); - return Buffer.concat([ - bytesToRead, - magicBuffer, - channelBuffer, - emptyBuffer, - audioDataHeader - ]); -}; -exports.buildTalkbackAudioFrameHeader = buildTalkbackAudioFrameHeader; -const decodeP2PCloudIPs = (data) => { - const lookupTable = Buffer.from("4959433db5bf6da347534f6165e371e9677f02030badb3892b2f35c16b8b959711e5a70deff1050783fb9d3bc5c713171d1f2529d3df", "hex"); - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const [encoded, name = "name not included"] = data.split(":"); - const output = Buffer.alloc(encoded.length / 2); - for (let i = 0; i <= data.length / 2; i++) { - let z = 0x39; // 57 // '9' - for (let j = 0; j < i; j++) { - z = z ^ output[j]; - } - const x = (data.charCodeAt(i * 2 + 1) - "A".charCodeAt(0)); - const y = (data.charCodeAt(i * 2) - "A".charCodeAt(0)) * 0x10; - output[i] = z ^ lookupTable[i % lookupTable.length] ^ x + y; - } - const result = []; - output.toString("utf8").split(",").forEach((ip) => { - if (ip !== "") { - result.push({ host: ip, port: 32100 }); - } - }); - return result; -}; -exports.decodeP2PCloudIPs = decodeP2PCloudIPs; -const decodeSmartSafeData = function (deviceSN, data) { - const response = ble_1.BleCommandFactory.parseSmartSafe(data); - return { - versionCode: response.getVersionCode(), - dataType: response.getDataType(), - commandCode: response.getCommandCode(), - packageFlag: response.getPackageFlag(), - responseCode: response.getResponseCode(), - data: (0, exports.decryptPayloadData)(response.getData(), Buffer.from(deviceSN), Buffer.from(device_1.SmartSafe.IV, "hex")) - }; -}; -exports.decodeSmartSafeData = decodeSmartSafeData; -const getSmartSafeP2PCommand = function (deviceSN, user_id, command, intCommand, channel, sequence, data) { - const encPayload = (0, exports.encryptPayloadData)(data, Buffer.from(deviceSN), Buffer.from(device_1.SmartSafe.IV, "hex")); - const bleCommand = new ble_1.BleCommandFactory() - .setVersionCode(device_1.SmartSafe.VERSION_CODE) - .setCommandCode(intCommand) - .setDataType(-1) - .setData(encPayload) - .getSmartSafeCommand(); - logging_1.rootP2PLogger.debug(`Generate smart safe command`, { deviceSN: deviceSN, userId: user_id, command: command, intCommand: intCommand, channel: channel, sequence: sequence, data: data.toString("hex") }); - return { - commandType: types_1.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - account_id: user_id, - cmd: command, - mChannel: channel, - mValue3: 0, - payload: { - data: bleCommand.toString("hex"), - prj_id: command, - seq_num: sequence, - } - }), - channel: channel - }; -}; -exports.getSmartSafeP2PCommand = getSmartSafeP2PCommand; -const getLockP2PCommand = function (deviceSN, user_id, command, channel, lockPublicKey, payload) { - const key = (0, exports.generateAdvancedLockAESKey)(); - const ecdhKey = (0, exports.getAdvancedLockKey)(key, lockPublicKey); - const iv = (0, exports.getLockVectorBytes)(deviceSN); - const encPayload = (0, exports.encryptLockAESData)(key, iv, Buffer.from(JSON.stringify(payload))); - logging_1.rootP2PLogger.debug(`Generate lock command`, { deviceSN: deviceSN, userId: user_id, command: command, channel: channel, data: JSON.stringify(payload) }); - return { - commandType: types_1.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - key: ecdhKey, - account_id: user_id, - cmd: command, - mChannel: channel, - mValue3: 0, - payload: encPayload.toString("base64") - }).replace(/=/g, "\\u003d"), - channel: channel, - aesKey: key - }; -}; -exports.getLockP2PCommand = getLockP2PCommand; -const getLockV12P2PCommand = function (deviceSN, user_id, command, channel, lockPublicKey, sequence, data) { - const key = (0, exports.generateAdvancedLockAESKey)(); - const encryptedAesKey = (0, exports.getLockV12Key)(key, lockPublicKey); - const iv = (0, exports.getLockVectorBytes)(deviceSN); - const encPayload = (0, exports.encryptPayloadData)(data, Buffer.from(key, "hex"), Buffer.from(iv, "hex")); - logging_1.rootP2PLogger.debug(`Generate smart lock v12 command`, { deviceSN: deviceSN, userId: user_id, command: command, channel: channel, sequence: sequence, data: data.toString("hex") }); - const bleCommand = new ble_1.BleCommandFactory() - .setVersionCode(device_1.Lock.VERSION_CODE_LOCKV12) - .setCommandCode(Number.parseInt(types_1.ESLBleCommand[types_1.ESLCommand[command]])) //TODO: Change internal command identification? - .setDataType(-1) - .setData(encPayload) - .setAdditionalData(Buffer.from(encryptedAesKey, "hex")); - return { - aesKey: key, - bleCommand: bleCommand.getCommandCode(), - payload: { - commandType: types_1.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - account_id: user_id, - cmd: types_1.CommandType.CMD_SET_PAYLOAD_LOCKV12, - mChannel: channel, - mValue3: 0, - payload: { - apiCommand: command, - lock_payload: bleCommand.getLockV12Command().toString("hex"), - seq_num: sequence, - } - }) - } - }; -}; -exports.getLockV12P2PCommand = getLockV12P2PCommand; -const DecimalToRGBColor = function (color) { - return { - red: (color >> 16) & 0xff, - green: (color >> 8) & 0xff, - blue: color & 0xff, - }; -}; -exports.DecimalToRGBColor = DecimalToRGBColor; -const RGBColorToDecimal = function (color) { - return (color.red << 16) + (color.green << 8) + (color.blue); -}; -exports.RGBColorToDecimal = RGBColorToDecimal; -const getNullTerminatedString = function (data, encoding) { - const index = data.indexOf(0); - return data.toString(encoding, 0, index === -1 ? data.length : index); -}; -exports.getNullTerminatedString = getNullTerminatedString; -const isUsbCharging = function (value) { - return (value & 1) == 1; -}; -exports.isUsbCharging = isUsbCharging; -const isSolarCharging = function (value) { - return ((value >> 2) & 1) == 1; -}; -exports.isSolarCharging = isSolarCharging; -const isPlugSolarCharging = function (value) { - return ((value >> 3) & 1) == 1; -}; -exports.isPlugSolarCharging = isPlugSolarCharging; -const isCharging = function (value) { - return (0, exports.isUsbCharging)(value) || (0, exports.isSolarCharging)(value) || (0, exports.isPlugSolarCharging)(value); -}; -exports.isCharging = isCharging; -const getSmartLockCurrentTimeInSeconds = function () { - return Math.trunc(new Date().getTime() / 1000) | Math.trunc(Math.random() * 100); -}; -exports.getSmartLockCurrentTimeInSeconds = getSmartLockCurrentTimeInSeconds; -const generateSmartLockAESKey = (adminUserId, time) => { - const buffer = Buffer.allocUnsafe(4); - buffer.writeUint32BE(time); - return Buffer.concat([Buffer.from(adminUserId.substring(adminUserId.length - 12)), buffer]); -}; -exports.generateSmartLockAESKey = generateSmartLockAESKey; -const getSmartLockP2PCommand = function (deviceSN, user_id, command, channel, sequence, data, functionType = types_1.SmartLockFunctionType.TYPE_2) { - const time = (0, exports.getSmartLockCurrentTimeInSeconds)(); - const key = (0, exports.generateSmartLockAESKey)(user_id, time); - const iv = (0, exports.getLockVectorBytes)(deviceSN); - const encPayload = (0, exports.encryptPayloadData)(data, key, Buffer.from(iv, "hex")); - logging_1.rootP2PLogger.debug(`Generate smart lock command`, { deviceSN: deviceSN, userId: user_id, command: command, channel: channel, sequence: sequence, data: data.toString("hex"), functionType: functionType }); - let commandCode = 0; - if (functionType === types_1.SmartLockFunctionType.TYPE_1) { - commandCode = Number.parseInt(types_1.SmartLockBleCommandFunctionType1[types_1.SmartLockCommand[command]]); - } - else if (functionType === types_1.SmartLockFunctionType.TYPE_2) { - commandCode = Number.parseInt(types_1.SmartLockBleCommandFunctionType2[types_1.SmartLockCommand[command]]); - } - const bleCommand = new ble_1.BleCommandFactory() - .setVersionCode(device_1.Lock.VERSION_CODE_SMART_LOCK) - .setCommandCode(commandCode) - .setDataType(functionType) - .setData(encPayload); - return { - bleCommand: bleCommand.getCommandCode(), - payload: { - commandType: types_1.CommandType.CMD_SET_PAYLOAD, - value: JSON.stringify({ - account_id: user_id, - cmd: types_1.CommandType.CMD_TRANSFER_PAYLOAD, - mChannel: channel, - mValue3: 0, - payload: { - apiCommand: command, - lock_payload: bleCommand.getSmartLockCommand().toString("hex"), - seq_num: sequence, - time: time, - } - }) - } - }; -}; -exports.getSmartLockP2PCommand = getSmartLockP2PCommand; -const readNullTerminatedBuffer = (input) => { - const index = input.indexOf(new Uint8Array([0])); - if (index === -1) { - const result = Buffer.alloc(input.length); - input.copy(result); - return result; - } - const result = Buffer.alloc(input.subarray(0, index).length); - input.subarray(0, index).copy(result); - return result; -}; -exports.readNullTerminatedBuffer = readNullTerminatedBuffer; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/p2p/utils.js.map b/build/p2p/utils.js.map deleted file mode 100644 index 23d13983..00000000 --- a/build/p2p/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/p2p/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/client.d.ts b/build/push/client.d.ts deleted file mode 100644 index 08965131..00000000 --- a/build/push/client.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { PushClientEvents } from "./interfaces"; -export declare class PushClient extends TypedEmitter { - private readonly HOST; - private readonly PORT; - private readonly MCS_VERSION; - private readonly HEARTBEAT_INTERVAL; - private loggedIn; - private streamId; - private lastStreamIdReported; - private currentDelay; - private client?; - private heartbeatTimeout?; - private reconnectTimeout?; - private persistentIds; - private static proto; - private pushClientParser; - private auth; - private constructor(); - static init(auth: { - androidId: string; - securityToken: string; - }): Promise; - private initialize; - getPersistentIds(): Array; - setPersistentIds(ids: Array): void; - connect(): void; - private buildLoginRequest; - private buildHeartbeatPingRequest; - private buildHeartbeatAckRequest; - private onSocketData; - private onSocketConnect; - private onSocketClose; - private onSocketError; - private handleParsedMessage; - private handleHeartbeatPing; - private handleHeartbeatAck; - private convertPayloadMessage; - private getStreamId; - private newStreamIdAvailable; - private scheduleHeartbeat; - private sendHeartbeat; - isConnected(): boolean; - private getHeartbeatInterval; - private getCurrentDelay; - private resetCurrentDelay; - private scheduleReconnect; - close(): void; -} diff --git a/build/push/client.js b/build/push/client.js deleted file mode 100644 index 1e9cbd6c..00000000 --- a/build/push/client.js +++ /dev/null @@ -1,323 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PushClient = void 0; -const long_1 = __importDefault(require("long")); -const path = __importStar(require("path")); -const protobufjs_1 = require("protobufjs"); -const tls = __importStar(require("tls")); -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const models_1 = require("./models"); -const parser_1 = require("./parser"); -const utils_1 = require("../utils"); -const error_1 = require("./error"); -const error_2 = require("../error"); -const utils_2 = require("../p2p/utils"); -const logging_1 = require("../logging"); -class PushClient extends tiny_typed_emitter_1.TypedEmitter { - HOST = "mtalk.google.com"; - PORT = 5228; - MCS_VERSION = 41; - HEARTBEAT_INTERVAL = 5 * 60 * 1000; - loggedIn = false; - streamId = 0; - lastStreamIdReported = -1; - currentDelay = 0; - client; - heartbeatTimeout; - reconnectTimeout; - persistentIds = []; - static proto = null; - pushClientParser; - auth; - constructor(pushClientParser, auth) { - super(); - this.pushClientParser = pushClientParser; - this.auth = auth; - } - static async init(auth) { - this.proto = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/mcs.proto")); - const pushClientParser = await parser_1.PushClientParser.init(); - return new PushClient(pushClientParser, auth); - } - initialize() { - this.loggedIn = false; - this.streamId = 0; - this.lastStreamIdReported = -1; - if (this.client) { - this.client.removeAllListeners(); - this.client.destroy(); - this.client = undefined; - } - this.pushClientParser.resetState(); - if (this.reconnectTimeout) { - clearTimeout(this.reconnectTimeout); - this.reconnectTimeout = undefined; - } - } - getPersistentIds() { - return this.persistentIds; - } - setPersistentIds(ids) { - this.persistentIds = ids; - } - connect() { - this.initialize(); - this.pushClientParser.on("message", (message) => this.handleParsedMessage(message)); - this.client = tls.connect(this.PORT, this.HOST, { - rejectUnauthorized: false, - }); - this.client.setKeepAlive(true); - // For debugging purposes - //this.client.enableTrace(); - this.client.on("connect", () => this.onSocketConnect()); - this.client.on("close", () => this.onSocketClose()); - this.client.on("error", (error) => this.onSocketError(error)); - this.client.on("data", (newData) => this.onSocketData(newData)); - this.client.write(this.buildLoginRequest()); - } - buildLoginRequest() { - const androidId = this.auth.androidId; - const securityToken = this.auth.securityToken; - const LoginRequestType = PushClient.proto.lookupType("mcs_proto.LoginRequest"); - const hexAndroidId = long_1.default.fromString(androidId).toString(16); - const loginRequest = { - adaptiveHeartbeat: false, - authService: 2, - authToken: securityToken, - id: "chrome-63.0.3234.0", - domain: "mcs.android.com", - deviceId: `android-${hexAndroidId}`, - networkType: 1, - resource: androidId, - user: androidId, - useRmq2: true, - setting: [{ name: "new_vc", value: "1" }], - clientEvent: [], - receivedPersistentId: this.persistentIds, - }; - const errorMessage = LoginRequestType.verify(loginRequest); - if (errorMessage) { - throw new error_1.BuildLoginRequestError(errorMessage, { context: { loginRequest: loginRequest } }); - } - const buffer = LoginRequestType.encodeDelimited(loginRequest).finish(); - return Buffer.concat([Buffer.from([this.MCS_VERSION, models_1.MessageTag.LoginRequest]), buffer]); - } - buildHeartbeatPingRequest(stream_id) { - const heartbeatPingRequest = {}; - if (stream_id) { - heartbeatPingRequest.last_stream_id_received = stream_id; - } - logging_1.rootPushLogger.debug(`Push client - heartbeatPingRequest`, { streamId: stream_id, request: JSON.stringify(heartbeatPingRequest) }); - const HeartbeatPingRequestType = PushClient.proto.lookupType("mcs_proto.HeartbeatPing"); - const errorMessage = HeartbeatPingRequestType.verify(heartbeatPingRequest); - if (errorMessage) { - throw new error_1.BuildHeartbeatPingRequestError(errorMessage, { context: { heartbeatPingRequest: heartbeatPingRequest } }); - } - const buffer = HeartbeatPingRequestType.encodeDelimited(heartbeatPingRequest).finish(); - return Buffer.concat([Buffer.from([models_1.MessageTag.HeartbeatPing]), buffer]); - } - buildHeartbeatAckRequest(stream_id, status) { - const heartbeatAckRequest = {}; - if (stream_id && !status) { - heartbeatAckRequest.last_stream_id_received = stream_id; - } - else if (!stream_id && status) { - heartbeatAckRequest.status = status; - } - else { - heartbeatAckRequest.last_stream_id_received = stream_id; - heartbeatAckRequest.status = status; - } - logging_1.rootPushLogger.debug(`Push client - heartbeatAckRequest`, { streamId: stream_id, status: status, request: JSON.stringify(heartbeatAckRequest) }); - const HeartbeatAckRequestType = PushClient.proto.lookupType("mcs_proto.HeartbeatAck"); - const errorMessage = HeartbeatAckRequestType.verify(heartbeatAckRequest); - if (errorMessage) { - throw new error_1.BuildHeartbeatAckRequestError(errorMessage, { context: { heartbeatAckRequest: heartbeatAckRequest } }); - } - const buffer = HeartbeatAckRequestType.encodeDelimited(heartbeatAckRequest).finish(); - return Buffer.concat([Buffer.from([models_1.MessageTag.HeartbeatAck]), buffer]); - } - onSocketData(newData) { - this.pushClientParser.handleData(newData); - } - onSocketConnect() { - // - } - onSocketClose() { - this.loggedIn = false; - if (this.heartbeatTimeout) { - clearTimeout(this.heartbeatTimeout); - this.heartbeatTimeout = undefined; - } - this.emit("close"); - this.scheduleReconnect(); - } - onSocketError(err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Push client - Socket Error`, { error: (0, utils_1.getError)(error) }); - } - handleParsedMessage(message) { - this.resetCurrentDelay(); - switch (message.tag) { - case models_1.MessageTag.DataMessageStanza: - logging_1.rootPushLogger.debug(`Push client - DataMessageStanza`, { message: JSON.stringify(message) }); - if (message.object && message.object.persistentId) - this.persistentIds.push(message.object.persistentId); - this.emit("message", this.convertPayloadMessage(message)); - break; - case models_1.MessageTag.HeartbeatPing: - this.handleHeartbeatPing(message); - break; - case models_1.MessageTag.HeartbeatAck: - this.handleHeartbeatAck(message); - break; - case models_1.MessageTag.Close: - logging_1.rootPushLogger.debug(`Push client - Close: Server requested close`, { message: JSON.stringify(message) }); - break; - case models_1.MessageTag.LoginResponse: - logging_1.rootPushLogger.debug("Push client - Login response: GCM -> logged in -> waiting for push messages...", { message: JSON.stringify(message) }); - this.loggedIn = true; - this.persistentIds = []; - this.emit("connect"); - this.heartbeatTimeout = setTimeout(() => { - this.scheduleHeartbeat(this); - }, this.getHeartbeatInterval()); - break; - case models_1.MessageTag.LoginRequest: - logging_1.rootPushLogger.debug(`Push client - Login request`, { message: JSON.stringify(message) }); - break; - case models_1.MessageTag.IqStanza: - logging_1.rootPushLogger.debug(`Push client - IqStanza: Not implemented`, { message: JSON.stringify(message) }); - break; - default: - logging_1.rootPushLogger.debug(`Push client - Unknown message`, { message: JSON.stringify(message) }); - return; - } - this.streamId++; - } - handleHeartbeatPing(message) { - logging_1.rootPushLogger.debug(`Push client - Heartbeat ping`, { message: JSON.stringify(message) }); - let streamId = undefined; - let status = undefined; - if (this.newStreamIdAvailable()) { - streamId = this.getStreamId(); - } - if (message.object && message.object.status) { - status = message.object.status; - } - if (this.client) - this.client.write(this.buildHeartbeatAckRequest(streamId, status)); - } - handleHeartbeatAck(message) { - logging_1.rootPushLogger.debug(`Push client - Heartbeat acknowledge`, { message: JSON.stringify(message) }); - } - convertPayloadMessage(message) { - const { appData, ...otherData } = message.object; - const messageData = {}; - appData.forEach((kv) => { - if (kv.key === "payload") { - const payload = (0, utils_1.parseJSON)((0, utils_2.getNullTerminatedString)(Buffer.from(kv.value, "base64"), "utf8"), logging_1.rootPushLogger); - messageData[kv.key] = payload; - } - else { - messageData[kv.key] = kv.value; - } - }); - return { - ...otherData, - payload: messageData, - }; - } - getStreamId() { - this.lastStreamIdReported = this.streamId; - return this.streamId; - } - newStreamIdAvailable() { - return this.lastStreamIdReported != this.streamId; - } - scheduleHeartbeat(client) { - if (client.sendHeartbeat()) { - this.heartbeatTimeout = setTimeout(() => { - this.scheduleHeartbeat(client); - }, client.getHeartbeatInterval()); - } - else { - logging_1.rootPushLogger.debug("Push client - Heartbeat disabled!"); - } - } - sendHeartbeat() { - let streamId = undefined; - if (this.newStreamIdAvailable()) { - streamId = this.getStreamId(); - } - if (this.client && this.isConnected()) { - logging_1.rootPushLogger.debug(`Push client - Sending heartbeat...`, { streamId: streamId }); - this.client.write(this.buildHeartbeatPingRequest(streamId)); - return true; - } - else { - logging_1.rootPushLogger.debug("Push client - No more connected, reconnect..."); - this.scheduleReconnect(); - } - return false; - } - isConnected() { - return this.loggedIn; - } - getHeartbeatInterval() { - return this.HEARTBEAT_INTERVAL; - } - getCurrentDelay() { - const delay = this.currentDelay == 0 ? 5000 : this.currentDelay; - if (this.currentDelay < 60000) - this.currentDelay += 10000; - if (this.currentDelay >= 60000 && this.currentDelay < 600000) - this.currentDelay += 60000; - return delay; - } - resetCurrentDelay() { - this.currentDelay = 0; - } - scheduleReconnect() { - const delay = this.getCurrentDelay(); - logging_1.rootPushLogger.debug("Push client - Schedule reconnect...", { delay: delay }); - if (!this.reconnectTimeout) - this.reconnectTimeout = setTimeout(() => { - this.connect(); - }, delay); - } - close() { - const wasConnected = this.isConnected(); - this.initialize(); - if (wasConnected) - this.emit("close"); - } -} -exports.PushClient = PushClient; -//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/build/push/client.js.map b/build/push/client.js.map deleted file mode 100644 index d5cbe5da..00000000 --- a/build/push/client.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/push/client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/error.d.ts b/build/push/error.d.ts deleted file mode 100644 index 75e985ac..00000000 --- a/build/push/error.d.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { BaseError, Jsonable } from "../error"; -export declare class UnknownExpiryFormaError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class FidRegistrationFailedError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class RenewFidTokenFailedError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class ExecuteCheckInError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class RegisterGcmError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BuildLoginRequestError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BuildHeartbeatPingRequestError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class BuildHeartbeatAckRequestError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class FidGenerationError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class MCSProtocolVersionError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class MCSProtocolProcessingStateError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} -export declare class MCSProtocolMessageTagError extends BaseError { - constructor(message: string, options?: { - cause?: Error; - context?: Jsonable; - }); -} diff --git a/build/push/error.js b/build/push/error.js deleted file mode 100644 index 742e13dd..00000000 --- a/build/push/error.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MCSProtocolMessageTagError = exports.MCSProtocolProcessingStateError = exports.MCSProtocolVersionError = exports.FidGenerationError = exports.BuildHeartbeatAckRequestError = exports.BuildHeartbeatPingRequestError = exports.BuildLoginRequestError = exports.RegisterGcmError = exports.ExecuteCheckInError = exports.RenewFidTokenFailedError = exports.FidRegistrationFailedError = exports.UnknownExpiryFormaError = void 0; -const error_1 = require("../error"); -class UnknownExpiryFormaError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = UnknownExpiryFormaError.name; - } -} -exports.UnknownExpiryFormaError = UnknownExpiryFormaError; -class FidRegistrationFailedError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = FidRegistrationFailedError.name; - } -} -exports.FidRegistrationFailedError = FidRegistrationFailedError; -class RenewFidTokenFailedError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = RenewFidTokenFailedError.name; - } -} -exports.RenewFidTokenFailedError = RenewFidTokenFailedError; -class ExecuteCheckInError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = ExecuteCheckInError.name; - } -} -exports.ExecuteCheckInError = ExecuteCheckInError; -class RegisterGcmError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = RegisterGcmError.name; - } -} -exports.RegisterGcmError = RegisterGcmError; -class BuildLoginRequestError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BuildLoginRequestError.name; - } -} -exports.BuildLoginRequestError = BuildLoginRequestError; -class BuildHeartbeatPingRequestError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BuildHeartbeatPingRequestError.name; - } -} -exports.BuildHeartbeatPingRequestError = BuildHeartbeatPingRequestError; -class BuildHeartbeatAckRequestError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = BuildHeartbeatAckRequestError.name; - } -} -exports.BuildHeartbeatAckRequestError = BuildHeartbeatAckRequestError; -class FidGenerationError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = FidGenerationError.name; - } -} -exports.FidGenerationError = FidGenerationError; -class MCSProtocolVersionError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = MCSProtocolVersionError.name; - } -} -exports.MCSProtocolVersionError = MCSProtocolVersionError; -class MCSProtocolProcessingStateError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = MCSProtocolProcessingStateError.name; - } -} -exports.MCSProtocolProcessingStateError = MCSProtocolProcessingStateError; -class MCSProtocolMessageTagError extends error_1.BaseError { - constructor(message, options = {}) { - super(message, options); - Object.setPrototypeOf(this, new.target.prototype); - this.name = MCSProtocolMessageTagError.name; - } -} -exports.MCSProtocolMessageTagError = MCSProtocolMessageTagError; -//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/build/push/error.js.map b/build/push/error.js.map deleted file mode 100644 index dc837eef..00000000 --- a/build/push/error.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/push/error.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/index.d.ts b/build/push/index.d.ts deleted file mode 100644 index c2679eaf..00000000 --- a/build/push/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./models"; -export * from "./interfaces"; -export * from "./service"; -export * from "./types"; -export * from "./error"; -export { sleep, convertTimestampMs } from "./utils"; diff --git a/build/push/index.js b/build/push/index.js deleted file mode 100644 index 0d040226..00000000 --- a/build/push/index.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.convertTimestampMs = exports.sleep = void 0; -__exportStar(require("./models"), exports); -__exportStar(require("./interfaces"), exports); -__exportStar(require("./service"), exports); -__exportStar(require("./types"), exports); -__exportStar(require("./error"), exports); -var utils_1 = require("./utils"); -Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return utils_1.sleep; } }); -Object.defineProperty(exports, "convertTimestampMs", { enumerable: true, get: function () { return utils_1.convertTimestampMs; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/push/index.js.map b/build/push/index.js.map deleted file mode 100644 index e751db4d..00000000 --- a/build/push/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,iCAAoD;AAA3C,8FAAA,KAAK,OAAA;AAAE,2GAAA,kBAAkB,OAAA"} \ No newline at end of file diff --git a/build/push/interfaces.d.ts b/build/push/interfaces.d.ts deleted file mode 100644 index 9c66feec..00000000 --- a/build/push/interfaces.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Credentials, RawPushMessage, PushMessage } from "./models"; -export interface PushNotificationServiceEvents { - "credential": (credentials: Credentials) => void; - "connect": (token: string) => void; - "close": () => void; - "raw message": (message: RawPushMessage) => void; - "message": (message: PushMessage) => void; -} -export interface PushClientEvents { - "connect": () => void; - "close": () => void; - "message": (message: RawPushMessage) => void; -} -export interface PushClientParserEvents { - "message": (message: { - tag: number; - object: any; - }) => void; -} diff --git a/build/push/interfaces.js b/build/push/interfaces.js deleted file mode 100644 index db919115..00000000 --- a/build/push/interfaces.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/build/push/interfaces.js.map b/build/push/interfaces.js.map deleted file mode 100644 index e6176772..00000000 --- a/build/push/interfaces.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/push/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/push/models.d.ts b/build/push/models.d.ts deleted file mode 100644 index 48bcc811..00000000 --- a/build/push/models.d.ts +++ /dev/null @@ -1,328 +0,0 @@ -import { UserType } from "../http/types"; -import { AlarmAction } from "./types"; -export interface CusPushData { - a?: number; - alarm?: number; - alarm_delay?: number; - alarm_type?: number; - arming?: number; - automation_id?: number; - batt_powered?: number; - c?: number; - channel?: number; - click_action?: string; - create_time?: number; - device_name?: string; - e?: string; - event_time?: number; - event_type?: number; - f?: string; - i?: string; - j?: number; - k?: number; - cipher?: number; - m?: number; - mode?: number; - n?: string; - name?: string; - news_id?: number; - nick_name?: string; - notification_style?: number; - p?: string; - file_path?: string; - pic_url?: string; - push_count?: number; - s: string; - session_id?: string; - short_user_id?: string; - storage_type?: number; - t?: string; - tfcard?: number; - type?: number; - unique_id?: string; - user?: UserType; - user_id?: string; - user_name?: string; - bat_low?: string; - msg_type: number; - r?: string; - u?: string; -} -export interface EufyPushMessage { - content: string; - device_sn: string; - event_time: string; - payload?: CusPushData | IndoorPushData | ServerPushData | BatteryDoorbellPushData | LockPushData | SmartSafePushData | GarageDoorPushData | AlarmPushData; - push_time: string; - station_sn: string; - title: string; - type: string; - doorbell?: string; - "google.c.sender.id": string; -} -export interface SmartSafeEventValueDetail { - type: number; - action: number; - figure_id: number; - user_id: number; - name?: string; -} -export interface SmartSafePushData { - dev_name: string; - event_type: number; - event_time: number; - event_value: number | SmartSafeEventValueDetail; -} -export interface LockPushData { - event_type: number; - event_time: number; - short_user_id: string; - nick_name: string; - user_id: string; - device_name: string; - device_sn: string; -} -export interface GarageDoorPushData { - a: number; - msg_type: number; - event_type: number; - door_id: number; - user_name: string; - door_name: string; - pic_url: string; - file_path: string; - storage_type: number; - unique_id: string; - power?: number; -} -export interface BatteryDoorbellPushData { - name: string; - channel: number; - cipher: number; - create_time: number; - device_sn: string; - session_id: string; - event_type: number; - file_path: string; - pic_url: string; - push_count: number; - notification_style: number; - objects?: DoorbellPeopleNames; - nick_name?: string; -} -export interface DoorbellPeopleNames { - names: string[]; -} -export interface RawPushMessage { - id: string; - from: string; - to: string; - category: string; - persistentId: string; - ttl: number; - sent: string; - payload: EufyPushMessage; -} -export interface FidTokenResponse { - token: string; - expiresIn: string; - expiresAt: number; -} -export interface FidInstallationResponse { - name: string; - fid: string; - refreshToken: string; - authToken: FidTokenResponse; -} -export interface CheckinResponse { - statsOk: boolean; - timeMs: string; - androidId: string; - securityToken: string; - versionInfo: string; - deviceDataVersionInfo: string; -} -export interface GcmRegisterResponse { - token: string; -} -export interface Message { - tag: number; - object: any; -} -export declare enum ProcessingState { - MCS_VERSION_TAG_AND_SIZE = 0, - MCS_TAG_AND_SIZE = 1, - MCS_SIZE = 2, - MCS_PROTO_BYTES = 3 -} -export declare enum MessageTag { - HeartbeatPing = 0, - HeartbeatAck = 1, - LoginRequest = 2, - LoginResponse = 3, - Close = 4, - MessageStanza = 5, - PresenceStanza = 6, - IqStanza = 7, - DataMessageStanza = 8, - BatchPresenceStanza = 9, - StreamErrorStanza = 10, - HttpRequest = 11, - HttpResponse = 12, - BindAccountRequest = 13, - BindAccountResponse = 14, - TalkMetadata = 15, - NumProtoTypes = 16 -} -export interface Credentials { - fidResponse: FidInstallationResponse; - checkinResponse: CheckinResponse; - gcmResponse: GcmRegisterResponse; -} -export interface DoorbellPushData { - campaign_name: string; - channel: number; - cipher: number; - content: string; - create_time: number; - device_sn: string; - event_session: string; - event_time: number; - event_type: number; - file_path: string; - person_name?: string; - outer_body: string; - outer_title: string; - pic_url: string; - push_count: number; - station_sn: string; - title: string; - url: string; - url_ex: string; - video_url: string; -} -export interface IndoorPushData { - a: number; - channel: number; - cipher: number; - create_time: number; - trigger_time: number; - device_sn: string; - event_type: number; - file_path: string; - msg_type: number; - name: string; - notification_style: number; - pic_url: string; - push_count: number; - session_id: string; - storage_type: number; - t: number; - tfcard_status: number; - timeout: number; - unique_id: string; -} -export interface ServerPushData { - email: string; - nick_name: string; - verify_code: string; -} -export interface PushMessage { - name: string; - event_time: number; - type: number; - station_sn: string; - device_sn: string; - title?: string; - content?: string; - push_time?: number; - channel?: number; - cipher?: number; - event_session?: string; - event_type?: number; - file_path?: string; - pic_url?: string; - push_count?: number; - notification_style?: number; - tfcard_status?: number; - alarm_delay_type?: number; - alarm_delay?: number; - alarm_type?: number; - sound_alarm?: boolean; - user_name?: string; - user_type?: number; - user_id?: string; - short_user_id?: string; - station_guard_mode?: number; - station_current_mode?: number; - person_name?: string; - sensor_open?: boolean; - device_online?: boolean; - fetch_id?: number; - sense_id?: number; - battery_powered?: boolean; - battery_low?: number; - storage_type?: number; - unique_id?: string; - automation_id?: number; - click_action?: string; - news_id?: number; - doorbell_url?: string; - doorbell_url_ex?: string; - doorbell_video_url?: string; - msg_type?: number; - timeout?: number; - event_value?: number | SmartSafeEventValueDetail; - person_id?: number; - door_id?: number; - power?: number; - email?: string; - verify_code?: string; - alarm_status?: string; - alarm_action?: AlarmAction; - open?: number; - openType?: number; - pin?: string; -} -export interface PlatformPushMode { - a: number; - alarm: number; - arming: number; - channel: number; - cipher: number; - create_time: number; - device_sn: string; - event_type: number; - face_id: number; - file_path: string; - mode: number; - msg_type: number; - name: string; - nick_name: string; - notification_style: number; - parted_status: number; - pic_url: string; - push_count: number; - record_id: number; - s: string; - session_id: string; - storage_type: number; - t: number; - tfcard_status: number; - timeout: number; - unique_id: string; - user: number; - user_name: string; - pic_filepath: string; - trigger_time: number; - alarm_delay: number; - person_id: number; -} -export interface AlarmPushData { - alarm_action_channel: AlarmAction; - alarm_id: string; - alarm_status: string; - alert_time: number; - device_sn: string; - station_sn: string; -} diff --git a/build/push/models.js b/build/push/models.js deleted file mode 100644 index 02384742..00000000 --- a/build/push/models.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MessageTag = exports.ProcessingState = void 0; -var ProcessingState; -(function (ProcessingState) { - // Processing the version, tag, and size packets (assuming minimum length - // size packet). Only used during the login handshake. - ProcessingState[ProcessingState["MCS_VERSION_TAG_AND_SIZE"] = 0] = "MCS_VERSION_TAG_AND_SIZE"; - // Processing the tag and size packets (assuming minimum length size - // packet). Used for normal messages. - ProcessingState[ProcessingState["MCS_TAG_AND_SIZE"] = 1] = "MCS_TAG_AND_SIZE"; - // Processing the size packet alone. - ProcessingState[ProcessingState["MCS_SIZE"] = 2] = "MCS_SIZE"; - // Processing the protocol buffer bytes (for those messages with non-zero - // sizes). - ProcessingState[ProcessingState["MCS_PROTO_BYTES"] = 3] = "MCS_PROTO_BYTES"; -})(ProcessingState || (exports.ProcessingState = ProcessingState = {})); -var MessageTag; -(function (MessageTag) { - MessageTag[MessageTag["HeartbeatPing"] = 0] = "HeartbeatPing"; - MessageTag[MessageTag["HeartbeatAck"] = 1] = "HeartbeatAck"; - MessageTag[MessageTag["LoginRequest"] = 2] = "LoginRequest"; - MessageTag[MessageTag["LoginResponse"] = 3] = "LoginResponse"; - MessageTag[MessageTag["Close"] = 4] = "Close"; - MessageTag[MessageTag["MessageStanza"] = 5] = "MessageStanza"; - MessageTag[MessageTag["PresenceStanza"] = 6] = "PresenceStanza"; - MessageTag[MessageTag["IqStanza"] = 7] = "IqStanza"; - MessageTag[MessageTag["DataMessageStanza"] = 8] = "DataMessageStanza"; - MessageTag[MessageTag["BatchPresenceStanza"] = 9] = "BatchPresenceStanza"; - MessageTag[MessageTag["StreamErrorStanza"] = 10] = "StreamErrorStanza"; - MessageTag[MessageTag["HttpRequest"] = 11] = "HttpRequest"; - MessageTag[MessageTag["HttpResponse"] = 12] = "HttpResponse"; - MessageTag[MessageTag["BindAccountRequest"] = 13] = "BindAccountRequest"; - MessageTag[MessageTag["BindAccountResponse"] = 14] = "BindAccountResponse"; - MessageTag[MessageTag["TalkMetadata"] = 15] = "TalkMetadata"; - MessageTag[MessageTag["NumProtoTypes"] = 16] = "NumProtoTypes"; -})(MessageTag || (exports.MessageTag = MessageTag = {})); -//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/build/push/models.js.map b/build/push/models.js.map deleted file mode 100644 index 639659b7..00000000 --- a/build/push/models.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/push/models.ts"],"names":[],"mappings":";;;AAsKA,IAAY,eAYX;AAZD,WAAY,eAAe;IACvB,yEAAyE;IACzE,sDAAsD;IACtD,6FAA4B,CAAA;IAC5B,oEAAoE;IACpE,qCAAqC;IACrC,6EAAoB,CAAA;IACpB,oCAAoC;IACpC,6DAAY,CAAA;IACZ,yEAAyE;IACzE,UAAU;IACV,2EAAmB,CAAA;AACvB,CAAC,EAZW,eAAe,+BAAf,eAAe,QAY1B;AAED,IAAY,UAkBX;AAlBD,WAAY,UAAU;IAClB,6DAAiB,CAAA;IACjB,2DAAgB,CAAA;IAChB,2DAAgB,CAAA;IAChB,6DAAiB,CAAA;IACjB,6CAAS,CAAA;IACT,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,mDAAY,CAAA;IACZ,qEAAqB,CAAA;IACrB,yEAAuB,CAAA;IACvB,sEAAsB,CAAA;IACtB,0DAAgB,CAAA;IAChB,4DAAiB,CAAA;IACjB,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,4DAAiB,CAAA;IACjB,8DAAkB,CAAA;AACtB,CAAC,EAlBW,UAAU,0BAAV,UAAU,QAkBrB"} \ No newline at end of file diff --git a/build/push/parser.d.ts b/build/push/parser.d.ts deleted file mode 100644 index 5ee8d9a0..00000000 --- a/build/push/parser.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { PushClientParserEvents } from "./interfaces"; -export declare class PushClientParser extends TypedEmitter { - private static proto; - private state; - private data; - private isWaitingForData; - private sizePacketSoFar; - private messageSize; - private messageTag; - private handshakeComplete; - private constructor(); - resetState(): void; - static init(): Promise; - handleData(newData: Buffer): void; - private waitForData; - private handleFullMessage; - private onGotVersion; - private onGotMessageTag; - private onGotMessageSize; - private onGotMessageBytes; - private getNextMessage; - private getMinBytesNeeded; - private buildProtobufFromTag; -} diff --git a/build/push/parser.js b/build/push/parser.js deleted file mode 100644 index 0da3e34d..00000000 --- a/build/push/parser.js +++ /dev/null @@ -1,217 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PushClientParser = void 0; -const path = __importStar(require("path")); -const protobufjs_1 = require("protobufjs"); -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const models_1 = require("./models"); -const error_1 = require("../error"); -const error_2 = require("./error"); -const logging_1 = require("../logging"); -class PushClientParser extends tiny_typed_emitter_1.TypedEmitter { - static proto = null; - state = models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE; - data = Buffer.alloc(0); - isWaitingForData = true; - sizePacketSoFar = 0; - messageSize = 0; - messageTag = 0; - handshakeComplete = false; - constructor() { - super(); - } - resetState() { - this.state = models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE; - this.data = Buffer.alloc(0); - this.isWaitingForData = true; - this.sizePacketSoFar = 0; - this.messageSize = 0; - this.messageTag = 0; - this.handshakeComplete = false; - this.removeAllListeners(); - } - static async init() { - this.proto = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/mcs.proto")); - return new PushClientParser(); - } - handleData(newData) { - this.data = Buffer.concat([this.data, newData]); - if (this.isWaitingForData) { - this.isWaitingForData = false; - this.waitForData(); - } - } - waitForData() { - const minBytesNeeded = this.getMinBytesNeeded(); - // If we don't have all bytes yet, wait some more - if (this.data.length < minBytesNeeded) { - this.isWaitingForData = true; - return; - } - else { - this.handleFullMessage(); - } - } - handleFullMessage() { - switch (this.state) { - case models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE: - this.onGotVersion(); - break; - case models_1.ProcessingState.MCS_TAG_AND_SIZE: - this.onGotMessageTag(); - break; - case models_1.ProcessingState.MCS_SIZE: - this.onGotMessageSize(); - break; - case models_1.ProcessingState.MCS_PROTO_BYTES: - this.onGotMessageBytes(); - break; - default: - logging_1.rootPushLogger.warn("Push Parser - Unknown state", { state: this.state }); - break; - } - } - onGotVersion() { - const version = this.data.readInt8(0); - this.data = this.data.subarray(1); - if (version < 41 && version !== 38) { - throw new error_2.MCSProtocolVersionError("Got wrong protocol version", { context: { version: version } }); - } - // Process the LoginResponse message tag. - this.onGotMessageTag(); - } - onGotMessageTag() { - this.messageTag = this.data.readInt8(0); - this.data = this.data.subarray(1); - this.onGotMessageSize(); - } - onGotMessageSize() { - let incompleteSizePacket = false; - const reader = new protobufjs_1.BufferReader(this.data); - try { - this.messageSize = reader.int32(); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - if (error instanceof Error && error.message.startsWith("index out of range:")) { - incompleteSizePacket = true; - } - else { - throw error; - } - } - if (incompleteSizePacket) { - this.sizePacketSoFar = reader.pos; - this.state = models_1.ProcessingState.MCS_SIZE; - this.waitForData(); - return; - } - this.data = this.data.subarray(reader.pos); - this.sizePacketSoFar = 0; - if (this.messageSize > 0) { - this.state = models_1.ProcessingState.MCS_PROTO_BYTES; - this.waitForData(); - } - else { - this.onGotMessageBytes(); - } - } - onGotMessageBytes() { - const protobuf = this.buildProtobufFromTag(this.messageTag); - if (this.messageSize === 0) { - this.emit("message", { tag: this.messageTag, object: {} }); - this.getNextMessage(); - return; - } - if (this.data.length < this.messageSize) { - this.state = models_1.ProcessingState.MCS_PROTO_BYTES; - this.waitForData(); - return; - } - const buffer = this.data.subarray(0, this.messageSize); - this.data = this.data.subarray(this.messageSize); - const message = protobuf.decode(buffer); - const object = protobuf.toObject(message, { - longs: String, - enums: String, - bytes: Buffer, - }); - this.emit("message", { tag: this.messageTag, object: object }); - if (this.messageTag === models_1.MessageTag.LoginResponse) { - if (this.handshakeComplete) { - logging_1.rootPushLogger.error("Push Parser - Unexpected login response!"); - } - else { - this.handshakeComplete = true; - } - } - this.getNextMessage(); - } - getNextMessage() { - this.messageTag = 0; - this.messageSize = 0; - this.state = models_1.ProcessingState.MCS_TAG_AND_SIZE; - this.waitForData(); - } - getMinBytesNeeded() { - switch (this.state) { - case models_1.ProcessingState.MCS_VERSION_TAG_AND_SIZE: - return 1 + 1 + 1; - case models_1.ProcessingState.MCS_TAG_AND_SIZE: - return 1 + 1; - case models_1.ProcessingState.MCS_SIZE: - return this.sizePacketSoFar + 1; - case models_1.ProcessingState.MCS_PROTO_BYTES: - return this.messageSize; - default: - throw new error_2.MCSProtocolProcessingStateError("Unknown protocol processing state", { context: { state: this.state } }); - } - } - buildProtobufFromTag(messageTag) { - switch (messageTag) { - case models_1.MessageTag.HeartbeatPing: - return PushClientParser.proto.lookupType("mcs_proto.HeartbeatPing"); - case models_1.MessageTag.HeartbeatAck: - return PushClientParser.proto.lookupType("mcs_proto.HeartbeatAck"); - case models_1.MessageTag.LoginRequest: - return PushClientParser.proto.lookupType("mcs_proto.LoginRequest"); - case models_1.MessageTag.LoginResponse: - return PushClientParser.proto.lookupType("mcs_proto.LoginResponse"); - case models_1.MessageTag.Close: - return PushClientParser.proto.lookupType("mcs_proto.Close"); - case models_1.MessageTag.IqStanza: - return PushClientParser.proto.lookupType("mcs_proto.IqStanza"); - case models_1.MessageTag.DataMessageStanza: - return PushClientParser.proto.lookupType("mcs_proto.DataMessageStanza"); - case models_1.MessageTag.StreamErrorStanza: - return PushClientParser.proto.lookupType("mcs_proto.StreamErrorStanza"); - default: - throw new error_2.MCSProtocolMessageTagError("Unknown protocol message tag", { context: { messageTag: this.messageTag } }); - } - } -} -exports.PushClientParser = PushClientParser; -//# sourceMappingURL=parser.js.map \ No newline at end of file diff --git a/build/push/parser.js.map b/build/push/parser.js.map deleted file mode 100644 index 2f9f8bf3..00000000 --- a/build/push/parser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/push/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,2CAAsD;AACtD,2DAAkD;AAElD,qCAAuD;AAEvD,oCAAuC;AACvC,mCAA+G;AAC/G,wCAA4C;AAE5C,MAAa,gBAAiB,SAAQ,iCAAoC;IAE9D,MAAM,CAAC,KAAK,GAAgB,IAAI,CAAC;IACjC,KAAK,GAAoB,wBAAe,CAAC,wBAAwB,CAAC;IAClE,IAAI,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,GAAG,IAAI,CAAC;IACxB,eAAe,GAAG,CAAC,CAAC;IACpB,WAAW,GAAG,CAAC,CAAC;IAChB,UAAU,GAAG,CAAC,CAAC;IACf,iBAAiB,GAAG,KAAK,CAAC;IAElC;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,KAAK,GAAG,wBAAe,CAAC,wBAAwB,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI;QACpB,IAAI,CAAC,KAAK,GAAG,MAAM,IAAA,iBAAI,EAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IAEO,WAAW;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEhD,iDAAiD;QACjD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,OAAO;QACX,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,wBAAe,CAAC,wBAAwB;gBACzC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM;YACV,KAAK,wBAAe,CAAC,gBAAgB;gBACjC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,wBAAe,CAAC,QAAQ;gBACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;YACV,KAAK,wBAAe,CAAC,eAAe;gBAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;YACV;gBACI,wBAAc,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1E,MAAM;QACd,CAAC;IACL,CAAC;IAEO,YAAY;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,+BAAuB,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB;QACpB,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,yBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC5E,oBAAoB,GAAG,IAAI,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;QAED,IAAI,oBAAoB,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,wBAAe,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,wBAAe,CAAC,eAAe,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,wBAAe,CAAC,eAAe,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE;YACtC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/D,IAAI,IAAI,CAAC,UAAU,KAAK,mBAAU,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,wBAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,wBAAe,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,iBAAiB;QACrB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,wBAAe,CAAC,wBAAwB;gBACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,KAAK,wBAAe,CAAC,gBAAgB;gBACjC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjB,KAAK,wBAAe,CAAC,QAAQ;gBACzB,OAAO,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACpC,KAAK,wBAAe,CAAC,eAAe;gBAChC,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B;gBACI,MAAM,IAAI,uCAA+B,CAAC,mCAAmC,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3H,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,UAAkB;QAC3C,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,mBAAU,CAAC,aAAa;gBACzB,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;YACzE,KAAK,mBAAU,CAAC,YAAY;gBACxB,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YACxE,KAAK,mBAAU,CAAC,YAAY;gBACxB,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YACxE,KAAK,mBAAU,CAAC,aAAa;gBACzB,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;YACzE,KAAK,mBAAU,CAAC,KAAK;gBACjB,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACjE,KAAK,mBAAU,CAAC,QAAQ;gBACpB,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACpE,KAAK,mBAAU,CAAC,iBAAiB;gBAC7B,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;YAC7E,KAAK,mBAAU,CAAC,iBAAiB;gBAC7B,OAAO,gBAAgB,CAAC,KAAM,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;YAC7E;gBACI,MAAM,IAAI,kCAA0B,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3H,CAAC;IACL,CAAC;;AAzML,4CA0MC"} \ No newline at end of file diff --git a/build/push/proto/checkin.proto b/build/push/proto/checkin.proto deleted file mode 100644 index cb6c60d3..00000000 --- a/build/push/proto/checkin.proto +++ /dev/null @@ -1,266 +0,0 @@ -// Sample data, if provided, is fished from a Nexus 7 (2013) / flo running Android 5.0 -message CheckinRequest { - // unused - optional string imei = 1; - - // Gservices["android_id"] or 0 on first-checkin - optional int64 androidId = 2; - - // Gservices["digest"] or "" - optional string digest = 3; - - required Checkin checkin = 4; - message Checkin { - // empty Build on pre-checkin - required Build build = 1; - message Build { - // Build.FINGERPRINT - // eg. google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys - optional string fingerprint = 1; - - // Build.HARDWARE - // eg. flo - optional string hardware = 2; - - // Build.BRAND - // eg. google - optional string brand = 3; - - // Build.getRadioVersion() - optional string radio = 4; - - // Build.BOOTLOADER - // eg. FLO-04.04 - optional string bootloader = 5; - - // GoogleSettingsContract.Partner["client_id"] - // eg. android-google - optional string clientId = 6; - - // Build.TIME / 1000L - // eg. 1416533192 - optional int64 time = 7; - - // PackageInfo.versionCode - // eg. 6188736 - optional int32 packageVersionCode = 8; - - // Build.DEVICE - // eg. flo - optional string device = 9; - - // Build.VERSION.SDK_INT - // eg. 21 - optional int32 sdkVersion = 10; - - // Build.MODEL - // eg. Nexus 7 - optional string model = 11; - - // Build.MANUFACTURER - // eg. asus - optional string manufacturer = 12; - - // Build.PRODUCT - // eg. razor - optional string product = 13; - - // fileExists("/system/recovery-from-boot.p") - // eg. false - optional bool otaInstalled = 14; - } - - // last checkin ms or 0 if first checkin - // eg. 0 - optional int64 lastCheckinMs = 2; - - // eg. ("event_log_start",~,1424612602652) on first checkin - repeated Event event = 3; - message Event { - optional string tag = 1; - optional string value = 2; - optional int64 timeMs = 3; - } - - // unknown, n/a on first checkin - repeated Statistic stat = 4; - message Statistic { - required string tag = 1; - optional int32 count = 2; - optional float sum = 3; - } - - // unused - repeated string requestedGroup = 5; - - // TelephonyManager.getNetworkOperator != null|empty - optional string cellOperator = 6; - - // TelephonyManager.getSimOperator != null|empty - optional string simOperator = 7; - - // "WIFI::" | ("mobile" | "notmobile" | "unknown") + "-" + ("roaming" | "notroaming" | "unknown") - optional string roaming = 8; - - // UserHandle.myUserId - // eg. 0 - optional int32 userNumber = 9; - } - - // unused - optional string desiredBuild = 5; - - // Locale.toString - optional string locale = 6; - - // GoogleSettingsContract.Partner["logging_id2"] (choosen randomly on first checkin) - // eg. 12561488293572742346 - optional int64 loggingId = 7; - - // unused - optional string marketCheckin = 8; - - // NetworkInfo.getExtraInfo, WifiInfo.getMacAddress (12 hex-digits) - // eg. d850e6abcdef - repeated string macAddress = 9; - - // TelephonyManager.getDeviceId (14 hex-digits), not set on tablets - optional string meid = 10; - - // "[]" followed by "", empty string on first checkin - repeated string accountCookie = 11; - - // TimeZone.getId - // eg. GMT - optional string timeZone = 12; - - // security token as given on first checkin, not set on first checkin - optional fixed64 securityToken = 13; - - // use 3 - optional int32 version = 14; - - // SHA-1 of each in /system/etc/security/otacerts.zip or "--IOException--" or "--no-output--" - // eg. dKXTm1QH9QShGQwBM/4rg6/lCNQ= - repeated string otaCert = 15; - - // Build.SERIAL != "unknown" - // eg. 07d90b18 - optional string serial = 16; - - // TelephonyManager.getDeviceId (8 hex-digits), not set on tablets - optional string esn = 17; - - optional DeviceConfig deviceConfiguration = 18; - message DeviceConfig { - // ConfigurationInfo.reqTouchScreen - // eg. 3 - optional int32 touchScreen = 1; - - // ConfigurationInfo.reqKeyboardType - // eg. 1 - optional int32 keyboardType = 2; - - // ConfigurationInfo.reqNavigation - // eg. 1 - optional int32 navigation = 3; - // ConfigurationInfo.screenLayout - // eg. 3 - optional int32 screenLayout = 4; - - // ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD - // eg. 0 - optional bool hasHardKeyboard = 5; - - // ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV - // eg. 0 - optional bool hasFiveWayNavigation = 6; - - // DisplayMetrics.densityDpi - // eg. 320 - optional int32 densityDpi = 7; - - // ConfigurationInfo.reqGlEsVersion - // eg. 196608 - optional int32 glEsVersion = 8; - - // PackageManager.getSystemSharedLibraryNames - // eg. "android.test.runner", "com.android.future.usb.accessory", "com.android.location.provider", - // "com.android.media.remotedisplay", "com.android.mediadrm.signer", "com.google.android.maps", - // "com.google.android.media.effects", "com.google.widevine.software.drm", "javax.obex" - repeated string sharedLibrary = 9; - - // PackageManager.getSystemAvailableFeatures - // eg. android.hardware.[...] - repeated string availableFeature = 10; - - // Build.CPU_ABI and Build.CPU_ABI2 != "unknown" - // eg. "armeabi-v7a", "armeabi" - repeated string nativePlatform = 11; - - // DisplayMetrics.widthPixels - // eg. 1200 - optional int32 widthPixels = 12; - - // DisplayMetrics.heightPixels - // eg. 1824 - optional int32 heightPixels = 13; - - // Context.getAssets.getLocales - // eg. [...], "en-US", [...] - repeated string locale = 14; - - // GLES10.glGetString(GLES10.GL_EXTENSIONS) - // eg. "GL_AMD_compressed_ATC_texture", [...] - repeated string glExtension = 15; - - // unused - optional int32 deviceClass = 16; - // unused - optional int32 maxApkDownloadSizeMb = 17; - } - - // "ethernet" or "wifi" - repeated string macAddressType = 19; - - // unknown, use 0 on pre- and first-checkin, and 1 for later checkins - // also present on pre-checkin - required int32 fragment = 20; - - // unknown - optional string userName = 21; - - // UserManager.getUserSerialNumber - // eg. 0 - optional int32 userSerialNumber = 22; -} - -message CheckinResponse { - optional bool statsOk = 1; - repeated Intent intent = 2; - message Intent { - optional string action = 1; - optional string dataUri = 2; - optional string mimeType = 3; - optional string javaClass = 4; - repeated Extra extra = 5; - message Extra { - optional string name = 6; - optional string value = 7; - } - } - optional int64 timeMs = 3; - optional string digest = 4; - repeated GservicesSetting setting = 5; - message GservicesSetting { - optional bytes name = 1; - optional bytes value = 2; - } - optional bool marketOk = 6; - optional fixed64 androidId = 7; - optional fixed64 securityToken = 8; - optional bool settingsDiff = 9; - repeated string deleteSetting = 10; - optional string versionInfo = 11; - optional string deviceDataVersionInfo = 12; -} diff --git a/build/push/proto/mcs.proto b/build/push/proto/mcs.proto deleted file mode 100644 index e9b048fd..00000000 --- a/build/push/proto/mcs.proto +++ /dev/null @@ -1,328 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// MCS protocol for communication between Chrome client and Mobile Connection -// Server . - -syntax = "proto2"; - -option optimize_for = LITE_RUNTIME; - -package mcs_proto; - -/* - Common fields/comments: - - stream_id: no longer sent by server, each side keeps a counter - last_stream_id_received: sent only if a packet was received since last time - a last_stream was sent - status: new bitmask including the 'idle' as bit 0. - - */ - -/** - TAG: 0 - */ -message HeartbeatPing { - optional int32 stream_id = 1; - optional int32 last_stream_id_received = 2; - optional int64 status = 3; -} - -/** - TAG: 1 - */ -message HeartbeatAck { - optional int32 stream_id = 1; - optional int32 last_stream_id_received = 2; - optional int64 status = 3; -} - -message ErrorInfo { - required int32 code = 1; - optional string message = 2; - optional string type = 3; - optional Extension extension = 4; -} - -// MobileSettings class. -// "u:f", "u:b", "u:s" - multi user devices reporting foreground, background -// and stopped users. -// hbping: heatbeat ping interval -// rmq2v: include explicit stream IDs - -message Setting { - required string name = 1; - required string value = 2; -} - -message HeartbeatStat { - required string ip = 1; - required bool timeout = 2; - required int32 interval_ms = 3; -} - -message HeartbeatConfig { - optional bool upload_stat = 1; - optional string ip = 2; - optional int32 interval_ms = 3; -} - -// ClientEvents are used to inform the server of failed and successful -// connections. -message ClientEvent { - enum Type { - UNKNOWN = 0; - // Count of discarded events if the buffer filled up and was trimmed. - DISCARDED_EVENTS = 1; - // Failed connection event: the connection failed to be established or we - // had a login error. - FAILED_CONNECTION = 2; - // Successful connection event: information about the last successful - // connection, including the time at which it was established. - SUCCESSFUL_CONNECTION = 3; - } - - // Common fields [1-99] - optional Type type = 1; - - // Fields for DISCARDED_EVENTS messages [100-199] - optional uint32 number_discarded_events = 100; - - // Fields for FAILED_CONNECTION and SUCCESSFUL_CONNECTION messages [200-299] - // Network type is a value in net::NetworkChangeNotifier::ConnectionType. - optional int32 network_type = 200; - // Reserved for network_port. - reserved 201; - optional uint64 time_connection_started_ms = 202; - optional uint64 time_connection_ended_ms = 203; - // Error code should be a net::Error value. - optional int32 error_code = 204; - - // Fields for SUCCESSFUL_CONNECTION messages [300-399] - optional uint64 time_connection_established_ms = 300; -} - -/** - TAG: 2 - */ -message LoginRequest { - enum AuthService { - ANDROID_ID = 2; - } - required string id = 1; // Must be present ( proto required ), may be empty - // string. - // mcs.android.com. - required string domain = 2; - // Decimal android ID - required string user = 3; - - required string resource = 4; - - // Secret - required string auth_token = 5; - - // Format is: android-HEX_DEVICE_ID - // The user is the decimal value. - optional string device_id = 6; - - // RMQ1 - no longer used - optional int64 last_rmq_id = 7; - - repeated Setting setting = 8; - //optional int32 compress = 9; - repeated string received_persistent_id = 10; - - // Replaced by "rmq2v" setting - // optional bool include_stream_ids = 11; - - optional bool adaptive_heartbeat = 12; - optional HeartbeatStat heartbeat_stat = 13; - // Must be true. - optional bool use_rmq2 = 14; - optional int64 account_id = 15; - - // ANDROID_ID = 2 - optional AuthService auth_service = 16; - - optional int32 network_type = 17; - optional int64 status = 18; - - // 19, 20, and 21 are not currently populated by Chrome. - reserved 19, 20, 21; - - // Events recorded on the client after the last successful connection. - repeated ClientEvent client_event = 22; -} - -/** - * TAG: 3 - */ -message LoginResponse { - required string id = 1; - // Not used. - optional string jid = 2; - // Null if login was ok. - optional ErrorInfo error = 3; - repeated Setting setting = 4; - optional int32 stream_id = 5; - // Should be "1" - optional int32 last_stream_id_received = 6; - optional HeartbeatConfig heartbeat_config = 7; - // used by the client to synchronize with the server timestamp. - optional int64 server_timestamp = 8; -} - -message StreamErrorStanza { - required string type = 1; - optional string text = 2; -} - -/** - * TAG: 4 - */ -message Close { -} - -message Extension { - // 12: SelectiveAck - // 13: StreamAck - required int32 id = 1; - required bytes data = 2; -} - -/** - * TAG: 7 - * IqRequest must contain a single extension. IqResponse may contain 0 or 1 - * extensions. - */ -message IqStanza { - enum IqType { - GET = 0; - SET = 1; - RESULT = 2; - IQ_ERROR = 3; - } - - optional int64 rmq_id = 1; - required IqType type = 2; - required string id = 3; - optional string from = 4; - optional string to = 5; - optional ErrorInfo error = 6; - - // Only field used in the 38+ protocol (besides common last_stream_id_received, status, rmq_id) - optional Extension extension = 7; - - optional string persistent_id = 8; - optional int32 stream_id = 9; - optional int32 last_stream_id_received = 10; - optional int64 account_id = 11; - optional int64 status = 12; -} - -message AppData { - required string key = 1; - required string value = 2; -} - -/** - * TAG: 8 - */ -message DataMessageStanza { - // Not used. - // optional int64 rmq_id = 1; - - // This is the message ID, set by client, DMP.9 (message_id) - optional string id = 2; - - // Project ID of the sender, DMP.1 - required string from = 3; - - // Part of DMRequest - also the key in DataMessageProto. - optional string to = 4; - - // Package name. DMP.2 - required string category = 5; - - // The collapsed key, DMP.3 - optional string token = 6; - - // User data + GOOGLE. prefixed special entries, DMP.4 - repeated AppData app_data = 7; - - // Not used. - optional bool from_trusted_server = 8; - - // Part of the ACK protocol, returned in DataMessageResponse on server side. - // It's part of the key of DMP. - optional string persistent_id = 9; - - // In-stream ack. Increments on each message sent - a bit redundant - // Not used in DMP/DMR. - optional int32 stream_id = 10; - optional int32 last_stream_id_received = 11; - - // Not used. - // optional string permission = 12; - - // Sent by the device shortly after registration. - optional string reg_id = 13; - - // Not used. - // optional string pkg_signature = 14; - // Not used. - // optional string client_id = 15; - - // serial number of the target user, DMP.8 - // It is the 'serial number' according to user manager. - optional int64 device_user_id = 16; - - // Time to live, in seconds. - optional int32 ttl = 17; - // Timestamp ( according to client ) when message was sent by app, in seconds - optional int64 sent = 18; - - // How long has the message been queued before the flush, in seconds. - // This is needed to account for the time difference between server and - // client: server should adjust 'sent' based on its 'receive' time. - optional int32 queued = 19; - - optional int64 status = 20; - - // Optional field containing the binary payload of the message. - optional bytes raw_data = 21; - - // Not used. - // The maximum delay of the message, in seconds. - // optional int32 max_delay = 22; - - // Not used. - // How long the message was delayed before it was sent, in seconds. - // optional int32 actual_delay = 23; - - // If set the server requests immediate ack. Used for important messages and - // for testing. - optional bool immediate_ack = 24; - - // Not used. - // Enables message receipts from MCS/GCM back to CCS clients - // optional bool delivery_receipt_requested = 25; -} - -/** - Included in IQ with ID 13, sent from client or server after 10 unconfirmed - messages. - */ -message StreamAck { - // No last_streamid_received required. This is included within an IqStanza, - // which includes the last_stream_id_received. -} - -/** - Included in IQ sent after LoginResponse from server with ID 12. -*/ -message SelectiveAck { - repeated string id = 1; -} diff --git a/build/push/service.d.ts b/build/push/service.d.ts deleted file mode 100644 index a73e7c22..00000000 --- a/build/push/service.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { TypedEmitter } from "tiny-typed-emitter"; -import { Credentials } from "./models"; -import { PushNotificationServiceEvents } from "./interfaces"; -export declare class PushNotificationService extends TypedEmitter { - private readonly APP_PACKAGE; - private readonly APP_ID; - private readonly APP_SENDER_ID; - private readonly APP_CERT_SHA1; - private readonly FCM_PROJECT_ID; - private readonly GOOGLE_API_KEY; - private readonly AUTH_VERSION; - private pushClient?; - private credentialsTimeout?; - private retryTimeout?; - private retryDelay; - private credentials; - private persistentIds; - private connected; - private connecting; - private got; - private constructor(); - private loadLibraries; - static initialize(): Promise; - private buildExpiresAt; - private registerFid; - private renewFidToken; - private createPushCredentials; - private renewPushCredentials; - private loginPushCredentials; - private executeCheckin; - private registerGcm; - private _normalizePushMessage; - private onMessage; - private getCurrentPushRetryDelay; - setCredentials(credentials: Credentials): void; - getCredentials(): Credentials | undefined; - setPersistentIds(persistentIds: string[]): void; - getPersistentIds(): string[]; - private _open; - open(): Promise; - close(): void; - private clearCredentialsTimeout; - private clearRetryTimeout; - private resetRetryTimeout; - isConnected(): boolean; -} diff --git a/build/push/service.js b/build/push/service.js deleted file mode 100644 index bdad0f06..00000000 --- a/build/push/service.js +++ /dev/null @@ -1,818 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PushNotificationService = void 0; -const qs = __importStar(require("qs")); -const tiny_typed_emitter_1 = require("tiny-typed-emitter"); -const utils_1 = require("./utils"); -const client_1 = require("./client"); -const device_1 = require("../http/device"); -const types_1 = require("../http/types"); -const utils_2 = require("../http/utils"); -const utils_3 = require("../utils"); -const error_1 = require("./error"); -const error_2 = require("../error"); -const logging_1 = require("../logging"); -const _1 = require("."); -const station_1 = require("../http/station"); -class PushNotificationService extends tiny_typed_emitter_1.TypedEmitter { - APP_PACKAGE = "com.oceanwing.battery.cam"; - APP_ID = "1:348804314802:android:440a6773b3620da7"; - APP_SENDER_ID = "348804314802"; - APP_CERT_SHA1 = "F051262F9F99B638F3C76DE349830638555B4A0A"; - FCM_PROJECT_ID = "batterycam-3250a"; - GOOGLE_API_KEY = "AIzaSyCSz1uxGrHXsEktm7O3_wv-uLGpC9BvXR8"; - AUTH_VERSION = "FIS_v2"; - pushClient; - credentialsTimeout; - retryTimeout; - retryDelay = 0; - credentials; - persistentIds = []; - connected = false; - connecting = false; - got; - constructor() { - super(); - } - async loadLibraries() { - const { default: got } = await import("got"); - this.got = got; - } - static async initialize() { - const service = new PushNotificationService(); - await service.loadLibraries(); - return service; - } - buildExpiresAt(expiresIn) { - if (expiresIn.endsWith("ms")) { - return new Date().getTime() + Number.parseInt(expiresIn.substring(0, expiresIn.length - 2)); - } - else if (expiresIn.endsWith("s")) { - return new Date().getTime() + Number.parseInt(expiresIn.substring(0, expiresIn.length - 1)) * 1000; - } - throw new error_1.UnknownExpiryFormaError("Unknown expiresIn-format", { context: { format: expiresIn } }); - } - async registerFid(fid) { - const url = `https://firebaseinstallations.googleapis.com/v1/projects/${this.FCM_PROJECT_ID}/installations`; - try { - const response = await this.got(url, { - method: "post", - json: { - fid: fid, - appId: `${this.APP_ID}`, - authVersion: `${this.AUTH_VERSION}`, - sdkVersion: "a:16.3.1", - }, - headers: { - "X-Android-Package": `${this.APP_PACKAGE}`, - "X-Android-Cert": `${this.APP_CERT_SHA1}`, - "x-goog-api-key": `${this.GOOGLE_API_KEY}`, - }, - responseType: "json", - http2: false, - throwHttpErrors: false, - retry: { - limit: 3, - methods: ["POST"] - }, - hooks: { - beforeError: [ - error => { - const { response, options } = error; - const statusCode = response?.statusCode || 0; - const { method, url, prefixUrl } = options; - const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); - const body = response?.body ? response.body : error.message; - if (response?.body) { - error.name = "RegisterFidError"; - error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; - } - return error; - } - ] - } - }); - if (response.statusCode == 200) { - const result = response.body; - return { - ...result, - authToken: { - ...result.authToken, - expiresAt: this.buildExpiresAt(result.authToken.expiresIn), - }, - }; - } - else { - logging_1.rootPushLogger.error("Register FID - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); - throw new error_1.FidRegistrationFailedError("FID registration failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Register FID - Generic Error", { error: (0, utils_3.getError)(error) }); - throw new error_1.FidRegistrationFailedError("FID registration failed", { cause: error, context: { fid: fid } }); - } - } - async renewFidToken(fid, refreshToken) { - const url = `https://firebaseinstallations.googleapis.com/v1/projects/${this.FCM_PROJECT_ID}/installations/${fid}/authTokens:generate`; - try { - const response = await this.got(url, { - method: "post", - json: { - installation: { - appId: `${this.APP_ID}`, - sdkVersion: "a:16.3.1", - } - }, - headers: { - "X-Android-Package": `${this.APP_PACKAGE}`, - "X-Android-Cert": `${this.APP_CERT_SHA1}`, - "x-goog-api-key": `${this.GOOGLE_API_KEY}`, - Authorization: `${this.AUTH_VERSION} ${refreshToken}` - }, - responseType: "json", - http2: false, - throwHttpErrors: false, - retry: { - limit: 3, - methods: ["POST"] - }, - hooks: { - beforeError: [ - error => { - const { response, options } = error; - const statusCode = response?.statusCode || 0; - const { method, url, prefixUrl } = options; - const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); - const body = response?.body ? response.body : error.message; - if (response?.body) { - error.name = "RenewFidTokenError"; - error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; - } - return error; - } - ] - } - }); - if (response.statusCode == 200) { - const result = response.body; - return { - ...result, - expiresAt: this.buildExpiresAt(result.expiresIn), - }; - } - else { - logging_1.rootPushLogger.error("Renew FID Token - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); - throw new error_1.RenewFidTokenFailedError("FID Token renewal failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Renew FID Token - Generic Error", { error: (0, utils_3.getError)(error) }); - throw new error_1.RenewFidTokenFailedError("FID Token renewal failed", { cause: error, context: { fid: fid, refreshToken: refreshToken } }); - } - } - async createPushCredentials() { - const generatedFid = (0, utils_1.generateFid)(); - return await this.registerFid(generatedFid) - .then(async (registerFidResponse) => { - const checkinResponse = await this.executeCheckin(); - return { - fidResponse: registerFidResponse, - checkinResponse: checkinResponse - }; - }) - .then(async (result) => { - const registerGcmResponse = await this.registerGcm(result.fidResponse, result.checkinResponse); - return { - ...result, - gcmResponse: registerGcmResponse, - }; - }).catch((err) => { - const error = (0, error_2.ensureError)(err); - throw error; - }); - } - async renewPushCredentials(credentials) { - return await this.renewFidToken(credentials.fidResponse.fid, credentials.fidResponse.refreshToken) - .then(async (response) => { - credentials.fidResponse.authToken = response; - return await this.executeCheckin(); - }) - .then(async (response) => { - const registerGcmResponse = await this.registerGcm(credentials.fidResponse, response); - return { - fidResponse: credentials.fidResponse, - checkinResponse: response, - gcmResponse: registerGcmResponse, - }; - }) - .catch(() => { - return this.createPushCredentials(); - }); - } - async loginPushCredentials(credentials) { - logging_1.rootPushLogger.info('fidresponse', credentials.fidResponse); - return await this.executeCheckin() - .then(async (response) => { - const registerGcmResponse = await this.registerGcm(credentials.fidResponse, response); - return { - fidResponse: credentials.fidResponse, - checkinResponse: response, - gcmResponse: registerGcmResponse, - }; - }) - .catch(() => { - return this.createPushCredentials(); - }); - } - async executeCheckin() { - const url = "https://android.clients.google.com/checkin"; - try { - const buffer = await (0, utils_1.buildCheckinRequest)(); - const response = await this.got(url, { - method: "post", - body: Buffer.from(buffer), - headers: { - "Content-Type": "application/x-protobuf", - }, - responseType: "buffer", - http2: false, - throwHttpErrors: false, - retry: { - limit: 3, - methods: ["POST"] - }, - hooks: { - beforeError: [ - error => { - const { response, options } = error; - const statusCode = response?.statusCode || 0; - const { method, url, prefixUrl } = options; - const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); - const body = response?.body ? response.body : error.message; - if (response?.body) { - error.name = "ExecuteCheckInError"; - error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; - } - return error; - } - ] - } - }); - if (response.statusCode == 200) { - return await (0, utils_1.parseCheckinResponse)(response.body); - } - else { - logging_1.rootPushLogger.error("Check in - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); - throw new error_1.ExecuteCheckInError("Google checkin failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); - } - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Check in - Generic Error", { error: (0, utils_3.getError)(error) }); - throw new error_1.ExecuteCheckInError("Google checkin failed", { cause: error }); - } - } - async registerGcm(fidInstallationResponse, checkinResponse) { - const url = "https://android.clients.google.com/c2dm/register3"; - const androidId = checkinResponse.androidId; - const fid = fidInstallationResponse.fid; - const securityToken = checkinResponse.securityToken; - const retry = 5; - try { - for (let retry_count = 1; retry_count <= retry; retry_count++) { - logging_1.rootPushLogger.debug(`Register GCM - Attempt ${retry_count} of ${retry}`, { androidId: androidId, fid: fid, securityToken: securityToken }); - const response = await this.got(url, { - method: "post", - body: qs.stringify({ - "X-subtype": `${this.APP_SENDER_ID}`, - sender: `${this.APP_SENDER_ID}`, - "X-app_ver": "741", - "X-osv": "25", - "X-cliv": "fiid-20.2.0", - "X-gmsv": "201216023", - "X-appid": `${fid}`, - "X-scope": "*", - "X-Goog-Firebase-Installations-Auth": `${fidInstallationResponse.authToken.token}`, - "X-gmp_app_id": `${this.APP_ID}`, - "X-Firebase-Client": "fire-abt/17.1.1+fire-installations/16.3.1+fire-android/+fire-analytics/17.4.2+fire-iid/20.2.0+fire-rc/17.0.0+fire-fcm/20.2.0+fire-cls/17.0.0+fire-cls-ndk/17.0.0+fire-core/19.3.0", - "X-firebase-app-name-hash": "R1dAH9Ui7M-ynoznwBdw01tLxhI", - "X-Firebase-Client-Log-Type": "1", - "X-app_ver_name": "v2.2.2_741", - app: `${this.APP_PACKAGE}`, - device: `${androidId}`, - app_ver: "741", - info: "g3EMJXXElLwaQEb1aBJ6XhxiHjPTUxc", - gcm_ver: "201216023", - plat: "0", - cert: `${this.APP_CERT_SHA1}`, - target_ver: "28", - }), - headers: { - Authorization: `AidLogin ${androidId}:${securityToken}`, - app: `${this.APP_PACKAGE}`, - gcm_ver: "201216023", - "User-Agent": "Android-GCM/1.5", - "content-type": "application/x-www-form-urlencoded", - }, - http2: false, - throwHttpErrors: false, - retry: { - limit: 3, - methods: ["POST"] - }, - hooks: { - beforeError: [ - error => { - const { response, options } = error; - const statusCode = response?.statusCode || 0; - const { method, url, prefixUrl } = options; - const shortUrl = (0, utils_3.getShortUrl)(typeof url === "string" ? new URL(url) : url === undefined ? new URL("") : url, typeof prefixUrl === "string" ? prefixUrl : prefixUrl.toString()); - const body = response?.body ? response.body : error.message; - if (response?.body) { - error.name = "RegisterGcmError"; - error.message = `${statusCode} ${method} ${shortUrl}\n${body}`; - } - return error; - } - ] - } - }); - if (response.statusCode == 200) { - const result = response.body.split("="); - if (result[0] == "Error") { - logging_1.rootPushLogger.debug("GCM register error, retry...", { retry: retry, retryCount: retry_count, response: response.body }); - if (retry_count == retry) - throw new error_1.RegisterGcmError("Max GCM registration retries reached", { context: { message: result[1], retry: retry, retryCount: retry_count } }); - } - else { - return { - token: result[1] - }; - } - } - else { - logging_1.rootPushLogger.error("Register GCM - Status return code not 200", { status: response.statusCode, statusText: response.statusMessage, data: response.body }); - throw new error_1.RegisterGcmError("Google register to GCM failed", { context: { status: response.statusCode, statusText: response.statusMessage, data: response.body } }); - } - await (0, utils_1.sleep)(10000 * retry_count); - } - throw new error_1.RegisterGcmError("Max GCM registration retries reached"); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Register GCM - Generic Error", { error: (0, utils_3.getError)(error) }); - throw new error_1.RegisterGcmError("Google register to GCM failed", { cause: error, context: { fidInstallationResponse: fidInstallationResponse, checkinResponse: checkinResponse } }); - } - } - _normalizePushMessage(message) { - const normalizedMessage = { - name: "", - event_time: 0, - type: -1, - station_sn: "", - device_sn: "" - }; - if (message.payload.payload) { - const payload = message.payload; - // CusPush - try { - normalizedMessage.type = Number.parseInt(payload.type); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - type - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - if (normalizedMessage.type in _1.ServerPushEvent) { - // server push notification - const serverPushData = payload.payload; - normalizedMessage.email = serverPushData.email; - normalizedMessage.person_name = serverPushData.nick_name; - normalizedMessage.verify_code = serverPushData.verify_code; - switch (normalizedMessage.type) { - case _1.ServerPushEvent.ALARM_NOTIFY: - case _1.ServerPushEvent.ALARM_GUEST_NOTIFY: - const alarmPushData = payload.payload; - normalizedMessage.device_sn = alarmPushData.device_sn; - normalizedMessage.station_sn = alarmPushData.station_sn; - normalizedMessage.alarm_status = alarmPushData.alarm_status; - normalizedMessage.alarm_action = alarmPushData.alarm_action_channel; - try { - normalizedMessage.alarm_type = Number.parseInt(alarmPushData.alarm_id); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - alarm_type - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - try { - normalizedMessage.event_time = alarmPushData.alert_time !== undefined ? (0, utils_1.convertTimestampMs)(alarmPushData.alert_time) : Number.parseInt(alarmPushData.alert_time); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - event_time - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - break; - } - } - else { - try { - normalizedMessage.event_time = payload.event_time !== undefined ? (0, utils_1.convertTimestampMs)(Number.parseInt(payload.event_time)) : Number.parseInt(payload.event_time); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPush - event_time - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - try { - normalizedMessage.push_time = payload.push_time !== undefined ? (0, utils_1.convertTimestampMs)(Number.parseInt(payload.push_time)) : Number.parseInt(payload.push_time); - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPush - push_time - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - normalizedMessage.station_sn = payload.station_sn; - normalizedMessage.title = payload.title; - normalizedMessage.content = payload.content; - if (normalizedMessage.type === types_1.DeviceType.FLOODLIGHT) - normalizedMessage.device_sn = payload.station_sn; - else - normalizedMessage.device_sn = payload.device_sn; - if ((0, utils_3.isEmpty)(normalizedMessage.device_sn) && !(0, utils_3.isEmpty)(normalizedMessage.station_sn)) { - normalizedMessage.device_sn = normalizedMessage.station_sn; - } - if (station_1.Station.isStationHomeBase3(normalizedMessage.type) || (normalizedMessage.station_sn.startsWith("T8030") && (device_1.Device.isCamera(normalizedMessage.type)))) { - const platformPushData = payload.payload; - normalizedMessage.name = platformPushData.name ? platformPushData.name : ""; - normalizedMessage.channel = platformPushData.channel !== undefined ? platformPushData.channel : 0; - normalizedMessage.cipher = platformPushData.cipher !== undefined ? platformPushData.cipher : 0; - normalizedMessage.event_session = platformPushData.session_id !== undefined ? platformPushData.session_id : ""; - normalizedMessage.event_type = platformPushData.a !== undefined ? platformPushData.a : platformPushData.event_type; - normalizedMessage.file_path = platformPushData.file_path !== undefined ? platformPushData.file_path : ""; - normalizedMessage.pic_url = platformPushData.pic_url !== undefined ? platformPushData.pic_url : ""; - normalizedMessage.push_count = platformPushData.push_count !== undefined ? platformPushData.push_count : 1; - normalizedMessage.notification_style = platformPushData.notification_style; - normalizedMessage.storage_type = platformPushData.storage_type !== undefined ? platformPushData.storage_type : 1; - normalizedMessage.msg_type = platformPushData.msg_type; - normalizedMessage.person_name = platformPushData.nick_name; - normalizedMessage.person_id = platformPushData.person_id; - normalizedMessage.tfcard_status = platformPushData.tfcard_status; - normalizedMessage.user_type = platformPushData.user; - normalizedMessage.user_name = platformPushData.user_name; - normalizedMessage.station_guard_mode = platformPushData.arming; - normalizedMessage.station_current_mode = platformPushData.mode; - normalizedMessage.alarm_delay = platformPushData.alarm_delay; - normalizedMessage.sound_alarm = platformPushData.alarm !== undefined ? platformPushData.alarm === 1 ? true : false : undefined; - } - else if (device_1.Device.isBatteryDoorbell(normalizedMessage.type) || device_1.Device.isWiredDoorbellDual(normalizedMessage.type)) { - const batteryDoorbellPushData = payload.payload; - normalizedMessage.name = batteryDoorbellPushData.name ? batteryDoorbellPushData.name : ""; - //Get family face names from Doorbell Dual "Family Recognition" event - if (batteryDoorbellPushData.objects !== undefined) { - normalizedMessage.person_name = batteryDoorbellPushData.objects.names !== undefined ? batteryDoorbellPushData.objects.names.join(",") : ""; - } - if (normalizedMessage.person_name === "") { - normalizedMessage.person_name = batteryDoorbellPushData.nick_name; - } - normalizedMessage.channel = batteryDoorbellPushData.channel !== undefined ? batteryDoorbellPushData.channel : 0; - normalizedMessage.cipher = batteryDoorbellPushData.cipher !== undefined ? batteryDoorbellPushData.cipher : 0; - normalizedMessage.event_session = batteryDoorbellPushData.session_id !== undefined ? batteryDoorbellPushData.session_id : ""; - normalizedMessage.event_type = batteryDoorbellPushData.event_type; - normalizedMessage.file_path = batteryDoorbellPushData.file_path !== undefined && batteryDoorbellPushData.file_path !== "" && batteryDoorbellPushData.channel !== undefined ? (0, utils_2.getAbsoluteFilePath)(normalizedMessage.type, batteryDoorbellPushData.channel, batteryDoorbellPushData.file_path) : ""; - normalizedMessage.pic_url = batteryDoorbellPushData.pic_url !== undefined ? batteryDoorbellPushData.pic_url : ""; - normalizedMessage.push_count = batteryDoorbellPushData.push_count !== undefined ? batteryDoorbellPushData.push_count : 1; - normalizedMessage.notification_style = batteryDoorbellPushData.notification_style; - } - else if (device_1.Device.isIndoorCamera(normalizedMessage.type) || - device_1.Device.isSoloCameras(normalizedMessage.type) || - device_1.Device.isWallLightCam(normalizedMessage.type) || - device_1.Device.isOutdoorPanAndTiltCamera(normalizedMessage.type) || - device_1.Device.isFloodLightT8420X(normalizedMessage.type, normalizedMessage.device_sn) || - (device_1.Device.isFloodLight(normalizedMessage.type) && normalizedMessage.type !== types_1.DeviceType.FLOODLIGHT)) { - const indoorPushData = payload.payload; - normalizedMessage.name = indoorPushData.name ? indoorPushData.name : ""; - normalizedMessage.channel = indoorPushData.channel; - normalizedMessage.cipher = indoorPushData.cipher; - normalizedMessage.event_session = indoorPushData.session_id; - normalizedMessage.event_type = indoorPushData.event_type; - //normalizedMessage.file_path = indoorPushData.file_path !== undefined && indoorPushData.file_path !== "" && indoorPushData.channel !== undefined ? getAbsoluteFilePath(normalizedMessage.type, indoorPushData.channel, indoorPushData.file_path) : ""; - normalizedMessage.file_path = indoorPushData.file_path; - normalizedMessage.pic_url = indoorPushData.pic_url !== undefined ? indoorPushData.pic_url : ""; - normalizedMessage.push_count = indoorPushData.push_count !== undefined ? indoorPushData.push_count : 1; - normalizedMessage.notification_style = indoorPushData.notification_style; - normalizedMessage.msg_type = indoorPushData.msg_type; - normalizedMessage.timeout = indoorPushData.timeout; - normalizedMessage.tfcard_status = indoorPushData.tfcard_status; - normalizedMessage.storage_type = indoorPushData.storage_type !== undefined ? indoorPushData.storage_type : 1; - normalizedMessage.unique_id = indoorPushData.unique_id; - } - else if (device_1.Device.isSmartSafe(normalizedMessage.type)) { - const smartSafePushData = payload.payload; - normalizedMessage.event_type = smartSafePushData.event_type; - normalizedMessage.event_value = smartSafePushData.event_value; - /* - event_value: { - type: 3, 3/4 - action: 1, - figure_id: 0, - user_id: 0 - } - */ - normalizedMessage.name = smartSafePushData.dev_name !== undefined ? smartSafePushData.dev_name : ""; - /*normalizedMessage.short_user_id = smartSafePushData.short_user_id !== undefined ? smartSafePushData.short_user_id : ""; - normalizedMessage.user_id = smartSafePushData.user_id !== undefined ? smartSafePushData.user_id : "";*/ - } - else if (device_1.Device.isLock(normalizedMessage.type) && !device_1.Device.isLockWifiVideo(normalizedMessage.type)) { - const lockPushData = payload.payload; - normalizedMessage.event_type = lockPushData.event_type; - normalizedMessage.short_user_id = lockPushData.short_user_id !== undefined ? lockPushData.short_user_id : ""; - normalizedMessage.user_id = lockPushData.user_id !== undefined ? lockPushData.user_id : ""; - normalizedMessage.name = lockPushData.device_name !== undefined ? lockPushData.device_name : ""; - normalizedMessage.person_name = lockPushData.nick_name !== undefined ? lockPushData.nick_name : ""; - } - else if (device_1.Device.isGarageCamera(normalizedMessage.type)) { - const garageDoorPushData = payload.payload; - normalizedMessage.event_type = garageDoorPushData.event_type; - normalizedMessage.user_name = garageDoorPushData.user_name !== undefined ? garageDoorPushData.user_name : ""; - normalizedMessage.door_id = garageDoorPushData.door_id !== undefined ? garageDoorPushData.door_id : -1; - normalizedMessage.name = garageDoorPushData.door_name !== undefined ? garageDoorPushData.door_name : ""; - normalizedMessage.pic_url = garageDoorPushData.pic_url !== undefined ? garageDoorPushData.pic_url : ""; - normalizedMessage.file_path = garageDoorPushData.file_path !== undefined ? garageDoorPushData.file_path : ""; - normalizedMessage.storage_type = garageDoorPushData.storage_type !== undefined ? garageDoorPushData.storage_type : 1; - normalizedMessage.power = garageDoorPushData.power !== undefined ? garageDoorPushData.power : undefined; - } - else { - const cusPushData = payload.payload; - normalizedMessage.name = cusPushData.device_name && cusPushData.device_name !== null && cusPushData.device_name !== "" ? cusPushData.device_name : cusPushData.n ? cusPushData.n : cusPushData.name ? cusPushData.name : ""; - normalizedMessage.channel = cusPushData.c ? cusPushData.c : cusPushData.channel; - normalizedMessage.cipher = cusPushData.k ? cusPushData.k : cusPushData.cipher; - normalizedMessage.event_session = cusPushData.session_id; - normalizedMessage.event_type = cusPushData.a ? cusPushData.a : cusPushData.event_type; - normalizedMessage.file_path = cusPushData.c !== undefined && cusPushData.p !== undefined && cusPushData.p !== "" ? (0, utils_2.getAbsoluteFilePath)(normalizedMessage.type, cusPushData.c, cusPushData.p) : cusPushData.file_path ? cusPushData.file_path : ""; - normalizedMessage.pic_url = cusPushData.pic_url !== undefined ? cusPushData.pic_url : ""; - normalizedMessage.push_count = cusPushData.push_count !== undefined ? cusPushData.push_count : 1; - normalizedMessage.notification_style = cusPushData.notification_style; - normalizedMessage.tfcard_status = cusPushData.tfcard; - normalizedMessage.alarm_delay_type = cusPushData.alarm_type; - normalizedMessage.alarm_delay = cusPushData.alarm_delay; - normalizedMessage.alarm_type = cusPushData.type; - normalizedMessage.sound_alarm = cusPushData.alarm !== undefined ? cusPushData.alarm === 1 ? true : false : undefined; - normalizedMessage.user_name = cusPushData.user_name; - normalizedMessage.user_type = cusPushData.user; - normalizedMessage.user_id = cusPushData.user_id; - normalizedMessage.short_user_id = cusPushData.short_user_id; - normalizedMessage.station_guard_mode = cusPushData.arming; - normalizedMessage.station_current_mode = cusPushData.mode; - normalizedMessage.person_name = cusPushData.f && cusPushData.f !== "" ? cusPushData.f : cusPushData.nick_name && cusPushData.nick_name ? cusPushData.nick_name : ""; - normalizedMessage.sensor_open = cusPushData.e !== undefined ? cusPushData.e == "1" ? true : false : undefined; - normalizedMessage.device_online = cusPushData.m !== undefined ? cusPushData.m === 1 ? true : false : undefined; - try { - normalizedMessage.fetch_id = cusPushData.i !== undefined ? Number.parseInt(cusPushData.i) : undefined; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - fetch_id - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - normalizedMessage.sense_id = cusPushData.j; - normalizedMessage.battery_powered = cusPushData.batt_powered !== undefined ? cusPushData.batt_powered === 1 ? true : false : undefined; - try { - normalizedMessage.battery_low = cusPushData.bat_low !== undefined ? Number.parseInt(cusPushData.bat_low) : undefined; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - battery_low - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - normalizedMessage.storage_type = cusPushData.storage_type !== undefined ? cusPushData.storage_type : 1; - normalizedMessage.unique_id = cusPushData.unique_id; - normalizedMessage.automation_id = cusPushData.automation_id; - normalizedMessage.click_action = cusPushData.click_action; - normalizedMessage.news_id = cusPushData.news_id; - normalizedMessage.msg_type = cusPushData.msg_type; - if (device_1.Device.isStarlight4GLTE(normalizedMessage.type)) { - if (cusPushData.channel && cusPushData.channel !== null && cusPushData.channel !== undefined) { - normalizedMessage.channel = cusPushData.channel; - } - if (cusPushData.cipher && cusPushData.cipher !== null && cusPushData.cipher !== undefined) { - normalizedMessage.cipher = cusPushData.cipher; - } - if (cusPushData.event_type && cusPushData.event_type !== null && cusPushData.event_type !== undefined) { - normalizedMessage.event_type = cusPushData.event_type; - } - if (cusPushData.file_path && cusPushData.file_path !== null && cusPushData.file_path !== undefined) { - normalizedMessage.file_path = cusPushData.file_path; - } - normalizedMessage.msg_type = cusPushData.msg_type; - } - else if (device_1.Device.isSmartDrop(normalizedMessage.type)) { - try { - normalizedMessage.open = cusPushData.e !== undefined ? Number.parseInt(cusPushData.e) : 0; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - open - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - try { - normalizedMessage.openType = cusPushData.r !== undefined ? Number.parseInt(cusPushData.r) : 0; - } - catch (err) { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Normalize push message - Type ${types_1.DeviceType[normalizedMessage.type]} CusPushData - openType - Error`, { error: (0, utils_3.getError)(error), message: message }); - } - normalizedMessage.person_name = cusPushData.p; - normalizedMessage.pin = cusPushData.u; - normalizedMessage.channel = cusPushData.channel !== undefined ? cusPushData.channel : 0; - normalizedMessage.cipher = cusPushData.cipher !== undefined ? cusPushData.cipher : 0; - normalizedMessage.event_session = cusPushData.session_id !== undefined ? cusPushData.session_id : ""; - normalizedMessage.file_path = cusPushData.file_path !== undefined ? cusPushData.file_path : ""; - } - } - } - } - else if (message.payload.doorbell !== undefined) { - const doorbellPushData = (0, utils_3.parseJSON)(message.payload.doorbell, logging_1.rootPushLogger); - if (doorbellPushData !== undefined) { - normalizedMessage.name = "Doorbell"; - normalizedMessage.type = 5; - normalizedMessage.event_time = doorbellPushData.create_time !== undefined ? (0, utils_1.convertTimestampMs)(doorbellPushData.create_time) : doorbellPushData.create_time; - normalizedMessage.station_sn = doorbellPushData.device_sn; - normalizedMessage.device_sn = doorbellPushData.device_sn; - normalizedMessage.title = doorbellPushData.title; - normalizedMessage.content = doorbellPushData.content; - normalizedMessage.push_time = doorbellPushData.event_time !== undefined ? (0, utils_1.convertTimestampMs)(doorbellPushData.event_time) : doorbellPushData.event_time; - normalizedMessage.channel = doorbellPushData.channel; - normalizedMessage.cipher = doorbellPushData.cipher; - normalizedMessage.event_session = doorbellPushData.event_session; - normalizedMessage.event_type = doorbellPushData.event_type; - normalizedMessage.file_path = doorbellPushData.file_path; - normalizedMessage.pic_url = doorbellPushData.pic_url; - normalizedMessage.push_count = doorbellPushData.push_count !== undefined ? doorbellPushData.push_count : 1; - normalizedMessage.doorbell_url = doorbellPushData.url; - normalizedMessage.doorbell_url_ex = doorbellPushData.url_ex; - normalizedMessage.doorbell_video_url = doorbellPushData.video_url; - } - } - return normalizedMessage; - } - onMessage(message) { - logging_1.rootPushLogger.debug("Raw push message received", { message: message }); - this.emit("raw message", message); - const normalizedMessage = this._normalizePushMessage(message); - logging_1.rootPushLogger.debug("Normalized push message received", { message: normalizedMessage }); - this.emit("message", normalizedMessage); - } - getCurrentPushRetryDelay() { - const delay = this.retryDelay == 0 ? 5000 : this.retryDelay; - if (this.retryDelay < 60000) - this.retryDelay += 10000; - if (this.retryDelay >= 60000 && this.retryDelay < 600000) - this.retryDelay += 60000; - return delay; - } - setCredentials(credentials) { - this.credentials = credentials; - } - getCredentials() { - return this.credentials; - } - setPersistentIds(persistentIds) { - this.persistentIds = persistentIds; - } - getPersistentIds() { - return this.persistentIds; - } - async _open(renew = false, forceNew = false) { - if (forceNew || !this.credentials || Object.keys(this.credentials).length === 0 || (this.credentials && this.credentials.fidResponse && new Date().getTime() >= this.credentials.fidResponse.authToken.expiresAt)) { - logging_1.rootPushLogger.debug(`Create new push credentials...`, { credentials: this.credentials, renew: renew }); - this.credentials = await this.createPushCredentials().catch(err => { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Create push credentials Error", { error: (0, utils_3.getError)(error), credentials: this.credentials, renew: renew }); - return undefined; - }); - } - else if (this.credentials && renew) { - logging_1.rootPushLogger.debug(`Renew push credentials...`, { credentials: this.credentials, renew: renew }); - this.credentials = await this.renewPushCredentials(this.credentials).catch(err => { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Push credentials renew Error", { error: (0, utils_3.getError)(error), credentials: this.credentials, renew: renew }); - return undefined; - }); - } - else { - logging_1.rootPushLogger.debug(`Login with previous push credentials...`, { credentials: this.credentials }); - this.credentials = await this.loginPushCredentials(this.credentials).catch(err => { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error("Push credentials login Error", { error: (0, utils_3.getError)(error), credentials: this.credentials, renew: renew }); - return undefined; - }); - } - if (this.credentials) { - this.emit("credential", this.credentials); - logging_1.rootPushLogger.debug("Push notification token received", { token: this.credentials.gcmResponse.token, credentials: this.credentials }); - this.clearCredentialsTimeout(); - this.credentialsTimeout = setTimeout(async () => { - logging_1.rootPushLogger.info("Push notification token is expiring, renew it."); - await this._open(true); - }, this.credentials.fidResponse.authToken.expiresAt - new Date().getTime() - 60000); - if (this.pushClient) { - this.pushClient.removeAllListeners(); - } - logging_1.rootPushLogger.debug('Init PushClient with credentials', { credentials: this.credentials }); - this.pushClient = await client_1.PushClient.init({ - androidId: this.credentials.checkinResponse.androidId, - securityToken: this.credentials.checkinResponse.securityToken, - }); - if (this.persistentIds) - this.pushClient.setPersistentIds(this.persistentIds); - const token = this.credentials.gcmResponse.token; - this.pushClient.on("connect", () => { - this.emit("connect", token); - this.connected = true; - this.connecting = false; - }); - this.pushClient.on("close", () => { - this.emit("close"); - this.connected = false; - this.connecting = false; - }); - this.pushClient.on("message", (msg) => this.onMessage(msg)); - this.pushClient.connect(); - } - else { - this.emit("close"); - this.connected = false; - this.connecting = false; - logging_1.rootPushLogger.error("Push notifications are disabled, because the registration failed!", { credentials: this.credentials, renew: renew }); - } - } - async open() { - if (!this.connecting && !this.connected) { - this.connecting = true; - await this._open(false, true).catch((err) => { - const error = (0, error_2.ensureError)(err); - logging_1.rootPushLogger.error(`Got exception trying to initialize push notifications`, { error: (0, utils_3.getError)(error), credentials: this.credentials }); - }); - if (!this.credentials) { - this.clearRetryTimeout(); - const delay = this.getCurrentPushRetryDelay(); - logging_1.rootPushLogger.info(`Retry to register/login for push notification in ${delay / 1000} seconds...`); - this.retryTimeout = setTimeout(async () => { - logging_1.rootPushLogger.info(`Retry to register/login for push notification`); - await this.open(); - }, delay); - } - else { - this.resetRetryTimeout(); - this.emit("credential", this.credentials); - } - } - return this.credentials; - } - close() { - this.resetRetryTimeout(); - this.clearCredentialsTimeout(); - this.pushClient?.close(); - } - clearCredentialsTimeout() { - if (this.credentialsTimeout) { - clearTimeout(this.credentialsTimeout); - this.credentialsTimeout = undefined; - } - } - clearRetryTimeout() { - if (this.retryTimeout) { - clearTimeout(this.retryTimeout); - this.retryTimeout = undefined; - } - } - resetRetryTimeout() { - this.clearRetryTimeout(); - this.retryDelay = 0; - } - isConnected() { - return this.connected; - } -} -exports.PushNotificationService = PushNotificationService; -//# sourceMappingURL=service.js.map \ No newline at end of file diff --git a/build/push/service.js.map b/build/push/service.js.map deleted file mode 100644 index ef0fada9..00000000 --- a/build/push/service.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/push/service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/types.d.ts b/build/push/types.d.ts deleted file mode 100644 index b905d2b0..00000000 --- a/build/push/types.d.ts +++ /dev/null @@ -1,218 +0,0 @@ -export declare enum CusPushEvent { - SECURITY = 1, - TFCARD = 2, - DOOR_SENSOR = 3, - CAM_STATE = 4, - GSENSOR = 5, - BATTERY_LOW = 6, - BATTERY_HOT = 7, - LIGHT_STATE = 8, - MODE_SWITCH = 9, - ALARM = 10, - BATTERY_FULL = 11, - REPEATER_RSSI_WEAK = 12, - UPGRADE_STATUS = 13, - MOTION_SENSOR_PIR = 14, - ALARM_DELAY = 16, - HUB_BATT_POWERED = 17, - SENSOR_NO_OPEN = 18, - SMART_DROP = 20 -} -export declare enum CusPushAlarmType { - HUB_STOP = 0, - DEV_STOP = 1, - GSENSOR = 2, - PIR = 3, - APP = 4, - HOT = 5, - DOOR = 6, - CAMERA = 7, - MOTION_SENSOR = 8, - CAMERA_GSENSOR = 9, - CAMERA_APP = 10, - CAMERA_LINKAGE = 11, - HUB_LINKAGE = 12, - HUB_KEYPAD_PANIC_BUTTON = 13, - HUB_KEYPAD_EMERGENCY_CODE = 14, - HUB_STOP_BY_KEYPAD = 15, - HUB_STOP_BY_APP = 16, - HUB_STOP_BY_HUB = 17, - HUB_KEYPAD_CUSTOM_NOT_MAP = 18 -} -export declare enum CusPushMode { - SWITCH_FROM_KEYPAD = 1, - SWITCH_FROM_APP = 2, - SWITCH = 9 -} -export declare enum ServerPushEvent { - INVITE_DEVICE = 10300, - REMOVE_DEVICE = 10200, - REMOVE_HOMEBASE = 10100, - VERIFICATION = 10500, - WEB_ACTION = 10800, - ALARM_NOTIFY = 10900, - ALARM_GUEST_NOTIFY = 11000, - HOUSE_ADDED = 11400, - HOUSE_INVITE = 11300, - HOUSE_REMOVE = 11200 -} -export declare enum DoorbellPushEvent { - BACKGROUND_ACTIVE = 3100, - MOTION_DETECTION = 3101, - FACE_DETECTION = 3102, - PRESS_DOORBELL = 3103, - PET_DETECTION = 3106, - VEHICLE_DETECTION = 3107, - PACKAGE_DELIVERED = 3301, - PACKAGE_TAKEN = 3302, - FAMILY_DETECTION = 3303, - PACKAGE_STRANDED = 3304, - SOMEONE_LOITERING = 3305, - RADAR_MOTION_DETECTION = 3306, - AWAY_FROM_HOME = 3307, - RADAR_DETECTION = 3308 -} -export declare enum LockPushEvent { - MANUAL_UNLOCK = 257, - AUTO_UNLOCK = 258, - PW_UNLOCK = 259, - FINGERPRINT_UNLOCK = 260, - APP_UNLOCK = 261, - MANUAL_LOCK = 262, - KEYPAD_LOCK = 263, - APP_LOCK = 264, - AUTO_LOCK = 265, - PW_LOCK = 266, - FINGER_LOCK = 267, - TEMPORARY_PW_LOCK = 268, - TEMPORARY_PW_UNLOCK = 269, - LOW_POWER = 513, - VERY_LOW_POWER = 514, - MULTIPLE_ERRORS = 515, - LOCK_OFFLINE = 516, - MECHANICAL_ANOMALY = 517, - VIOLENT_DESTRUCTION = 518, - LOCK_MECHANICAL_ANOMALY = 519, - DOOR_OPEN_LEFT = 520, - DOOR_TAMPER = 521, - DOOR_STATE_ERROR = 522, - STATUS_CHANGE = 769, - OTA_STATUS = 770, - LOCK_ONLINE = 771 -} -export declare enum IndoorPushEvent { - MOTION_DETECTION = 3101, - FACE_DETECTION = 3102, - CRYING_DETECTION = 3104, - SOUND_DETECTION = 3105, - PET_DETECTION = 3106, - VEHICLE_DETECTION = 3107 -} -export declare enum GarageDoorPushEvent { - CLOSED_DOOR_BY_APP = 1, - OPEN_DOOR_BY_APP = 2, - CLOSED_DOOR_WITHOUT_APP = 3, - OPEN_DOOR_WITHOUT_APP = 4, - TIMEOUT_DOOR_OPEN_WARNING = 5, - TIMEOUT_CLOSED_DOOR = 6, - TIMEOUT_DOOR_OPEN_WARNING_MINUTES = 7, - LOW_BATTERY = 8 -} -export declare enum SmartSafeEvent { - ALARM_911 = 1946161152, - LOCK_STATUS = 1946161153, - SHAKE_ALARM = 1946161154, - BATTERY_STATUS = 1946161155, - LONG_TIME_NOT_CLOSE = 1946161156, - FORCE_FIGURE = 1946161157, - LOW_POWER = 1946161158, - INPUT_ERR_MAX = 1946161159, - SHUTDOWN = 1946161160 -} -export declare enum HB3PairedDevicePushEvent { - MOTION_DETECTION = 3101, - FACE_DETECTION = 3102, - PRESS_DOORBELL = 3103, - CRYING_DETECTION = 3104, - SOUND_DETECTION = 3105, - PET_DETECTION = 3106, - VEHICLE_DETECTION = 3107, - DOG_DETECTION = 3108, - DOG_LICK_DETECTION = 3109, - DOG_POOP_DETECTION = 3110, - IDENTITY_PERSON_DETECTION = 3111, - STRANGER_PERSON_DETECTION = 3112 -} -export declare enum HB3PairedDeviceMessageType { - SECURITY_EVT = 1, - TFCARD_EVT = 2, - DOOR_SENSOR_EVT = 3, - CAM_STATE_EVT = 4, - GSENSOR_EVT = 5, - BATTERY_LOW_EVT = 6, - BATTERY_HOT_EVT = 7, - LIGHT_STATE_EVT = 8, - ARMING_EVT = 9, - ALARM_EVT = 10, - BATTERY_FULL_EVT = 11, - REPEATER_RSSI_WEAK_EVT = 12, - UPGRADE_STATUS = 13, - MOTION_SENSOR_EVT = 14, - BAT_DOORBELL_EVT = 15, - ALARM_DELAY_EVT = 16, - HUB_BATT_POWERED_EVT = 17, - INDOOR_EVT = 18, - SMARTLOCK_EVT = 19, - LOCK_EVT = 20, - BBM_SOCK_EVT = 21, - DOOR_STATUS_EVT = 22, - HHD_EVT = 23 -} -export declare enum HB3HDDType { - NODISK = 0, - READY = 1, - PROCESSING = 2, - NO_PARTED = 3, - NO_ANKER_DISK = 4, - NOT_FORMAT = 5, - OTHER_USER_DISK = 6, - BAD = 7, - WAIT_NETWOR = 8, - PARTED_DONE = 9, - FULL = 32 -} -export declare enum IndoorPushMessageType { - INDOOR = 18, - TFCARD = 2 -} -export declare enum NotificationStyle { - TEXT = 1, - THUMB = 2, - ALL = 3 -} -export declare enum AlarmAction { - CANCEL_APP = 0, - CANCEL_NOLIGHT = 1 -} -export declare enum SmartDropPushEvent { - LOW_BATTERY = 6, - OVERHEATING_WARNING = 7, - TAMPERED_WARNING = 10, - BATTERY_FULLY_CHARGED = 11, - PERSON_DETECTED = 3102 -} -export declare enum SmartDropOpen { - OPEN = 1, - CLOSED = 2, - LID_STUCK = 3, - PIN_INCORRECT = 4, - LEFT_OPENED = 10, - LOW_TEMPERATURE_WARNING = 11 -} -export declare enum SmartDropOpenedBy { - APP = 1, - PIN = 2, - WITHOUT_KEY = 3, - EMERGENCY_RELEASE_BUTTON = 4, - KEY = 5 -} diff --git a/build/push/types.js b/build/push/types.js deleted file mode 100644 index 025d5d24..00000000 --- a/build/push/types.js +++ /dev/null @@ -1,242 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SmartDropOpenedBy = exports.SmartDropOpen = exports.SmartDropPushEvent = exports.AlarmAction = exports.NotificationStyle = exports.IndoorPushMessageType = exports.HB3HDDType = exports.HB3PairedDeviceMessageType = exports.HB3PairedDevicePushEvent = exports.SmartSafeEvent = exports.GarageDoorPushEvent = exports.IndoorPushEvent = exports.LockPushEvent = exports.DoorbellPushEvent = exports.ServerPushEvent = exports.CusPushMode = exports.CusPushAlarmType = exports.CusPushEvent = void 0; -var CusPushEvent; -(function (CusPushEvent) { - CusPushEvent[CusPushEvent["SECURITY"] = 1] = "SECURITY"; - CusPushEvent[CusPushEvent["TFCARD"] = 2] = "TFCARD"; - CusPushEvent[CusPushEvent["DOOR_SENSOR"] = 3] = "DOOR_SENSOR"; - CusPushEvent[CusPushEvent["CAM_STATE"] = 4] = "CAM_STATE"; - CusPushEvent[CusPushEvent["GSENSOR"] = 5] = "GSENSOR"; - CusPushEvent[CusPushEvent["BATTERY_LOW"] = 6] = "BATTERY_LOW"; - CusPushEvent[CusPushEvent["BATTERY_HOT"] = 7] = "BATTERY_HOT"; - CusPushEvent[CusPushEvent["LIGHT_STATE"] = 8] = "LIGHT_STATE"; - CusPushEvent[CusPushEvent["MODE_SWITCH"] = 9] = "MODE_SWITCH"; - CusPushEvent[CusPushEvent["ALARM"] = 10] = "ALARM"; - CusPushEvent[CusPushEvent["BATTERY_FULL"] = 11] = "BATTERY_FULL"; - CusPushEvent[CusPushEvent["REPEATER_RSSI_WEAK"] = 12] = "REPEATER_RSSI_WEAK"; - CusPushEvent[CusPushEvent["UPGRADE_STATUS"] = 13] = "UPGRADE_STATUS"; - CusPushEvent[CusPushEvent["MOTION_SENSOR_PIR"] = 14] = "MOTION_SENSOR_PIR"; - CusPushEvent[CusPushEvent["ALARM_DELAY"] = 16] = "ALARM_DELAY"; - CusPushEvent[CusPushEvent["HUB_BATT_POWERED"] = 17] = "HUB_BATT_POWERED"; - CusPushEvent[CusPushEvent["SENSOR_NO_OPEN"] = 18] = "SENSOR_NO_OPEN"; - CusPushEvent[CusPushEvent["SMART_DROP"] = 20] = "SMART_DROP"; -})(CusPushEvent || (exports.CusPushEvent = CusPushEvent = {})); -var CusPushAlarmType; -(function (CusPushAlarmType) { - CusPushAlarmType[CusPushAlarmType["HUB_STOP"] = 0] = "HUB_STOP"; - CusPushAlarmType[CusPushAlarmType["DEV_STOP"] = 1] = "DEV_STOP"; - CusPushAlarmType[CusPushAlarmType["GSENSOR"] = 2] = "GSENSOR"; - CusPushAlarmType[CusPushAlarmType["PIR"] = 3] = "PIR"; - CusPushAlarmType[CusPushAlarmType["APP"] = 4] = "APP"; - CusPushAlarmType[CusPushAlarmType["HOT"] = 5] = "HOT"; - CusPushAlarmType[CusPushAlarmType["DOOR"] = 6] = "DOOR"; - CusPushAlarmType[CusPushAlarmType["CAMERA"] = 7] = "CAMERA"; - CusPushAlarmType[CusPushAlarmType["MOTION_SENSOR"] = 8] = "MOTION_SENSOR"; - CusPushAlarmType[CusPushAlarmType["CAMERA_GSENSOR"] = 9] = "CAMERA_GSENSOR"; - CusPushAlarmType[CusPushAlarmType["CAMERA_APP"] = 10] = "CAMERA_APP"; - CusPushAlarmType[CusPushAlarmType["CAMERA_LINKAGE"] = 11] = "CAMERA_LINKAGE"; - CusPushAlarmType[CusPushAlarmType["HUB_LINKAGE"] = 12] = "HUB_LINKAGE"; - CusPushAlarmType[CusPushAlarmType["HUB_KEYPAD_PANIC_BUTTON"] = 13] = "HUB_KEYPAD_PANIC_BUTTON"; - CusPushAlarmType[CusPushAlarmType["HUB_KEYPAD_EMERGENCY_CODE"] = 14] = "HUB_KEYPAD_EMERGENCY_CODE"; - CusPushAlarmType[CusPushAlarmType["HUB_STOP_BY_KEYPAD"] = 15] = "HUB_STOP_BY_KEYPAD"; - CusPushAlarmType[CusPushAlarmType["HUB_STOP_BY_APP"] = 16] = "HUB_STOP_BY_APP"; - CusPushAlarmType[CusPushAlarmType["HUB_STOP_BY_HUB"] = 17] = "HUB_STOP_BY_HUB"; - CusPushAlarmType[CusPushAlarmType["HUB_KEYPAD_CUSTOM_NOT_MAP"] = 18] = "HUB_KEYPAD_CUSTOM_NOT_MAP"; -})(CusPushAlarmType || (exports.CusPushAlarmType = CusPushAlarmType = {})); -var CusPushMode; -(function (CusPushMode) { - CusPushMode[CusPushMode["SWITCH_FROM_KEYPAD"] = 1] = "SWITCH_FROM_KEYPAD"; - CusPushMode[CusPushMode["SWITCH_FROM_APP"] = 2] = "SWITCH_FROM_APP"; - CusPushMode[CusPushMode["SWITCH"] = 9] = "SWITCH"; -})(CusPushMode || (exports.CusPushMode = CusPushMode = {})); -var ServerPushEvent; -(function (ServerPushEvent) { - ServerPushEvent[ServerPushEvent["INVITE_DEVICE"] = 10300] = "INVITE_DEVICE"; - ServerPushEvent[ServerPushEvent["REMOVE_DEVICE"] = 10200] = "REMOVE_DEVICE"; - ServerPushEvent[ServerPushEvent["REMOVE_HOMEBASE"] = 10100] = "REMOVE_HOMEBASE"; - ServerPushEvent[ServerPushEvent["VERIFICATION"] = 10500] = "VERIFICATION"; - ServerPushEvent[ServerPushEvent["WEB_ACTION"] = 10800] = "WEB_ACTION"; - ServerPushEvent[ServerPushEvent["ALARM_NOTIFY"] = 10900] = "ALARM_NOTIFY"; - ServerPushEvent[ServerPushEvent["ALARM_GUEST_NOTIFY"] = 11000] = "ALARM_GUEST_NOTIFY"; - ServerPushEvent[ServerPushEvent["HOUSE_ADDED"] = 11400] = "HOUSE_ADDED"; - ServerPushEvent[ServerPushEvent["HOUSE_INVITE"] = 11300] = "HOUSE_INVITE"; - ServerPushEvent[ServerPushEvent["HOUSE_REMOVE"] = 11200] = "HOUSE_REMOVE"; -})(ServerPushEvent || (exports.ServerPushEvent = ServerPushEvent = {})); -var DoorbellPushEvent; -(function (DoorbellPushEvent) { - DoorbellPushEvent[DoorbellPushEvent["BACKGROUND_ACTIVE"] = 3100] = "BACKGROUND_ACTIVE"; - DoorbellPushEvent[DoorbellPushEvent["MOTION_DETECTION"] = 3101] = "MOTION_DETECTION"; - DoorbellPushEvent[DoorbellPushEvent["FACE_DETECTION"] = 3102] = "FACE_DETECTION"; - DoorbellPushEvent[DoorbellPushEvent["PRESS_DOORBELL"] = 3103] = "PRESS_DOORBELL"; - //OFFLINE = 3106, - DoorbellPushEvent[DoorbellPushEvent["PET_DETECTION"] = 3106] = "PET_DETECTION"; - //ONLINE = 3107, - DoorbellPushEvent[DoorbellPushEvent["VEHICLE_DETECTION"] = 3107] = "VEHICLE_DETECTION"; - DoorbellPushEvent[DoorbellPushEvent["PACKAGE_DELIVERED"] = 3301] = "PACKAGE_DELIVERED"; - DoorbellPushEvent[DoorbellPushEvent["PACKAGE_TAKEN"] = 3302] = "PACKAGE_TAKEN"; - DoorbellPushEvent[DoorbellPushEvent["FAMILY_DETECTION"] = 3303] = "FAMILY_DETECTION"; - DoorbellPushEvent[DoorbellPushEvent["PACKAGE_STRANDED"] = 3304] = "PACKAGE_STRANDED"; - DoorbellPushEvent[DoorbellPushEvent["SOMEONE_LOITERING"] = 3305] = "SOMEONE_LOITERING"; - DoorbellPushEvent[DoorbellPushEvent["RADAR_MOTION_DETECTION"] = 3306] = "RADAR_MOTION_DETECTION"; - DoorbellPushEvent[DoorbellPushEvent["AWAY_FROM_HOME"] = 3307] = "AWAY_FROM_HOME"; - DoorbellPushEvent[DoorbellPushEvent["RADAR_DETECTION"] = 3308] = "RADAR_DETECTION"; -})(DoorbellPushEvent || (exports.DoorbellPushEvent = DoorbellPushEvent = {})); -var LockPushEvent; -(function (LockPushEvent) { - LockPushEvent[LockPushEvent["MANUAL_UNLOCK"] = 257] = "MANUAL_UNLOCK"; - LockPushEvent[LockPushEvent["AUTO_UNLOCK"] = 258] = "AUTO_UNLOCK"; - LockPushEvent[LockPushEvent["PW_UNLOCK"] = 259] = "PW_UNLOCK"; - LockPushEvent[LockPushEvent["FINGERPRINT_UNLOCK"] = 260] = "FINGERPRINT_UNLOCK"; - LockPushEvent[LockPushEvent["APP_UNLOCK"] = 261] = "APP_UNLOCK"; - LockPushEvent[LockPushEvent["MANUAL_LOCK"] = 262] = "MANUAL_LOCK"; - LockPushEvent[LockPushEvent["KEYPAD_LOCK"] = 263] = "KEYPAD_LOCK"; - LockPushEvent[LockPushEvent["APP_LOCK"] = 264] = "APP_LOCK"; - LockPushEvent[LockPushEvent["AUTO_LOCK"] = 265] = "AUTO_LOCK"; - LockPushEvent[LockPushEvent["PW_LOCK"] = 266] = "PW_LOCK"; - LockPushEvent[LockPushEvent["FINGER_LOCK"] = 267] = "FINGER_LOCK"; - LockPushEvent[LockPushEvent["TEMPORARY_PW_LOCK"] = 268] = "TEMPORARY_PW_LOCK"; - LockPushEvent[LockPushEvent["TEMPORARY_PW_UNLOCK"] = 269] = "TEMPORARY_PW_UNLOCK"; - LockPushEvent[LockPushEvent["LOW_POWER"] = 513] = "LOW_POWER"; - LockPushEvent[LockPushEvent["VERY_LOW_POWER"] = 514] = "VERY_LOW_POWER"; - LockPushEvent[LockPushEvent["MULTIPLE_ERRORS"] = 515] = "MULTIPLE_ERRORS"; - LockPushEvent[LockPushEvent["LOCK_OFFLINE"] = 516] = "LOCK_OFFLINE"; - LockPushEvent[LockPushEvent["MECHANICAL_ANOMALY"] = 517] = "MECHANICAL_ANOMALY"; - LockPushEvent[LockPushEvent["VIOLENT_DESTRUCTION"] = 518] = "VIOLENT_DESTRUCTION"; - LockPushEvent[LockPushEvent["LOCK_MECHANICAL_ANOMALY"] = 519] = "LOCK_MECHANICAL_ANOMALY"; - LockPushEvent[LockPushEvent["DOOR_OPEN_LEFT"] = 520] = "DOOR_OPEN_LEFT"; - LockPushEvent[LockPushEvent["DOOR_TAMPER"] = 521] = "DOOR_TAMPER"; - LockPushEvent[LockPushEvent["DOOR_STATE_ERROR"] = 522] = "DOOR_STATE_ERROR"; - LockPushEvent[LockPushEvent["STATUS_CHANGE"] = 769] = "STATUS_CHANGE"; - LockPushEvent[LockPushEvent["OTA_STATUS"] = 770] = "OTA_STATUS"; - LockPushEvent[LockPushEvent["LOCK_ONLINE"] = 771] = "LOCK_ONLINE"; -})(LockPushEvent || (exports.LockPushEvent = LockPushEvent = {})); -var IndoorPushEvent; -(function (IndoorPushEvent) { - IndoorPushEvent[IndoorPushEvent["MOTION_DETECTION"] = 3101] = "MOTION_DETECTION"; - IndoorPushEvent[IndoorPushEvent["FACE_DETECTION"] = 3102] = "FACE_DETECTION"; - IndoorPushEvent[IndoorPushEvent["CRYING_DETECTION"] = 3104] = "CRYING_DETECTION"; - IndoorPushEvent[IndoorPushEvent["SOUND_DETECTION"] = 3105] = "SOUND_DETECTION"; - IndoorPushEvent[IndoorPushEvent["PET_DETECTION"] = 3106] = "PET_DETECTION"; - IndoorPushEvent[IndoorPushEvent["VEHICLE_DETECTION"] = 3107] = "VEHICLE_DETECTION"; -})(IndoorPushEvent || (exports.IndoorPushEvent = IndoorPushEvent = {})); -var GarageDoorPushEvent; -(function (GarageDoorPushEvent) { - GarageDoorPushEvent[GarageDoorPushEvent["CLOSED_DOOR_BY_APP"] = 1] = "CLOSED_DOOR_BY_APP"; - GarageDoorPushEvent[GarageDoorPushEvent["OPEN_DOOR_BY_APP"] = 2] = "OPEN_DOOR_BY_APP"; - GarageDoorPushEvent[GarageDoorPushEvent["CLOSED_DOOR_WITHOUT_APP"] = 3] = "CLOSED_DOOR_WITHOUT_APP"; - GarageDoorPushEvent[GarageDoorPushEvent["OPEN_DOOR_WITHOUT_APP"] = 4] = "OPEN_DOOR_WITHOUT_APP"; - GarageDoorPushEvent[GarageDoorPushEvent["TIMEOUT_DOOR_OPEN_WARNING"] = 5] = "TIMEOUT_DOOR_OPEN_WARNING"; - GarageDoorPushEvent[GarageDoorPushEvent["TIMEOUT_CLOSED_DOOR"] = 6] = "TIMEOUT_CLOSED_DOOR"; - GarageDoorPushEvent[GarageDoorPushEvent["TIMEOUT_DOOR_OPEN_WARNING_MINUTES"] = 7] = "TIMEOUT_DOOR_OPEN_WARNING_MINUTES"; - GarageDoorPushEvent[GarageDoorPushEvent["LOW_BATTERY"] = 8] = "LOW_BATTERY"; -})(GarageDoorPushEvent || (exports.GarageDoorPushEvent = GarageDoorPushEvent = {})); -var SmartSafeEvent; -(function (SmartSafeEvent) { - SmartSafeEvent[SmartSafeEvent["ALARM_911"] = 1946161152] = "ALARM_911"; - SmartSafeEvent[SmartSafeEvent["LOCK_STATUS"] = 1946161153] = "LOCK_STATUS"; - SmartSafeEvent[SmartSafeEvent["SHAKE_ALARM"] = 1946161154] = "SHAKE_ALARM"; - SmartSafeEvent[SmartSafeEvent["BATTERY_STATUS"] = 1946161155] = "BATTERY_STATUS"; - SmartSafeEvent[SmartSafeEvent["LONG_TIME_NOT_CLOSE"] = 1946161156] = "LONG_TIME_NOT_CLOSE"; - SmartSafeEvent[SmartSafeEvent["FORCE_FIGURE"] = 1946161157] = "FORCE_FIGURE"; - SmartSafeEvent[SmartSafeEvent["LOW_POWER"] = 1946161158] = "LOW_POWER"; - SmartSafeEvent[SmartSafeEvent["INPUT_ERR_MAX"] = 1946161159] = "INPUT_ERR_MAX"; - SmartSafeEvent[SmartSafeEvent["SHUTDOWN"] = 1946161160] = "SHUTDOWN"; -})(SmartSafeEvent || (exports.SmartSafeEvent = SmartSafeEvent = {})); -var HB3PairedDevicePushEvent; -(function (HB3PairedDevicePushEvent) { - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["MOTION_DETECTION"] = 3101] = "MOTION_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["FACE_DETECTION"] = 3102] = "FACE_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["PRESS_DOORBELL"] = 3103] = "PRESS_DOORBELL"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["CRYING_DETECTION"] = 3104] = "CRYING_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["SOUND_DETECTION"] = 3105] = "SOUND_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["PET_DETECTION"] = 3106] = "PET_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["VEHICLE_DETECTION"] = 3107] = "VEHICLE_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["DOG_DETECTION"] = 3108] = "DOG_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["DOG_LICK_DETECTION"] = 3109] = "DOG_LICK_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["DOG_POOP_DETECTION"] = 3110] = "DOG_POOP_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["IDENTITY_PERSON_DETECTION"] = 3111] = "IDENTITY_PERSON_DETECTION"; - HB3PairedDevicePushEvent[HB3PairedDevicePushEvent["STRANGER_PERSON_DETECTION"] = 3112] = "STRANGER_PERSON_DETECTION"; -})(HB3PairedDevicePushEvent || (exports.HB3PairedDevicePushEvent = HB3PairedDevicePushEvent = {})); -var HB3PairedDeviceMessageType; -(function (HB3PairedDeviceMessageType) { - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["SECURITY_EVT"] = 1] = "SECURITY_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["TFCARD_EVT"] = 2] = "TFCARD_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["DOOR_SENSOR_EVT"] = 3] = "DOOR_SENSOR_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["CAM_STATE_EVT"] = 4] = "CAM_STATE_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["GSENSOR_EVT"] = 5] = "GSENSOR_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BATTERY_LOW_EVT"] = 6] = "BATTERY_LOW_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BATTERY_HOT_EVT"] = 7] = "BATTERY_HOT_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["LIGHT_STATE_EVT"] = 8] = "LIGHT_STATE_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["ARMING_EVT"] = 9] = "ARMING_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["ALARM_EVT"] = 10] = "ALARM_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BATTERY_FULL_EVT"] = 11] = "BATTERY_FULL_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["REPEATER_RSSI_WEAK_EVT"] = 12] = "REPEATER_RSSI_WEAK_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["UPGRADE_STATUS"] = 13] = "UPGRADE_STATUS"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["MOTION_SENSOR_EVT"] = 14] = "MOTION_SENSOR_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BAT_DOORBELL_EVT"] = 15] = "BAT_DOORBELL_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["ALARM_DELAY_EVT"] = 16] = "ALARM_DELAY_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["HUB_BATT_POWERED_EVT"] = 17] = "HUB_BATT_POWERED_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["INDOOR_EVT"] = 18] = "INDOOR_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["SMARTLOCK_EVT"] = 19] = "SMARTLOCK_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["LOCK_EVT"] = 20] = "LOCK_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["BBM_SOCK_EVT"] = 21] = "BBM_SOCK_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["DOOR_STATUS_EVT"] = 22] = "DOOR_STATUS_EVT"; - HB3PairedDeviceMessageType[HB3PairedDeviceMessageType["HHD_EVT"] = 23] = "HHD_EVT"; -})(HB3PairedDeviceMessageType || (exports.HB3PairedDeviceMessageType = HB3PairedDeviceMessageType = {})); -var HB3HDDType; -(function (HB3HDDType) { - HB3HDDType[HB3HDDType["NODISK"] = 0] = "NODISK"; - HB3HDDType[HB3HDDType["READY"] = 1] = "READY"; - HB3HDDType[HB3HDDType["PROCESSING"] = 2] = "PROCESSING"; - HB3HDDType[HB3HDDType["NO_PARTED"] = 3] = "NO_PARTED"; - HB3HDDType[HB3HDDType["NO_ANKER_DISK"] = 4] = "NO_ANKER_DISK"; - HB3HDDType[HB3HDDType["NOT_FORMAT"] = 5] = "NOT_FORMAT"; - HB3HDDType[HB3HDDType["OTHER_USER_DISK"] = 6] = "OTHER_USER_DISK"; - HB3HDDType[HB3HDDType["BAD"] = 7] = "BAD"; - HB3HDDType[HB3HDDType["WAIT_NETWOR"] = 8] = "WAIT_NETWOR"; - HB3HDDType[HB3HDDType["PARTED_DONE"] = 9] = "PARTED_DONE"; - HB3HDDType[HB3HDDType["FULL"] = 32] = "FULL"; -})(HB3HDDType || (exports.HB3HDDType = HB3HDDType = {})); -var IndoorPushMessageType; -(function (IndoorPushMessageType) { - IndoorPushMessageType[IndoorPushMessageType["INDOOR"] = 18] = "INDOOR"; - IndoorPushMessageType[IndoorPushMessageType["TFCARD"] = 2] = "TFCARD"; -})(IndoorPushMessageType || (exports.IndoorPushMessageType = IndoorPushMessageType = {})); -var NotificationStyle; -(function (NotificationStyle) { - NotificationStyle[NotificationStyle["TEXT"] = 1] = "TEXT"; - NotificationStyle[NotificationStyle["THUMB"] = 2] = "THUMB"; - NotificationStyle[NotificationStyle["ALL"] = 3] = "ALL"; -})(NotificationStyle || (exports.NotificationStyle = NotificationStyle = {})); -var AlarmAction; -(function (AlarmAction) { - AlarmAction[AlarmAction["CANCEL_APP"] = 0] = "CANCEL_APP"; - AlarmAction[AlarmAction["CANCEL_NOLIGHT"] = 1] = "CANCEL_NOLIGHT"; -})(AlarmAction || (exports.AlarmAction = AlarmAction = {})); -var SmartDropPushEvent; -(function (SmartDropPushEvent) { - SmartDropPushEvent[SmartDropPushEvent["LOW_BATTERY"] = 6] = "LOW_BATTERY"; - SmartDropPushEvent[SmartDropPushEvent["OVERHEATING_WARNING"] = 7] = "OVERHEATING_WARNING"; - SmartDropPushEvent[SmartDropPushEvent["TAMPERED_WARNING"] = 10] = "TAMPERED_WARNING"; - SmartDropPushEvent[SmartDropPushEvent["BATTERY_FULLY_CHARGED"] = 11] = "BATTERY_FULLY_CHARGED"; - SmartDropPushEvent[SmartDropPushEvent["PERSON_DETECTED"] = 3102] = "PERSON_DETECTED"; -})(SmartDropPushEvent || (exports.SmartDropPushEvent = SmartDropPushEvent = {})); -var SmartDropOpen; -(function (SmartDropOpen) { - SmartDropOpen[SmartDropOpen["OPEN"] = 1] = "OPEN"; - SmartDropOpen[SmartDropOpen["CLOSED"] = 2] = "CLOSED"; - SmartDropOpen[SmartDropOpen["LID_STUCK"] = 3] = "LID_STUCK"; - SmartDropOpen[SmartDropOpen["PIN_INCORRECT"] = 4] = "PIN_INCORRECT"; - SmartDropOpen[SmartDropOpen["LEFT_OPENED"] = 10] = "LEFT_OPENED"; - SmartDropOpen[SmartDropOpen["LOW_TEMPERATURE_WARNING"] = 11] = "LOW_TEMPERATURE_WARNING"; -})(SmartDropOpen || (exports.SmartDropOpen = SmartDropOpen = {})); -var SmartDropOpenedBy; -(function (SmartDropOpenedBy) { - SmartDropOpenedBy[SmartDropOpenedBy["APP"] = 1] = "APP"; - SmartDropOpenedBy[SmartDropOpenedBy["PIN"] = 2] = "PIN"; - SmartDropOpenedBy[SmartDropOpenedBy["WITHOUT_KEY"] = 3] = "WITHOUT_KEY"; - SmartDropOpenedBy[SmartDropOpenedBy["EMERGENCY_RELEASE_BUTTON"] = 4] = "EMERGENCY_RELEASE_BUTTON"; - SmartDropOpenedBy[SmartDropOpenedBy["KEY"] = 5] = "KEY"; -})(SmartDropOpenedBy || (exports.SmartDropOpenedBy = SmartDropOpenedBy = {})); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/push/types.js.map b/build/push/types.js.map deleted file mode 100644 index b6903a23..00000000 --- a/build/push/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/push/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/push/utils.d.ts b/build/push/utils.d.ts deleted file mode 100644 index 1d950b65..00000000 --- a/build/push/utils.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { CheckinResponse } from "./models"; -export declare const VALID_FID_PATTERN: RegExp; -export declare function generateFid(): string; -export declare const buildCheckinRequest: () => Promise; -export declare const parseCheckinResponse: (data: Buffer) => Promise; -export declare const sleep: (ms: number) => Promise; -export declare function convertTimestampMs(timestamp: number): number; diff --git a/build/push/utils.js b/build/push/utils.js deleted file mode 100644 index f28585ea..00000000 --- a/build/push/utils.js +++ /dev/null @@ -1,106 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.sleep = exports.parseCheckinResponse = exports.buildCheckinRequest = exports.VALID_FID_PATTERN = void 0; -exports.generateFid = generateFid; -exports.convertTimestampMs = convertTimestampMs; -const crypto_1 = require("crypto"); -const path = __importStar(require("path")); -const protobufjs_1 = require("protobufjs"); -const error_1 = require("./error"); -const logging_1 = require("../logging"); -exports.VALID_FID_PATTERN = /^[cdef][\w-]{21}$/; -function generateFid() { - const fidByteArray = new Uint8Array(17); - fidByteArray.set((0, crypto_1.randomBytes)(fidByteArray.length)); - // Replace the first 4 random bits with the constant FID header of 0b0111. - fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000); - const b64 = Buffer.from(fidByteArray).toString("base64"); - const b64_safe = b64.replace(/\+/g, "-").replace(/\//g, "_"); - const fid = b64_safe.substr(0, 22); - if (exports.VALID_FID_PATTERN.test(fid)) { - logging_1.rootPushLogger.info('generateFid', fid); - return fid; - } - throw new error_1.FidGenerationError("Generated invalid FID", { context: { fid: fid } }); -} -const buildCheckinRequest = async () => { - const root = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/checkin.proto")); - const CheckinRequestModel = root.lookupType("CheckinRequest"); - const payload = { - imei: "109269993813709", - androidId: 0, - checkin: { - build: { - fingerprint: "google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys", - hardware: "flo", - brand: "google", - radio: "FLO-04.04", - clientId: "android-google", - }, - lastCheckinMs: 0, - }, - locale: "en", - loggingId: 1234567890, - macAddress: ["A1B2C3D4E5F6"], - meid: "109269993813709", - accountCookie: [], - timeZone: "GMT", - version: 3, - otaCert: ["71Q6Rn2DDZl1zPDVaaeEHItd+Yg="], - esn: "ABCDEF01", - macAddressType: ["wifi"], - fragment: 0, - userSerialNumber: 0, - }; - const message = CheckinRequestModel.create(payload); - return CheckinRequestModel.encode(message).finish(); -}; -exports.buildCheckinRequest = buildCheckinRequest; -const parseCheckinResponse = async (data) => { - const root = await (0, protobufjs_1.load)(path.join(__dirname, "./proto/checkin.proto")); - const CheckinResponseModel = root.lookupType("CheckinResponse"); - const message = CheckinResponseModel.decode(data); - const object = CheckinResponseModel.toObject(message, { - longs: String, - enums: String, - bytes: String, - }); - return object; -}; -exports.parseCheckinResponse = parseCheckinResponse; -const sleep = async (ms) => { - return new Promise((resolve) => { - setTimeout(resolve, ms); - }); -}; -exports.sleep = sleep; -function convertTimestampMs(timestamp) { - if (timestamp.toString().length === 10) { - return timestamp * 1000; - } - return timestamp; -} -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/push/utils.js.map b/build/push/utils.js.map deleted file mode 100644 index 1504e7cb..00000000 --- a/build/push/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/push/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/utils.d.ts b/build/utils.d.ts deleted file mode 100644 index 6439d954..00000000 --- a/build/utils.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Category } from "typescript-logging-category-style"; -import EventEmitter from "events"; -import { ErrorObject, EufySecurityPersistentData } from "./interfaces"; -import { BaseError } from "./error"; -import { PropertyMetadataAny } from "./http/interfaces"; -export declare const getError: (error: BaseError) => ErrorObject; -export declare const removeLastChar: (text: string, char: string) => string; -export declare const generateUDID: () => string; -export declare const generateSerialnumber: (length: number) => string; -export declare const md5: (contents: string) => string; -export declare const handleUpdate: (config: EufySecurityPersistentData, oldVersion: number) => EufySecurityPersistentData; -export declare const isEmpty: (str: string | null | undefined) => boolean; -export declare const parseValue: (metadata: PropertyMetadataAny, value: unknown) => unknown; -export declare const parseJSON: (data: string, log: Category) => any; -export declare const validValue: (metadata: PropertyMetadataAny, value: unknown) => void; -export declare const mergeDeep: (target: Record | undefined, source: Record) => Record; -export declare function waitForEvent(emitter: EventEmitter, event: string): Promise; -export declare function getShortUrl(url: URL, prefixUrl?: string): string; -export declare function isValidUrl(value: string, protocols?: Array): boolean; diff --git a/build/utils.js b/build/utils.js deleted file mode 100644 index c4a421e1..00000000 --- a/build/utils.js +++ /dev/null @@ -1,262 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mergeDeep = exports.validValue = exports.parseJSON = exports.parseValue = exports.isEmpty = exports.handleUpdate = exports.md5 = exports.generateSerialnumber = exports.generateUDID = exports.removeLastChar = exports.getError = void 0; -exports.waitForEvent = waitForEvent; -exports.getShortUrl = getShortUrl; -exports.isValidUrl = isValidUrl; -const crypto = __importStar(require("crypto")); -const error_1 = require("./error"); -const getError = function (error) { - return { - cause: error.cause, - message: `${error.name}: ${error.message}`, - context: error.context, - stacktrace: error.stack - }; -}; -exports.getError = getError; -const removeLastChar = function (text, char) { - const strArr = [...text]; - strArr.splice(text.lastIndexOf(char), 1); - return strArr.join(""); -}; -exports.removeLastChar = removeLastChar; -const generateUDID = function () { - return crypto.randomBytes(8).readBigUInt64BE().toString(16); -}; -exports.generateUDID = generateUDID; -const generateSerialnumber = function (length) { - return crypto.randomBytes(length / 2).toString("hex"); -}; -exports.generateSerialnumber = generateSerialnumber; -const md5 = (contents) => crypto.createHash("md5").update(contents).digest("hex"); -exports.md5 = md5; -// eslint-disable-next-line @typescript-eslint/no-unused-vars -const handleUpdate = function (config, oldVersion) { - if (oldVersion <= 1.24) { - config.cloud_token = ""; - config.cloud_token_expiration = 0; - } - return config; -}; -exports.handleUpdate = handleUpdate; -const isEmpty = function (str) { - if (str) { - if (str.length > 0) - return false; - return true; - } - return true; -}; -exports.isEmpty = isEmpty; -const parseValue = function (metadata, value) { - if (metadata.type === "boolean") { - if (value !== undefined) { - switch (typeof value) { - case "boolean": - break; - case "number": - if (value === 0 || value === 1) { - value = value === 1 ? true : false; - } - else { - throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - break; - case "string": - if (value.toLowerCase() === "true" || value.toLowerCase() === "false") { - value = value.toLowerCase() === "true" ? true : false; - } - else { - throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - break; - default: - throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else { - throw new error_1.InvalidPropertyValueError("Property expects a boolean value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else if (metadata.type === "number") { - if (value !== undefined) { - switch (typeof value) { - case "number": - break; - case "string": - try { - value = Number.parseInt(value); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - throw new error_1.InvalidPropertyValueError("Property expects a number value", { cause: error, context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - break; - default: - throw new error_1.InvalidPropertyValueError("Property expects a number value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else { - throw new error_1.InvalidPropertyValueError("Property expects a number value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else if (metadata.type === "string") { - if (value !== undefined) { - switch (typeof value) { - case "number": - value = value.toString(); - break; - case "string": - break; - case "boolean": - value = value === true ? "true" : "false"; - break; - default: - throw new error_1.InvalidPropertyValueError("Property expects a string value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else { - throw new error_1.InvalidPropertyValueError("Property expects a string value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else if (metadata.type === "object") { - if (value === undefined || value === null) { - throw new error_1.InvalidPropertyValueError("Property expects an object value", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else { - throw new error_1.InvalidPropertyValueError(`Property expects a ${metadata.type} value`, { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - return value; -}; -exports.parseValue = parseValue; -const parseJSON = function (data, log) { - try { - return JSON.parse(data.replace(/[\0]+$/g, "")); - } - catch (err) { - const error = (0, error_1.ensureError)(err); - log.debug("JSON parse error", { error: (0, exports.getError)(error), data: data }); - } - return undefined; -}; -exports.parseJSON = parseJSON; -const validValue = function (metadata, value) { - if (metadata.type === "number") { - const numberMetadata = metadata; - const numericValue = Number(value); - if ((numberMetadata.min !== undefined && numberMetadata.min > numericValue) || (numberMetadata.max !== undefined && numberMetadata.max < numericValue) || (numberMetadata.states !== undefined && numberMetadata.states[numericValue] === undefined) || Number.isNaN(numericValue)) { - throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else if (metadata.type === "string") { - const stringMetadata = metadata; - const stringValue = String(value); - if ((stringMetadata.format !== undefined && stringValue.match(stringMetadata.format) === null) || (stringMetadata.minLength !== undefined && stringMetadata.minLength > stringValue.length) || (stringMetadata.maxLength !== undefined && stringMetadata.maxLength < stringValue.length)) { - throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else if (metadata.type === "boolean") { - const str = String(value).toLowerCase().trim(); - if (str !== "true" && str !== "false" && str !== "1" && str !== "0") { - throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else if (metadata.type === "object") { - const metadataObject = metadata; - if (value !== undefined && value !== null && metadataObject.isValidObject !== undefined) { - if (!metadataObject.isValidObject(value)) { - throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } - else { - throw new error_1.InvalidPropertyValueError("Invalid value for this property according to metadata", { context: { propertyName: metadata.name, propertyValue: value, metadata: metadata } }); - } - } -}; -exports.validValue = validValue; -const mergeDeep = function (target, source) { - target = target || {}; - for (const [key, value] of Object.entries(source)) { - if (!(key in target)) { - target[key] = value; - } - else { - if (typeof value === "object") { - // merge objects - target[key] = (0, exports.mergeDeep)(target[key], value); - } - else if (typeof target[key] === "undefined") { - // don't override single keys - target[key] = value; - } - } - } - return target; -}; -exports.mergeDeep = mergeDeep; -function waitForEvent(emitter, event) { - return new Promise((resolve, reject) => { - const success = (val) => { - // eslint-disable-next-line @typescript-eslint/no-use-before-define - emitter.off("error", fail); - resolve(val); - }; - const fail = (err) => { - emitter.off(event, success); - reject(err); - }; - emitter.once(event, success); - emitter.once("error", fail); - }); -} -function getShortUrl(url, prefixUrl) { - if (url.password) { - url = new URL(url.toString()); // prevent original url mutation - url.password = "[redacted]"; - } - let shortUrl = url.toString(); - if (prefixUrl && shortUrl.startsWith(prefixUrl)) { - shortUrl = shortUrl.slice(prefixUrl.length); - } - return shortUrl; -} -function isValidUrl(value, protocols = ["http", "https"]) { - try { - const url = new URL(value); - return protocols - ? url.protocol - ? protocols.map(protocol => `${protocol.toLowerCase()}:`).includes(url.protocol) - : false - : true; - } - catch (err) { - return false; - } -} -; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/build/utils.js.map b/build/utils.js.map deleted file mode 100644 index 9d473aca..00000000 --- a/build/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 1ec93615ac0aa0dcb15e18f0ca03ef73cd2c80d9 Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 20:40:38 +0000 Subject: [PATCH 06/13] Generalize camera test scripts and fix build ignore - Make P2P and property test scripts universal for all device types. - Update documentation. - Remove build directory from git index. --- package.json | 4 ++ scripts/README.md | 34 +++++++++ scripts/test_camera_p2p_flow.ts | 111 ++++++++++++++++++++++++++++++ scripts/test_camera_properties.ts | 61 ++++++++++++++++ 4 files changed, 210 insertions(+) create mode 100644 scripts/test_camera_p2p_flow.ts create mode 100644 scripts/test_camera_properties.ts diff --git a/package.json b/package.json index b8cae4ff..f8b63dd5 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,10 @@ }, "homepage": "https://github.com/bropat/eufy-security-client", "main": "build/index.js", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "scripts": { "build:ts": "tsc -p tsconfig.build.json && npm run copy-proto-build", "copy-proto-build": "npx copyfiles -u 1 \"src/**/*.proto\" \"src/**/*.crt\" build", diff --git a/scripts/README.md b/scripts/README.md index 44a55bdd..b8797c58 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -30,6 +30,40 @@ npx ts-node --transpile-only scripts/verify-devices.ts [count npx ts-node --transpile-only scripts/verify-devices.ts user@email.com password123 GB ``` +## Universal Camera Properties Test + +Checks if a specific device type has its Properties and Commands correctly defined in the `http/types.ts` configuration maps. Also checks classification (isCamera, etc.). + +**Usage:** +```bash +npx ts-node --transpile-only scripts/test_camera_properties.ts +``` + +**Example:** +```bash +# Test EufyCam S4 (Type 89) +npx ts-node --transpile-only scripts/test_camera_properties.ts 89 +``` + +## Universal Camera P2P Flow Test + +Simulates an incoming P2P parameter update for a specific device to verify that `ParameterHelper` correctly parses the raw value. + +**Usage:** +```bash +npx ts-node --transpile-only scripts/test_camera_p2p_flow.ts [DeviceTypeNumber] [DeviceSN] [StationSN] +``` + +**Arguments:** +- `DeviceTypeNumber`: Integer (default: 89 for S4) +- `DeviceSN`: String (default: "T8172DEMO") +- `StationSN`: String (default: "T8030DEMO") + +**Example:** +```bash +npx ts-node --transpile-only scripts/test_camera_p2p_flow.ts 89 T8172TEST1 T8030TEST1 +``` + ## Notes - **Country**: Use 2-letter ISO country code (e.g., US, GB, DE, FR). Should match your Eufy app setting. diff --git a/scripts/test_camera_p2p_flow.ts b/scripts/test_camera_p2p_flow.ts new file mode 100644 index 00000000..607c1f3c --- /dev/null +++ b/scripts/test_camera_p2p_flow.ts @@ -0,0 +1,111 @@ +import { DeviceType } from "../src/http/types"; +import { CommandType } from "../src/p2p/types"; +import { ParameterHelper } from "../src/http/parameter"; +import { EventEmitter } from "events"; + +// --- Argument Parsing --- +const args = process.argv.slice(2); +const deviceTypeArg = args[0] ? parseInt(args[0]) : DeviceType.EUFYCAM_S4; // Default to S4 (89) +const deviceSnArg = args[1] || "T8172DEMO"; +const stationSnArg = args[2] || "T8030DEMO"; + +console.log(`Running P2P Flow Test with:`); +console.log(` Device Type: ${deviceTypeArg}`); +console.log(` Device SN: ${deviceSnArg}`); +console.log(` Station SN: ${stationSnArg}`); +console.log("---------------------------------------------------"); + +interface Logger { + trace(message: string, ...args: any[]): void; + debug(message: string, ...args: any[]): void; + info(message: string, ...args: any[]): void; + warn(message: string, ...args: any[]): void; + error(message: string, ...args: any[]): void; +} + +// Mock Logger +const mockLogger = { + debug: () => { }, + info: () => { }, + warn: () => { }, + error: console.error, + trace: () => { }, +} as unknown as Logger; + +// Mock Station +class MockStation extends EventEmitter { + public rawStation: any; + + constructor() { + super(); + this.rawStation = { + station_sn: stationSnArg, + devices: [ + { + device_sn: deviceSnArg, + device_name: "Test Camera", + device_channel: 1, + device_type: deviceTypeArg + } + ] + }; + } + + public getSerial() { return stationSnArg; } + public isIntegratedDevice() { return false; } // Assuming non-integrated for general P2P flow + public getDeviceType() { return DeviceType.HB3; } // Defaulting to HB3 as host + + public _getDeviceSerial(channel: number) { + if (channel === 1) return deviceSnArg; + return ""; + } + + public _handleCameraInfoParameters(devices: any, channel: number, type: number, value: string) { + const device_sn = this._getDeviceSerial(channel); + if (device_sn !== "") { + if (!devices[device_sn]) { + devices[device_sn] = {}; + } + + const parsedValue = ParameterHelper.readValue(device_sn, type, value, mockLogger as any); + console.log(`readValue(sn=${device_sn}, type=${type}, value=${value}) = ${parsedValue}`); + + if (parsedValue !== undefined) { + devices[device_sn][type] = { + value: parsedValue, + source: "p2p" + }; + } + } + } +} + +async function runTest() { + console.log("Testing P2P Parameter Handling..."); + + // Test Case: Receiving Battery Level (Command 1101) + // 1101 is CMD_GET_BATTERY in CommandType (src/p2p/types.ts). + const CMD_BATTERY = CommandType.CMD_GET_BATTERY; + + // We can also test CMD_MOTION_SENSOR_PIR_SENSITIVITY (1204) if applicable, + // but sticking to battery as a universal baseline. + + const station = new MockStation(); + const devices: { [key: string]: any } = {}; + + console.log(`\nSimulating incoming P2P command ${CMD_BATTERY} (CMD_GET_BATTERY) with value "90"...`); + + // Simulate typical P2P values + // Battery = 90 (string "90") + station._handleCameraInfoParameters(devices, 1, CMD_BATTERY, "90"); + + if (devices[deviceSnArg] && devices[deviceSnArg][CMD_BATTERY]) { + console.log(`SUCCESS: Battery level parsed: ${devices[deviceSnArg][CMD_BATTERY].value}`); + } else { + console.error("FAILURE: Battery level NOT parsed"); + } + + console.log("\nDone."); +} + +runTest(); diff --git a/scripts/test_camera_properties.ts b/scripts/test_camera_properties.ts new file mode 100644 index 00000000..9cdea13d --- /dev/null +++ b/scripts/test_camera_properties.ts @@ -0,0 +1,61 @@ +import { DeviceType, DeviceProperties, StationProperties, StationCommands, DeviceCommands } from "../src/http/types"; +import { Device as DeviceClass } from "../src/http/device"; + +// --- Argument Parsing --- +const args = process.argv.slice(2); +// Default to S4 (89) if no arg provided +const typeArgRaw = args[0]; +const deviceType = typeArgRaw ? parseInt(typeArgRaw) : DeviceType.EUFYCAM_S4; + +console.log(`Testing Configuration for Device Type: ${deviceType}`); +console.log("---------------------------------------------------"); + +// Check if it's a known DeviceType name +const typeName = Object.keys(DeviceType).find(key => DeviceType[key as keyof typeof DeviceType] === deviceType); +if (typeName) { + console.log(`Device Type Name: ${typeName}`); +} else { + console.warn(`WARNING: Unknown DeviceType enum value: ${deviceType}`); +} + +// Check Device Properties +const deviceProps = DeviceProperties[deviceType]; +if (deviceProps) { + console.log(`✅ DeviceProperties found. Count: ${Object.keys(deviceProps).length}`); +} else { + console.error(`❌ DeviceProperties is UNDEFINED!`); +} + +// Check Station Properties +const stationProps = StationProperties[deviceType]; +if (stationProps) { + console.log(`✅ StationProperties found. Count: ${Object.keys(stationProps).length}`); +} else { + console.error(`❌ StationProperties is UNDEFINED!`); +} + +// Check Device Commands +const deviceCmds = DeviceCommands[deviceType]; +if (deviceCmds) { + console.log(`✅ DeviceCommands found. Count: ${deviceCmds.length}`); +} else { + console.error(`❌ DeviceCommands is UNDEFINED!`); +} + +// Check Station Commands +const stationCmds = StationCommands[deviceType]; +if (stationCmds) { + console.log(`✅ StationCommands found. Count: ${stationCmds.length}`); +} else { + console.error(`❌ StationCommands is UNDEFINED!`); +} + +// Check Device Class identification +console.log("\n--- Device Class Classifications ---"); +console.log(`isCamera(${deviceType}): ${DeviceClass.isCamera(deviceType)}`); +console.log(`isOutdoorPanAndTiltCamera(${deviceType}): ${DeviceClass.isOutdoorPanAndTiltCamera(deviceType)}`); +console.log(`isSoloCameras(${deviceType}): ${DeviceClass.isSoloCameras(deviceType)}`); +console.log(`isIntegratedDeviceBySn("..."): (Depends on SN format check, skipping specific SN check)`); +console.log(`hasBattery(${deviceType}): ${DeviceClass.hasBattery(deviceType)}`); + +console.log("\nTest Complete."); From 80b480a8efd637462b44092b736ee4005992c811 Mon Sep 17 00:00:00 2001 From: melsaid Date: Sun, 7 Dec 2025 22:35:07 +0000 Subject: [PATCH 07/13] fix(device): exclude HB3 device type from push notifications processing The changes prevent processing push notifications for HB3 device type to avoid unnecessary operations and potential errors. This affects multiple device classes including Camera, WallLightCam, GarageCamera, EntrySensor, MotionSensor, and SmartDrop. (NOT Tested on all - only checked on Camera but logic says that it is) --- src/http/device.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/http/device.ts b/src/http/device.ts index 6f20e74a..53f65e0c 100644 --- a/src/http/device.ts +++ b/src/http/device.ts @@ -2106,7 +2106,7 @@ export class Camera extends Device { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { if (message.event_type === CusPushEvent.SECURITY && message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -2933,7 +2933,7 @@ export class WallLightCam extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -3057,7 +3057,7 @@ export class GarageCamera extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -3138,7 +3138,7 @@ export class EntrySensor extends Sensor { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { if (message.event_type === CusPushEvent.DOOR_SENSOR && message.device_sn === this.getSerial()) { try { if (message.sensor_open !== undefined) { @@ -3217,7 +3217,7 @@ export class MotionSensor extends Sensor { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { if (message.event_type === CusPushEvent.MOTION_SENSOR_PIR && message.device_sn === this.getSerial()) { try { this.updateProperty(PropertyName.DeviceMotionDetected, true); @@ -4414,7 +4414,7 @@ export class SmartDrop extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined) { + if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); From 7ae4125cc72932fca792fe840065a50609e07948 Mon Sep 17 00:00:00 2001 From: MELSAID888 <73492658+MELSAID888@users.noreply.github.com> Date: Wed, 10 Dec 2025 17:23:28 +0000 Subject: [PATCH 08/13] Fix: Add missing StationTimeZone property to S4 camera configuration and enhance script authentication CHANGES: - Add StationTimeZone property to OUTDOOR_PT_CAMERA StationProperties (fixes S4 initialization) * S4 (eufyCam S4, type 89) now properly inherits timezone support for both standalone and hub-based operation * Timezone property was missing despite being present in other similar camera configurations - Enhance authentication flow in discovery and verification scripts * Add interactive readline prompts for captcha and 2FA (two-factor authentication) * Captcha images are now saved to disk as PNG files for manual viewing * 2FA verification code entry supports retry on failure * Both scripts now handle multi-step authentication interactively - Update scripts/README.md documentation * Document captcha handling (image saved to file in current directory) * Document 2FA flow and retry mechanism * Remove personal credentials from examples * Clarify what each script discovers and verifies FILES MODIFIED: - src/http/types.ts: Added [PropertyName.StationTimeZone] to OUTDOOR_PT_CAMERA.StationProperties - scripts/discover-device.ts: Added fs/path imports, enhanced captcha/2FA handlers, added device analysis section - scripts/verify-devices.ts: Enhanced 2FA handler with retry loop - scripts/README.md: Updated documentation for auth flow and captcha/2FA handling IMPACT: - S4 camera can now properly initialize and sync settings with parent station (HB3) or operate standalone - Users with 2FA enabled can now use discovery/verification scripts without API failures - Captcha handling is transparent and user-friendly in headless environments TESTING: - Verified S4 device (type 89) appears with timezone property (1249) in real account data - Confirmed S4 inherits StationGuardMode and other required properties from OUTDOOR_PT_CAMERA - Tested interactive authentication with both captcha and 2FA prompts --- package-lock.json | 60 +++++----------------------- package.json | 4 +- scripts/README.md | 25 +++++++++++- scripts/discover-device.ts | 81 +++++++++++++++++++++++++++++++++++++- scripts/verify-devices.ts | 40 +++++++++++++++++++ src/http/device.ts | 13 +++--- src/http/types.ts | 1 + 7 files changed, 160 insertions(+), 64 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68342c57..6d64ce90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "eufy-security-client", - "version": "3.2.0", + "version": "3.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "eufy-security-client", - "version": "3.2.0", + "version": "3.5.0", "license": "MIT", "dependencies": { "@cospired/i18n-iso-languages": "^4.2.0", "crypto-js": "^4.2.0", - "date-and-time": "^4.1.1", + "date-and-time": "^3.6.0", "fs-extra": "^11.2.0", "got": "^14.4.2", "i18n-iso-countries": "^7.12.0", @@ -30,7 +30,6 @@ }, "devDependencies": { "@types/crypto-js": "^4.2.2", - "@types/fs-extra": "^11.0.4", "@types/node": "^20.16.10", "@types/node-rsa": "^1.1.4", "@types/node-schedule": "^2.1.7", @@ -284,31 +283,12 @@ "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", "dev": true }, - "node_modules/@types/fs-extra": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", - "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", - "dev": true, - "dependencies": { - "@types/jsonfile": "*", - "@types/node": "*" - } - }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "license": "MIT" }, - "node_modules/@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "20.16.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", @@ -932,12 +912,9 @@ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "node_modules/date-and-time": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-4.1.1.tgz", - "integrity": "sha512-IqEzQvjaRO6KL6wxHaBsVZhzym+Kuk3VWmgydIjzbJD0Zwwa1YpvSZ/2rYR5qmAx1aDM8dMAxpQ9Wm4xQoUv3g==", - "engines": { - "node": ">=18" - } + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-3.6.0.tgz", + "integrity": "sha512-V99gLaMqNQxPCObBumb31Bfy3OByXnpqUM0yHPi/aBQE61g42A2rGk6Z2CDnpLrWsOFLQwOgl4Vgshw6D44ebw==" }, "node_modules/debug": { "version": "4.3.4", @@ -3267,30 +3244,11 @@ "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", "dev": true }, - "@types/fs-extra": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", - "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", - "dev": true, - "requires": { - "@types/jsonfile": "*", - "@types/node": "*" - } - }, "@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" }, - "@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/node": { "version": "20.16.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", @@ -3694,9 +3652,9 @@ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "date-and-time": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-4.1.1.tgz", - "integrity": "sha512-IqEzQvjaRO6KL6wxHaBsVZhzym+Kuk3VWmgydIjzbJD0Zwwa1YpvSZ/2rYR5qmAx1aDM8dMAxpQ9Wm4xQoUv3g==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-3.6.0.tgz", + "integrity": "sha512-V99gLaMqNQxPCObBumb31Bfy3OByXnpqUM0yHPi/aBQE61g42A2rGk6Z2CDnpLrWsOFLQwOgl4Vgshw6D44ebw==" }, "debug": { "version": "4.3.4", diff --git a/package.json b/package.json index 6e22373c..49c51be9 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "dependencies": { "@cospired/i18n-iso-languages": "^4.2.0", "crypto-js": "^4.2.0", - "date-and-time": "^4.1.1", + "date-and-time": "^3.6.0", "fs-extra": "^11.2.0", "got": "^14.4.2", "i18n-iso-countries": "^7.12.0", @@ -79,4 +79,4 @@ "url": "https://github.com/bropat/eufy-security-client/issues" }, "readmeFilename": "README.md" -} \ No newline at end of file +} diff --git a/scripts/README.md b/scripts/README.md index b8797c58..1b8e3a8f 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -13,9 +13,20 @@ npx ts-node --transpile-only scripts/discover-device.ts [coun **Example:** ```bash -npx ts-node --transpile-only scripts/discover-device.ts user@email.com password123 US +npx ts-node --transpile-only scripts/discover-device.ts your.email@example.com yourpassword US ``` +**Authentication:** +- The script will connect to your Eufy account using the provided credentials. +- If a **Captcha** is required, the image will be saved to a file in your current directory (named `captcha_.png`). You can open this file to view the captcha image and enter the code when prompted. +- If **2FA (Two-Factor Authentication)** is enabled, you will be prompted to enter the verification code sent to your email or SMS. The script will retry if an incorrect code is entered. + +**Output:** +- Lists all stations (hubs) and their configurations +- Lists all devices with their types, models, serials, and parameters +- Includes a device property analysis showing which properties are present/missing +- Helpful for debugging device configuration and parameter issues + ## Device Verification Script Verifies that all devices on your account are correctly recognized by the system's device classification functions (isCamera, hasBattery, isPanAndTiltCamera, etc.). @@ -27,9 +38,19 @@ npx ts-node --transpile-only scripts/verify-devices.ts [count **Example:** ```bash -npx ts-node --transpile-only scripts/verify-devices.ts user@email.com password123 GB +npx ts-node --transpile-only scripts/verify-devices.ts your.email@example.com yourpassword GB ``` +**Authentication:** +- Same as Device Discovery Script: handles Captcha and 2FA prompts interactively +- Saves captcha images to disk for manual viewing if needed +- Retries 2FA code entry until successful + +**Output:** +- Classifies each device and shows test results (isCamera, hasBattery, isPanAndTilt, etc.) +- Highlights any misclassifications that need fixing +- Useful for ensuring device type configuration is correct + ## Universal Camera Properties Test Checks if a specific device type has its Properties and Commands correctly defined in the `http/types.ts` configuration maps. Also checks classification (isCamera, etc.). diff --git a/scripts/discover-device.ts b/scripts/discover-device.ts index 1133d1e1..3886a7dd 100644 --- a/scripts/discover-device.ts +++ b/scripts/discover-device.ts @@ -16,6 +16,9 @@ declare const process: NodeJS.Process; import { HTTPApi } from "../src/http/api"; import { DeviceListResponse, StationListResponse } from "../src/http/models"; +import readline from "readline"; +import fs from "fs"; +import path from "path"; async function main() { const args = process.argv.slice(2); @@ -39,9 +42,58 @@ async function main() { // Initialize the API const api = await HTTPApi.initialize(country, username, password); - // Login to the API (required before querying data) + // Interactive handling for captcha and 2FA using API events (no external changes) + const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); + const question = (q: string) => new Promise((res) => rl.question(q, (ans) => res(ans.trim()))); + + api.on("captcha request", async (captchaId: string, item: string) => { + console.log("\nAPI requires captcha verification."); + // item is typically a base64-encoded image or URL + if (item.startsWith("data:image")) { + // Base64 image data + const base64Data = item.split(",")[1]; + const buffer = Buffer.from(base64Data, "base64"); + const captchaPath = path.join(process.cwd(), `captcha_${captchaId}.png`); + fs.writeFileSync(captchaPath, buffer); + console.log(`Captcha image saved to: ${captchaPath}`); + } else if (item.startsWith("http")) { + // URL + console.log(`Captcha URL: ${item}`); + } else { + // Plain text or other format + console.log(`Captcha item: ${item}`); + } + const code = await question("Enter captcha code: "); + console.log("Submitting captcha and re-attempting login..."); + await api.login({ captcha: { captchaId: captchaId, captchaCode: code }, force: false }); + }); + + api.on("tfa request", async () => { + console.log("\nAPI requested 2FA verification (email/SMS)."); + let verified = false; + while (!verified) { + const code = await question("Enter verification code: "); + console.log("Submitting 2FA code..."); + try { + await api.login({ verifyCode: code, force: false }); + console.log("2FA verification successful!"); + verified = true; + } catch (err) { + console.error("2FA verification failed. Please check the code and try again."); + } + } + }); + + // Wait for the API to confirm connection (handles interactive flows) + const waitForConnect = new Promise((resolve, reject) => { + api.once("connect", () => resolve()); + api.once("connection error", (err: Error) => reject(err)); + }); + console.log("Logging in..."); await api.login(); + await waitForConnect; + rl.close(); console.log("✓ Connected successfully!\n"); @@ -127,6 +179,33 @@ async function main() { console.log(""); } + console.log("\n=== DEVICE PROPERTY ANALYSIS ===\n"); + + // Check for S4 device (type 89) and verify it has timezone + guard mode properties + const s4Device = Object.values(devices).find(d => d.device_type === 89); + if (s4Device) { + console.log("✓ S4 Device Found (Type 89):"); + console.log(` Model: ${s4Device.device_model}`); + console.log(` Serial: ${s4Device.device_sn}`); + console.log(` Name: ${s4Device.device_name}`); + console.log(` Station: ${s4Device.station_sn}`); + + // Check for timezone param (1249) + const tzParam = s4Device.params?.find(p => p.param_type === 1249); + console.log(` Timezone Property (1249): ${tzParam ? '✓ PRESENT - ' + tzParam.param_value : '✗ MISSING'}`); + + // Check for guard mode param (1224) + const gmParam = s4Device.params?.find(p => p.param_type === 1224); + console.log(` Guard Mode Property (1224): ${gmParam ? '✓ PRESENT - ' + gmParam.param_value : '✗ MISSING'}`); + + console.log(`\n All params for S4 (${s4Device.params?.length || 0} total):`); + s4Device.params?.forEach(p => { + console.log(` - Type ${p.param_type}: ${p.param_value}`); + }); + } else { + console.log("✗ S4 Device (Type 89) NOT FOUND in your account"); + } + console.log("\n=== SUMMARY ===\n"); console.log(`Total Stations: ${Object.keys(hubs).length}`); console.log(`Total Devices: ${Object.keys(devices).length}`); diff --git a/scripts/verify-devices.ts b/scripts/verify-devices.ts index d69d25f3..f2b1f33e 100644 --- a/scripts/verify-devices.ts +++ b/scripts/verify-devices.ts @@ -14,6 +14,7 @@ declare const process: NodeJS.Process; import { HTTPApi } from "../src/http/api"; import { Device, Camera } from "../src/http/device"; import { DeviceType } from "../src/http/types"; +import readline from "readline"; interface TestResult { device: string; @@ -75,7 +76,46 @@ async function main() { // Initialize and login console.log("Connecting to Eufy API..."); const api = await HTTPApi.initialize(country, username, password); + + // Interactive handling for captcha and 2FA using API events (no external changes) + const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); + const question = (q: string) => new Promise((res) => rl.question(q, (ans) => res(ans.trim()))); + + api.on("captcha request", async (captchaId: string, item: string) => { + console.log("\nAPI requires captcha verification."); + console.log("Captcha item:", item); + const code = await question("Enter captcha code: "); + console.log("Submitting captcha and re-attempting login..."); + await api.login({ captcha: { captchaId: captchaId, captchaCode: code }, force: false }); + }); + + api.on("tfa request", async () => { + console.log("\nAPI requested 2FA verification (email/SMS)."); + let verified = false; + while (!verified) { + const code = await question("Enter verification code: "); + console.log("Submitting 2FA code..."); + try { + await api.login({ verifyCode: code, force: false }); + console.log("2FA verification successful!"); + verified = true; + } catch (err) { + console.error("2FA verification failed. Please check the code and try again."); + } + } + }); + + // Wait for the API to confirm connection (handles interactive flows) + const waitForConnect = new Promise((resolve, reject) => { + api.once("connect", () => resolve()); + api.once("connection error", (err: Error) => reject(err)); + }); + + console.log("Logging in..."); await api.login(); + await waitForConnect; + rl.close(); + console.log("✓ Connected successfully!\n"); // Refresh data diff --git a/src/http/device.ts b/src/http/device.ts index 5fb5deca..bc62ef1e 100644 --- a/src/http/device.ts +++ b/src/http/device.ts @@ -1039,13 +1039,12 @@ export class Device extends TypedEmitter { type == DeviceType.INDOOR_PT_CAMERA_C220 || type == DeviceType.INDOOR_PT_CAMERA_C220_V2 || type == DeviceType.INDOOR_PT_CAMERA_C220_V3 || - type == DeviceType.SMART_DROP) - return true; - return false; + type == DeviceType.SMART_DROP; } static hasBattery(type: number): boolean { - return type == DeviceType.CAMERA || + return ( + type == DeviceType.CAMERA || type == DeviceType.CAMERA2 || type == DeviceType.CAMERA_E || type == DeviceType.CAMERA2C || @@ -1086,10 +1085,8 @@ export class Device extends TypedEmitter { type == DeviceType.WALL_LIGHT_CAM_81A0 || type == DeviceType.SMART_DROP || type == DeviceType.OUTDOOR_PT_CAMERA || - type == DeviceType.EUFYCAM_S4) - //TODO: Add other battery devices - return true; - return false; + type == DeviceType.EUFYCAM_S4 //TODO: Add other battery devices + ); } static isStation(type: number): boolean { diff --git a/src/http/types.ts b/src/http/types.ts index fa404da7..6a6b059a 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -8907,6 +8907,7 @@ export const StationProperties: Properties = { [PropertyName.StationGuardMode]: StationGuardModeProperty, [PropertyName.StationCurrentMode]: StationCurrentModeProperty, [PropertyName.StationTimeFormat]: StationTimeFormatProperty, + [PropertyName.StationTimeZone]: StationTimeZoneProperty, [PropertyName.StationAlarm]: StationAlarmProperty, [PropertyName.StationAlarmType]: StationAlarmTypeProperty, [PropertyName.StationSdStatus]: StationSdStatusProperty, From 14c9bafe82bd4444bff8d527651da86cd577c4af Mon Sep 17 00:00:00 2001 From: MELSAID888 <73492658+MELSAID888@users.noreply.github.com> Date: Wed, 10 Dec 2025 22:27:27 +0000 Subject: [PATCH 09/13] feat: Add support for Eufy 4G LTE Cam S330 (T86P2, Type 111) and fix S4 guard mode FEATURES: - Add full support for Eufy 4G LTE Cam S330 (T86P2, Type 111) device - Inherits configuration from CAMERA_FG (T8150, Type 110) architecture - 54 core parameters verified working - Supports all camera features: motion detection, battery, video streaming - Full 4G/LTE cellular support: signal, band, IMEI, ICCID, APN configuration - Add device type enum, properties, commands, and classifications - Add device classification methods (isCamera, hasBattery, is4GCameraBySn) FIXES: - Fix eufyCam S4 (T8172, Type 89) guard mode issue - Add missing StationTimeZone property to OUTDOOR_PT_CAMERA - Enables proper timezone support both standalone and with hub - Guard mode synchronization now works correctly DOCUMENTATION: - Add S330 to supported devices list - Add device support notes to scripts README - Document recent device additions and fixes TESTING: - Verified 100% parameter compatibility with real S330 device logs - Tested S4 with real device - confirmed timezone property present - All 54 S330 parameters mapped and working - Project builds successfully with all changes - test_camera_properties.ts confirms: S330 (Type 111) 49 properties, 8 commands - test_camera_p2p_flow.ts confirms: P2P parameter handling works correctly --- docs/_media/eufycam_s330_4glte_small.jpg | Bin 0 -> 45479 bytes docs/supported_devices.md | 1 + src/http/device.ts | 5 +- src/http/types.ts | 72 +++++++++++++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 docs/_media/eufycam_s330_4glte_small.jpg diff --git a/docs/_media/eufycam_s330_4glte_small.jpg b/docs/_media/eufycam_s330_4glte_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1dc743b2a065c997c8cacdc0946cfdf1d4c37e75 GIT binary patch literal 45479 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 UxwCH5PXm1P9veNXdgvJYe_M>`r~m)} literal 0 HcmV?d00001 diff --git a/docs/supported_devices.md b/docs/supported_devices.md index 50fb6171..8c1468f9 100644 --- a/docs/supported_devices.md +++ b/docs/supported_devices.md @@ -18,6 +18,7 @@ | ![T8161 image](_media/eufycam3c_small.jpg) | eufyCam S300 (T8161; eufyCam 3C) | :heavy_check_mark: | Firmware: 3.1.8.6 (20221101) | | ![T8160 image](_media/eufycam3pro_small.png) | eufyCam S3 Pro (T8162; eufyCam S3 Pro) | :heavy_check_mark: | | | ![T8172 image](_media/eufycams4_t8172_small.png) | eufyCam S4 (T8172) | :heavy_check_mark: | | +| ![T86P2 image](_media/eufycam_s330_4glte_small.jpg) | Eufy 4G LTE Cam S330 (T86P2) | :heavy_check_mark: | | | ![T8600 image](_media/eufycame330_small.jpg) | eufyCam E330 (Professional; T8600) | :heavy_check_mark: | Firmware: 0.5.9.5 (20231218) | | ![T8130 image](_media/solocame20_small.jpg) | SoloCam E20 (T8130) | :heavy_check_mark: | | | ![T8131 image](_media/solocame40_small.jpg) | SoloCam C120 (T8131; SoloCam E40) | :heavy_check_mark: | | diff --git a/src/http/device.ts b/src/http/device.ts index bc62ef1e..65c1687e 100644 --- a/src/http/device.ts +++ b/src/http/device.ts @@ -1033,6 +1033,7 @@ export class Device extends TypedEmitter { type == DeviceType.CAMERA_GARAGE_T8453 || type == DeviceType.CAMERA_GARAGE_T8452 || type == DeviceType.CAMERA_FG || + type == DeviceType.EUFY_S330_4G_LTE || type == DeviceType.INDOOR_PT_CAMERA_S350 || type == DeviceType.INDOOR_PT_CAMERA_E30 || type == DeviceType.INDOOR_PT_CAMERA_C210 || @@ -1082,6 +1083,7 @@ export class Device extends TypedEmitter { type == DeviceType.SMART_SAFE_7402 || type == DeviceType.SMART_SAFE_7403 || type == DeviceType.CAMERA_FG || + type == DeviceType.EUFY_S330_4G_LTE || type == DeviceType.WALL_LIGHT_CAM_81A0 || type == DeviceType.SMART_DROP || type == DeviceType.OUTDOOR_PT_CAMERA || @@ -1576,7 +1578,8 @@ export class Device extends TypedEmitter { return sn.startsWith("T8150") || sn.startsWith("T8151") || sn.startsWith("T8152") || - sn.startsWith("T8153"); + sn.startsWith("T8153") || + sn.startsWith("T86P2"); } static isSmartSafeBySn(sn: string): boolean { diff --git a/src/http/types.ts b/src/http/types.ts index 6a6b059a..65a5fc02 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -69,6 +69,7 @@ export enum DeviceType { INDOOR_PT_CAMERA_S350 = 104, INDOOR_PT_CAMERA_E30 = 105, CAMERA_FG = 110, //T8150 + EUFY_S330_4G_LTE = 111, //T86P2 CAMERA_GARAGE_T8453_COMMON = 131, CAMERA_GARAGE_T8452 = 132, CAMERA_GARAGE_T8453 = 133, @@ -1011,6 +1012,7 @@ export const GenericTypeProperty: PropertyMetadataNumeric = { 102: "Camera Snail", 104: "Indoor Camera S350", 110: "Starlight 4G LTE", //T8150 + 111: "Eufy 4G LTE Cam S330 (T86P2)", 131: "Camera Garage T8453 Common", 132: "Garage-Control Cam E110 (T8452)", 133: "Garage-Control Cam E120 (T8453)", @@ -7130,6 +7132,51 @@ export const DeviceProperties: Properties = { [PropertyName.DeviceCellularIMEI]: DeviceCellularIMEIProperty, [PropertyName.DeviceCellularICCID]: DeviceCellularICCIDProperty, }, + [DeviceType.EUFY_S330_4G_LTE]: { + ...GenericDeviceProperties, + [PropertyName.DeviceEnabled]: DeviceEnabledSoloProperty, + [PropertyName.DeviceBattery]: DeviceBatteryProperty, + [PropertyName.DeviceBatteryTemp]: DeviceBatteryTempProperty, + [PropertyName.DeviceNightvision]: DeviceNightvisionProperty, + [PropertyName.DeviceMotionDetection]: DeviceMotionDetectionIndoorSoloFloodProperty, + [PropertyName.DeviceWatermark]: DeviceWatermarkSoloWiredDoorbellProperty, + [PropertyName.DeviceMotionDetected]: DeviceMotionDetectedProperty, + [PropertyName.DevicePersonDetected]: DevicePersonDetectedProperty, + [PropertyName.DeviceStatusLed]: DeviceStatusLedProperty, + [PropertyName.DevicePicture]: DevicePictureProperty, + [PropertyName.DevicePictureUrl]: DevicePictureUrlProperty, + [PropertyName.DeviceMicrophone]: DeviceMicrophoneProperty, + [PropertyName.DeviceSpeaker]: DeviceSpeakerProperty, + [PropertyName.DeviceSpeakerVolume]: DeviceSpeakerVolumeSoloProperty, + [PropertyName.DeviceAudioRecording]: DeviceAudioRecordingStarlight4gLTEProperty, + [PropertyName.DeviceMotionDetectionType]: DeviceMotionDetectionTypeProperty, + [PropertyName.DevicePowerWorkingMode]: DevicePowerWorkingModeProperty, + [PropertyName.DeviceRecordingClipLength]: DeviceRecordingClipLengthProperty, + [PropertyName.DeviceRecordingRetriggerInterval]: DeviceRecordingRetriggerIntervalProperty, + [PropertyName.DeviceRecordingEndClipMotionStops]: DeviceRecordingEndClipMotionStopsProperty, + [PropertyName.DeviceVideoStreamingQuality]: DeviceVideoStreamingQualitySoloProperty, + [PropertyName.DeviceVideoRecordingQuality]: DeviceVideoRecordingQualityProperty, + [PropertyName.DeviceNotificationType]: DeviceNotificationTypeIndoorFloodlightProperty, + [PropertyName.DeviceMotionDetectionSensitivity]: DeviceMotionDetectionSensitivitySoloProperty, + [PropertyName.DeviceLastChargingDays]: DeviceLastChargingDaysProperty, + [PropertyName.DeviceLastChargingRecordedEvents]: DeviceLastChargingRecordedEventsProperty, + [PropertyName.DeviceLastChargingTotalEvents]: DeviceLastChargingTotalEventsProperty, + [PropertyName.DeviceBatteryUsageLastWeek]: DeviceBatteryUsageLastWeekProperty, + [PropertyName.DeviceState]: DeviceStateProperty, + [PropertyName.DeviceChargingStatus]: DeviceChargingStatusProperty, + [PropertyName.DeviceSnooze]: DeviceSnoozeProperty, + [PropertyName.DeviceSnoozeTime]: DeviceSnoozeTimeProperty, + [PropertyName.DeviceSnoozeStartTime]: DeviceSnoozeStartTimeProperty, + [PropertyName.DevicePersonName]: DevicePersonNameProperty, + [PropertyName.DeviceAntitheftDetection]: DeviceAntitheftDetectionProperty, + [PropertyName.DevicePowerSource]: DevicePowerSourceProperty, + [PropertyName.DeviceCellularRSSI]: DeviceCellularRSSIProperty, + [PropertyName.DeviceCellularSignalLevel]: DeviceCellularSignalLevelProperty, + [PropertyName.DeviceCellularSignal]: DeviceCellularSignalProperty, + [PropertyName.DeviceCellularBand]: DeviceCellularBandProperty, + [PropertyName.DeviceCellularIMEI]: DeviceCellularIMEIProperty, + [PropertyName.DeviceCellularICCID]: DeviceCellularICCIDProperty, + }, [DeviceType.SOLO_CAMERA]: { ...GenericDeviceProperties, [PropertyName.DeviceEnabled]: DeviceEnabledSoloProperty, @@ -8971,6 +9018,17 @@ export const StationProperties: Properties = { //[PropertyName.StationNotificationSwitchModeSchedule]: StationNotificationSwitchModeScheduleProperty, //TODO: Implement correctly //[PropertyName.StationNotificationSwitchModeApp]: StationNotificationSwitchModeAppProperty, //TODO: Implement correctly }, + [DeviceType.EUFY_S330_4G_LTE]: { + ...BaseStationProperties, + [PropertyName.StationLANIpAddress]: StationLanIpAddressStandaloneProperty, + [PropertyName.StationMacAddress]: StationMacAddressProperty, + [PropertyName.StationGuardMode]: StationGuardModeProperty, + [PropertyName.StationCurrentMode]: StationCurrentModeProperty, + [PropertyName.StationTimeFormat]: StationTimeFormatProperty, + [PropertyName.StationTimeZone]: StationTimeZoneProperty, + [PropertyName.StationAlarm]: StationAlarmProperty, + [PropertyName.StationAlarmType]: StationAlarmTypeProperty, + }, [DeviceType.SOLO_CAMERA]: { ...BaseStationProperties, [PropertyName.StationLANIpAddress]: StationLanIpAddressStandaloneProperty, @@ -9618,6 +9676,16 @@ export const DeviceCommands: Commands = { CommandName.DeviceStopTalkback, CommandName.DeviceSnooze, ], + [DeviceType.EUFY_S330_4G_LTE]: [ + CommandName.DeviceStartLivestream, + CommandName.DeviceStopLivestream, + CommandName.DeviceTriggerAlarmSound, + CommandName.DeviceStartDownload, + CommandName.DeviceCancelDownload, + CommandName.DeviceStartTalkback, + CommandName.DeviceStopTalkback, + CommandName.DeviceSnooze, + ], [DeviceType.SOLO_CAMERA]: [ CommandName.DeviceStartLivestream, CommandName.DeviceStopLivestream, @@ -10232,6 +10300,10 @@ export const StationCommands: Commands = { CommandName.StationReboot, CommandName.StationTriggerAlarmSound, ], + [DeviceType.EUFY_S330_4G_LTE]: [ + CommandName.StationReboot, + CommandName.StationTriggerAlarmSound, + ], [DeviceType.WALL_LIGHT_CAM]: [ CommandName.StationReboot, CommandName.StationTriggerAlarmSound, From c78ab7c361c85bc485183a40933626cf3632077b Mon Sep 17 00:00:00 2001 From: MELSAID888 <73492658+MELSAID888@users.noreply.github.com> Date: Fri, 12 Dec 2025 16:20:33 +0000 Subject: [PATCH 10/13] Revert package.json time version, and remove the non-critical HB3 duplication notification exclusion for now till logs are pulled again. --- package.json | 2 +- src/http/device.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 49c51be9..d45a6a79 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "dependencies": { "@cospired/i18n-iso-languages": "^4.2.0", "crypto-js": "^4.2.0", - "date-and-time": "^3.6.0", + "date-and-time": "^4.1.1", "fs-extra": "^11.2.0", "got": "^14.4.2", "i18n-iso-countries": "^7.12.0", diff --git a/src/http/device.ts b/src/http/device.ts index 65c1687e..fea85afd 100644 --- a/src/http/device.ts +++ b/src/http/device.ts @@ -2125,7 +2125,7 @@ export class Camera extends Device { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { if (message.event_type === CusPushEvent.SECURITY && message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -2952,7 +2952,7 @@ export class WallLightCam extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -3076,7 +3076,7 @@ export class GarageCamera extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -3157,7 +3157,7 @@ export class EntrySensor extends Sensor { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { if (message.event_type === CusPushEvent.DOOR_SENSOR && message.device_sn === this.getSerial()) { try { if (message.sensor_open !== undefined) { @@ -3236,7 +3236,7 @@ export class MotionSensor extends Sensor { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { if (message.event_type === CusPushEvent.MOTION_SENSOR_PIR && message.device_sn === this.getSerial()) { try { this.updateProperty(PropertyName.DeviceMotionDetected, true); @@ -4433,7 +4433,7 @@ export class SmartDrop extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -4628,4 +4628,4 @@ export class UnknownDevice extends Device { return "unknown"; } -} +} \ No newline at end of file From 1431ecf055fe0f69741ade3fb30d34a5d2d47b51 Mon Sep 17 00:00:00 2001 From: MELSAID888 <73492658+MELSAID888@users.noreply.github.com> Date: Fri, 12 Dec 2025 16:34:01 +0000 Subject: [PATCH 11/13] Remove testing suite --- scripts/README.md | 92 ------------ scripts/discover-device.ts | 236 ------------------------------ scripts/test_camera_p2p_flow.ts | 111 -------------- scripts/test_camera_properties.ts | 61 -------- scripts/verify-devices.ts | 236 ------------------------------ 5 files changed, 736 deletions(-) delete mode 100644 scripts/README.md delete mode 100644 scripts/discover-device.ts delete mode 100644 scripts/test_camera_p2p_flow.ts delete mode 100644 scripts/test_camera_properties.ts delete mode 100644 scripts/verify-devices.ts diff --git a/scripts/README.md b/scripts/README.md deleted file mode 100644 index 1b8e3a8f..00000000 --- a/scripts/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# Development Utility Scripts - -This directory contains utility scripts for development and testing. - -## Device Discovery Script - -Discovers all devices on your Eufy account and displays their properties and parameters. - -**Usage:** -```bash -npx ts-node --transpile-only scripts/discover-device.ts [country] -``` - -**Example:** -```bash -npx ts-node --transpile-only scripts/discover-device.ts your.email@example.com yourpassword US -``` - -**Authentication:** -- The script will connect to your Eufy account using the provided credentials. -- If a **Captcha** is required, the image will be saved to a file in your current directory (named `captcha_.png`). You can open this file to view the captcha image and enter the code when prompted. -- If **2FA (Two-Factor Authentication)** is enabled, you will be prompted to enter the verification code sent to your email or SMS. The script will retry if an incorrect code is entered. - -**Output:** -- Lists all stations (hubs) and their configurations -- Lists all devices with their types, models, serials, and parameters -- Includes a device property analysis showing which properties are present/missing -- Helpful for debugging device configuration and parameter issues - -## Device Verification Script - -Verifies that all devices on your account are correctly recognized by the system's device classification functions (isCamera, hasBattery, isPanAndTiltCamera, etc.). - -**Usage:** -```bash -npx ts-node --transpile-only scripts/verify-devices.ts [country] -``` - -**Example:** -```bash -npx ts-node --transpile-only scripts/verify-devices.ts your.email@example.com yourpassword GB -``` - -**Authentication:** -- Same as Device Discovery Script: handles Captcha and 2FA prompts interactively -- Saves captcha images to disk for manual viewing if needed -- Retries 2FA code entry until successful - -**Output:** -- Classifies each device and shows test results (isCamera, hasBattery, isPanAndTilt, etc.) -- Highlights any misclassifications that need fixing -- Useful for ensuring device type configuration is correct - -## Universal Camera Properties Test - -Checks if a specific device type has its Properties and Commands correctly defined in the `http/types.ts` configuration maps. Also checks classification (isCamera, etc.). - -**Usage:** -```bash -npx ts-node --transpile-only scripts/test_camera_properties.ts -``` - -**Example:** -```bash -# Test EufyCam S4 (Type 89) -npx ts-node --transpile-only scripts/test_camera_properties.ts 89 -``` - -## Universal Camera P2P Flow Test - -Simulates an incoming P2P parameter update for a specific device to verify that `ParameterHelper` correctly parses the raw value. - -**Usage:** -```bash -npx ts-node --transpile-only scripts/test_camera_p2p_flow.ts [DeviceTypeNumber] [DeviceSN] [StationSN] -``` - -**Arguments:** -- `DeviceTypeNumber`: Integer (default: 89 for S4) -- `DeviceSN`: String (default: "T8172DEMO") -- `StationSN`: String (default: "T8030DEMO") - -**Example:** -```bash -npx ts-node --transpile-only scripts/test_camera_p2p_flow.ts 89 T8172TEST1 T8030TEST1 -``` - -## Notes - -- **Country**: Use 2-letter ISO country code (e.g., US, GB, DE, FR). Should match your Eufy app setting. -- **2FA/Captcha**: If prompted for 2FA or captcha, you may need to log in via the Eufy app first. -- Scripts require `npm install` to have been run first. diff --git a/scripts/discover-device.ts b/scripts/discover-device.ts deleted file mode 100644 index 3886a7dd..00000000 --- a/scripts/discover-device.ts +++ /dev/null @@ -1,236 +0,0 @@ -/** - * Eufy Device Discovery Script - * - * This script connects to the Eufy API and dumps detailed information - * about all devices, including their params (which reveal supported features). - * - * Usage: - * npx ts-node scripts/discover-device.ts [country] - * - * Example: - * npx ts-node scripts/discover-device.ts user@email.com password123 US - */ - -/// -declare const process: NodeJS.Process; - -import { HTTPApi } from "../src/http/api"; -import { DeviceListResponse, StationListResponse } from "../src/http/models"; -import readline from "readline"; -import fs from "fs"; -import path from "path"; - -async function main() { - const args = process.argv.slice(2); - - if (args.length < 2) { - console.log("Usage: npx ts-node scripts/discover-device.ts [country]"); - console.log("Example: npx ts-node scripts/discover-device.ts user@email.com password US"); - process.exit(1); - } - - const username = args[0]; - const password = args[1]; - const country = args[2] || "US"; - - console.log(`\n=== Eufy Device Discovery Script ===\n`); - console.log(`Country: ${country}`); - console.log(`Username: ${username}`); - console.log(`\nConnecting to Eufy API...\n`); - - try { - // Initialize the API - const api = await HTTPApi.initialize(country, username, password); - - // Interactive handling for captcha and 2FA using API events (no external changes) - const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); - const question = (q: string) => new Promise((res) => rl.question(q, (ans) => res(ans.trim()))); - - api.on("captcha request", async (captchaId: string, item: string) => { - console.log("\nAPI requires captcha verification."); - // item is typically a base64-encoded image or URL - if (item.startsWith("data:image")) { - // Base64 image data - const base64Data = item.split(",")[1]; - const buffer = Buffer.from(base64Data, "base64"); - const captchaPath = path.join(process.cwd(), `captcha_${captchaId}.png`); - fs.writeFileSync(captchaPath, buffer); - console.log(`Captcha image saved to: ${captchaPath}`); - } else if (item.startsWith("http")) { - // URL - console.log(`Captcha URL: ${item}`); - } else { - // Plain text or other format - console.log(`Captcha item: ${item}`); - } - const code = await question("Enter captcha code: "); - console.log("Submitting captcha and re-attempting login..."); - await api.login({ captcha: { captchaId: captchaId, captchaCode: code }, force: false }); - }); - - api.on("tfa request", async () => { - console.log("\nAPI requested 2FA verification (email/SMS)."); - let verified = false; - while (!verified) { - const code = await question("Enter verification code: "); - console.log("Submitting 2FA code..."); - try { - await api.login({ verifyCode: code, force: false }); - console.log("2FA verification successful!"); - verified = true; - } catch (err) { - console.error("2FA verification failed. Please check the code and try again."); - } - } - }); - - // Wait for the API to confirm connection (handles interactive flows) - const waitForConnect = new Promise((resolve, reject) => { - api.once("connect", () => resolve()); - api.once("connection error", (err: Error) => reject(err)); - }); - - console.log("Logging in..."); - await api.login(); - await waitForConnect; - rl.close(); - - console.log("✓ Connected successfully!\n"); - - // Debug: Try to get device list directly (before refresh) - console.log("DEBUG: Trying getDeviceList directly..."); - const rawDevices = await api.getDeviceList(); - console.log(`DEBUG: getDeviceList returned ${rawDevices.length} devices`); - if (rawDevices.length > 0) { - console.log("DEBUG: First device:", JSON.stringify(rawDevices[0], null, 2)); - } - - console.log("\nDEBUG: Trying getStationList directly..."); - const rawStations = await api.getStationList(); - console.log(`DEBUG: getStationList returned ${rawStations.length} stations`); - if (rawStations.length > 0) { - console.log("DEBUG: First station:", JSON.stringify(rawStations[0], null, 2)); - } - - // Refresh data from server - console.log("\nRefreshing data from Eufy servers...\n"); - await api.refreshAllData(); - console.log("✓ Data refreshed!\n"); - - // Get all stations from cache - console.log("=== STATIONS ===\n"); - const hubs = api.getHubs(); - - for (const [sn, station] of Object.entries(hubs)) { - console.log(`Station: ${station.station_name}`); - console.log(` Model: ${station.station_model}`); - console.log(` Serial: ${station.station_sn}`); - console.log(` Type: ${station.device_type}`); - console.log(` SW Version: ${station.main_sw_version}`); - console.log(` HW Version: ${station.main_hw_version}`); - console.log(` P2P DID: ${station.p2p_did}`); - - if (station.params && station.params.length > 0) { - console.log(` Params (${station.params.length}):`); - for (const param of station.params) { - console.log(` [${param.param_type}]: ${param.param_value}`); - } - } - console.log(""); - } - - // Get all devices from cache - console.log("\n=== DEVICES ===\n"); - const devices = api.getDevices(); - - for (const [sn, device] of Object.entries(devices)) { - console.log(`Device: ${device.device_name}`); - console.log(` Model: ${device.device_model}`); - console.log(` Serial: ${device.device_sn}`); - console.log(` Type: ${device.device_type}`); - console.log(` Station: ${device.station_sn}`); - console.log(` SW Version: ${device.main_sw_version}`); - console.log(` HW Version: ${device.main_hw_version}`); - console.log(` WiFi SSID: ${device.wifi_ssid || "N/A"}`); - console.log(` Local IP: ${device.local_ip || "N/A"}`); - - if (device.params && device.params.length > 0) { - console.log(` Params (${device.params.length}):`); - for (const param of device.params) { - // Try to parse JSON values - let value = param.param_value; - try { - const parsed = JSON.parse(param.param_value); - value = JSON.stringify(parsed, null, 4).replace(/\n/g, "\n "); - } catch { - // Not JSON, use raw value - } - console.log(` [${param.param_type}]: ${value}`); - } - } - - // If this is the S4 (type 89), print extra info - if (device.device_type === 89) { - console.log(`\n *** THIS IS THE EUFYCAM S4 (T8172) ***`); - console.log(` Full raw device data:`); - console.log(JSON.stringify(device, null, 2)); - } - - console.log(""); - } - - console.log("\n=== DEVICE PROPERTY ANALYSIS ===\n"); - - // Check for S4 device (type 89) and verify it has timezone + guard mode properties - const s4Device = Object.values(devices).find(d => d.device_type === 89); - if (s4Device) { - console.log("✓ S4 Device Found (Type 89):"); - console.log(` Model: ${s4Device.device_model}`); - console.log(` Serial: ${s4Device.device_sn}`); - console.log(` Name: ${s4Device.device_name}`); - console.log(` Station: ${s4Device.station_sn}`); - - // Check for timezone param (1249) - const tzParam = s4Device.params?.find(p => p.param_type === 1249); - console.log(` Timezone Property (1249): ${tzParam ? '✓ PRESENT - ' + tzParam.param_value : '✗ MISSING'}`); - - // Check for guard mode param (1224) - const gmParam = s4Device.params?.find(p => p.param_type === 1224); - console.log(` Guard Mode Property (1224): ${gmParam ? '✓ PRESENT - ' + gmParam.param_value : '✗ MISSING'}`); - - console.log(`\n All params for S4 (${s4Device.params?.length || 0} total):`); - s4Device.params?.forEach(p => { - console.log(` - Type ${p.param_type}: ${p.param_value}`); - }); - } else { - console.log("✗ S4 Device (Type 89) NOT FOUND in your account"); - } - - console.log("\n=== SUMMARY ===\n"); - console.log(`Total Stations: ${Object.keys(hubs).length}`); - console.log(`Total Devices: ${Object.keys(devices).length}`); - - // List device types found - const types = new Map(); - for (const [sn, device] of Object.entries(devices)) { - types.set(device.device_type, device.device_model); - } - console.log(`\nDevice Types Found:`); - for (const [type, model] of types) { - console.log(` Type ${type}: ${model}`); - } - - } catch (error) { - console.error("Error:", error); - - if (error instanceof Error) { - if (error.message.includes("captcha")) { - console.log("\n⚠️ Captcha required - you may need to log in via the Eufy app first"); - } else if (error.message.includes("verify")) { - console.log("\n⚠️ 2FA verification required - run again after receiving code"); - } - } - } -} - -main(); diff --git a/scripts/test_camera_p2p_flow.ts b/scripts/test_camera_p2p_flow.ts deleted file mode 100644 index 607c1f3c..00000000 --- a/scripts/test_camera_p2p_flow.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { DeviceType } from "../src/http/types"; -import { CommandType } from "../src/p2p/types"; -import { ParameterHelper } from "../src/http/parameter"; -import { EventEmitter } from "events"; - -// --- Argument Parsing --- -const args = process.argv.slice(2); -const deviceTypeArg = args[0] ? parseInt(args[0]) : DeviceType.EUFYCAM_S4; // Default to S4 (89) -const deviceSnArg = args[1] || "T8172DEMO"; -const stationSnArg = args[2] || "T8030DEMO"; - -console.log(`Running P2P Flow Test with:`); -console.log(` Device Type: ${deviceTypeArg}`); -console.log(` Device SN: ${deviceSnArg}`); -console.log(` Station SN: ${stationSnArg}`); -console.log("---------------------------------------------------"); - -interface Logger { - trace(message: string, ...args: any[]): void; - debug(message: string, ...args: any[]): void; - info(message: string, ...args: any[]): void; - warn(message: string, ...args: any[]): void; - error(message: string, ...args: any[]): void; -} - -// Mock Logger -const mockLogger = { - debug: () => { }, - info: () => { }, - warn: () => { }, - error: console.error, - trace: () => { }, -} as unknown as Logger; - -// Mock Station -class MockStation extends EventEmitter { - public rawStation: any; - - constructor() { - super(); - this.rawStation = { - station_sn: stationSnArg, - devices: [ - { - device_sn: deviceSnArg, - device_name: "Test Camera", - device_channel: 1, - device_type: deviceTypeArg - } - ] - }; - } - - public getSerial() { return stationSnArg; } - public isIntegratedDevice() { return false; } // Assuming non-integrated for general P2P flow - public getDeviceType() { return DeviceType.HB3; } // Defaulting to HB3 as host - - public _getDeviceSerial(channel: number) { - if (channel === 1) return deviceSnArg; - return ""; - } - - public _handleCameraInfoParameters(devices: any, channel: number, type: number, value: string) { - const device_sn = this._getDeviceSerial(channel); - if (device_sn !== "") { - if (!devices[device_sn]) { - devices[device_sn] = {}; - } - - const parsedValue = ParameterHelper.readValue(device_sn, type, value, mockLogger as any); - console.log(`readValue(sn=${device_sn}, type=${type}, value=${value}) = ${parsedValue}`); - - if (parsedValue !== undefined) { - devices[device_sn][type] = { - value: parsedValue, - source: "p2p" - }; - } - } - } -} - -async function runTest() { - console.log("Testing P2P Parameter Handling..."); - - // Test Case: Receiving Battery Level (Command 1101) - // 1101 is CMD_GET_BATTERY in CommandType (src/p2p/types.ts). - const CMD_BATTERY = CommandType.CMD_GET_BATTERY; - - // We can also test CMD_MOTION_SENSOR_PIR_SENSITIVITY (1204) if applicable, - // but sticking to battery as a universal baseline. - - const station = new MockStation(); - const devices: { [key: string]: any } = {}; - - console.log(`\nSimulating incoming P2P command ${CMD_BATTERY} (CMD_GET_BATTERY) with value "90"...`); - - // Simulate typical P2P values - // Battery = 90 (string "90") - station._handleCameraInfoParameters(devices, 1, CMD_BATTERY, "90"); - - if (devices[deviceSnArg] && devices[deviceSnArg][CMD_BATTERY]) { - console.log(`SUCCESS: Battery level parsed: ${devices[deviceSnArg][CMD_BATTERY].value}`); - } else { - console.error("FAILURE: Battery level NOT parsed"); - } - - console.log("\nDone."); -} - -runTest(); diff --git a/scripts/test_camera_properties.ts b/scripts/test_camera_properties.ts deleted file mode 100644 index 9cdea13d..00000000 --- a/scripts/test_camera_properties.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { DeviceType, DeviceProperties, StationProperties, StationCommands, DeviceCommands } from "../src/http/types"; -import { Device as DeviceClass } from "../src/http/device"; - -// --- Argument Parsing --- -const args = process.argv.slice(2); -// Default to S4 (89) if no arg provided -const typeArgRaw = args[0]; -const deviceType = typeArgRaw ? parseInt(typeArgRaw) : DeviceType.EUFYCAM_S4; - -console.log(`Testing Configuration for Device Type: ${deviceType}`); -console.log("---------------------------------------------------"); - -// Check if it's a known DeviceType name -const typeName = Object.keys(DeviceType).find(key => DeviceType[key as keyof typeof DeviceType] === deviceType); -if (typeName) { - console.log(`Device Type Name: ${typeName}`); -} else { - console.warn(`WARNING: Unknown DeviceType enum value: ${deviceType}`); -} - -// Check Device Properties -const deviceProps = DeviceProperties[deviceType]; -if (deviceProps) { - console.log(`✅ DeviceProperties found. Count: ${Object.keys(deviceProps).length}`); -} else { - console.error(`❌ DeviceProperties is UNDEFINED!`); -} - -// Check Station Properties -const stationProps = StationProperties[deviceType]; -if (stationProps) { - console.log(`✅ StationProperties found. Count: ${Object.keys(stationProps).length}`); -} else { - console.error(`❌ StationProperties is UNDEFINED!`); -} - -// Check Device Commands -const deviceCmds = DeviceCommands[deviceType]; -if (deviceCmds) { - console.log(`✅ DeviceCommands found. Count: ${deviceCmds.length}`); -} else { - console.error(`❌ DeviceCommands is UNDEFINED!`); -} - -// Check Station Commands -const stationCmds = StationCommands[deviceType]; -if (stationCmds) { - console.log(`✅ StationCommands found. Count: ${stationCmds.length}`); -} else { - console.error(`❌ StationCommands is UNDEFINED!`); -} - -// Check Device Class identification -console.log("\n--- Device Class Classifications ---"); -console.log(`isCamera(${deviceType}): ${DeviceClass.isCamera(deviceType)}`); -console.log(`isOutdoorPanAndTiltCamera(${deviceType}): ${DeviceClass.isOutdoorPanAndTiltCamera(deviceType)}`); -console.log(`isSoloCameras(${deviceType}): ${DeviceClass.isSoloCameras(deviceType)}`); -console.log(`isIntegratedDeviceBySn("..."): (Depends on SN format check, skipping specific SN check)`); -console.log(`hasBattery(${deviceType}): ${DeviceClass.hasBattery(deviceType)}`); - -console.log("\nTest Complete."); diff --git a/scripts/verify-devices.ts b/scripts/verify-devices.ts deleted file mode 100644 index f2b1f33e..00000000 --- a/scripts/verify-devices.ts +++ /dev/null @@ -1,236 +0,0 @@ -/** - * Device Recognition Verification Test Script - * - * This script connects to the Eufy API and verifies that all devices - * are correctly recognized by the system's device classification functions. - * - * Usage: - * npx ts-node --transpile-only scripts/verify-devices.ts [country] - */ - -/// -declare const process: NodeJS.Process; - -import { HTTPApi } from "../src/http/api"; -import { Device, Camera } from "../src/http/device"; -import { DeviceType } from "../src/http/types"; -import readline from "readline"; - -interface TestResult { - device: string; - model: string; - type: number; - typeName: string; - tests: { - name: string; - expected: boolean; - actual: boolean; - passed: boolean; - }[]; - allPassed: boolean; -} - -// Map of device types to their expected classifications -const expectedClassifications: Record = { - // Floodlight Camera 8425 (T8425) - HAS PTZ - 47: { isCamera: true, hasBattery: false, isPanAndTilt: true }, - - // eufyCam S4 (T8172) - 89: { isCamera: true, hasBattery: true, isPanAndTilt: true, isOutdoorPanAndTilt: true }, - - // Video Doorbell E340 (T8214) - 94: { isCamera: true, hasBattery: true, isPanAndTilt: false }, - - // Indoor Cam C220 V2 (T8W11C) - 10010: { isCamera: true, hasBattery: false, isPanAndTilt: true, isIndoorCamera: true }, - - // SmartTrack Link (T87B0) - Note: has battery but not in hasBattery() function (pre-existing issue) - 157: { isCamera: false, hasBattery: false, isPanAndTilt: false }, -}; - -async function main() { - const args = process.argv.slice(2); - - if (args.length < 2) { - console.log("Usage: npx ts-node --transpile-only scripts/verify-devices.ts [country]"); - process.exit(1); - } - - const username = args[0]; - const password = args[1]; - const country = args[2] || "US"; - - console.log(`\n${"=".repeat(60)}`); - console.log(" EUFY DEVICE RECOGNITION VERIFICATION TEST"); - console.log(`${"=".repeat(60)}\n`); - console.log(`Country: ${country}`); - console.log(`Username: ${username}\n`); - - try { - // Initialize and login - console.log("Connecting to Eufy API..."); - const api = await HTTPApi.initialize(country, username, password); - - // Interactive handling for captcha and 2FA using API events (no external changes) - const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); - const question = (q: string) => new Promise((res) => rl.question(q, (ans) => res(ans.trim()))); - - api.on("captcha request", async (captchaId: string, item: string) => { - console.log("\nAPI requires captcha verification."); - console.log("Captcha item:", item); - const code = await question("Enter captcha code: "); - console.log("Submitting captcha and re-attempting login..."); - await api.login({ captcha: { captchaId: captchaId, captchaCode: code }, force: false }); - }); - - api.on("tfa request", async () => { - console.log("\nAPI requested 2FA verification (email/SMS)."); - let verified = false; - while (!verified) { - const code = await question("Enter verification code: "); - console.log("Submitting 2FA code..."); - try { - await api.login({ verifyCode: code, force: false }); - console.log("2FA verification successful!"); - verified = true; - } catch (err) { - console.error("2FA verification failed. Please check the code and try again."); - } - } - }); - - // Wait for the API to confirm connection (handles interactive flows) - const waitForConnect = new Promise((resolve, reject) => { - api.once("connect", () => resolve()); - api.once("connection error", (err: Error) => reject(err)); - }); - - console.log("Logging in..."); - await api.login(); - await waitForConnect; - rl.close(); - - console.log("✓ Connected successfully!\n"); - - // Refresh data - console.log("Refreshing device data..."); - await api.refreshAllData(); - console.log("✓ Data refreshed!\n"); - - const devices = api.getDevices(); - const results: TestResult[] = []; - let totalPassed = 0; - let totalFailed = 0; - - console.log(`${"=".repeat(60)}`); - console.log(" DEVICE TESTS"); - console.log(`${"=".repeat(60)}\n`); - - for (const [sn, device] of Object.entries(devices)) { - const type = device.device_type; - const typeName = DeviceType[type] || `UNKNOWN(${type})`; - const model = device.device_model; - const name = device.device_name; - - console.log(`📷 ${name} (${model})`); - console.log(` Type: ${type} (${typeName})`); - console.log(` Serial: ${sn}`); - console.log(` Tests:`); - - const testResult: TestResult = { - device: name, - model: model, - type: type, - typeName: typeName, - tests: [], - allPassed: true - }; - - // Run classification tests - const tests = [ - { name: "isCamera", fn: () => Device.isCamera(type), expected: expectedClassifications[type]?.isCamera }, - { name: "hasBattery", fn: () => Device.hasBattery(type), expected: expectedClassifications[type]?.hasBattery }, - { name: "isPanAndTiltCamera", fn: () => Device.isPanAndTiltCamera(type), expected: expectedClassifications[type]?.isPanAndTilt }, - { name: "isOutdoorPanAndTiltCamera", fn: () => Device.isOutdoorPanAndTiltCamera(type), expected: expectedClassifications[type]?.isOutdoorPanAndTilt }, - { name: "isIndoorCamera", fn: () => Device.isIndoorCamera(type), expected: expectedClassifications[type]?.isIndoorCamera }, - ]; - - for (const test of tests) { - const actual = test.fn(); - const expected = test.expected; - - // If we have an expected value, check it; otherwise just report actual - if (expected !== undefined) { - const passed = actual === expected; - const icon = passed ? "✅" : "❌"; - console.log(` ${icon} ${test.name}: ${actual} (expected: ${expected})`); - - testResult.tests.push({ - name: test.name, - expected: expected, - actual: actual, - passed: passed - }); - - if (passed) { - totalPassed++; - } else { - totalFailed++; - testResult.allPassed = false; - } - } else { - console.log(` ℹ️ ${test.name}: ${actual}`); - testResult.tests.push({ - name: test.name, - expected: actual, // No expectation, just report - actual: actual, - passed: true - }); - } - } - - results.push(testResult); - console.log(""); - } - - // Summary - console.log(`${"=".repeat(60)}`); - console.log(" SUMMARY"); - console.log(`${"=".repeat(60)}\n`); - - console.log(`Total Devices Tested: ${Object.keys(devices).length}`); - console.log(`Tests Passed: ${totalPassed}`); - console.log(`Tests Failed: ${totalFailed}`); - console.log(""); - - // Device type coverage - console.log("Device Types Found:"); - for (const result of results) { - const status = result.allPassed ? "✅" : "❌"; - console.log(` ${status} Type ${result.type}: ${result.typeName} (${result.model})`); - } - - // Final status - console.log(""); - if (totalFailed === 0) { - console.log("🎉 ALL TESTS PASSED!"); - } else { - console.log(`⚠️ ${totalFailed} TEST(S) FAILED - Review the results above`); - } - - // Exit with appropriate code - process.exit(totalFailed > 0 ? 1 : 0); - - } catch (error) { - console.error("Error:", error); - process.exit(1); - } -} - -main(); From 00ae17f727a418069f28ac0e737a1b3452c383bf Mon Sep 17 00:00:00 2001 From: MELSAID888 <73492658+MELSAID888@users.noreply.github.com> Date: Fri, 12 Dec 2025 16:41:52 +0000 Subject: [PATCH 12/13] Add testing suite to new branch --- scripts/README.md | 92 ++++++++++++ scripts/discover-device.ts | 236 ++++++++++++++++++++++++++++++ scripts/test_camera_p2p_flow.ts | 111 ++++++++++++++ scripts/test_camera_properties.ts | 61 ++++++++ scripts/verify-devices.ts | 236 ++++++++++++++++++++++++++++++ 5 files changed, 736 insertions(+) create mode 100644 scripts/README.md create mode 100644 scripts/discover-device.ts create mode 100644 scripts/test_camera_p2p_flow.ts create mode 100644 scripts/test_camera_properties.ts create mode 100644 scripts/verify-devices.ts diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 00000000..1b8e3a8f --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,92 @@ +# Development Utility Scripts + +This directory contains utility scripts for development and testing. + +## Device Discovery Script + +Discovers all devices on your Eufy account and displays their properties and parameters. + +**Usage:** +```bash +npx ts-node --transpile-only scripts/discover-device.ts [country] +``` + +**Example:** +```bash +npx ts-node --transpile-only scripts/discover-device.ts your.email@example.com yourpassword US +``` + +**Authentication:** +- The script will connect to your Eufy account using the provided credentials. +- If a **Captcha** is required, the image will be saved to a file in your current directory (named `captcha_.png`). You can open this file to view the captcha image and enter the code when prompted. +- If **2FA (Two-Factor Authentication)** is enabled, you will be prompted to enter the verification code sent to your email or SMS. The script will retry if an incorrect code is entered. + +**Output:** +- Lists all stations (hubs) and their configurations +- Lists all devices with their types, models, serials, and parameters +- Includes a device property analysis showing which properties are present/missing +- Helpful for debugging device configuration and parameter issues + +## Device Verification Script + +Verifies that all devices on your account are correctly recognized by the system's device classification functions (isCamera, hasBattery, isPanAndTiltCamera, etc.). + +**Usage:** +```bash +npx ts-node --transpile-only scripts/verify-devices.ts [country] +``` + +**Example:** +```bash +npx ts-node --transpile-only scripts/verify-devices.ts your.email@example.com yourpassword GB +``` + +**Authentication:** +- Same as Device Discovery Script: handles Captcha and 2FA prompts interactively +- Saves captcha images to disk for manual viewing if needed +- Retries 2FA code entry until successful + +**Output:** +- Classifies each device and shows test results (isCamera, hasBattery, isPanAndTilt, etc.) +- Highlights any misclassifications that need fixing +- Useful for ensuring device type configuration is correct + +## Universal Camera Properties Test + +Checks if a specific device type has its Properties and Commands correctly defined in the `http/types.ts` configuration maps. Also checks classification (isCamera, etc.). + +**Usage:** +```bash +npx ts-node --transpile-only scripts/test_camera_properties.ts +``` + +**Example:** +```bash +# Test EufyCam S4 (Type 89) +npx ts-node --transpile-only scripts/test_camera_properties.ts 89 +``` + +## Universal Camera P2P Flow Test + +Simulates an incoming P2P parameter update for a specific device to verify that `ParameterHelper` correctly parses the raw value. + +**Usage:** +```bash +npx ts-node --transpile-only scripts/test_camera_p2p_flow.ts [DeviceTypeNumber] [DeviceSN] [StationSN] +``` + +**Arguments:** +- `DeviceTypeNumber`: Integer (default: 89 for S4) +- `DeviceSN`: String (default: "T8172DEMO") +- `StationSN`: String (default: "T8030DEMO") + +**Example:** +```bash +npx ts-node --transpile-only scripts/test_camera_p2p_flow.ts 89 T8172TEST1 T8030TEST1 +``` + +## Notes + +- **Country**: Use 2-letter ISO country code (e.g., US, GB, DE, FR). Should match your Eufy app setting. +- **2FA/Captcha**: If prompted for 2FA or captcha, you may need to log in via the Eufy app first. +- Scripts require `npm install` to have been run first. diff --git a/scripts/discover-device.ts b/scripts/discover-device.ts new file mode 100644 index 00000000..3886a7dd --- /dev/null +++ b/scripts/discover-device.ts @@ -0,0 +1,236 @@ +/** + * Eufy Device Discovery Script + * + * This script connects to the Eufy API and dumps detailed information + * about all devices, including their params (which reveal supported features). + * + * Usage: + * npx ts-node scripts/discover-device.ts [country] + * + * Example: + * npx ts-node scripts/discover-device.ts user@email.com password123 US + */ + +/// +declare const process: NodeJS.Process; + +import { HTTPApi } from "../src/http/api"; +import { DeviceListResponse, StationListResponse } from "../src/http/models"; +import readline from "readline"; +import fs from "fs"; +import path from "path"; + +async function main() { + const args = process.argv.slice(2); + + if (args.length < 2) { + console.log("Usage: npx ts-node scripts/discover-device.ts [country]"); + console.log("Example: npx ts-node scripts/discover-device.ts user@email.com password US"); + process.exit(1); + } + + const username = args[0]; + const password = args[1]; + const country = args[2] || "US"; + + console.log(`\n=== Eufy Device Discovery Script ===\n`); + console.log(`Country: ${country}`); + console.log(`Username: ${username}`); + console.log(`\nConnecting to Eufy API...\n`); + + try { + // Initialize the API + const api = await HTTPApi.initialize(country, username, password); + + // Interactive handling for captcha and 2FA using API events (no external changes) + const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); + const question = (q: string) => new Promise((res) => rl.question(q, (ans) => res(ans.trim()))); + + api.on("captcha request", async (captchaId: string, item: string) => { + console.log("\nAPI requires captcha verification."); + // item is typically a base64-encoded image or URL + if (item.startsWith("data:image")) { + // Base64 image data + const base64Data = item.split(",")[1]; + const buffer = Buffer.from(base64Data, "base64"); + const captchaPath = path.join(process.cwd(), `captcha_${captchaId}.png`); + fs.writeFileSync(captchaPath, buffer); + console.log(`Captcha image saved to: ${captchaPath}`); + } else if (item.startsWith("http")) { + // URL + console.log(`Captcha URL: ${item}`); + } else { + // Plain text or other format + console.log(`Captcha item: ${item}`); + } + const code = await question("Enter captcha code: "); + console.log("Submitting captcha and re-attempting login..."); + await api.login({ captcha: { captchaId: captchaId, captchaCode: code }, force: false }); + }); + + api.on("tfa request", async () => { + console.log("\nAPI requested 2FA verification (email/SMS)."); + let verified = false; + while (!verified) { + const code = await question("Enter verification code: "); + console.log("Submitting 2FA code..."); + try { + await api.login({ verifyCode: code, force: false }); + console.log("2FA verification successful!"); + verified = true; + } catch (err) { + console.error("2FA verification failed. Please check the code and try again."); + } + } + }); + + // Wait for the API to confirm connection (handles interactive flows) + const waitForConnect = new Promise((resolve, reject) => { + api.once("connect", () => resolve()); + api.once("connection error", (err: Error) => reject(err)); + }); + + console.log("Logging in..."); + await api.login(); + await waitForConnect; + rl.close(); + + console.log("✓ Connected successfully!\n"); + + // Debug: Try to get device list directly (before refresh) + console.log("DEBUG: Trying getDeviceList directly..."); + const rawDevices = await api.getDeviceList(); + console.log(`DEBUG: getDeviceList returned ${rawDevices.length} devices`); + if (rawDevices.length > 0) { + console.log("DEBUG: First device:", JSON.stringify(rawDevices[0], null, 2)); + } + + console.log("\nDEBUG: Trying getStationList directly..."); + const rawStations = await api.getStationList(); + console.log(`DEBUG: getStationList returned ${rawStations.length} stations`); + if (rawStations.length > 0) { + console.log("DEBUG: First station:", JSON.stringify(rawStations[0], null, 2)); + } + + // Refresh data from server + console.log("\nRefreshing data from Eufy servers...\n"); + await api.refreshAllData(); + console.log("✓ Data refreshed!\n"); + + // Get all stations from cache + console.log("=== STATIONS ===\n"); + const hubs = api.getHubs(); + + for (const [sn, station] of Object.entries(hubs)) { + console.log(`Station: ${station.station_name}`); + console.log(` Model: ${station.station_model}`); + console.log(` Serial: ${station.station_sn}`); + console.log(` Type: ${station.device_type}`); + console.log(` SW Version: ${station.main_sw_version}`); + console.log(` HW Version: ${station.main_hw_version}`); + console.log(` P2P DID: ${station.p2p_did}`); + + if (station.params && station.params.length > 0) { + console.log(` Params (${station.params.length}):`); + for (const param of station.params) { + console.log(` [${param.param_type}]: ${param.param_value}`); + } + } + console.log(""); + } + + // Get all devices from cache + console.log("\n=== DEVICES ===\n"); + const devices = api.getDevices(); + + for (const [sn, device] of Object.entries(devices)) { + console.log(`Device: ${device.device_name}`); + console.log(` Model: ${device.device_model}`); + console.log(` Serial: ${device.device_sn}`); + console.log(` Type: ${device.device_type}`); + console.log(` Station: ${device.station_sn}`); + console.log(` SW Version: ${device.main_sw_version}`); + console.log(` HW Version: ${device.main_hw_version}`); + console.log(` WiFi SSID: ${device.wifi_ssid || "N/A"}`); + console.log(` Local IP: ${device.local_ip || "N/A"}`); + + if (device.params && device.params.length > 0) { + console.log(` Params (${device.params.length}):`); + for (const param of device.params) { + // Try to parse JSON values + let value = param.param_value; + try { + const parsed = JSON.parse(param.param_value); + value = JSON.stringify(parsed, null, 4).replace(/\n/g, "\n "); + } catch { + // Not JSON, use raw value + } + console.log(` [${param.param_type}]: ${value}`); + } + } + + // If this is the S4 (type 89), print extra info + if (device.device_type === 89) { + console.log(`\n *** THIS IS THE EUFYCAM S4 (T8172) ***`); + console.log(` Full raw device data:`); + console.log(JSON.stringify(device, null, 2)); + } + + console.log(""); + } + + console.log("\n=== DEVICE PROPERTY ANALYSIS ===\n"); + + // Check for S4 device (type 89) and verify it has timezone + guard mode properties + const s4Device = Object.values(devices).find(d => d.device_type === 89); + if (s4Device) { + console.log("✓ S4 Device Found (Type 89):"); + console.log(` Model: ${s4Device.device_model}`); + console.log(` Serial: ${s4Device.device_sn}`); + console.log(` Name: ${s4Device.device_name}`); + console.log(` Station: ${s4Device.station_sn}`); + + // Check for timezone param (1249) + const tzParam = s4Device.params?.find(p => p.param_type === 1249); + console.log(` Timezone Property (1249): ${tzParam ? '✓ PRESENT - ' + tzParam.param_value : '✗ MISSING'}`); + + // Check for guard mode param (1224) + const gmParam = s4Device.params?.find(p => p.param_type === 1224); + console.log(` Guard Mode Property (1224): ${gmParam ? '✓ PRESENT - ' + gmParam.param_value : '✗ MISSING'}`); + + console.log(`\n All params for S4 (${s4Device.params?.length || 0} total):`); + s4Device.params?.forEach(p => { + console.log(` - Type ${p.param_type}: ${p.param_value}`); + }); + } else { + console.log("✗ S4 Device (Type 89) NOT FOUND in your account"); + } + + console.log("\n=== SUMMARY ===\n"); + console.log(`Total Stations: ${Object.keys(hubs).length}`); + console.log(`Total Devices: ${Object.keys(devices).length}`); + + // List device types found + const types = new Map(); + for (const [sn, device] of Object.entries(devices)) { + types.set(device.device_type, device.device_model); + } + console.log(`\nDevice Types Found:`); + for (const [type, model] of types) { + console.log(` Type ${type}: ${model}`); + } + + } catch (error) { + console.error("Error:", error); + + if (error instanceof Error) { + if (error.message.includes("captcha")) { + console.log("\n⚠️ Captcha required - you may need to log in via the Eufy app first"); + } else if (error.message.includes("verify")) { + console.log("\n⚠️ 2FA verification required - run again after receiving code"); + } + } + } +} + +main(); diff --git a/scripts/test_camera_p2p_flow.ts b/scripts/test_camera_p2p_flow.ts new file mode 100644 index 00000000..607c1f3c --- /dev/null +++ b/scripts/test_camera_p2p_flow.ts @@ -0,0 +1,111 @@ +import { DeviceType } from "../src/http/types"; +import { CommandType } from "../src/p2p/types"; +import { ParameterHelper } from "../src/http/parameter"; +import { EventEmitter } from "events"; + +// --- Argument Parsing --- +const args = process.argv.slice(2); +const deviceTypeArg = args[0] ? parseInt(args[0]) : DeviceType.EUFYCAM_S4; // Default to S4 (89) +const deviceSnArg = args[1] || "T8172DEMO"; +const stationSnArg = args[2] || "T8030DEMO"; + +console.log(`Running P2P Flow Test with:`); +console.log(` Device Type: ${deviceTypeArg}`); +console.log(` Device SN: ${deviceSnArg}`); +console.log(` Station SN: ${stationSnArg}`); +console.log("---------------------------------------------------"); + +interface Logger { + trace(message: string, ...args: any[]): void; + debug(message: string, ...args: any[]): void; + info(message: string, ...args: any[]): void; + warn(message: string, ...args: any[]): void; + error(message: string, ...args: any[]): void; +} + +// Mock Logger +const mockLogger = { + debug: () => { }, + info: () => { }, + warn: () => { }, + error: console.error, + trace: () => { }, +} as unknown as Logger; + +// Mock Station +class MockStation extends EventEmitter { + public rawStation: any; + + constructor() { + super(); + this.rawStation = { + station_sn: stationSnArg, + devices: [ + { + device_sn: deviceSnArg, + device_name: "Test Camera", + device_channel: 1, + device_type: deviceTypeArg + } + ] + }; + } + + public getSerial() { return stationSnArg; } + public isIntegratedDevice() { return false; } // Assuming non-integrated for general P2P flow + public getDeviceType() { return DeviceType.HB3; } // Defaulting to HB3 as host + + public _getDeviceSerial(channel: number) { + if (channel === 1) return deviceSnArg; + return ""; + } + + public _handleCameraInfoParameters(devices: any, channel: number, type: number, value: string) { + const device_sn = this._getDeviceSerial(channel); + if (device_sn !== "") { + if (!devices[device_sn]) { + devices[device_sn] = {}; + } + + const parsedValue = ParameterHelper.readValue(device_sn, type, value, mockLogger as any); + console.log(`readValue(sn=${device_sn}, type=${type}, value=${value}) = ${parsedValue}`); + + if (parsedValue !== undefined) { + devices[device_sn][type] = { + value: parsedValue, + source: "p2p" + }; + } + } + } +} + +async function runTest() { + console.log("Testing P2P Parameter Handling..."); + + // Test Case: Receiving Battery Level (Command 1101) + // 1101 is CMD_GET_BATTERY in CommandType (src/p2p/types.ts). + const CMD_BATTERY = CommandType.CMD_GET_BATTERY; + + // We can also test CMD_MOTION_SENSOR_PIR_SENSITIVITY (1204) if applicable, + // but sticking to battery as a universal baseline. + + const station = new MockStation(); + const devices: { [key: string]: any } = {}; + + console.log(`\nSimulating incoming P2P command ${CMD_BATTERY} (CMD_GET_BATTERY) with value "90"...`); + + // Simulate typical P2P values + // Battery = 90 (string "90") + station._handleCameraInfoParameters(devices, 1, CMD_BATTERY, "90"); + + if (devices[deviceSnArg] && devices[deviceSnArg][CMD_BATTERY]) { + console.log(`SUCCESS: Battery level parsed: ${devices[deviceSnArg][CMD_BATTERY].value}`); + } else { + console.error("FAILURE: Battery level NOT parsed"); + } + + console.log("\nDone."); +} + +runTest(); diff --git a/scripts/test_camera_properties.ts b/scripts/test_camera_properties.ts new file mode 100644 index 00000000..9cdea13d --- /dev/null +++ b/scripts/test_camera_properties.ts @@ -0,0 +1,61 @@ +import { DeviceType, DeviceProperties, StationProperties, StationCommands, DeviceCommands } from "../src/http/types"; +import { Device as DeviceClass } from "../src/http/device"; + +// --- Argument Parsing --- +const args = process.argv.slice(2); +// Default to S4 (89) if no arg provided +const typeArgRaw = args[0]; +const deviceType = typeArgRaw ? parseInt(typeArgRaw) : DeviceType.EUFYCAM_S4; + +console.log(`Testing Configuration for Device Type: ${deviceType}`); +console.log("---------------------------------------------------"); + +// Check if it's a known DeviceType name +const typeName = Object.keys(DeviceType).find(key => DeviceType[key as keyof typeof DeviceType] === deviceType); +if (typeName) { + console.log(`Device Type Name: ${typeName}`); +} else { + console.warn(`WARNING: Unknown DeviceType enum value: ${deviceType}`); +} + +// Check Device Properties +const deviceProps = DeviceProperties[deviceType]; +if (deviceProps) { + console.log(`✅ DeviceProperties found. Count: ${Object.keys(deviceProps).length}`); +} else { + console.error(`❌ DeviceProperties is UNDEFINED!`); +} + +// Check Station Properties +const stationProps = StationProperties[deviceType]; +if (stationProps) { + console.log(`✅ StationProperties found. Count: ${Object.keys(stationProps).length}`); +} else { + console.error(`❌ StationProperties is UNDEFINED!`); +} + +// Check Device Commands +const deviceCmds = DeviceCommands[deviceType]; +if (deviceCmds) { + console.log(`✅ DeviceCommands found. Count: ${deviceCmds.length}`); +} else { + console.error(`❌ DeviceCommands is UNDEFINED!`); +} + +// Check Station Commands +const stationCmds = StationCommands[deviceType]; +if (stationCmds) { + console.log(`✅ StationCommands found. Count: ${stationCmds.length}`); +} else { + console.error(`❌ StationCommands is UNDEFINED!`); +} + +// Check Device Class identification +console.log("\n--- Device Class Classifications ---"); +console.log(`isCamera(${deviceType}): ${DeviceClass.isCamera(deviceType)}`); +console.log(`isOutdoorPanAndTiltCamera(${deviceType}): ${DeviceClass.isOutdoorPanAndTiltCamera(deviceType)}`); +console.log(`isSoloCameras(${deviceType}): ${DeviceClass.isSoloCameras(deviceType)}`); +console.log(`isIntegratedDeviceBySn("..."): (Depends on SN format check, skipping specific SN check)`); +console.log(`hasBattery(${deviceType}): ${DeviceClass.hasBattery(deviceType)}`); + +console.log("\nTest Complete."); diff --git a/scripts/verify-devices.ts b/scripts/verify-devices.ts new file mode 100644 index 00000000..f2b1f33e --- /dev/null +++ b/scripts/verify-devices.ts @@ -0,0 +1,236 @@ +/** + * Device Recognition Verification Test Script + * + * This script connects to the Eufy API and verifies that all devices + * are correctly recognized by the system's device classification functions. + * + * Usage: + * npx ts-node --transpile-only scripts/verify-devices.ts [country] + */ + +/// +declare const process: NodeJS.Process; + +import { HTTPApi } from "../src/http/api"; +import { Device, Camera } from "../src/http/device"; +import { DeviceType } from "../src/http/types"; +import readline from "readline"; + +interface TestResult { + device: string; + model: string; + type: number; + typeName: string; + tests: { + name: string; + expected: boolean; + actual: boolean; + passed: boolean; + }[]; + allPassed: boolean; +} + +// Map of device types to their expected classifications +const expectedClassifications: Record = { + // Floodlight Camera 8425 (T8425) - HAS PTZ + 47: { isCamera: true, hasBattery: false, isPanAndTilt: true }, + + // eufyCam S4 (T8172) + 89: { isCamera: true, hasBattery: true, isPanAndTilt: true, isOutdoorPanAndTilt: true }, + + // Video Doorbell E340 (T8214) + 94: { isCamera: true, hasBattery: true, isPanAndTilt: false }, + + // Indoor Cam C220 V2 (T8W11C) + 10010: { isCamera: true, hasBattery: false, isPanAndTilt: true, isIndoorCamera: true }, + + // SmartTrack Link (T87B0) - Note: has battery but not in hasBattery() function (pre-existing issue) + 157: { isCamera: false, hasBattery: false, isPanAndTilt: false }, +}; + +async function main() { + const args = process.argv.slice(2); + + if (args.length < 2) { + console.log("Usage: npx ts-node --transpile-only scripts/verify-devices.ts [country]"); + process.exit(1); + } + + const username = args[0]; + const password = args[1]; + const country = args[2] || "US"; + + console.log(`\n${"=".repeat(60)}`); + console.log(" EUFY DEVICE RECOGNITION VERIFICATION TEST"); + console.log(`${"=".repeat(60)}\n`); + console.log(`Country: ${country}`); + console.log(`Username: ${username}\n`); + + try { + // Initialize and login + console.log("Connecting to Eufy API..."); + const api = await HTTPApi.initialize(country, username, password); + + // Interactive handling for captcha and 2FA using API events (no external changes) + const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); + const question = (q: string) => new Promise((res) => rl.question(q, (ans) => res(ans.trim()))); + + api.on("captcha request", async (captchaId: string, item: string) => { + console.log("\nAPI requires captcha verification."); + console.log("Captcha item:", item); + const code = await question("Enter captcha code: "); + console.log("Submitting captcha and re-attempting login..."); + await api.login({ captcha: { captchaId: captchaId, captchaCode: code }, force: false }); + }); + + api.on("tfa request", async () => { + console.log("\nAPI requested 2FA verification (email/SMS)."); + let verified = false; + while (!verified) { + const code = await question("Enter verification code: "); + console.log("Submitting 2FA code..."); + try { + await api.login({ verifyCode: code, force: false }); + console.log("2FA verification successful!"); + verified = true; + } catch (err) { + console.error("2FA verification failed. Please check the code and try again."); + } + } + }); + + // Wait for the API to confirm connection (handles interactive flows) + const waitForConnect = new Promise((resolve, reject) => { + api.once("connect", () => resolve()); + api.once("connection error", (err: Error) => reject(err)); + }); + + console.log("Logging in..."); + await api.login(); + await waitForConnect; + rl.close(); + + console.log("✓ Connected successfully!\n"); + + // Refresh data + console.log("Refreshing device data..."); + await api.refreshAllData(); + console.log("✓ Data refreshed!\n"); + + const devices = api.getDevices(); + const results: TestResult[] = []; + let totalPassed = 0; + let totalFailed = 0; + + console.log(`${"=".repeat(60)}`); + console.log(" DEVICE TESTS"); + console.log(`${"=".repeat(60)}\n`); + + for (const [sn, device] of Object.entries(devices)) { + const type = device.device_type; + const typeName = DeviceType[type] || `UNKNOWN(${type})`; + const model = device.device_model; + const name = device.device_name; + + console.log(`📷 ${name} (${model})`); + console.log(` Type: ${type} (${typeName})`); + console.log(` Serial: ${sn}`); + console.log(` Tests:`); + + const testResult: TestResult = { + device: name, + model: model, + type: type, + typeName: typeName, + tests: [], + allPassed: true + }; + + // Run classification tests + const tests = [ + { name: "isCamera", fn: () => Device.isCamera(type), expected: expectedClassifications[type]?.isCamera }, + { name: "hasBattery", fn: () => Device.hasBattery(type), expected: expectedClassifications[type]?.hasBattery }, + { name: "isPanAndTiltCamera", fn: () => Device.isPanAndTiltCamera(type), expected: expectedClassifications[type]?.isPanAndTilt }, + { name: "isOutdoorPanAndTiltCamera", fn: () => Device.isOutdoorPanAndTiltCamera(type), expected: expectedClassifications[type]?.isOutdoorPanAndTilt }, + { name: "isIndoorCamera", fn: () => Device.isIndoorCamera(type), expected: expectedClassifications[type]?.isIndoorCamera }, + ]; + + for (const test of tests) { + const actual = test.fn(); + const expected = test.expected; + + // If we have an expected value, check it; otherwise just report actual + if (expected !== undefined) { + const passed = actual === expected; + const icon = passed ? "✅" : "❌"; + console.log(` ${icon} ${test.name}: ${actual} (expected: ${expected})`); + + testResult.tests.push({ + name: test.name, + expected: expected, + actual: actual, + passed: passed + }); + + if (passed) { + totalPassed++; + } else { + totalFailed++; + testResult.allPassed = false; + } + } else { + console.log(` ℹ️ ${test.name}: ${actual}`); + testResult.tests.push({ + name: test.name, + expected: actual, // No expectation, just report + actual: actual, + passed: true + }); + } + } + + results.push(testResult); + console.log(""); + } + + // Summary + console.log(`${"=".repeat(60)}`); + console.log(" SUMMARY"); + console.log(`${"=".repeat(60)}\n`); + + console.log(`Total Devices Tested: ${Object.keys(devices).length}`); + console.log(`Tests Passed: ${totalPassed}`); + console.log(`Tests Failed: ${totalFailed}`); + console.log(""); + + // Device type coverage + console.log("Device Types Found:"); + for (const result of results) { + const status = result.allPassed ? "✅" : "❌"; + console.log(` ${status} Type ${result.type}: ${result.typeName} (${result.model})`); + } + + // Final status + console.log(""); + if (totalFailed === 0) { + console.log("🎉 ALL TESTS PASSED!"); + } else { + console.log(`⚠️ ${totalFailed} TEST(S) FAILED - Review the results above`); + } + + // Exit with appropriate code + process.exit(totalFailed > 0 ? 1 : 0); + + } catch (error) { + console.error("Error:", error); + process.exit(1); + } +} + +main(); From 8eda17b8672b0d3e1d9a588dc41f1dab7ee4d012 Mon Sep 17 00:00:00 2001 From: melsaid Date: Wed, 17 Dec 2025 19:06:16 +0000 Subject: [PATCH 13/13] Push notification fix --- src/http/device.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/http/device.ts b/src/http/device.ts index fea85afd..0c3e2273 100644 --- a/src/http/device.ts +++ b/src/http/device.ts @@ -2360,7 +2360,7 @@ export class SoloCamera extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { // HB3 check removed if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -2450,7 +2450,7 @@ export class IndoorCamera extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { // HB3 check removed if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -2608,7 +2608,7 @@ export class DoorbellCamera extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { // HB3 check removed if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -2829,7 +2829,7 @@ export class FloodlightCamera extends Camera { public processPushNotification(station: Station, message: PushMessage, eventDurationSeconds: number): void { super.processPushNotification(station, message, eventDurationSeconds); - if (message.type !== undefined && message.event_type !== undefined && message.msg_type !== DeviceType.HB3) { + if (message.type !== undefined && message.event_type !== undefined) { // HB3 check removed if (message.device_sn === this.getSerial()) { try { loadEventImage(station, this.api, this, message, this.pictureEventTimeouts); @@ -4628,4 +4628,4 @@ export class UnknownDevice extends Device { return "unknown"; } -} \ No newline at end of file +}