eufy-security-client 3.7.2 → 3.8.0-dev.6
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 +27 -0
- package/build/eufysecurity.js +17 -3
- package/build/eufysecurity.js.map +1 -1
- package/build/http/api.js +1 -1
- package/build/http/api.js.map +1 -1
- package/build/http/device.d.ts +14 -0
- package/build/http/device.js +101 -7
- package/build/http/device.js.map +1 -1
- package/build/http/parameter.js +1 -1
- package/build/http/parameter.js.map +1 -1
- package/build/http/station.js +94 -26
- package/build/http/station.js.map +1 -1
- package/build/http/types.d.ts +11 -0
- package/build/http/types.js +553 -2
- package/build/http/types.js.map +1 -1
- package/build/http/utils.d.ts +2 -2
- package/build/http/utils.js +5 -5
- package/build/http/utils.js.map +1 -1
- package/build/p2p/session.js +14 -2
- package/build/p2p/session.js.map +1 -1
- package/build/p2p/utils.js +1 -0
- package/build/p2p/utils.js.map +1 -1
- package/build/push/service.js +9 -1
- package/build/push/service.js.map +1 -1
- package/build/push/types.d.ts +3 -1
- package/build/push/types.js +2 -0
- package/build/push/types.js.map +1 -1
- package/coverage/clover.xml +13095 -10477
- package/coverage/coverage-final.json +31 -21
- package/coverage/lcov-report/index.html +65 -50
- package/coverage/lcov.info +25692 -20604
- package/package.json +7 -3
- package/scripts/cut_release.sh +2 -0
- package/scripts/generate_changelog.sh +93 -0
- package/.idea/eufy-security-client.iml +0 -12
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -7
- package/a.ts +0 -61
- package/bin/act +0 -0
- package/coverage/lcov-report/error.ts.html +0 -871
- package/coverage/lcov-report/logging.ts.html +0 -598
- package/dont-care.js +0 -101
package/README.md
CHANGED
|
@@ -23,6 +23,12 @@ The development of this shared library was inspired by the work of the following
|
|
|
23
23
|
|
|
24
24
|
Credits go to them as well.
|
|
25
25
|
|
|
26
|
+
## Unknown device?
|
|
27
|
+
|
|
28
|
+
If you see a `New unknown device detected` warning in your logs, your device is not yet supported. You can help us add support for it by [reporting it](https://github.com/bropat/eufy-security-client/issues/new?template=unknown_device.yml). See the [guide](docs/reporting_unknown_devices.md) for details on how to extract the log.
|
|
29
|
+
|
|
30
|
+
## Support
|
|
31
|
+
|
|
26
32
|
If you appreciate my work and progress and want to support me, you can do it here:
|
|
27
33
|
|
|
28
34
|
[](https://ko-fi.com/E1E332Q6Z)
|
|
@@ -105,6 +111,27 @@ Instructions aimed at maintainers for deploying a new version: [Deployment](docs
|
|
|
105
111
|
|
|
106
112
|
## Changelog
|
|
107
113
|
|
|
114
|
+
### 3.8.0 (2026-03-01)
|
|
115
|
+
|
|
116
|
+
* Feature: Add support for Smart Lock E20 (T85V0) by @worldjoe/@max246 in https://github.com/bropat/eufy-security-client/pull/803
|
|
117
|
+
* Feature: Add support for Smart Lock C33 (T85L0) by @max246 in https://github.com/bropat/eufy-security-client/pull/804
|
|
118
|
+
* Feature: Add support for locks C30 & E330 by @max246 in https://github.com/bropat/eufy-security-client/pull/806
|
|
119
|
+
* Feature: Add support for Camera S40 (T8172) by @lenoxys in https://github.com/bropat/eufy-security-client/pull/807
|
|
120
|
+
* Feature: Add support for Motion Sensor E20 (T90M0) and Sirene E20 (T90R0) by @max246 in https://github.com/bropat/eufy-security-client/pull/808
|
|
121
|
+
* Feature: Add support for SoloCam E42 (T8173) by @lenoxys in https://github.com/bropat/eufy-security-client/pull/809
|
|
122
|
+
* Feature: Add support for 4G LTE Cam S330 (T86P2) by @lenoxys in https://github.com/bropat/eufy-security-client/pull/821
|
|
123
|
+
* Feature: Add support for C220 V3 by @max246 in https://github.com/bropat/eufy-security-client/pull/823
|
|
124
|
+
* Feature: Add debug message for new device and reporting guide by @max246 in https://github.com/bropat/eufy-security-client/pull/825
|
|
125
|
+
* Fix: Fix T8214 and T8425 livestream by @lenoxys in https://github.com/bropat/eufy-security-client/pull/793
|
|
126
|
+
* Fix: C210 preset support by @tomc128 in https://github.com/bropat/eufy-security-client/pull/811
|
|
127
|
+
* Fix: Mock timezone in getTimezoneGMTString test by @nick-pape in https://github.com/bropat/eufy-security-client/pull/814
|
|
128
|
+
* Fix: Restore missing CAMERA_S4 (T8172) StationProperties and StationCommands entries by @lenoxys in https://github.com/bropat/eufy-security-client/pull/819
|
|
129
|
+
* Fix: Fix start date by @max246 in https://github.com/bropat/eufy-security-client/pull/816
|
|
130
|
+
* Chore: Upgrade qs from 6.14.2 to 6.15.0 by @max246 in https://github.com/bropat/eufy-security-client/pull/802
|
|
131
|
+
* Chore: Upgrade date-and-time from 4.2.0 to 4.3.0 by @max246 in https://github.com/bropat/eufy-security-client/pull/815
|
|
132
|
+
* Chore: Add dev publish and enforce target branch workflows by @lenoxys in https://github.com/bropat/eufy-security-client/pull/818
|
|
133
|
+
* Chore: Add more testing and format check task by @max246 in https://github.com/bropat/eufy-security-client/pull/822
|
|
134
|
+
|
|
108
135
|
### 3.7.2 (2026-02-16)
|
|
109
136
|
* Fix: Revert due to failure to communicate with HB3 https://github.com/bropat/eufy-security-client/pull/790
|
|
110
137
|
* Fix: 2FA login by @lenoxys in https://github.com/bropat/eufy-security-client/pull/789
|
package/build/eufysecurity.js
CHANGED
|
@@ -702,6 +702,16 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
702
702
|
new_device = device_1.LockKeypad.getInstance(this.api, device, deviceConfig);
|
|
703
703
|
}
|
|
704
704
|
else {
|
|
705
|
+
logging_1.rootMainLogger.warn(`New unknown device detected`, {
|
|
706
|
+
device_type: device.device_type,
|
|
707
|
+
device_sn: device.device_sn,
|
|
708
|
+
device_name: device.device_name,
|
|
709
|
+
device_model: device.device_model,
|
|
710
|
+
station_sn: device.station_sn,
|
|
711
|
+
main_sw_version: device.main_sw_version,
|
|
712
|
+
main_hw_version: device.main_hw_version,
|
|
713
|
+
params: device.params,
|
|
714
|
+
});
|
|
705
715
|
new_device = device_1.UnknownDevice.getInstance(this.api, device, deviceConfig);
|
|
706
716
|
}
|
|
707
717
|
promises.push(new_device.then((device) => {
|
|
@@ -2019,7 +2029,8 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
2019
2029
|
!device.isLockWifiT8506() &&
|
|
2020
2030
|
!device.isLockWifiT8502() &&
|
|
2021
2031
|
!device.isLockWifiT8510P() &&
|
|
2022
|
-
!device.isLockWifiT8520P()
|
|
2032
|
+
!device.isLockWifiT8520P() &&
|
|
2033
|
+
!device.isLockWifiT85L0()) ||
|
|
2023
2034
|
(result.customData !== undefined &&
|
|
2024
2035
|
result.customData.property !== undefined &&
|
|
2025
2036
|
device.isSmartSafe() &&
|
|
@@ -2029,7 +2040,8 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
2029
2040
|
(device.isLockWifiT8506() ||
|
|
2030
2041
|
device.isLockWifiT8502() ||
|
|
2031
2042
|
device.isLockWifiT8510P() ||
|
|
2032
|
-
device.isLockWifiT8520P()
|
|
2043
|
+
device.isLockWifiT8520P() ||
|
|
2044
|
+
device.isLockWifiT85L0()) &&
|
|
2033
2045
|
result.command_type !== types_2.CommandType.CMD_DOORLOCK_SET_PUSH_MODE)) {
|
|
2034
2046
|
if (device.hasProperty(result.customData.property.name)) {
|
|
2035
2047
|
const metadata = device.getPropertyMetadata(result.customData.property.name);
|
|
@@ -2801,7 +2813,9 @@ class EufySecurity extends tiny_typed_emitter_1.TypedEmitter {
|
|
|
2801
2813
|
if ((device.isLockWifiT8506() ||
|
|
2802
2814
|
device.isLockWifiT8502() ||
|
|
2803
2815
|
device.isLockWifiT8510P() ||
|
|
2804
|
-
device.isLockWifiT8520P()
|
|
2816
|
+
device.isLockWifiT8520P() ||
|
|
2817
|
+
device.isLockWifiT8531() ||
|
|
2818
|
+
device.isLockWifiT85L0()) &&
|
|
2805
2819
|
user.password_list.length > 0) {
|
|
2806
2820
|
for (const entry of user.password_list) {
|
|
2807
2821
|
if (entry.password_type === types_1.UserPasswordType.PIN) {
|