@camera.ui/camera-ui-eufy 0.0.19 → 0.0.21

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/dist/index.js DELETED
@@ -1,419 +0,0 @@
1
- import { Device, EufySecurity, P2PConnectionType } from 'eufy-security-client';
2
- import { Camera } from './camera.js';
3
- import { getCountryCode } from './utils.js';
4
- export default class Eufy {
5
- config;
6
- logger;
7
- api;
8
- cameras = new Map();
9
- eufyClients = new Map();
10
- eufyCameras = new Map();
11
- cleanOrphanedCamerasTimeout;
12
- constructor(logger, api) {
13
- this.logger = logger;
14
- this.api = api;
15
- this.config = api.configService.all();
16
- this.config.homes = api.configService.get('homes', [], (value) => Array.isArray(value), false, true);
17
- this.api.on('finishLaunching', this.start.bind(this));
18
- this.api.on('shutdown', this.stop.bind(this));
19
- }
20
- configureCameras(cameras) {
21
- for (const camera of cameras) {
22
- this.cameras.set(camera.id, camera);
23
- }
24
- }
25
- async onFormSubmit(actionId, home) {
26
- switch (actionId) {
27
- case 'onLogin':
28
- case 'on2FA':
29
- case 'onCaptcha':
30
- try {
31
- const reAuth = actionId === 'on2FA' || actionId === 'onCaptcha';
32
- const connectionResponse = await this.tryLogin(home, reAuth);
33
- const eufyClient = this.eufyClients.get(home.name);
34
- eufyClient?.removeAllListeners();
35
- if (connectionResponse.connected) {
36
- this.refreshConfig(home);
37
- this.connectHome(home);
38
- }
39
- const formResponse = this.createFormResponse(connectionResponse);
40
- return formResponse;
41
- }
42
- catch (error) {
43
- const message = `Failed to Authenticate. Reason: ${error.message}`;
44
- this.logger.error(home.name, message);
45
- const formResponse = {
46
- toast: {
47
- message,
48
- type: 'error',
49
- },
50
- };
51
- return formResponse;
52
- }
53
- default:
54
- const message = `Unknown actionId: ${actionId}`;
55
- this.logger.warn(home.name, message);
56
- const formResponse = {
57
- toast: {
58
- type: 'error',
59
- message,
60
- },
61
- };
62
- return formResponse;
63
- }
64
- }
65
- async start() {
66
- for (const home of this.config.homes) {
67
- try {
68
- await this.connectHome(home);
69
- }
70
- catch (error) {
71
- this.logger.error(home.name, 'An error occured during connecting to home:', error);
72
- }
73
- }
74
- this.cleanOrphanedCamerasTimeout = setTimeout(() => {
75
- this.checkOrphanedCameras();
76
- }, 45 * 1000);
77
- }
78
- stop() {
79
- clearTimeout(this.cleanOrphanedCamerasTimeout);
80
- this.logger.log('Plugin stopped');
81
- }
82
- closeClient(home) {
83
- const eufyClient = this.eufyClients.get(home.name);
84
- if (eufyClient) {
85
- try {
86
- if (eufyClient.isConnected()) {
87
- eufyClient.close();
88
- }
89
- this.logger.log(home.name, 'Finished shutdown!');
90
- }
91
- catch (e) {
92
- this.logger.error(home.name, `Error while shutdown: ${e}`);
93
- }
94
- finally {
95
- this.eufyClients.delete(home.name);
96
- }
97
- }
98
- }
99
- async connectHome(home) {
100
- let eufyClient;
101
- try {
102
- eufyClient = await this.getClient(home);
103
- this.eufyClients.set(home.name, eufyClient);
104
- eufyClient.on('device added', this.deviceAdded.bind(this, home, eufyClient));
105
- eufyClient.on('device removed', this.deviceRemoved.bind(this, home));
106
- eufyClient.on('push connect', () => {
107
- this.logger.debug(home.name, 'Push Connected!');
108
- });
109
- eufyClient.on('push close', () => {
110
- this.logger.debug(home.name, 'Push Closed!');
111
- });
112
- eufyClient.on('connect', () => {
113
- this.logger.debug(home.name, 'Connected!');
114
- });
115
- eufyClient.on('close', () => {
116
- this.logger.debug(home.name, 'Closed!');
117
- });
118
- eufyClient.on('connection error', async (error) => {
119
- this.logger.debug(home.name, `Error: ${error}`);
120
- this.closeClient(home);
121
- });
122
- eufyClient.once('captcha request', async () => {
123
- this.logger.error(home.name, 'CAPTCHA Required! Please re-authenticate via UI and restart Plugin!');
124
- this.closeClient(home);
125
- });
126
- eufyClient.on('tfa request', async () => {
127
- this.logger.error(home.name, 'Two-Factor Authentication (2FA) Requested! Please re-authenticate via UI and restart Plugin!');
128
- this.closeClient(home);
129
- });
130
- }
131
- catch (error) {
132
- this.logger.error(home.name, 'Error while setup:', error);
133
- this.logger.error(home.name, 'Not connected cant continue!');
134
- return;
135
- }
136
- try {
137
- if (!eufyClient.isConnected()) {
138
- await eufyClient.connect();
139
- }
140
- else {
141
- const devices = await eufyClient.getDevices();
142
- for (const device of devices) {
143
- await this.deviceAdded(home, eufyClient, device);
144
- }
145
- }
146
- }
147
- catch (e) {
148
- this.logger.error(home.name, 'Error authenticating Eufy:', e);
149
- }
150
- if (!eufyClient.isConnected()) {
151
- this.logger.error(home.name, 'Not connected cant continue!');
152
- return;
153
- }
154
- home.maxLiveStreamDuration = home.maxLiveStreamDuration || 86400;
155
- if (home.maxLiveStreamDuration > 86400) {
156
- home.maxLiveStreamDuration = 86400;
157
- this.logger.warn(home.name, 'Your maximum livestream duration value is too large. Since this can cause problems it was reset to 86400 seconds (1 day maximum).');
158
- }
159
- else if (home.maxLiveStreamDuration < 10) {
160
- home.maxLiveStreamDuration = 10;
161
- this.logger.warn(home.name, 'Your maximum livestream duration value is too small. Since this can cause problems it was reset to 10 seconds (10 seconds minimum).');
162
- }
163
- eufyClient.setCameraMaxLivestreamDuration(home.maxLiveStreamDuration);
164
- this.logger.debug(home.name, `maxLiveStreamDuration: ${eufyClient.getCameraMaxLivestreamDuration()}`);
165
- }
166
- async deviceAdded(home, eufyClient, device) {
167
- try {
168
- if ((home.ignoreDevices || []).includes(device.getSerial())) {
169
- this.logger.debug(home.name, `${device.getName()}: Device ignored`);
170
- return;
171
- }
172
- const deviceContainer = {
173
- deviceIdentifier: {
174
- uniqueId: device.getSerial(),
175
- displayName: 'DEVICE_' + device.getName(),
176
- type: device.getDeviceType(),
177
- },
178
- eufyDevice: device,
179
- };
180
- await new Promise((resolve) => setTimeout(resolve, 1000));
181
- await this.addOrUpdateDevice(home, eufyClient, deviceContainer);
182
- }
183
- catch (error) {
184
- this.logger.error(home.name, 'Failed to create camera:', error);
185
- }
186
- }
187
- async addOrUpdateDevice(home, eufyClient, deviceContainer) {
188
- try {
189
- const isCamera = deviceContainer.eufyDevice instanceof Device ? deviceContainer.eufyDevice.isCamera() : false;
190
- if (!isCamera) {
191
- this.logger.debug(home.name, `Device ${deviceContainer.deviceIdentifier.displayName} is not a camera, skipping...`);
192
- return;
193
- }
194
- const eufyDevice = deviceContainer.eufyDevice;
195
- const eufyCameraId = eufyDevice.getSerial();
196
- if (this.eufyCameras.get(eufyCameraId)) {
197
- this.logger.debug(home.name, `Device ${deviceContainer.deviceIdentifier.displayName} already exists, skipping...`);
198
- return;
199
- }
200
- const camera = new Camera(this, home, eufyClient, eufyDevice, this.logger);
201
- await camera.createCameraDevice();
202
- this.eufyCameras.set(eufyCameraId, eufyDevice);
203
- this.cameras.set(camera.cameraDevice.id, camera.cameraDevice);
204
- }
205
- catch (error) {
206
- this.logger.error(home.name, 'Error in addOrUpdateDevice', error);
207
- }
208
- }
209
- async deviceRemoved(home, device) {
210
- const serial = device.getSerial();
211
- this.logger.debug(home.name, `A device has been removed: ${device.getName()}`);
212
- this.eufyCameras.delete(serial);
213
- this.cameras.forEach(async (cameraDevice) => {
214
- if (cameraDevice.nativeId === serial) {
215
- this.logger.debug(home.name, `Removing camera ${cameraDevice.name}`);
216
- this.cameras.delete(cameraDevice.id);
217
- await this.api.deviceManager.removeCameraById(cameraDevice.id);
218
- }
219
- });
220
- }
221
- async checkOrphanedCameras() {
222
- // Remove orphaned cameras
223
- for (const [cameraId, cameraDevice] of this.cameras) {
224
- const eufyCameraId = cameraDevice.nativeId;
225
- if (!this.eufyCameras.get(eufyCameraId)) {
226
- this.logger.warn('Removing camera', cameraDevice.name);
227
- this.cameras.delete(cameraId);
228
- await this.api.deviceManager.removeCameraById(cameraDevice.id);
229
- }
230
- }
231
- }
232
- tryLogin(home, reAuth) {
233
- return new Promise(async (_resolve, _reject) => {
234
- try {
235
- let connected = false;
236
- const eufyClient = await this.getClient(home);
237
- eufyClient.once('connect', () => {
238
- this.logger.debug(home.name, 'Connected!');
239
- connected = true;
240
- _resolve({ connected: true });
241
- });
242
- eufyClient.once('close', () => {
243
- this.logger.debug(home.name, 'Closed!');
244
- if (!connected) {
245
- return _reject(new Error('Connection failed'));
246
- }
247
- _resolve({ connected: true });
248
- });
249
- eufyClient.once('connection error', async (error) => {
250
- this.logger.debug(home.name, 'Connection Error:', error);
251
- _reject(error);
252
- });
253
- eufyClient.once('captcha request', async (id, captcha) => {
254
- this.logger.debug(home.name, 'CAPTCHA Required!', id, captcha);
255
- _resolve({ connected: false, isCaptcha: { id, captcha } });
256
- });
257
- eufyClient.once('tfa request', async () => {
258
- this.logger.debug(home.name, 'Two-Factor Authentication (2FA) Requested!');
259
- _resolve({ connected: false, is2FA: true });
260
- });
261
- const loginOptions = reAuth
262
- ? {
263
- force: true,
264
- verifyCode: home.twoFactorCode,
265
- captcha: home.captchaCode && home.captchaId ? { captchaId: home.captchaId, captchaCode: home.captchaCode } : undefined,
266
- }
267
- : undefined;
268
- if (loginOptions) {
269
- this.logger.debug(home.name, 'Trying to connect with options:', loginOptions);
270
- }
271
- await eufyClient.connect(loginOptions);
272
- }
273
- catch (error) {
274
- _reject(error);
275
- }
276
- });
277
- }
278
- async getClient(home) {
279
- let eufyClient = this.eufyClients.get(home.name);
280
- if (!eufyClient) {
281
- const logger = {
282
- info: (message, ...args) => {
283
- this.logger.log(home.name, message, ...args);
284
- },
285
- warn: (message, ...args) => {
286
- this.logger.warn(home.name, message, ...args);
287
- },
288
- error: (message, ...args) => {
289
- this.logger.error(home.name, message, ...args);
290
- },
291
- fatal: (message, ...args) => {
292
- this.logger.error(home.name, message, ...args);
293
- },
294
- debug: (message, ...args) => {
295
- if (home.debug) {
296
- this.logger.debug(home.name, message, ...args);
297
- }
298
- },
299
- trace: (message, ...args) => {
300
- if (home.debug) {
301
- this.logger.debug(home.name, message, ...args);
302
- }
303
- },
304
- };
305
- const eufyConfig = {
306
- username: home.username,
307
- password: home.password,
308
- country: getCountryCode(home.country),
309
- trustedDeviceName: home.deviceName,
310
- language: 'en',
311
- p2pConnectionSetup: P2PConnectionType.QUICKEST,
312
- pollingIntervalMinutes: 10,
313
- eventDurationSeconds: 10,
314
- };
315
- eufyClient = await EufySecurity.initialize(eufyConfig, logger);
316
- this.eufyClients.set(home.name, eufyClient);
317
- }
318
- return eufyClient;
319
- }
320
- createFormResponse(connectionResponse) {
321
- const formResponse = {
322
- toast: {
323
- type: 'success',
324
- message: 'Logged in!',
325
- },
326
- };
327
- if (connectionResponse.is2FA) {
328
- formResponse.schema = {
329
- config: {
330
- type: 'object',
331
- title: 'Two-Factor Authentication (2FA)',
332
- description: 'Enter the 2FA code',
333
- required: true,
334
- opened: true,
335
- properties: {
336
- twoFactorCode: {
337
- type: 'string',
338
- key: 'twoFactorCode',
339
- title: 'Two-Factor Code',
340
- description: 'Enter the two-factor code',
341
- required: true,
342
- },
343
- },
344
- buttons: [
345
- {
346
- label: 'Authenticate',
347
- onSubmit: 'on2FA',
348
- },
349
- ],
350
- },
351
- };
352
- formResponse.toast = {
353
- message: 'Two-Factor Authentication (2FA) Required!',
354
- type: 'warning',
355
- };
356
- }
357
- else if (connectionResponse.isCaptcha) {
358
- formResponse.schema = {
359
- config: {
360
- type: 'object',
361
- title: 'Two-Factor Authentication (2FA)',
362
- description: 'Enter the 2FA code',
363
- required: true,
364
- opened: true,
365
- properties: {
366
- captcha: {
367
- type: 'string',
368
- key: 'captcha',
369
- title: 'Captcha',
370
- description: 'Enter the captcha',
371
- format: 'image',
372
- defaultValue: connectionResponse.isCaptcha.captcha,
373
- },
374
- captchaCode: {
375
- type: 'string',
376
- key: 'captchaCode',
377
- title: 'Captcha Code',
378
- description: 'Enter the captcha code',
379
- required: true,
380
- },
381
- captchaId: {
382
- type: 'string',
383
- key: 'captchaId',
384
- hidden: true,
385
- defaultValue: connectionResponse.isCaptcha.id,
386
- },
387
- },
388
- buttons: [
389
- {
390
- label: 'Authenticate',
391
- onSubmit: 'onCaptcha',
392
- },
393
- ],
394
- },
395
- };
396
- formResponse.toast = {
397
- message: 'CAPTCHA Required!',
398
- type: 'warning',
399
- };
400
- }
401
- return formResponse;
402
- }
403
- refreshConfig(home) {
404
- if ('twoFactorCode' in home) {
405
- delete home.twoFactorCode;
406
- }
407
- if ('captcha' in home) {
408
- delete home.captcha;
409
- }
410
- if ('captchaCode' in home) {
411
- delete home.captchaCode;
412
- }
413
- if ('captchaId' in home) {
414
- delete home.captchaId;
415
- }
416
- this.api.configService.replaceOrAddItem('homes', 'name', home.name, home, true);
417
- }
418
- }
419
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,37 +0,0 @@
1
- import type { Device, Station } from 'eufy-security-client';
2
- export interface DeviceIdentifier {
3
- uniqueId: string;
4
- displayName: string;
5
- type: number;
6
- }
7
- export interface StationContainer {
8
- deviceIdentifier: DeviceIdentifier;
9
- eufyDevice: Station;
10
- }
11
- export interface DeviceContainer {
12
- deviceIdentifier: DeviceIdentifier;
13
- eufyDevice: Device;
14
- }
15
- export interface EufyHome {
16
- name: string;
17
- username: string;
18
- password: string;
19
- country?: string;
20
- deviceName?: string;
21
- debug?: boolean;
22
- maxLiveStreamDuration?: number;
23
- useP2P?: boolean;
24
- ignoreDevices?: string[];
25
- }
26
- export interface Config {
27
- homes: EufyHome[];
28
- }
29
- export interface EufyConnectionResponse {
30
- connected: boolean;
31
- is2FA?: boolean;
32
- isCaptcha?: {
33
- id: string;
34
- captcha: string;
35
- };
36
- }
37
- export type FormAction = 'onLogin' | 'on2FA' | 'onCaptcha';
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/utils.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export declare const COUNTRIES: Record<string, string>;
2
- export declare const getCountryCode: (country?: string) => string;
3
- export declare const createSourceName: (cameraName: string, sourceName: string) => string;