eufy-security-client 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/build/error.js +2 -2
- package/build/error.js.map +1 -1
- package/build/eufysecurity.js +34 -19
- package/build/eufysecurity.js.map +1 -1
- package/build/http/api.d.ts +0 -1
- package/build/http/api.js +27 -5
- package/build/http/api.js.map +1 -1
- package/build/http/device.d.ts +27 -28
- package/build/http/device.js +197 -172
- package/build/http/device.js.map +1 -1
- package/build/http/interfaces.d.ts +3 -2
- package/build/http/station.d.ts +2 -2
- package/build/http/station.js +10 -10
- package/build/http/station.js.map +1 -1
- package/build/http/types.d.ts +3 -0
- package/build/http/types.js +71 -16
- package/build/http/types.js.map +1 -1
- package/build/http/utils.d.ts +0 -5
- package/build/interfaces.d.ts +4 -1
- package/build/p2p/ble.d.ts +0 -1
- package/build/p2p/interfaces.d.ts +2 -5
- package/build/p2p/models.d.ts +0 -1
- package/build/p2p/session.d.ts +4 -1
- package/build/p2p/session.js +70 -28
- package/build/p2p/session.js.map +1 -1
- package/build/p2p/talkback.d.ts +0 -2
- package/build/p2p/types.d.ts +0 -1
- package/build/p2p/utils.d.ts +3 -5
- package/build/p2p/utils.js +20 -11
- package/build/p2p/utils.js.map +1 -1
- package/build/push/models.d.ts +2 -0
- package/build/push/models.js.map +1 -1
- package/build/push/parser.d.ts +0 -1
- package/build/push/service.js +4 -7
- package/build/push/service.js.map +1 -1
- package/build/push/types.d.ts +1 -0
- package/build/push/types.js +1 -0
- package/build/push/types.js.map +1 -1
- package/build/push/utils.d.ts +0 -1
- package/build/push/utils.js +3 -3
- package/build/push/utils.js.map +1 -1
- package/build/utils.d.ts +0 -1
- package/build/utils.js +4 -4
- package/build/utils.js.map +1 -1
- package/package.json +18 -18
package/README.md
CHANGED
|
@@ -80,6 +80,30 @@ Please use GitHub issues for this.
|
|
|
80
80
|
|
|
81
81
|
## Changelog
|
|
82
82
|
|
|
83
|
+
### 3.1.0 (2024-08-27)
|
|
84
|
+
|
|
85
|
+
* (bropat) **Breaking Change** Requires node version >= 20.0.0
|
|
86
|
+
* (martijnpoppen) NEW: add deviceConfig with simultaneousDetections option (#494)
|
|
87
|
+
* (PhilippEngler) added StationTimeZoneProperty (#472)
|
|
88
|
+
* (martijnpoppen) FIX: HB3 Doorbell Known Face detection not coming trough and Doorbell Ringing (#495)
|
|
89
|
+
* (bropat/lenoxys) Added ability to disable automatic cloud polling (#533)
|
|
90
|
+
* (bropat/PhilippEngler) Added ability to choose listening port of p2p station communication (#473)
|
|
91
|
+
* (bropat) Added vehicleDetected property to Floodlight Cam E340 (T8425)
|
|
92
|
+
* (bropat) Implemented runaway limit during parsing of p2p message data (infinite loop detection)
|
|
93
|
+
* (bropat) Added new EufySecurity options enableEmbeddedPKCS1Support (possible workaround for issue #487)
|
|
94
|
+
* (bropat) Added more logging about the initiation of P2P connections
|
|
95
|
+
* (bropat) Added more authentication log for info level
|
|
96
|
+
* (bropat) Improved livestream handling
|
|
97
|
+
* (PhilippEngler) update T8416 support (#535)
|
|
98
|
+
* (PhilippEngler) update T8170 support (#536)
|
|
99
|
+
* (bassrock) fix(bool): convert numeric to boolean (#523)
|
|
100
|
+
* (bropat) Fixed issue #482
|
|
101
|
+
* (bropat) Fixed an unhandled case that led to a infinite loop when parsing p2p messages
|
|
102
|
+
* (bropat) Fixed possible incorrect initiation of a P2P reconnection
|
|
103
|
+
* (bropat) Fixed some more property parsing
|
|
104
|
+
* (bropat) Possible fix for some locks missing some metadata
|
|
105
|
+
* (bropat) Updated versions of the package dependencies
|
|
106
|
+
|
|
83
107
|
### 3.0.0 (2024-03-03)
|
|
84
108
|
|
|
85
109
|
* (bropat) **Breaking Change** New modular logging implementation
|
package/build/error.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
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.
|
|
3
|
+
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;
|
|
4
|
+
exports.ensureError = ensureError;
|
|
4
5
|
class BaseError extends Error {
|
|
5
6
|
context;
|
|
6
7
|
constructor(message, options = {}) {
|
|
@@ -22,7 +23,6 @@ function ensureError(value) {
|
|
|
22
23
|
const error = new Error(`This value was thrown as is, not through an Error: ${stringified}`);
|
|
23
24
|
return error;
|
|
24
25
|
}
|
|
25
|
-
exports.ensureError = ensureError;
|
|
26
26
|
class InvalidCountryCodeError extends BaseError {
|
|
27
27
|
constructor(message, options = {}) {
|
|
28
28
|
super(message, options);
|
package/build/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
|
package/build/eufysecurity.js
CHANGED
|
@@ -132,6 +132,14 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
132
132
|
if (this.config.acceptInvitations === undefined) {
|
|
133
133
|
this.config.acceptInvitations = false;
|
|
134
134
|
}
|
|
135
|
+
if (this.config.enableEmbeddedPKCS1Support === undefined) {
|
|
136
|
+
this.config.enableEmbeddedPKCS1Support = false;
|
|
137
|
+
}
|
|
138
|
+
if (this.config.deviceConfig === undefined) {
|
|
139
|
+
this.config.deviceConfig = {
|
|
140
|
+
simultaneousDetections: true
|
|
141
|
+
};
|
|
142
|
+
}
|
|
135
143
|
if (this.config.persistentDir === undefined) {
|
|
136
144
|
this.config.persistentDir = path.resolve(__dirname, "../../..");
|
|
137
145
|
}
|
|
@@ -335,6 +343,7 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
335
343
|
this.stations[hub.station_sn].update(hub);
|
|
336
344
|
if (!this.stations[hub.station_sn].isConnected() && !this.stations[hub.station_sn].isEnergySavingDevice() && this.stations[hub.station_sn].isP2PConnectableDevice()) {
|
|
337
345
|
this.stations[hub.station_sn].setConnectionType(this.config.p2pConnectionSetup);
|
|
346
|
+
logging_1.rootMainLogger.debug(`Updating station cloud data - initiate station connection to get local data over p2p`, { stationSN: hub.station_sn });
|
|
338
347
|
this.stations[hub.station_sn].connect();
|
|
339
348
|
}
|
|
340
349
|
this.getStorageInfo(hub.station_sn);
|
|
@@ -445,6 +454,7 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
445
454
|
const station = await this.getStation(stationSN);
|
|
446
455
|
if (station.isP2PConnectableDevice()) {
|
|
447
456
|
station.setConnectionType(p2pConnectionType);
|
|
457
|
+
logging_1.rootMainLogger.debug(`Explicit request for p2p connection to the station`, { stationSN: station.getSerial() });
|
|
448
458
|
await station.connect();
|
|
449
459
|
}
|
|
450
460
|
}
|
|
@@ -601,6 +611,7 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
601
611
|
const deviceSNs = Object.keys(this.devices);
|
|
602
612
|
const newDeviceSNs = Object.keys(devices);
|
|
603
613
|
const promises = [];
|
|
614
|
+
const deviceConfig = this.config.deviceConfig;
|
|
604
615
|
for (const device of Object.values(devices)) {
|
|
605
616
|
if (deviceSNs.includes(device.device_sn)) {
|
|
606
617
|
this.updateDevice(device);
|
|
@@ -610,58 +621,58 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
610
621
|
this.devicesLoaded = (0, utils_1.waitForEvent)(this.loadingEmitter, "devices loaded");
|
|
611
622
|
let new_device;
|
|
612
623
|
if (device_1.Device.isIndoorCamera(device.device_type)) {
|
|
613
|
-
new_device = device_1.IndoorCamera.getInstance(this.api, device);
|
|
624
|
+
new_device = device_1.IndoorCamera.getInstance(this.api, device, deviceConfig);
|
|
614
625
|
}
|
|
615
626
|
else if (device_1.Device.isSoloCameras(device.device_type)) {
|
|
616
|
-
new_device = device_1.SoloCamera.getInstance(this.api, device);
|
|
627
|
+
new_device = device_1.SoloCamera.getInstance(this.api, device, deviceConfig);
|
|
617
628
|
}
|
|
618
629
|
else if (device_1.Device.isLockWifiVideo(device.device_type)) {
|
|
619
|
-
new_device = device_1.DoorbellLock.getInstance(this.api, device);
|
|
630
|
+
new_device = device_1.DoorbellLock.getInstance(this.api, device, deviceConfig);
|
|
620
631
|
}
|
|
621
632
|
else if (device_1.Device.isBatteryDoorbell(device.device_type)) {
|
|
622
|
-
new_device = device_1.BatteryDoorbellCamera.getInstance(this.api, device);
|
|
633
|
+
new_device = device_1.BatteryDoorbellCamera.getInstance(this.api, device, deviceConfig);
|
|
623
634
|
}
|
|
624
635
|
else if (device_1.Device.isWiredDoorbell(device.device_type) || device_1.Device.isWiredDoorbellDual(device.device_type)) {
|
|
625
|
-
new_device = device_1.WiredDoorbellCamera.getInstance(this.api, device);
|
|
636
|
+
new_device = device_1.WiredDoorbellCamera.getInstance(this.api, device, deviceConfig);
|
|
626
637
|
}
|
|
627
638
|
else if (device_1.Device.isFloodLight(device.device_type)) {
|
|
628
|
-
new_device = device_1.FloodlightCamera.getInstance(this.api, device);
|
|
639
|
+
new_device = device_1.FloodlightCamera.getInstance(this.api, device, deviceConfig);
|
|
629
640
|
}
|
|
630
641
|
else if (device_1.Device.isWallLightCam(device.device_type)) {
|
|
631
|
-
new_device = device_1.WallLightCam.getInstance(this.api, device);
|
|
642
|
+
new_device = device_1.WallLightCam.getInstance(this.api, device, deviceConfig);
|
|
632
643
|
}
|
|
633
644
|
else if (device_1.Device.isGarageCamera(device.device_type)) {
|
|
634
|
-
new_device = device_1.GarageCamera.getInstance(this.api, device);
|
|
645
|
+
new_device = device_1.GarageCamera.getInstance(this.api, device, deviceConfig);
|
|
635
646
|
}
|
|
636
647
|
else if (device_1.Device.isSmartDrop(device.device_type)) {
|
|
637
|
-
new_device = device_1.SmartDrop.getInstance(this.api, device);
|
|
648
|
+
new_device = device_1.SmartDrop.getInstance(this.api, device, deviceConfig);
|
|
638
649
|
}
|
|
639
650
|
else if (device_1.Device.isCamera(device.device_type)) {
|
|
640
|
-
new_device = device_1.Camera.getInstance(this.api, device);
|
|
651
|
+
new_device = device_1.Camera.getInstance(this.api, device, deviceConfig);
|
|
641
652
|
}
|
|
642
653
|
else if (device_1.Device.isLock(device.device_type)) {
|
|
643
|
-
new_device = device_1.Lock.getInstance(this.api, device);
|
|
654
|
+
new_device = device_1.Lock.getInstance(this.api, device, deviceConfig);
|
|
644
655
|
}
|
|
645
656
|
else if (device_1.Device.isMotionSensor(device.device_type)) {
|
|
646
|
-
new_device = device_1.MotionSensor.getInstance(this.api, device);
|
|
657
|
+
new_device = device_1.MotionSensor.getInstance(this.api, device, deviceConfig);
|
|
647
658
|
}
|
|
648
659
|
else if (device_1.Device.isEntrySensor(device.device_type)) {
|
|
649
|
-
new_device = device_1.EntrySensor.getInstance(this.api, device);
|
|
660
|
+
new_device = device_1.EntrySensor.getInstance(this.api, device, deviceConfig);
|
|
650
661
|
}
|
|
651
662
|
else if (device_1.Device.isKeyPad(device.device_type)) {
|
|
652
|
-
new_device = device_1.Keypad.getInstance(this.api, device);
|
|
663
|
+
new_device = device_1.Keypad.getInstance(this.api, device, deviceConfig);
|
|
653
664
|
}
|
|
654
665
|
else if (device_1.Device.isSmartSafe(device.device_type)) {
|
|
655
|
-
new_device = device_1.SmartSafe.getInstance(this.api, device);
|
|
666
|
+
new_device = device_1.SmartSafe.getInstance(this.api, device, deviceConfig);
|
|
656
667
|
}
|
|
657
668
|
else if (device_1.Device.isSmartTrack(device.device_type)) {
|
|
658
|
-
new_device = device_1.Tracker.getInstance(this.api, device);
|
|
669
|
+
new_device = device_1.Tracker.getInstance(this.api, device, deviceConfig);
|
|
659
670
|
}
|
|
660
671
|
else if (device_1.Device.isLockKeypad(device.device_type)) {
|
|
661
|
-
new_device = device_1.LockKeypad.getInstance(this.api, device);
|
|
672
|
+
new_device = device_1.LockKeypad.getInstance(this.api, device, deviceConfig);
|
|
662
673
|
}
|
|
663
674
|
else {
|
|
664
|
-
new_device = device_1.UnknownDevice.getInstance(this.api, device);
|
|
675
|
+
new_device = device_1.UnknownDevice.getInstance(this.api, device, deviceConfig);
|
|
665
676
|
}
|
|
666
677
|
promises.push(new_device.then((device) => {
|
|
667
678
|
try {
|
|
@@ -714,6 +725,7 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
714
725
|
this.getStation(device.getStationSerial()).then((station) => {
|
|
715
726
|
if (!station.isConnected() && station.isP2PConnectableDevice()) {
|
|
716
727
|
station.setConnectionType(this.config.p2pConnectionSetup);
|
|
728
|
+
logging_1.rootMainLogger.debug(`Initiate first station connection to get data over p2p`, { stationSN: station.getSerial() });
|
|
717
729
|
station.connect();
|
|
718
730
|
}
|
|
719
731
|
}).catch((err) => {
|
|
@@ -752,7 +764,10 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
752
764
|
});
|
|
753
765
|
if (this.refreshEufySecurityCloudTimeout !== undefined)
|
|
754
766
|
clearTimeout(this.refreshEufySecurityCloudTimeout);
|
|
755
|
-
|
|
767
|
+
if (this.config.pollingIntervalMinutes > 0)
|
|
768
|
+
this.refreshEufySecurityCloudTimeout = setTimeout(() => { this.refreshCloudData(); }, this.config.pollingIntervalMinutes * 60 * 1000);
|
|
769
|
+
else
|
|
770
|
+
logging_1.rootMainLogger.info(`Automatic retrieval of data from the cloud has been deactivated (config pollingIntervalMinutes: ${this.config.pollingIntervalMinutes})`);
|
|
756
771
|
}
|
|
757
772
|
close() {
|
|
758
773
|
for (const device_sn of this.cameraStationLivestreamTimeout.keys()) {
|