homebridge-eufy-security 2.2.4 → 2.3.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +39 -11
  2. package/README.md +26 -25
  3. package/dist/accessories/CameraAccessory.d.ts +55 -21
  4. package/dist/accessories/CameraAccessory.d.ts.map +1 -1
  5. package/dist/accessories/CameraAccessory.js +460 -214
  6. package/dist/accessories/CameraAccessory.js.map +1 -1
  7. package/dist/accessories/Device.d.ts +3 -3
  8. package/dist/accessories/Device.d.ts.map +1 -1
  9. package/dist/accessories/Device.js +15 -0
  10. package/dist/accessories/Device.js.map +1 -1
  11. package/dist/accessories/DoorbellCameraAccessory.d.ts +4 -1
  12. package/dist/accessories/DoorbellCameraAccessory.d.ts.map +1 -1
  13. package/dist/accessories/DoorbellCameraAccessory.js +65 -4
  14. package/dist/accessories/DoorbellCameraAccessory.js.map +1 -1
  15. package/dist/accessories/SmartLockAccessory.d.ts +2 -2
  16. package/dist/accessories/StationAccessory.d.ts +4 -0
  17. package/dist/accessories/StationAccessory.d.ts.map +1 -1
  18. package/dist/accessories/StationAccessory.js +64 -7
  19. package/dist/accessories/StationAccessory.js.map +1 -1
  20. package/dist/config.d.ts +4 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/controller/LocalLivestreamManager.d.ts +3 -8
  23. package/dist/controller/LocalLivestreamManager.d.ts.map +1 -1
  24. package/dist/controller/LocalLivestreamManager.js +4 -47
  25. package/dist/controller/LocalLivestreamManager.js.map +1 -1
  26. package/dist/controller/SnapshotManager.d.ts +1 -1
  27. package/dist/controller/SnapshotManager.d.ts.map +1 -1
  28. package/dist/controller/SnapshotManager.js +23 -1
  29. package/dist/controller/SnapshotManager.js.map +1 -1
  30. package/dist/controller/recordingDelegate.d.ts +29 -0
  31. package/dist/controller/recordingDelegate.d.ts.map +1 -0
  32. package/dist/controller/recordingDelegate.js +186 -0
  33. package/dist/controller/recordingDelegate.js.map +1 -0
  34. package/dist/controller/streamingDelegate.d.ts +6 -6
  35. package/dist/controller/streamingDelegate.d.ts.map +1 -1
  36. package/dist/controller/streamingDelegate.js +21 -60
  37. package/dist/controller/streamingDelegate.js.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/platform.d.ts +6 -0
  41. package/dist/platform.d.ts.map +1 -1
  42. package/dist/platform.js +112 -66
  43. package/dist/platform.js.map +1 -1
  44. package/dist/utils/EufyClientInteractor.d.ts +36 -0
  45. package/dist/utils/EufyClientInteractor.d.ts.map +1 -0
  46. package/dist/utils/EufyClientInteractor.js +357 -0
  47. package/dist/utils/EufyClientInteractor.js.map +1 -0
  48. package/dist/utils/Talkback.d.ts +0 -1
  49. package/dist/utils/Talkback.d.ts.map +1 -1
  50. package/dist/utils/configTypes.d.ts +15 -5
  51. package/dist/utils/configTypes.d.ts.map +1 -1
  52. package/dist/utils/experimental.d.ts +4 -0
  53. package/dist/utils/experimental.d.ts.map +1 -0
  54. package/dist/utils/experimental.js +49 -0
  55. package/dist/utils/experimental.js.map +1 -0
  56. package/dist/utils/ffmpeg.d.ts +30 -4
  57. package/dist/utils/ffmpeg.d.ts.map +1 -1
  58. package/dist/utils/ffmpeg.js +322 -30
  59. package/dist/utils/ffmpeg.js.map +1 -1
  60. package/dist/utils/interfaces.d.ts +13 -0
  61. package/dist/utils/interfaces.d.ts.map +1 -0
  62. package/dist/utils/interfaces.js +12 -0
  63. package/dist/utils/interfaces.js.map +1 -0
  64. package/homebridge-ui/configui/app/accessory.d.ts +1 -1
  65. package/homebridge-ui/configui/app/accessory.d.ts.map +1 -1
  66. package/homebridge-ui/configui/app/util/types.d.ts +2 -2
  67. package/homebridge-ui/configui/app/util/types.d.ts.map +1 -1
  68. package/homebridge-ui/configui/app/util/types.js +1 -1
  69. package/homebridge-ui/configui/app/util/types.js.map +1 -1
  70. package/homebridge-ui/plugin/utils/EufyClientInteractor.d.ts +36 -0
  71. package/homebridge-ui/plugin/utils/EufyClientInteractor.d.ts.map +1 -0
  72. package/homebridge-ui/plugin/utils/EufyClientInteractor.js +357 -0
  73. package/homebridge-ui/plugin/utils/EufyClientInteractor.js.map +1 -0
  74. package/homebridge-ui/plugin/utils/experimental.d.ts +4 -0
  75. package/homebridge-ui/plugin/utils/experimental.d.ts.map +1 -0
  76. package/homebridge-ui/plugin/utils/experimental.js +49 -0
  77. package/homebridge-ui/plugin/utils/experimental.js.map +1 -0
  78. package/homebridge-ui/plugin/utils/interfaces.d.ts +13 -0
  79. package/homebridge-ui/plugin/utils/interfaces.d.ts.map +1 -0
  80. package/homebridge-ui/plugin/utils/interfaces.js +12 -0
  81. package/homebridge-ui/plugin/utils/interfaces.js.map +1 -0
  82. package/homebridge-ui/plugin/utils/logger.d.ts +12 -0
  83. package/homebridge-ui/plugin/utils/logger.d.ts.map +1 -0
  84. package/homebridge-ui/plugin/utils/logger.js +36 -0
  85. package/homebridge-ui/plugin/utils/logger.js.map +1 -0
  86. package/homebridge-ui/public/3rdpartylicenses.txt +191 -6
  87. package/homebridge-ui/public/index.html +2 -2
  88. package/homebridge-ui/public/main.22a0c49e2138888f.js +1 -0
  89. package/homebridge-ui/public/polyfills.6050693665c0e882.js +1 -0
  90. package/homebridge-ui/public/styles.e02689e7df4304da.css +6 -0
  91. package/homebridge-ui/server.js +17 -1
  92. package/homebridge-ui/server.js.map +1 -1
  93. package/package.json +48 -46
  94. package/homebridge-ui/public/assets/devices/4g_lte_starlight_large.jpg +0 -0
  95. package/homebridge-ui/public/assets/devices/garage_camera_t8452_large.jpg +0 -0
  96. package/homebridge-ui/public/assets/devices/smartdrop_t8790_large.jpg +0 -0
  97. package/homebridge-ui/public/assets/devices/smartsafe_s10_t7400_large.jpg +0 -0
  98. package/homebridge-ui/public/assets/devices/smartsafe_s12_t7401_large.jpg +0 -0
  99. package/homebridge-ui/public/assets/devices/walllight_s100_large.jpg +0 -0
  100. package/homebridge-ui/public/main.0d25748cc9303f6b.js +0 -1
  101. package/homebridge-ui/public/polyfills.cdb21ff95fdea645.js +0 -1
  102. package/homebridge-ui/public/styles.021488511c20c432.css +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"streamingDelegate.d.ts","sourceRoot":"","sources":["../../src/plugin/controller/streamingDelegate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamingDelegate.d.ts","sourceRoot":"","sources":["../../src/plugin/controller/streamingDelegate.ts"],"names":[],"mappings":"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"}
@@ -28,60 +28,20 @@ class StreamingDelegate {
28
28
  this.cameraName = device.getName();
29
29
  this.cameraConfig = cameraConfig;
30
30
  this.videoConfig = cameraConfig.videoConfig;
31
- this.localLivestreamManager = new LocalLivestreamManager_1.LocalLivestreamManager(this.platform, this.device, this.cameraConfig.useCachedLocalLivestream, this.log);
31
+ this.localLivestreamManager = new LocalLivestreamManager_1.LocalLivestreamManager(this.platform, this.device, this.log);
32
32
  this.snapshotManager = new SnapshotManager_1.SnapshotManager(this.platform, this.device, this.cameraConfig, this.localLivestreamManager, this.log);
33
- this.api.on("shutdown" /* APIEvent.SHUTDOWN */, () => {
33
+ this.api.on("shutdown" /* SHUTDOWN */, () => {
34
34
  for (const session in this.ongoingSessions) {
35
35
  this.stopStream(session);
36
36
  }
37
37
  this.localLivestreamManager.stopLocalLiveStream();
38
38
  });
39
- let samplerate = 16 /* AudioStreamingSamplerate.KHZ_16 */;
40
- if (this.videoConfig.audioSampleRate === 8) {
41
- samplerate = 8 /* AudioStreamingSamplerate.KHZ_8 */;
42
- }
43
- else if (this.videoConfig.audioSampleRate === 24) {
44
- samplerate = 24 /* AudioStreamingSamplerate.KHZ_24 */;
45
- }
46
- this.log.debug(this.cameraName, `Audio sample rate set to ${samplerate} kHz.`);
47
- const options = {
48
- cameraStreamCount: this.videoConfig.maxStreams || 2,
49
- delegate: this,
50
- streamingOptions: {
51
- supportedCryptoSuites: [0 /* hap.SRTPCryptoSuites.AES_CM_128_HMAC_SHA1_80 */],
52
- video: {
53
- resolutions: [
54
- [320, 180, 30],
55
- [320, 240, 15],
56
- [320, 240, 30],
57
- [480, 270, 30],
58
- [480, 360, 30],
59
- [640, 360, 30],
60
- [640, 480, 30],
61
- [1280, 720, 30],
62
- [1280, 960, 30],
63
- [1920, 1080, 30],
64
- [1600, 1200, 30],
65
- ],
66
- codec: {
67
- profiles: [0 /* hap.H264Profile.BASELINE */, 1 /* hap.H264Profile.MAIN */, 2 /* hap.H264Profile.HIGH */],
68
- levels: [0 /* hap.H264Level.LEVEL3_1 */, 1 /* hap.H264Level.LEVEL3_2 */, 2 /* hap.H264Level.LEVEL4_0 */],
69
- },
70
- },
71
- audio: {
72
- twoWayAudio: this.cameraConfig.talkback,
73
- codecs: [
74
- {
75
- type: "AAC-eld" /* AudioStreamingCodecType.AAC_ELD */,
76
- samplerate: samplerate,
77
- /*type: AudioStreamingCodecType.OPUS,
78
- samplerate: AudioStreamingSamplerate.KHZ_24*/
79
- },
80
- ],
81
- },
82
- },
83
- };
84
- this.controller = new hap.CameraController(options);
39
+ }
40
+ setController(controller) {
41
+ this.controller = controller;
42
+ }
43
+ getLivestreamManager() {
44
+ return this.localLivestreamManager;
85
45
  }
86
46
  async handleSnapshotRequest(request, callback) {
87
47
  this.log.debug('handleSnapshotRequest');
@@ -98,6 +58,7 @@ class StreamingDelegate {
98
58
  }
99
59
  async prepareStream(request, callback) {
100
60
  const ipv6 = request.addressVersion === 'ipv6';
61
+ this.log.debug(this.cameraName, `stream prepare request with session id ${request.sessionID} was received.`);
101
62
  const options = {
102
63
  type: 'udp',
103
64
  ip: ipv6 ? '::' : '0.0.0.0',
@@ -138,12 +99,6 @@ class StreamingDelegate {
138
99
  this.pendingSessions.set(request.sessionID, sessionInfo);
139
100
  callback(undefined, response);
140
101
  }
141
- async prepareCachedStream() {
142
- if (!(0, utils_1.is_rtsp_ready)(this.device, this.cameraConfig, this.log)) {
143
- const proxyStream = await this.localLivestreamManager.getLocalLivestream();
144
- this.localLivestreamManager.stopProxyStream(proxyStream.id);
145
- }
146
- }
147
102
  async startStream(request, callback) {
148
103
  var _a, _b;
149
104
  var _c;
@@ -165,8 +120,9 @@ class StreamingDelegate {
165
120
  clearTimeout(activeSession.timeout);
166
121
  }
167
122
  activeSession.timeout = setTimeout(() => {
123
+ var _a;
168
124
  this.log.debug(this.cameraName, 'Device appears to be inactive. Stopping video stream.');
169
- this.controller.forceStopStreamingSession(request.sessionID);
125
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.forceStopStreamingSession(request.sessionID);
170
126
  this.stopStream(request.sessionID);
171
127
  }, request.video.rtcp_interval * 5 * 1000);
172
128
  });
@@ -175,8 +131,8 @@ class StreamingDelegate {
175
131
  const videoParams = await ffmpeg_1.FFmpegParameters.forVideo(this.videoConfig.debug);
176
132
  videoParams.setup(this.cameraConfig, request);
177
133
  videoParams.setRTPTarget(sessionInfo, request);
178
- const useAudio = (request.audio.codec === "OPUS" /* AudioStreamingCodecType.OPUS */
179
- || request.audio.codec === "AAC-eld" /* AudioStreamingCodecType.AAC_ELD */)
134
+ const useAudio = (request.audio.codec === "OPUS" /* OPUS */
135
+ || request.audio.codec === "AAC-eld" /* AAC_ELD */)
180
136
  && this.videoConfig.audio;
181
137
  if (!useAudio && this.videoConfig.audio) {
182
138
  this.log.warn(this.cameraName, `An unsupported audio codec (type: ${request.audio.codec}) was requested. Audio streaming will be omitted.`);
@@ -233,6 +189,9 @@ class StreamingDelegate {
233
189
  if (this.cameraConfig.talkback) {
234
190
  const talkbackParameters = await ffmpeg_1.FFmpegParameters.forAudio(this.videoConfig.debug);
235
191
  await talkbackParameters.setTalkbackInput(sessionInfo);
192
+ if (this.cameraConfig.talkbackChannels) {
193
+ talkbackParameters.setTalkbackChannels(this.cameraConfig.talkbackChannels);
194
+ }
236
195
  activeSession.talkbackStream = new Talkback_1.TalkbackStream(this.platform, this.device);
237
196
  activeSession.returnProcess = new ffmpeg_1.FFmpeg(`[${this.cameraName}] [Talkback Process]`, talkbackParameters, this.log);
238
197
  activeSession.returnProcess.on('error', (err) => {
@@ -262,10 +221,12 @@ class StreamingDelegate {
262
221
  }
263
222
  handleStreamRequest(request, callback) {
264
223
  switch (request.type) {
265
- case "start" /* StreamRequestTypes.START */:
224
+ case "start" /* START */:
225
+ this.log.debug(this.cameraName, `Received request to start stream with id ${request.sessionID}`);
226
+ this.log.debug(this.cameraName, `request data: ${JSON.stringify(request)}`);
266
227
  this.startStream(request, callback);
267
228
  break;
268
- case "reconfigure" /* StreamRequestTypes.RECONFIGURE */:
229
+ case "reconfigure" /* RECONFIGURE */:
269
230
  this.log.debug(this.cameraName, 'Received request to reconfigure: ' +
270
231
  request.video.width +
271
232
  ' x ' +
@@ -277,7 +238,7 @@ class StreamingDelegate {
277
238
  ' kbps (Ignored)', this.videoConfig.debug);
278
239
  callback();
279
240
  break;
280
- case "stop" /* StreamRequestTypes.STOP */:
241
+ case "stop" /* STOP */:
281
242
  this.log.debug(this.cameraName, 'Receive Apple HK Stop request' + JSON.stringify(request));
282
243
  this.stopStream(request.sessionID);
283
244
  callback();
@@ -1 +1 @@
1
- {"version":3,"file":"streamingDelegate.js","sourceRoot":"","sources":["../../src/plugin/controller/streamingDelegate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamingDelegate.js","sourceRoot":"","sources":["../../src/plugin/controller/streamingDelegate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { API } from 'homebridge';
2
+ declare const _default: (api: API) => void;
2
3
  /**
3
4
  * This method registers the platform with Homebridge
4
5
  */
5
- declare const _default: (api: API) => void;
6
6
  export = _default;
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAKjC;;GAEG;8BACY,GAAG;AAAlB,kBAEE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;8BAQlB,GAAG;AAHlB;;GAEG;AACH,kBAEE"}
@@ -1,5 +1,6 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
2
2
  import { EufySecurityPlatformConfig } from './config';
3
+ import { StationAccessory } from './accessories/StationAccessory';
3
4
  import { EufySecurity, Station } from 'eufy-security-client';
4
5
  export declare class EufySecurityPlatform implements DynamicPlatformPlugin {
5
6
  readonly hblog: Logger;
@@ -15,8 +16,12 @@ export declare class EufySecurityPlatform implements DynamicPlatformPlugin {
15
16
  readonly eufyPath: string;
16
17
  private activeAccessoryIds;
17
18
  private cleanCachedAccessoriesTimeout?;
19
+ private pluginConfigInteractor?;
20
+ private stations;
18
21
  constructor(hblog: Logger, config: PlatformConfig, api: API);
19
22
  private pluginSetup;
23
+ private tfaWarning;
24
+ private captchaWarning;
20
25
  private stationAdded;
21
26
  private deviceAdded;
22
27
  private processAccessory;
@@ -29,6 +34,7 @@ export declare class EufySecurityPlatform implements DynamicPlatformPlugin {
29
34
  private cleanCachedAccessories;
30
35
  private register_accessory;
31
36
  getStationById(id: string): Promise<Station>;
37
+ getStationAccessories(): StationAccessory[];
32
38
  private clean_config;
33
39
  private clean_config_after_init;
34
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/plugin/platform.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAYtD,OAAO,EACL,YAAY,EAIZ,OAAO,EAUR,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,oBAAqB,YAAW,qBAAqB;aAoB9C,KAAK,EAAE,MAAM;aAEb,GAAG,EAAE,GAAG;IArB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAE7E,UAAU,EAAG,YAAY,CAAC;IAGjC,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAC/C,MAAM,EAAE,0BAA0B,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAqB;IAEhC,GAAG,MAAC;IACX,OAAO,CAAC,QAAQ,CAAC;IAEjB,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,6BAA6B,CAAC,CAAiB;gBAGrC,KAAK,EAAE,MAAM,EAC7B,MAAM,EAAE,cAAc,EACN,GAAG,EAAE,GAAG;YA+HZ,WAAW;YAoDX,YAAY;YAoCZ,WAAW;IA0BzB,OAAO,CAAC,gBAAgB;YAyCV,cAAc;IAa5B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,kBAAkB;IAgInB,cAAc,CAAC,EAAE,EAAE,MAAM;IAIhC,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,uBAAuB;CAoDhC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/plugin/platform.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAItD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAQlE,OAAO,EACL,YAAY,EAIZ,OAAO,EAUR,MAAM,sBAAsB,CAAC;AAW9B,qBAAa,oBAAqB,YAAW,qBAAqB;aAwB9C,KAAK,EAAE,MAAM;aAEb,GAAG,EAAE,GAAG;IAzB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAE7E,UAAU,EAAG,YAAY,CAAC;IAGjC,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAC/C,MAAM,EAAE,0BAA0B,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAqB;IAEhC,GAAG,MAAC;IACX,OAAO,CAAC,QAAQ,CAAC;IAEjB,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,6BAA6B,CAAC,CAAiB;IAEvD,OAAO,CAAC,sBAAsB,CAAC,CAAuB;IAEtD,OAAO,CAAC,QAAQ,CAA0B;gBAGxB,KAAK,EAAE,MAAM,EAC7B,MAAM,EAAE,cAAc,EACN,GAAG,EAAE,GAAG;YA4HZ,WAAW;IA8DzB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,cAAc;YAQR,YAAY;YAoCZ,WAAW;IA0BzB,OAAO,CAAC,gBAAgB;YAyCV,cAAc;IAiB5B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,kBAAkB;IA4HnB,cAAc,CAAC,EAAE,EAAE,MAAM;IAIzB,qBAAqB,IAAI,gBAAgB,EAAE;IAIlD,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,uBAAuB;CAoDhC"}
package/dist/platform.js CHANGED
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
@@ -12,13 +35,17 @@ const CameraAccessory_1 = require("./accessories/CameraAccessory");
12
35
  const DoorbellCameraAccessory_1 = require("./accessories/DoorbellCameraAccessory");
13
36
  const SmartLockAccessory_1 = require("./accessories/SmartLockAccessory");
14
37
  const eufy_security_client_1 = require("eufy-security-client");
38
+ const bunyan_1 = __importDefault(require("bunyan"));
39
+ const bunyan_debug_stream_1 = __importDefault(require("bunyan-debug-stream"));
15
40
  const tslog_1 = require("tslog");
16
- const rotating_file_stream_1 = require("rotating-file-stream");
41
+ const rfs = __importStar(require("rotating-file-stream"));
17
42
  const fs_1 = __importDefault(require("fs"));
43
+ const EufyClientInteractor_1 = require("./utils/EufyClientInteractor");
44
+ const experimental_1 = require("./utils/experimental");
18
45
  class EufySecurityPlatform {
19
46
  constructor(hblog, config, api) {
20
- var _a, _b, _c, _d, _e, _f, _g, _h;
21
- var _j, _k, _l;
47
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
48
+ var _k, _l, _m, _o;
22
49
  this.hblog = hblog;
23
50
  this.api = api;
24
51
  this.Service = this.api.hap.Service;
@@ -26,64 +53,54 @@ class EufySecurityPlatform {
26
53
  // this is used to track restored cached accessories
27
54
  this.accessories = [];
28
55
  this.activeAccessoryIds = [];
56
+ this.stations = [];
29
57
  this.config = config;
30
58
  this.eufyPath = this.api.user.storagePath() + '/eufysecurity';
31
59
  if (!fs_1.default.existsSync(this.eufyPath)) {
32
60
  fs_1.default.mkdirSync(this.eufyPath);
33
61
  }
34
62
  const plugin = require('../package.json');
35
- const mainLogObj = {
36
- // eslint-disable-next-line max-len
37
- prettyLogTemplate: `[{{mm}}/{{dd}}/{{yyyy}} {{hh}}:{{MM}}:{{ss}}]\t[EufySecurity-${plugin.version}]\t{{logLevelName}}\t[{{fileNameWithLine}}{{name}}]\t`,
38
- prettyErrorTemplate: '\n{{errorName}} {{errorMessage}}\nerror stack:\n{{errorStack}}',
39
- prettyErrorStackTemplate: ' • {{fileName}}\t{{method}}\n\t{{fileNameWithLine}}',
40
- prettyErrorParentNamesSeparator: ':',
41
- prettyErrorLoggerNameDelimiter: '\t',
42
- stylePrettyLogs: true,
43
- minLevel: (this.config.enableDetailedLogging) ? 2 : 3,
44
- // prettyLogTimeZone: 'UTC',
45
- prettyLogStyles: {
46
- logLevelName: {
47
- '*': ['bold', 'black', 'bgWhiteBright', 'dim'],
48
- SILLY: ['bold', 'white'],
49
- TRACE: ['bold', 'whiteBright'],
50
- DEBUG: ['bold', 'green'],
51
- INFO: ['bold', 'blue'],
52
- WARN: ['bold', 'yellow'],
53
- ERROR: ['bold', 'red'],
54
- FATAL: ['bold', 'redBright'],
55
- },
56
- dateIsoStr: 'white',
57
- filePathWithLine: 'white',
58
- name: ['white', 'bold'],
59
- nameWithDelimiterPrefix: ['white', 'bold'],
60
- nameWithDelimiterSuffix: ['white', 'bold'],
61
- errorName: ['bold', 'bgRedBright', 'whiteBright'],
62
- fileName: ['yellow'],
63
- },
64
- };
65
- this.log = new tslog_1.Logger(mainLogObj);
66
63
  const omitLogFiles = (_a = this.config.omitLogFiles) !== null && _a !== void 0 ? _a : false;
64
+ const logStreams = [{
65
+ level: (this.config.enableDetailedLogging) ? 'debug' : 'info',
66
+ type: 'raw',
67
+ stream: (0, bunyan_debug_stream_1.default)({
68
+ forceColor: true,
69
+ showProcess: false,
70
+ showPid: false,
71
+ showDate: (time) => {
72
+ return '[' + time.toLocaleString('en-US') + ']';
73
+ },
74
+ }),
75
+ }];
67
76
  if (!omitLogFiles) {
68
- const pluginLogStream = (0, rotating_file_stream_1.createStream)('log-lib.log', {
69
- path: this.eufyPath,
70
- interval: '1d',
71
- rotate: 3,
72
- maxSize: '200M',
73
- });
74
- this.log.attachTransport((logObj) => {
75
- pluginLogStream.write(JSON.stringify(logObj) + '\n');
77
+ logStreams.push({
78
+ level: (this.config.enableDetailedLogging) ? 'debug' : 'info',
79
+ type: 'rotating-file',
80
+ path: this.eufyPath + '/log-lib.log',
81
+ period: '1d',
82
+ count: 3, // keep 3 back copies
76
83
  });
84
+ }
85
+ this.log = bunyan_1.default.createLogger({
86
+ name: '[EufySecurity-' + plugin.version + ']',
87
+ hostname: '',
88
+ streams: logStreams,
89
+ serializers: bunyan_debug_stream_1.default.stdSerializers,
90
+ });
91
+ if (!omitLogFiles) {
77
92
  // use tslog for eufy-security-client
78
- const eufyLogStream = (0, rotating_file_stream_1.createStream)('eufy-log.log', {
93
+ const logFileNameGenerator = (index) => {
94
+ const filename = 'eufy-log.log';
95
+ return (index === null) ? filename : filename + '.' + (index - 1);
96
+ };
97
+ const eufyLogStream = rfs.createStream(logFileNameGenerator, {
79
98
  path: this.eufyPath,
80
99
  interval: '1d',
81
100
  rotate: 3,
82
101
  maxSize: '200M',
83
102
  });
84
- this.tsLogger = new tslog_1.Logger().attachTransport((logObj) => {
85
- eufyLogStream.write(JSON.stringify(logObj) + '\n');
86
- });
103
+ this.tsLogger = new tslog_1.Logger({ stdErr: eufyLogStream, stdOut: eufyLogStream, colorizePrettyLogs: false });
87
104
  }
88
105
  this.log.warn('warning: planned changes, see https://github.com/homebridge-eufy-security/plugin/issues/1');
89
106
  this.log.debug('plugin data store: ' + this.eufyPath);
@@ -99,13 +116,13 @@ class EufySecurityPlatform {
99
116
  trustedDeviceName: (_c = this.config.deviceName) !== null && _c !== void 0 ? _c : 'My Phone',
100
117
  language: 'en',
101
118
  persistentDir: this.eufyPath,
102
- p2pConnectionSetup: 0,
119
+ p2pConnectionSetup: (this.config.preferLocalConnection) ? 1 : 2,
103
120
  pollingIntervalMinutes: (_d = this.config.pollingIntervalMinutes) !== null && _d !== void 0 ? _d : 10,
104
121
  eventDurationSeconds: 10,
105
122
  };
106
- this.config.ignoreStations = (_e = (_j = this.config).ignoreStations) !== null && _e !== void 0 ? _e : (_j.ignoreStations = []);
107
- this.config.ignoreDevices = (_f = (_k = this.config).ignoreDevices) !== null && _f !== void 0 ? _f : (_k.ignoreDevices = []);
108
- this.config.cleanCache = (_g = (_l = this.config).cleanCache) !== null && _g !== void 0 ? _g : (_l.cleanCache = true);
123
+ this.config.ignoreStations = (_e = (_k = this.config).ignoreStations) !== null && _e !== void 0 ? _e : (_k.ignoreStations = []);
124
+ this.config.ignoreDevices = (_f = (_l = this.config).ignoreDevices) !== null && _f !== void 0 ? _f : (_l.ignoreDevices = []);
125
+ this.config.cleanCache = (_g = (_m = this.config).cleanCache) !== null && _g !== void 0 ? _g : (_m.cleanCache = true);
109
126
  this.log.info('Country set:', (_h = this.config.country) !== null && _h !== void 0 ? _h : 'US');
110
127
  // This function is here to avoid any break while moving from 1.0.x to 1.1.x
111
128
  // moving persistent into our dedicated folder (this need to be removed after few release of 1.1.x)
@@ -119,7 +136,15 @@ class EufySecurityPlatform {
119
136
  }
120
137
  fs_1.default.unlinkSync(this.api.user.storagePath() + '/persistent.json');
121
138
  }
122
- // ********
139
+ // initialize experimental mode
140
+ if (this.config.experimentalMode) {
141
+ this.log.warn('Experimental Mode is enabled!');
142
+ (0, experimental_1.initializeExperimentalMode)();
143
+ }
144
+ this.config.syncStationModes = (_j = (_o = this.config).syncStationModes) !== null && _j !== void 0 ? _j : (_o.syncStationModes = false);
145
+ if (this.config.syncStationModes) {
146
+ this.log.debug('Stations are set to sync their guard modes.');
147
+ }
123
148
  this.api.on('didFinishLaunching', async () => {
124
149
  this.clean_config_after_init();
125
150
  await this.pluginSetup();
@@ -135,6 +160,8 @@ class EufySecurityPlatform {
135
160
  this.eufyClient = (this.config.enableDetailedLogging)
136
161
  ? await eufy_security_client_1.EufySecurity.initialize(this.eufyConfig, this.tsLogger)
137
162
  : await eufy_security_client_1.EufySecurity.initialize(this.eufyConfig);
163
+ this.eufyClient.on('tfa request', this.tfaWarning.bind(this));
164
+ this.eufyClient.on('captcha request', this.captchaWarning.bind(this));
138
165
  this.eufyClient.on('station added', this.stationAdded.bind(this));
139
166
  this.eufyClient.on('device added', this.deviceAdded.bind(this));
140
167
  this.eufyClient.on('push connect', () => {
@@ -164,7 +191,7 @@ class EufySecurityPlatform {
164
191
  // clean old accessories after that time
165
192
  this.cleanCachedAccessoriesTimeout = setTimeout(() => {
166
193
  this.cleanCachedAccessories();
167
- }, 45 * 1000);
194
+ }, 120 * 1000);
168
195
  let cameraMaxLivestreamDuration = (_a = this.config.CameraMaxLivestreamDuration) !== null && _a !== void 0 ? _a : 30;
169
196
  if (cameraMaxLivestreamDuration > 86400) {
170
197
  cameraMaxLivestreamDuration = 86400;
@@ -173,6 +200,23 @@ class EufySecurityPlatform {
173
200
  }
174
201
  this.eufyClient.setCameraMaxLivestreamDuration(cameraMaxLivestreamDuration);
175
202
  this.log.debug('CameraMaxLivestreamDuration:', this.eufyClient.getCameraMaxLivestreamDuration());
203
+ try {
204
+ this.pluginConfigInteractor = new EufyClientInteractor_1.EufyClientInteractor(this.eufyPath, this.log, this.eufyClient);
205
+ await this.pluginConfigInteractor.setupServer();
206
+ }
207
+ catch (err) {
208
+ this.log.warn(err);
209
+ }
210
+ }
211
+ tfaWarning() {
212
+ this.log.warn('There was a 2 Factor Authentication request while login in. ' +
213
+ 'This cannot be fulfilled by the plugin itself. Please login using the ' +
214
+ 'configuration wizard (settings) in the Homebridge UI plugins tab.');
215
+ }
216
+ captchaWarning(id, captcha) {
217
+ this.log.warn('There was a Captcha request while login in. ' +
218
+ 'This cannot be fulfilled by the plugin itself. Please login using the ' +
219
+ 'configuration wizard (settings) in the Homebridge UI plugins tab.');
176
220
  }
177
221
  async stationAdded(station) {
178
222
  this.log.debug('Found Station', station.getSerial(), station.getName(), eufy_security_client_1.DeviceType[station.getDeviceType()], station.getLANIPAddress());
@@ -180,10 +224,10 @@ class EufySecurityPlatform {
180
224
  this.log.info('You\'re using guest admin account with this plugin! This is recommanded way!');
181
225
  }
182
226
  else {
183
- this.log.error('You\'re not using guest admin account with this plugin! This is not recommanded way!');
184
- this.log.error('Please look here for more details:');
185
- this.log.error('https://github.com/homebridge-eufy-security/plugin/wiki/Installation');
186
- this.log.error(station.getSerial() + ' type: ' + station.getRawStation().member.member_type);
227
+ this.log.warn('You\'re not using guest admin account with this plugin! This is not recommanded way!');
228
+ this.log.warn('Please look here for more details:');
229
+ this.log.warn('https://github.com/homebridge-eufy-security/plugin/wiki/Installation');
230
+ this.log.warn(station.getSerial() + ' type: ' + station.getRawStation().member.member_type);
187
231
  }
188
232
  if (this.config.ignoreStations.indexOf(station.getSerial()) !== -1) {
189
233
  this.log.debug('Device ignored');
@@ -254,6 +298,9 @@ class EufySecurityPlatform {
254
298
  if (this.cleanCachedAccessoriesTimeout) {
255
299
  clearTimeout(this.cleanCachedAccessoriesTimeout);
256
300
  }
301
+ if (this.pluginConfigInteractor) {
302
+ this.pluginConfigInteractor.stopServer();
303
+ }
257
304
  try {
258
305
  this.eufyClient.close();
259
306
  this.log.info('Finished shutdown!');
@@ -325,10 +372,11 @@ class EufySecurityPlatform {
325
372
  }
326
373
  }
327
374
  let a;
375
+ let tmp;
328
376
  switch (type) {
329
377
  case eufy_security_client_1.DeviceType.STATION:
330
- case eufy_security_client_1.DeviceType.HB3:
331
- new StationAccessory_1.StationAccessory(this, accessory, device);
378
+ tmp = new StationAccessory_1.StationAccessory(this, accessory, device);
379
+ this.stations.push(tmp);
332
380
  break;
333
381
  case eufy_security_client_1.DeviceType.MOTION_SENSOR:
334
382
  new MotionSensorAccessory_1.MotionSensorAccessory(this, accessory, device);
@@ -343,10 +391,8 @@ class EufySecurityPlatform {
343
391
  case eufy_security_client_1.DeviceType.FLOODLIGHT:
344
392
  case eufy_security_client_1.DeviceType.CAMERA2C_PRO:
345
393
  case eufy_security_client_1.DeviceType.CAMERA2_PRO:
346
- case eufy_security_client_1.DeviceType.CAMERA3C:
347
394
  case eufy_security_client_1.DeviceType.CAMERA3:
348
- case eufy_security_client_1.DeviceType.CAMERA_GUN:
349
- case eufy_security_client_1.DeviceType.CAMERA_FG:
395
+ case eufy_security_client_1.DeviceType.CAMERA3C:
350
396
  case eufy_security_client_1.DeviceType.INDOOR_CAMERA_1080:
351
397
  case eufy_security_client_1.DeviceType.INDOOR_PT_CAMERA_1080:
352
398
  case eufy_security_client_1.DeviceType.SOLO_CAMERA:
@@ -360,13 +406,9 @@ class EufySecurityPlatform {
360
406
  case eufy_security_client_1.DeviceType.FLOODLIGHT_CAMERA_8422:
361
407
  case eufy_security_client_1.DeviceType.FLOODLIGHT_CAMERA_8423:
362
408
  case eufy_security_client_1.DeviceType.FLOODLIGHT_CAMERA_8424:
363
- case eufy_security_client_1.DeviceType.WALL_LIGHT_CAM:
364
- case eufy_security_client_1.DeviceType.WALL_LIGHT_CAM_81A0:
365
- case eufy_security_client_1.DeviceType.CAMERA_GARAGE_T8453_COMMON:
366
- case eufy_security_client_1.DeviceType.CAMERA_GARAGE_T8453:
367
- case eufy_security_client_1.DeviceType.CAMERA_GARAGE_T8452:
368
409
  a = new CameraAccessory_1.CameraAccessory(this, accessory, device);
369
410
  unbridge = (a.cameraConfig.enableCamera) ? (_a = (_c = a.cameraConfig).unbridge) !== null && _a !== void 0 ? _a : (_c.unbridge = false) : false;
411
+ a.setExperimentalMode();
370
412
  break;
371
413
  case eufy_security_client_1.DeviceType.DOORBELL:
372
414
  case eufy_security_client_1.DeviceType.BATTERY_DOORBELL:
@@ -375,6 +417,7 @@ class EufySecurityPlatform {
375
417
  case eufy_security_client_1.DeviceType.DOORBELL_SOLO:
376
418
  a = new DoorbellCameraAccessory_1.DoorbellCameraAccessory(this, accessory, device);
377
419
  unbridge = (a.cameraConfig.enableCamera) ? (_b = (_d = a.cameraConfig).unbridge) !== null && _b !== void 0 ? _b : (_d.unbridge = false) : false;
420
+ a.setExperimentalMode();
378
421
  break;
379
422
  case eufy_security_client_1.DeviceType.SENSOR:
380
423
  new EntrySensorAccessory_1.EntrySensorAccessory(this, accessory, device);
@@ -412,6 +455,9 @@ class EufySecurityPlatform {
412
455
  getStationById(id) {
413
456
  return this.eufyClient.getStation(id);
414
457
  }
458
+ getStationAccessories() {
459
+ return this.stations;
460
+ }
415
461
  clean_config() {
416
462
  try {
417
463
  const currentConfig = JSON.parse(fs_1.default.readFileSync(this.api.user.configPath(), 'utf8'));