@homebridge-plugins/homebridge-eufy-security 0.0.1

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 (185) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/FUNDING.yml +1 -0
  3. package/LICENSE +176 -0
  4. package/README.md +67 -0
  5. package/config.schema.json +6 -0
  6. package/dist/accessories/AutoSyncStationAccessory.js +156 -0
  7. package/dist/accessories/AutoSyncStationAccessory.js.map +1 -0
  8. package/dist/accessories/BaseAccessory.js +247 -0
  9. package/dist/accessories/BaseAccessory.js.map +1 -0
  10. package/dist/accessories/CameraAccessory.js +431 -0
  11. package/dist/accessories/CameraAccessory.js.map +1 -0
  12. package/dist/accessories/Device.js +67 -0
  13. package/dist/accessories/Device.js.map +1 -0
  14. package/dist/accessories/EntrySensorAccessory.js +48 -0
  15. package/dist/accessories/EntrySensorAccessory.js.map +1 -0
  16. package/dist/accessories/LockAccessory.js +142 -0
  17. package/dist/accessories/LockAccessory.js.map +1 -0
  18. package/dist/accessories/MotionSensorAccessory.js +48 -0
  19. package/dist/accessories/MotionSensorAccessory.js.map +1 -0
  20. package/dist/accessories/SmartDropAccessory.js +145 -0
  21. package/dist/accessories/SmartDropAccessory.js.map +1 -0
  22. package/dist/accessories/StationAccessory.js +371 -0
  23. package/dist/accessories/StationAccessory.js.map +1 -0
  24. package/dist/config.js +25 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/controller/LocalLivestreamManager.js +116 -0
  27. package/dist/controller/LocalLivestreamManager.js.map +1 -0
  28. package/dist/controller/recordingDelegate.js +208 -0
  29. package/dist/controller/recordingDelegate.js.map +1 -0
  30. package/dist/controller/snapshotDelegate.js +345 -0
  31. package/dist/controller/snapshotDelegate.js.map +1 -0
  32. package/dist/controller/streamingDelegate.js +345 -0
  33. package/dist/controller/streamingDelegate.js.map +1 -0
  34. package/dist/index.js +11 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/interfaces.js +2 -0
  37. package/dist/interfaces.js.map +1 -0
  38. package/dist/media/Snapshot-Unavailable.png +0 -0
  39. package/dist/media/Snapshot-Unavailable.xcf +0 -0
  40. package/dist/media/Snapshot-black.png +0 -0
  41. package/dist/media/camera-disabled.png +0 -0
  42. package/dist/media/camera-offline.png +0 -0
  43. package/dist/media/media/Snapshot-Unavailable.png +0 -0
  44. package/dist/media/media/Snapshot-Unavailable.xcf +0 -0
  45. package/dist/media/media/Snapshot-black.png +0 -0
  46. package/dist/media/media/camera-disabled.png +0 -0
  47. package/dist/media/media/camera-offline.png +0 -0
  48. package/dist/platform.js +716 -0
  49. package/dist/platform.js.map +1 -0
  50. package/dist/settings.js +38 -0
  51. package/dist/settings.js.map +1 -0
  52. package/dist/utils/Talkback.js +92 -0
  53. package/dist/utils/Talkback.js.map +1 -0
  54. package/dist/utils/accessoriesStore.js +206 -0
  55. package/dist/utils/accessoriesStore.js.map +1 -0
  56. package/dist/utils/configTypes.js +35 -0
  57. package/dist/utils/configTypes.js.map +1 -0
  58. package/dist/utils/ffmpeg.js +843 -0
  59. package/dist/utils/ffmpeg.js.map +1 -0
  60. package/dist/utils/interfaces.js +8 -0
  61. package/dist/utils/interfaces.js.map +1 -0
  62. package/dist/utils/utils.js +44 -0
  63. package/dist/utils/utils.js.map +1 -0
  64. package/dist/version.js +2 -0
  65. package/dist/version.js.map +1 -0
  66. package/eslint.config.mjs +18 -0
  67. package/homebridge-eufy-security.png +0 -0
  68. package/homebridge-ui/public/app.js +225 -0
  69. package/homebridge-ui/public/assets/devices/4g_lte_starlight_large.jpg +0 -0
  70. package/homebridge-ui/public/assets/devices/BATTERY_DOORBELL_C30.png +0 -0
  71. package/homebridge-ui/public/assets/devices/BATTERY_DOORBELL_C31.png +0 -0
  72. package/homebridge-ui/public/assets/devices/batterydoorbell1080p_large.jpg +0 -0
  73. package/homebridge-ui/public/assets/devices/batterydoorbell2kdual_large.jpg +0 -0
  74. package/homebridge-ui/public/assets/devices/batterydoorbell_e340_large.png +0 -0
  75. package/homebridge-ui/public/assets/devices/eufy-security-client.png +0 -0
  76. package/homebridge-ui/public/assets/devices/eufycam2_large.png +0 -0
  77. package/homebridge-ui/public/assets/devices/eufycam2c_large.jpg +0 -0
  78. package/homebridge-ui/public/assets/devices/eufycam2cpro_large.jpg +0 -0
  79. package/homebridge-ui/public/assets/devices/eufycam2pro_large.jpg +0 -0
  80. package/homebridge-ui/public/assets/devices/eufycam3_large.jpg +0 -0
  81. package/homebridge-ui/public/assets/devices/eufycam3c_large.jpg +0 -0
  82. package/homebridge-ui/public/assets/devices/eufycam3pro_large.png +0 -0
  83. package/homebridge-ui/public/assets/devices/eufycam_large.jpg +0 -0
  84. package/homebridge-ui/public/assets/devices/eufycame330_large.jpg +0 -0
  85. package/homebridge-ui/public/assets/devices/floodlight2_large.jpg +0 -0
  86. package/homebridge-ui/public/assets/devices/floodlight2pro_large.jpg +0 -0
  87. package/homebridge-ui/public/assets/devices/floodlight_large.jpg +0 -0
  88. package/homebridge-ui/public/assets/devices/floodlightcame340_large.jpg +0 -0
  89. package/homebridge-ui/public/assets/devices/garage_camera_t8452_large.jpg +0 -0
  90. package/homebridge-ui/public/assets/devices/homebase2_large.png +0 -0
  91. package/homebridge-ui/public/assets/devices/homebase3_large.png +0 -0
  92. package/homebridge-ui/public/assets/devices/homebase_large.jpg +0 -0
  93. package/homebridge-ui/public/assets/devices/homebasemini_large.jpg +0 -0
  94. package/homebridge-ui/public/assets/devices/indoorcamC210_large.png +0 -0
  95. package/homebridge-ui/public/assets/devices/indoorcamC220_large.png +0 -0
  96. package/homebridge-ui/public/assets/devices/indoorcamE30_large.png +0 -0
  97. package/homebridge-ui/public/assets/devices/indoorcamc120_large.png +0 -0
  98. package/homebridge-ui/public/assets/devices/indoorcammini_large.jpg +0 -0
  99. package/homebridge-ui/public/assets/devices/indoorcamp24_large.png +0 -0
  100. package/homebridge-ui/public/assets/devices/indoorcams350_large.jpg +0 -0
  101. package/homebridge-ui/public/assets/devices/keypad_large.png +0 -0
  102. package/homebridge-ui/public/assets/devices/minibase_chime_T8023_large.jpg +0 -0
  103. package/homebridge-ui/public/assets/devices/motionsensor_large.png +0 -0
  104. package/homebridge-ui/public/assets/devices/sensor_large.png +0 -0
  105. package/homebridge-ui/public/assets/devices/smartdrop_t8790_large.png +0 -0
  106. package/homebridge-ui/public/assets/devices/smartlock_t8500_large.png +0 -0
  107. package/homebridge-ui/public/assets/devices/smartlock_t8500_wifibridge_large.jpg +0 -0
  108. package/homebridge-ui/public/assets/devices/smartlock_t8503_large.png +0 -0
  109. package/homebridge-ui/public/assets/devices/smartlock_t8504_large.jpg +0 -0
  110. package/homebridge-ui/public/assets/devices/smartlock_t8510P_t8520P_large.png +0 -0
  111. package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8502_large.png +0 -0
  112. package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8506_large.png +0 -0
  113. package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8520_large.png +0 -0
  114. package/homebridge-ui/public/assets/devices/smartlock_touch_t8510_large.png +0 -0
  115. package/homebridge-ui/public/assets/devices/smartlock_touch_t8510_wifibridge_large.jpg +0 -0
  116. package/homebridge-ui/public/assets/devices/smartlock_video_t8530_large.png +0 -0
  117. package/homebridge-ui/public/assets/devices/smartlockwifibridge_t8021_large.jpg +0 -0
  118. package/homebridge-ui/public/assets/devices/smartsafe_s10_t7400_large.png +0 -0
  119. package/homebridge-ui/public/assets/devices/smartsafe_s12_t7401_large.png +0 -0
  120. package/homebridge-ui/public/assets/devices/smarttrack_card_t87B2_large.png +0 -0
  121. package/homebridge-ui/public/assets/devices/smarttrack_link_t87B0_large.png +0 -0
  122. package/homebridge-ui/public/assets/devices/solocamc210_large.jpg +0 -0
  123. package/homebridge-ui/public/assets/devices/solocamc35_large.png +0 -0
  124. package/homebridge-ui/public/assets/devices/solocame20_large.jpg +0 -0
  125. package/homebridge-ui/public/assets/devices/solocame30_large.png +0 -0
  126. package/homebridge-ui/public/assets/devices/solocame40_large.jpg +0 -0
  127. package/homebridge-ui/public/assets/devices/solocaml20_large.jpg +0 -0
  128. package/homebridge-ui/public/assets/devices/solocams220_large.jpg +0 -0
  129. package/homebridge-ui/public/assets/devices/solocams340_large.png +0 -0
  130. package/homebridge-ui/public/assets/devices/solocams40_large.jpg +0 -0
  131. package/homebridge-ui/public/assets/devices/soloindoorcamc24_large.jpg +0 -0
  132. package/homebridge-ui/public/assets/devices/solooutdoorcamc22_large.png +0 -0
  133. package/homebridge-ui/public/assets/devices/solooutdoorcamc24_large.jpg +0 -0
  134. package/homebridge-ui/public/assets/devices/unknown.png +0 -0
  135. package/homebridge-ui/public/assets/devices/walllight_s100_large.jpg +0 -0
  136. package/homebridge-ui/public/assets/devices/walllight_s120_large.jpg +0 -0
  137. package/homebridge-ui/public/assets/devices/wireddoorbell1080p_large.jpg +0 -0
  138. package/homebridge-ui/public/assets/devices/wireddoorbell2k_large.png +0 -0
  139. package/homebridge-ui/public/assets/devices/wireddoorbelldual_large.jpg +0 -0
  140. package/homebridge-ui/public/assets/icons/attach.svg +1 -0
  141. package/homebridge-ui/public/assets/icons/battery_0.svg +1 -0
  142. package/homebridge-ui/public/assets/icons/battery_1.svg +1 -0
  143. package/homebridge-ui/public/assets/icons/battery_2.svg +1 -0
  144. package/homebridge-ui/public/assets/icons/battery_3.svg +1 -0
  145. package/homebridge-ui/public/assets/icons/battery_4.svg +1 -0
  146. package/homebridge-ui/public/assets/icons/battery_5.svg +1 -0
  147. package/homebridge-ui/public/assets/icons/battery_6.svg +1 -0
  148. package/homebridge-ui/public/assets/icons/bolt.svg +1 -0
  149. package/homebridge-ui/public/assets/icons/bug-report.svg +1 -0
  150. package/homebridge-ui/public/assets/icons/copy.svg +1 -0
  151. package/homebridge-ui/public/assets/icons/delete.svg +1 -0
  152. package/homebridge-ui/public/assets/icons/download.svg +1 -0
  153. package/homebridge-ui/public/assets/icons/info.svg +1 -0
  154. package/homebridge-ui/public/assets/icons/inventory.svg +1 -0
  155. package/homebridge-ui/public/assets/icons/refresh.svg +1 -0
  156. package/homebridge-ui/public/assets/icons/satellite_alt.svg +1 -0
  157. package/homebridge-ui/public/assets/icons/settings.svg +1 -0
  158. package/homebridge-ui/public/assets/icons/settings_backup_restore.svg +1 -0
  159. package/homebridge-ui/public/assets/icons/solar_power.svg +1 -0
  160. package/homebridge-ui/public/assets/icons/warning.svg +1 -0
  161. package/homebridge-ui/public/components/device-card.js +162 -0
  162. package/homebridge-ui/public/components/guard-modes.js +88 -0
  163. package/homebridge-ui/public/components/number-input.js +121 -0
  164. package/homebridge-ui/public/components/select.js +73 -0
  165. package/homebridge-ui/public/components/toggle.js +68 -0
  166. package/homebridge-ui/public/index.html +27 -0
  167. package/homebridge-ui/public/services/api.js +214 -0
  168. package/homebridge-ui/public/services/config.js +144 -0
  169. package/homebridge-ui/public/style.css +775 -0
  170. package/homebridge-ui/public/utils/countries.js +73 -0
  171. package/homebridge-ui/public/utils/device-images.js +89 -0
  172. package/homebridge-ui/public/utils/helpers.js +87 -0
  173. package/homebridge-ui/public/views/dashboard.js +226 -0
  174. package/homebridge-ui/public/views/device-detail.js +610 -0
  175. package/homebridge-ui/public/views/diagnostics.js +296 -0
  176. package/homebridge-ui/public/views/login.js +636 -0
  177. package/homebridge-ui/public/views/settings.js +192 -0
  178. package/homebridge-ui/public/views/unsupported-detail.js +296 -0
  179. package/homebridge-ui/server.js +1327 -0
  180. package/media/Snapshot-Unavailable.png +0 -0
  181. package/media/Snapshot-Unavailable.xcf +0 -0
  182. package/media/Snapshot-black.png +0 -0
  183. package/media/camera-disabled.png +0 -0
  184. package/media/camera-offline.png +0 -0
  185. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * This is the name of the platform that users will use to register the plugin in the Homebridge config.json
3
+ */
4
+ export const PLATFORM_NAME = 'EufySecurity';
5
+ /**
6
+ * This must match the name of your plugin as defined the package.json
7
+ */
8
+ export const PLUGIN_NAME = '@homebridge-plugins/homebridge-eufy-security';
9
+ // HomeKit Secure Video segment length, in milliseconds. HomeKit only supports this value currently.
10
+ export const PROTECT_HKSV_SEGMENT_LENGTH = 4000;
11
+ // HomeKit Secure Video maximum event recording errors to accept before resetting a connection to the Protect controller.
12
+ export const PROTECT_HKSV_MAX_EVENT_ERRORS = 3;
13
+ // HomeKit Secure Video timeshift buffer default length, in milliseconds. This defines how far back in time we can look when we see a motion event.
14
+ export const PROTECT_HKSV_TIMESHIFT_BUFFER_MAXLENGTH = PROTECT_HKSV_SEGMENT_LENGTH * 2;
15
+ // HomeKit Secure Video segment resolution, in milliseconds. This defines the resolution of our buffer. It should never be less than 100ms or greater than 1500ms.
16
+ export const PROTECT_HKSV_SEGMENT_RESOLUTION = 100;
17
+ // Additional headroom for bitrates beyond what HomeKit is requesting when streaming to improve quality with a minor additional bandwidth cost.
18
+ export const PROTECT_HOMEKIT_STREAMING_HEADROOM = 64;
19
+ // HomeKit prefers a video streaming I-frame interval of 2 seconds.
20
+ export const PROTECT_HOMEKIT_IDR_INTERVAL = 2;
21
+ // Minimum required GPU memory on a Raspberry Pi for hardware acceleration.
22
+ export const PROTECT_RPI_GPU_MINIMUM = 128;
23
+ // FFmpeg afftdn audio filter defaults - this setting uses FFTs to reduce noise in an audio signal by the number of decibels below.
24
+ export const PROTECT_FFMPEG_AUDIO_FILTER_FFTNR = 90;
25
+ // Maximum age of a snapshot in seconds.
26
+ export const PROTECT_SNAPSHOT_CACHE_MAXAGE = 90;
27
+ // How often, in seconds, should we heartbeat FFmpeg in two-way audio sessions. This should be less than 5 seconds, which is FFmpeg's input timeout interval.
28
+ export const PROTECT_TWOWAY_HEARTBEAT_INTERVAL = 3;
29
+ export const SnapshotUnavailablePath = '/media/Snapshot-Unavailable.png';
30
+ // Seconds – cache age threshold for the fast-path snapshot return.
31
+ export const SNAPSHOT_CACHE_FRESH_SECONDS = 15;
32
+ // Seconds – balanced-mode cache age threshold before fetching a new snapshot.
33
+ export const SNAPSHOT_CACHE_BALANCED_SECONDS = 30;
34
+ // Milliseconds – don't overwrite a recent stream snapshot with a cloud image.
35
+ export const SNAPSHOT_CLOUD_SKIP_MS = 30 * 1000;
36
+ // Milliseconds – maximum time to wait for a snapshot fetch before timing out.
37
+ export const SNAPSHOT_FETCH_TIMEOUT_MS = 30 * 1000;
38
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,8CAA8C,CAAC;AAE1E,oGAAoG;AACpG,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,yHAAyH;AACzH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,mJAAmJ;AACnJ,MAAM,CAAC,MAAM,uCAAuC,GAAG,2BAA2B,GAAG,CAAC,CAAC;AAEvF,kKAAkK;AAClK,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,+IAA+I;AAC/I,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAErD,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,mIAAmI;AACnI,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAEpD,wCAAwC;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,6JAA6J;AAC7J,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAEzE,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAElD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { Duplex } from 'stream';
2
+ import { log } from './utils.js';
3
+ export class TalkbackStream extends Duplex {
4
+ eufyClient;
5
+ cameraName;
6
+ cameraSN;
7
+ cacheData = [];
8
+ talkbackStarted = false;
9
+ stopTalkbackTimeout;
10
+ targetStream;
11
+ constructor(platform, camera) {
12
+ super();
13
+ this.eufyClient = platform.eufyClient;
14
+ this.cameraName = camera.getName();
15
+ this.cameraSN = camera.getSerial();
16
+ this.eufyClient.on('station talkback start', this.onTalkbackStarted);
17
+ this.eufyClient.on('station talkback stop', this.onTalkbackStopped);
18
+ }
19
+ onTalkbackStarted(station, device, stream) {
20
+ if (device.getSerial() !== this.cameraSN) {
21
+ return;
22
+ }
23
+ log.debug(this.cameraName, 'talkback started event from station ' + station.getName());
24
+ if (this.targetStream) {
25
+ this.unpipe(this.targetStream);
26
+ }
27
+ this.targetStream = stream;
28
+ this.pipe(this.targetStream);
29
+ }
30
+ onTalkbackStopped(station, device) {
31
+ if (device.getSerial() !== this.cameraSN) {
32
+ return;
33
+ }
34
+ log.debug(this.cameraName, 'talkback stopped event from station ' + station.getName());
35
+ if (this.targetStream) {
36
+ this.unpipe(this.targetStream);
37
+ }
38
+ this.targetStream = undefined;
39
+ }
40
+ stopTalkbackStream() {
41
+ // remove event listeners
42
+ this.eufyClient.removeListener('station talkback start', this.onTalkbackStarted);
43
+ this.eufyClient.removeListener('station talkback stop', this.onTalkbackStopped);
44
+ this.stopTalkback();
45
+ this.unpipe();
46
+ this.destroy();
47
+ }
48
+ _read() {
49
+ let pushReturn = true;
50
+ while (this.cacheData.length > 0 && pushReturn) {
51
+ const data = this.cacheData.shift();
52
+ pushReturn = this.push(data);
53
+ }
54
+ }
55
+ _write(chunk, encoding, callback) {
56
+ if (this.stopTalkbackTimeout) {
57
+ clearTimeout(this.stopTalkbackTimeout);
58
+ }
59
+ this.stopTalkbackTimeout = setTimeout(() => {
60
+ this.stopTalkback();
61
+ }, 2000);
62
+ if (this.targetStream) {
63
+ this.push(chunk);
64
+ }
65
+ else {
66
+ this.cacheData.push(chunk);
67
+ this.startTalkback();
68
+ }
69
+ callback();
70
+ }
71
+ startTalkback() {
72
+ if (!this.talkbackStarted) {
73
+ this.talkbackStarted = true;
74
+ log.debug(this.cameraName, 'starting talkback');
75
+ this.eufyClient.startStationTalkback(this.cameraSN)
76
+ .catch(error => {
77
+ log.error(this.cameraName, 'talkback could not be started: ' + error);
78
+ });
79
+ }
80
+ }
81
+ stopTalkback() {
82
+ if (this.talkbackStarted) {
83
+ this.talkbackStarted = false;
84
+ log.debug(this.cameraName, 'stopping talkback');
85
+ this.eufyClient.stopStationTalkback(this.cameraSN)
86
+ .catch(error => {
87
+ log.error(this.cameraName, 'talkback could not be stopped: ' + error);
88
+ });
89
+ }
90
+ }
91
+ }
92
+ //# sourceMappingURL=Talkback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Talkback.js","sourceRoot":"","sources":["../../src/utils/Talkback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAI1C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,OAAO,cAAe,SAAQ,MAAM;IAEhC,UAAU,CAAe;IACzB,UAAU,CAAS;IACnB,QAAQ,CAAS;IAEjB,SAAS,GAAkB,EAAE,CAAC;IAC9B,eAAe,GAAG,KAAK,CAAC;IACxB,mBAAmB,CAAkB;IAErC,YAAY,CAAY;IAEhC,YAAY,QAA8B,EAAE,MAAc;QACxD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,wBAAwB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtE,CAAC;IAEO,iBAAiB,CAAC,OAAgB,EAAE,MAAc,EAAE,MAAgB;QAC1E,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,sCAAsC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAEO,iBAAiB,CAAC,OAAgB,EAAE,MAAc;QACxD,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,sCAAsC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IAEM,kBAAkB;QACvB,yBAAyB;QACzB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEhF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEQ,KAAK;QACZ,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACpC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEQ,MAAM,CAAC,KAAa,EAAE,QAAwB,EAAE,QAAoD;QAE3G,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QACD,QAAQ,EAAE,CAAC;IACb,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAChD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,iCAAiC,GAAG,KAAK,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC/C,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,iCAAiC,GAAG,KAAK,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,206 @@
1
+ import { Device, PropertyName, CommandName, DeviceType, } from 'eufy-security-client';
2
+ import fs from 'fs';
3
+ import { log } from './utils.js';
4
+ import { LIB_VERSION } from '../version.js';
5
+ /** Seconds between heartbeat writes so the UI can detect a running plugin. */
6
+ const HEARTBEAT_SEC = 60;
7
+ /**
8
+ * Manages the accessories.json file that the Eufy Plugin UI reads.
9
+ *
10
+ * Builds the station/device tree from live eufy-security-client objects
11
+ * and writes it to disk. A periodic heartbeat keeps `storedAt` fresh so
12
+ * the UI can detect whether the plugin is still running.
13
+ */
14
+ export class AccessoriesStore {
15
+ eufyClient;
16
+ config;
17
+ storagePath;
18
+ heartbeatInterval;
19
+ constructor(eufyClient, config, storagePath) {
20
+ this.eufyClient = eufyClient;
21
+ this.config = config;
22
+ this.storagePath = storagePath;
23
+ }
24
+ /** Write accessories.json immediately and start the heartbeat. */
25
+ async persistNow() {
26
+ this.cancelPending();
27
+ await this.persist();
28
+ this.startHeartbeat();
29
+ }
30
+ /** Stop the heartbeat. */
31
+ cancelPending() {
32
+ if (this.heartbeatInterval) {
33
+ clearInterval(this.heartbeatInterval);
34
+ this.heartbeatInterval = undefined;
35
+ }
36
+ }
37
+ /** Start a periodic heartbeat that rewrites accessories.json every HEARTBEAT_SEC seconds. */
38
+ startHeartbeat() {
39
+ if (this.heartbeatInterval) {
40
+ return; // already running
41
+ }
42
+ this.heartbeatInterval = setInterval(() => this.persist(), HEARTBEAT_SEC * 1000);
43
+ }
44
+ // ---------------------------------------------------------------------------
45
+ // Internal
46
+ // ---------------------------------------------------------------------------
47
+ async persist() {
48
+ try {
49
+ if (!this.eufyClient?.isConnected?.()) {
50
+ return;
51
+ }
52
+ const [stations, devices] = await Promise.all([
53
+ this.eufyClient.getStations(),
54
+ this.eufyClient.getDevices(),
55
+ ]);
56
+ // Group devices by their parent station serial
57
+ const devicesByStation = new Map();
58
+ for (const device of devices) {
59
+ const stationSN = device.getStationSerial();
60
+ if (!devicesByStation.has(stationSN)) {
61
+ devicesByStation.set(stationSN, []);
62
+ }
63
+ devicesByStation.get(stationSN).push(device);
64
+ }
65
+ const storedStations = [];
66
+ for (const station of stations) {
67
+ const stationType = station.getDeviceType();
68
+ const stationSerial = station.getSerial();
69
+ const isKnownStation = Device.isStation(stationType);
70
+ const stationRecord = {
71
+ uniqueId: stationSerial,
72
+ displayName: station.getName(),
73
+ type: stationType,
74
+ typename: DeviceType[stationType],
75
+ disabled: false,
76
+ devices: [],
77
+ properties: { ...station.getProperties() },
78
+ unsupported: false,
79
+ ignored: (this.config.ignoreStations ?? []).includes(stationSerial),
80
+ power: computePower(station.getProperties()),
81
+ };
82
+ try {
83
+ delete stationRecord.properties.picture;
84
+ }
85
+ catch { /* ignore */ }
86
+ if (!isKnownStation) {
87
+ if (!Device.isSupported(stationType)) {
88
+ stationRecord.unsupported = true;
89
+ }
90
+ else {
91
+ const hasMatchingDevice = devicesByStation.has(stationSerial);
92
+ if (hasMatchingDevice) {
93
+ stationRecord.standalone = true;
94
+ stationRecord.disabled = true;
95
+ if (Device.isLock(stationType) || Device.isDoorbell(stationType) || Device.isSmartDrop(stationType)) {
96
+ stationRecord.noSecurityControl = true;
97
+ }
98
+ }
99
+ else {
100
+ stationRecord.unsupported = true;
101
+ }
102
+ }
103
+ }
104
+ // Attach devices to this station
105
+ const stationDevices = devicesByStation.get(stationSerial) ?? [];
106
+ for (const device of stationDevices) {
107
+ const devType = device.getDeviceType();
108
+ const deviceRecord = {
109
+ uniqueId: device.getSerial(),
110
+ displayName: device.getName(),
111
+ type: devType,
112
+ typename: DeviceType[devType],
113
+ standalone: device.getSerial() === device.getStationSerial(),
114
+ hasBattery: device.hasBattery(),
115
+ isCamera: device.isCamera() || Device.isLockWifiVideo(devType),
116
+ isDoorbell: device.isDoorbell(),
117
+ isKeypad: device.isKeyPad(),
118
+ isMotionSensor: Device.isMotionSensor(devType),
119
+ isEntrySensor: Device.isEntrySensor(devType),
120
+ isLock: Device.isLock(devType),
121
+ isSmartDrop: Device.isSmartDrop(devType),
122
+ supportsRTSP: device.hasPropertyValue(PropertyName.DeviceRTSPStream),
123
+ supportsTalkback: device.hasCommand(CommandName.DeviceStartTalkback),
124
+ DeviceEnabled: device.hasProperty(PropertyName.DeviceEnabled),
125
+ DeviceMotionDetection: device.hasProperty(PropertyName.DeviceMotionDetection),
126
+ DeviceLight: device.hasProperty(PropertyName.DeviceLight),
127
+ DeviceChimeIndoor: device.hasProperty(PropertyName.DeviceChimeIndoor),
128
+ disabled: false,
129
+ properties: { ...device.getProperties() },
130
+ unsupported: !Device.isSupported(devType),
131
+ ignored: (this.config.ignoreDevices ?? []).includes(device.getSerial()),
132
+ power: computePower(device.getProperties()),
133
+ };
134
+ try {
135
+ delete deviceRecord.properties.picture;
136
+ }
137
+ catch { /* ignore */ }
138
+ if (stationRecord.unsupported) {
139
+ deviceRecord.unsupported = true;
140
+ }
141
+ stationRecord.devices.push(deviceRecord);
142
+ }
143
+ storedStations.push(stationRecord);
144
+ }
145
+ if (!fs.existsSync(this.storagePath)) {
146
+ fs.mkdirSync(this.storagePath, { recursive: true });
147
+ }
148
+ const filePath = this.storagePath + '/accessories.json';
149
+ const data = { version: LIB_VERSION, storedAt: new Date().toISOString(), stations: storedStations };
150
+ fs.writeFileSync(filePath, JSON.stringify(data));
151
+ log.debug(`Persisted ${storedStations.length} station(s) to accessories.json`);
152
+ }
153
+ catch (error) {
154
+ log.error(`Failed to write accessories.json: ${error}`);
155
+ }
156
+ }
157
+ }
158
+ /**
159
+ * Compute a unified power descriptor from a properties object.
160
+ * Works for both devices and stations.
161
+ */
162
+ function computePower(props) {
163
+ const power = { source: null, icon: null, label: null };
164
+ if (props.battery !== undefined) {
165
+ power.battery = props.battery;
166
+ }
167
+ else if (props.batteryLow !== undefined) {
168
+ power.batteryLow = props.batteryLow;
169
+ }
170
+ if (props.chargingStatus !== undefined) {
171
+ const cs = props.chargingStatus;
172
+ const isSolar = ((cs >> 2) & 1) === 1;
173
+ const isPlugSolar = ((cs >> 3) & 1) === 1;
174
+ const isUsb = (cs & 1) === 1;
175
+ if (isSolar || isPlugSolar) {
176
+ power.source = 'solar';
177
+ power.icon = 'solar_power.svg';
178
+ power.label = 'Solar Charging';
179
+ return power;
180
+ }
181
+ if (isUsb) {
182
+ power.source = 'plugged';
183
+ power.icon = 'bolt.svg';
184
+ power.label = 'Charging';
185
+ return power;
186
+ }
187
+ }
188
+ if (props.powerSource === 1) {
189
+ power.source = 'solar';
190
+ power.icon = 'solar_power.svg';
191
+ power.label = 'Solar';
192
+ }
193
+ else if (props.powerSource === 0) {
194
+ power.source = 'battery';
195
+ }
196
+ else if (power.battery === undefined && power.batteryLow === undefined) {
197
+ power.source = 'plugged';
198
+ power.icon = 'bolt.svg';
199
+ power.label = 'Plugged In';
200
+ }
201
+ else {
202
+ power.source = 'battery';
203
+ }
204
+ return power;
205
+ }
206
+ //# sourceMappingURL=accessoriesStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessoriesStore.js","sourceRoot":"","sources":["../../src/utils/accessoriesStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export var SnapshotHandlingMethod;
2
+ (function (SnapshotHandlingMethod) {
3
+ /** Let the plugin decide the best method (defaults to CloudOnly) */
4
+ SnapshotHandlingMethod[SnapshotHandlingMethod["Auto"] = 0] = "Auto";
5
+ /** Always fetch a fresh snapshot from the camera (highest battery drain) */
6
+ SnapshotHandlingMethod[SnapshotHandlingMethod["AlwaysFresh"] = 1] = "AlwaysFresh";
7
+ /** Return cached snapshot if recent, otherwise fetch fresh */
8
+ SnapshotHandlingMethod[SnapshotHandlingMethod["Balanced"] = 2] = "Balanced";
9
+ /** Always return cached/cloud snapshot (lowest battery drain) */
10
+ SnapshotHandlingMethod[SnapshotHandlingMethod["CloudOnly"] = 3] = "CloudOnly";
11
+ })(SnapshotHandlingMethod || (SnapshotHandlingMethod = {}));
12
+ export const DEFAULT_CAMERACONFIG_VALUES = {
13
+ name: '',
14
+ manufacturer: '',
15
+ model: '',
16
+ serialNumber: '',
17
+ firmwareRevision: '',
18
+ enableButton: true,
19
+ motionButton: true,
20
+ lightButton: true,
21
+ talkback: false,
22
+ talkbackChannels: 1,
23
+ hsvRecordingDuration: 90,
24
+ rtsp: false,
25
+ enableCamera: true,
26
+ snapshotHandlingMethod: SnapshotHandlingMethod.CloudOnly,
27
+ delayCameraSnapshot: false,
28
+ indoorChimeButton: false,
29
+ };
30
+ export const DEFAULT_VIDEOCONFIG_VALUES = {
31
+ probeSize: 16384,
32
+ vcodec: 'copy',
33
+ acodec: 'copy',
34
+ };
35
+ //# sourceMappingURL=configTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configTypes.js","sourceRoot":"","sources":["../../src/utils/configTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBASX;AATD,WAAY,sBAAsB;IAChC,oEAAoE;IACpE,mEAAQ,CAAA;IACR,4EAA4E;IAC5E,iFAAe,CAAA;IACf,8DAA8D;IAC9D,2EAAY,CAAA;IACZ,iEAAiE;IACjE,6EAAa,CAAA;AACf,CAAC,EATW,sBAAsB,KAAtB,sBAAsB,QASjC;AA2BD,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,CAAC;IACnB,oBAAoB,EAAE,EAAE;IACxB,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,IAAI;IAClB,sBAAsB,EAAE,sBAAsB,CAAC,SAAS;IACxD,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;CACzB,CAAC;AA8BF,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;CACf,CAAC"}