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.
Files changed (42) hide show
  1. package/README.md +27 -0
  2. package/build/eufysecurity.js +17 -3
  3. package/build/eufysecurity.js.map +1 -1
  4. package/build/http/api.js +1 -1
  5. package/build/http/api.js.map +1 -1
  6. package/build/http/device.d.ts +14 -0
  7. package/build/http/device.js +101 -7
  8. package/build/http/device.js.map +1 -1
  9. package/build/http/parameter.js +1 -1
  10. package/build/http/parameter.js.map +1 -1
  11. package/build/http/station.js +94 -26
  12. package/build/http/station.js.map +1 -1
  13. package/build/http/types.d.ts +11 -0
  14. package/build/http/types.js +553 -2
  15. package/build/http/types.js.map +1 -1
  16. package/build/http/utils.d.ts +2 -2
  17. package/build/http/utils.js +5 -5
  18. package/build/http/utils.js.map +1 -1
  19. package/build/p2p/session.js +14 -2
  20. package/build/p2p/session.js.map +1 -1
  21. package/build/p2p/utils.js +1 -0
  22. package/build/p2p/utils.js.map +1 -1
  23. package/build/push/service.js +9 -1
  24. package/build/push/service.js.map +1 -1
  25. package/build/push/types.d.ts +3 -1
  26. package/build/push/types.js +2 -0
  27. package/build/push/types.js.map +1 -1
  28. package/coverage/clover.xml +13095 -10477
  29. package/coverage/coverage-final.json +31 -21
  30. package/coverage/lcov-report/index.html +65 -50
  31. package/coverage/lcov.info +25692 -20604
  32. package/package.json +7 -3
  33. package/scripts/cut_release.sh +2 -0
  34. package/scripts/generate_changelog.sh +93 -0
  35. package/.idea/eufy-security-client.iml +0 -12
  36. package/.idea/modules.xml +0 -8
  37. package/.idea/vcs.xml +0 -7
  38. package/a.ts +0 -61
  39. package/bin/act +0 -0
  40. package/coverage/lcov-report/error.ts.html +0 -871
  41. package/coverage/lcov-report/logging.ts.html +0 -598
  42. 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
  [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](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
@@ -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) {