@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.
- package/CHANGELOG.md +5 -0
- package/FUNDING.yml +1 -0
- package/LICENSE +176 -0
- package/README.md +67 -0
- package/config.schema.json +6 -0
- package/dist/accessories/AutoSyncStationAccessory.js +156 -0
- package/dist/accessories/AutoSyncStationAccessory.js.map +1 -0
- package/dist/accessories/BaseAccessory.js +247 -0
- package/dist/accessories/BaseAccessory.js.map +1 -0
- package/dist/accessories/CameraAccessory.js +431 -0
- package/dist/accessories/CameraAccessory.js.map +1 -0
- package/dist/accessories/Device.js +67 -0
- package/dist/accessories/Device.js.map +1 -0
- package/dist/accessories/EntrySensorAccessory.js +48 -0
- package/dist/accessories/EntrySensorAccessory.js.map +1 -0
- package/dist/accessories/LockAccessory.js +142 -0
- package/dist/accessories/LockAccessory.js.map +1 -0
- package/dist/accessories/MotionSensorAccessory.js +48 -0
- package/dist/accessories/MotionSensorAccessory.js.map +1 -0
- package/dist/accessories/SmartDropAccessory.js +145 -0
- package/dist/accessories/SmartDropAccessory.js.map +1 -0
- package/dist/accessories/StationAccessory.js +371 -0
- package/dist/accessories/StationAccessory.js.map +1 -0
- package/dist/config.js +25 -0
- package/dist/config.js.map +1 -0
- package/dist/controller/LocalLivestreamManager.js +116 -0
- package/dist/controller/LocalLivestreamManager.js.map +1 -0
- package/dist/controller/recordingDelegate.js +208 -0
- package/dist/controller/recordingDelegate.js.map +1 -0
- package/dist/controller/snapshotDelegate.js +345 -0
- package/dist/controller/snapshotDelegate.js.map +1 -0
- package/dist/controller/streamingDelegate.js +345 -0
- package/dist/controller/streamingDelegate.js.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.js +2 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/media/Snapshot-Unavailable.png +0 -0
- package/dist/media/Snapshot-Unavailable.xcf +0 -0
- package/dist/media/Snapshot-black.png +0 -0
- package/dist/media/camera-disabled.png +0 -0
- package/dist/media/camera-offline.png +0 -0
- package/dist/media/media/Snapshot-Unavailable.png +0 -0
- package/dist/media/media/Snapshot-Unavailable.xcf +0 -0
- package/dist/media/media/Snapshot-black.png +0 -0
- package/dist/media/media/camera-disabled.png +0 -0
- package/dist/media/media/camera-offline.png +0 -0
- package/dist/platform.js +716 -0
- package/dist/platform.js.map +1 -0
- package/dist/settings.js +38 -0
- package/dist/settings.js.map +1 -0
- package/dist/utils/Talkback.js +92 -0
- package/dist/utils/Talkback.js.map +1 -0
- package/dist/utils/accessoriesStore.js +206 -0
- package/dist/utils/accessoriesStore.js.map +1 -0
- package/dist/utils/configTypes.js +35 -0
- package/dist/utils/configTypes.js.map +1 -0
- package/dist/utils/ffmpeg.js +843 -0
- package/dist/utils/ffmpeg.js.map +1 -0
- package/dist/utils/interfaces.js +8 -0
- package/dist/utils/interfaces.js.map +1 -0
- package/dist/utils/utils.js +44 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/eslint.config.mjs +18 -0
- package/homebridge-eufy-security.png +0 -0
- package/homebridge-ui/public/app.js +225 -0
- package/homebridge-ui/public/assets/devices/4g_lte_starlight_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/BATTERY_DOORBELL_C30.png +0 -0
- package/homebridge-ui/public/assets/devices/BATTERY_DOORBELL_C31.png +0 -0
- package/homebridge-ui/public/assets/devices/batterydoorbell1080p_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/batterydoorbell2kdual_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/batterydoorbell_e340_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufy-security-client.png +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2c_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2cpro_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam2pro_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam3_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam3c_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycam3pro_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufycam_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/eufycame330_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlight2_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlight2pro_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlight_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/floodlightcame340_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/garage_camera_t8452_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/homebase2_large.png +0 -0
- package/homebridge-ui/public/assets/devices/homebase3_large.png +0 -0
- package/homebridge-ui/public/assets/devices/homebase_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/homebasemini_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamC210_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamC220_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamE30_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamc120_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcammini_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/indoorcamp24_large.png +0 -0
- package/homebridge-ui/public/assets/devices/indoorcams350_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/keypad_large.png +0 -0
- package/homebridge-ui/public/assets/devices/minibase_chime_T8023_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/motionsensor_large.png +0 -0
- package/homebridge-ui/public/assets/devices/sensor_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartdrop_t8790_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8500_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8500_wifibridge_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8503_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8504_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_t8510P_t8520P_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8502_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8506_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_and_wifi_t8520_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_t8510_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_touch_t8510_wifibridge_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartlock_video_t8530_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartlockwifibridge_t8021_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/smartsafe_s10_t7400_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smartsafe_s12_t7401_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smarttrack_card_t87B2_large.png +0 -0
- package/homebridge-ui/public/assets/devices/smarttrack_link_t87B0_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocamc210_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocamc35_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocame20_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocame30_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocame40_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocaml20_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocams220_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solocams340_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solocams40_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/soloindoorcamc24_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/solooutdoorcamc22_large.png +0 -0
- package/homebridge-ui/public/assets/devices/solooutdoorcamc24_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/unknown.png +0 -0
- package/homebridge-ui/public/assets/devices/walllight_s100_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/walllight_s120_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/wireddoorbell1080p_large.jpg +0 -0
- package/homebridge-ui/public/assets/devices/wireddoorbell2k_large.png +0 -0
- package/homebridge-ui/public/assets/devices/wireddoorbelldual_large.jpg +0 -0
- package/homebridge-ui/public/assets/icons/attach.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_0.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_1.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_2.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_3.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_4.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_5.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_6.svg +1 -0
- package/homebridge-ui/public/assets/icons/bolt.svg +1 -0
- package/homebridge-ui/public/assets/icons/bug-report.svg +1 -0
- package/homebridge-ui/public/assets/icons/copy.svg +1 -0
- package/homebridge-ui/public/assets/icons/delete.svg +1 -0
- package/homebridge-ui/public/assets/icons/download.svg +1 -0
- package/homebridge-ui/public/assets/icons/info.svg +1 -0
- package/homebridge-ui/public/assets/icons/inventory.svg +1 -0
- package/homebridge-ui/public/assets/icons/refresh.svg +1 -0
- package/homebridge-ui/public/assets/icons/satellite_alt.svg +1 -0
- package/homebridge-ui/public/assets/icons/settings.svg +1 -0
- package/homebridge-ui/public/assets/icons/settings_backup_restore.svg +1 -0
- package/homebridge-ui/public/assets/icons/solar_power.svg +1 -0
- package/homebridge-ui/public/assets/icons/warning.svg +1 -0
- package/homebridge-ui/public/components/device-card.js +162 -0
- package/homebridge-ui/public/components/guard-modes.js +88 -0
- package/homebridge-ui/public/components/number-input.js +121 -0
- package/homebridge-ui/public/components/select.js +73 -0
- package/homebridge-ui/public/components/toggle.js +68 -0
- package/homebridge-ui/public/index.html +27 -0
- package/homebridge-ui/public/services/api.js +214 -0
- package/homebridge-ui/public/services/config.js +144 -0
- package/homebridge-ui/public/style.css +775 -0
- package/homebridge-ui/public/utils/countries.js +73 -0
- package/homebridge-ui/public/utils/device-images.js +89 -0
- package/homebridge-ui/public/utils/helpers.js +87 -0
- package/homebridge-ui/public/views/dashboard.js +226 -0
- package/homebridge-ui/public/views/device-detail.js +610 -0
- package/homebridge-ui/public/views/diagnostics.js +296 -0
- package/homebridge-ui/public/views/login.js +636 -0
- package/homebridge-ui/public/views/settings.js +192 -0
- package/homebridge-ui/public/views/unsupported-detail.js +296 -0
- package/homebridge-ui/server.js +1327 -0
- package/media/Snapshot-Unavailable.png +0 -0
- package/media/Snapshot-Unavailable.xcf +0 -0
- package/media/Snapshot-black.png +0 -0
- package/media/camera-disabled.png +0 -0
- package/media/camera-offline.png +0 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/utils/ffmpeg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/utils/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Logger } from 'tslog';
|
|
2
|
+
import { PropertyName } from 'eufy-security-client';
|
|
3
|
+
export let HAP;
|
|
4
|
+
export let SERV;
|
|
5
|
+
export let CHAR;
|
|
6
|
+
export function setHap(hapInstance) {
|
|
7
|
+
HAP = hapInstance;
|
|
8
|
+
SERV = hapInstance.Service;
|
|
9
|
+
CHAR = hapInstance.Characteristic;
|
|
10
|
+
}
|
|
11
|
+
export let log;
|
|
12
|
+
export let tsLogger;
|
|
13
|
+
export let ffmpegLogger;
|
|
14
|
+
export function initLog(logOptions) {
|
|
15
|
+
log = new Logger(logOptions);
|
|
16
|
+
tsLogger = new Logger({ ...logOptions, type: 'hidden' });
|
|
17
|
+
ffmpegLogger = new Logger({ ...logOptions, type: 'hidden' });
|
|
18
|
+
}
|
|
19
|
+
export class Deferred {
|
|
20
|
+
finished = false;
|
|
21
|
+
resolve;
|
|
22
|
+
reject;
|
|
23
|
+
promise = new Promise((resolve, reject) => {
|
|
24
|
+
this.resolve = (v) => { this.finished = true; resolve(v); };
|
|
25
|
+
this.reject = (e) => { this.finished = true; reject(e); };
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export function isRtspReady(device, cameraConfig) {
|
|
29
|
+
const name = device.getName();
|
|
30
|
+
const checks = [
|
|
31
|
+
[!device.hasProperty('rtspStream'), 'device not compatible with RTSP'],
|
|
32
|
+
[!cameraConfig.rtsp, 'RTSP not enabled in camera config'],
|
|
33
|
+
[!device.getPropertyValue(PropertyName.DeviceRTSPStream), 'RTSP capability not enabled on device'],
|
|
34
|
+
[device.getPropertyValue(PropertyName.DeviceRTSPStreamUrl) === '', 'RTSP URL is unknown'],
|
|
35
|
+
];
|
|
36
|
+
for (const [failed, reason] of checks) {
|
|
37
|
+
if (failed) {
|
|
38
|
+
log.debug(name, reason);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,MAAM,OAAO,CAAC;AAMxC,OAAO,EAAU,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,IAAI,GAAW,CAAC;AACvB,MAAM,CAAC,IAAI,IAAqB,CAAC;AACjC,MAAM,CAAC,IAAI,IAA4B,CAAC;AAExC,MAAM,UAAU,MAAM,CAAC,WAAkB;IACvC,GAAG,GAAG,WAAW,CAAC;IAClB,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC;IAC3B,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,IAAI,GAAqB,CAAC;AACjC,MAAM,CAAC,IAAI,QAA0B,CAAC;AACtC,MAAM,CAAC,IAAI,YAA8B,CAAC;AAE1C,MAAM,UAAU,OAAO,CAAC,UAAmB;IACzC,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7B,QAAQ,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,YAAY,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,OAAO,QAAQ;IACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,CAAuC;IAC9C,MAAM,CAA0B;IACvB,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;CACJ;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,YAA0B;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAwB;QAClC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,iCAAiC,CAAC;QACtE,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,mCAAmC,CAAC;QACzD,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,uCAAuC,CAAC;QAClG,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,qBAAqB,CAAC;KAC1F,CAAC;IAEF,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import eslint from "@eslint/js";
|
|
2
|
+
import tseslint from "typescript-eslint";
|
|
3
|
+
|
|
4
|
+
export default tseslint.config(
|
|
5
|
+
{
|
|
6
|
+
ignores: ["dist/**", "homebridge-ui/**"],
|
|
7
|
+
},
|
|
8
|
+
eslint.configs.recommended,
|
|
9
|
+
...tseslint.configs.recommended,
|
|
10
|
+
{
|
|
11
|
+
files: ["src/**/*.ts"],
|
|
12
|
+
rules: {
|
|
13
|
+
"@typescript-eslint/ban-ts-comment": "off",
|
|
14
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
15
|
+
"no-undef": "off", // TypeScript handles this
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
);
|
|
Binary file
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App — main controller, hash-based SPA router, and global state.
|
|
3
|
+
* Entry point initialized on homebridge 'ready' event.
|
|
4
|
+
*/
|
|
5
|
+
// eslint-disable-next-line no-unused-vars
|
|
6
|
+
const App = {
|
|
7
|
+
/** Global state shared across views */
|
|
8
|
+
state: {
|
|
9
|
+
stations: [],
|
|
10
|
+
cacheDate: null, // ISO string of when accessories were last fetched
|
|
11
|
+
initialized: false,
|
|
12
|
+
nodeVersionWarning: null, // { nodeVersion, affected, acknowledged }
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
/** Root container element */
|
|
16
|
+
_root: null,
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Initialize the app. Called once on homebridge 'ready' event.
|
|
20
|
+
*/
|
|
21
|
+
async init() {
|
|
22
|
+
this._root = document.getElementById('app');
|
|
23
|
+
|
|
24
|
+
// Let Homebridge's native Save button handle saving to disk.
|
|
25
|
+
// We call updatePluginConfig() on every change to keep config in sync.
|
|
26
|
+
|
|
27
|
+
// Listen for admin account error globally
|
|
28
|
+
Api.onAdminAccountUsed(() => {
|
|
29
|
+
this._showAdminError();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Listen for cache warnings (stale data, version mismatch)
|
|
33
|
+
Api.onCacheWarning((data) => {
|
|
34
|
+
switch (data.reason) {
|
|
35
|
+
case 'stale':
|
|
36
|
+
homebridge.toast.warning(
|
|
37
|
+
`Your cached devices are ${data.ageDays} days old. Please re-login to refresh.`,
|
|
38
|
+
'Stale Cache',
|
|
39
|
+
);
|
|
40
|
+
break;
|
|
41
|
+
case 'versionWarn':
|
|
42
|
+
homebridge.toast.warning(
|
|
43
|
+
`Plugin updated (${data.storedVersion} → ${data.currentVersion}). Consider re-logging in to refresh devices.`,
|
|
44
|
+
'Version Updated',
|
|
45
|
+
);
|
|
46
|
+
break;
|
|
47
|
+
case 'versionForce':
|
|
48
|
+
homebridge.toast.error(
|
|
49
|
+
`Plugin version changed significantly (${data.storedVersion} → ${data.currentVersion}). Please re-login.`,
|
|
50
|
+
'Re-login Required',
|
|
51
|
+
);
|
|
52
|
+
this.navigate('login');
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// Listen for hash changes
|
|
58
|
+
window.addEventListener('hashchange', () => this._onRoute());
|
|
59
|
+
|
|
60
|
+
// Determine initial route
|
|
61
|
+
try {
|
|
62
|
+
// Load config without pushing it back to Homebridge
|
|
63
|
+
const config = await Config.load();
|
|
64
|
+
if (!config.platform) {
|
|
65
|
+
// Initialize default config only if truly empty
|
|
66
|
+
await Config.update({ platform: 'EufySecurity', name: 'EufySecurity' });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const stored = await Api.loadStoredAccessories();
|
|
70
|
+
const stations = stored.stations || stored;
|
|
71
|
+
const cacheDate = stored.storedAt || null;
|
|
72
|
+
if (stations && stations.length > 0) {
|
|
73
|
+
this.state.stations = stations;
|
|
74
|
+
this.state.cacheDate = cacheDate;
|
|
75
|
+
// Check Node.js version for returning users (skipping login)
|
|
76
|
+
await this.checkNodeVersion();
|
|
77
|
+
if (!window.location.hash || window.location.hash === '#/') {
|
|
78
|
+
this.navigate('dashboard');
|
|
79
|
+
} else {
|
|
80
|
+
this._onRoute();
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
this.navigate('login');
|
|
84
|
+
}
|
|
85
|
+
} catch (e) {
|
|
86
|
+
// No stored accessories — go to login
|
|
87
|
+
this.navigate('login');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
this.state.initialized = true;
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Navigate to a route.
|
|
95
|
+
* @param {string} route - e.g. 'login', 'dashboard', 'detail/device/SERIAL', 'settings'
|
|
96
|
+
*/
|
|
97
|
+
navigate(route) {
|
|
98
|
+
window.location.hash = '#/' + route;
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Handle route changes.
|
|
103
|
+
*/
|
|
104
|
+
_onRoute() {
|
|
105
|
+
const hash = window.location.hash.replace('#/', '') || '';
|
|
106
|
+
const parts = hash.split('/');
|
|
107
|
+
const route = parts[0];
|
|
108
|
+
|
|
109
|
+
// Clear the root container
|
|
110
|
+
this._root.innerHTML = '';
|
|
111
|
+
|
|
112
|
+
switch (route) {
|
|
113
|
+
case 'login':
|
|
114
|
+
LoginView.render(this._root);
|
|
115
|
+
break;
|
|
116
|
+
|
|
117
|
+
case 'dashboard':
|
|
118
|
+
DashboardView.render(this._root);
|
|
119
|
+
break;
|
|
120
|
+
|
|
121
|
+
case 'detail': {
|
|
122
|
+
const type = parts[1]; // 'device' or 'station'
|
|
123
|
+
const id = parts[2]; // uniqueId
|
|
124
|
+
if (type && id) {
|
|
125
|
+
DeviceDetailView.render(this._root, type, id);
|
|
126
|
+
} else {
|
|
127
|
+
this.navigate('dashboard');
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
case 'unsupported': {
|
|
133
|
+
const uid = parts[1];
|
|
134
|
+
if (uid) {
|
|
135
|
+
UnsupportedDetailView.render(this._root, uid);
|
|
136
|
+
} else {
|
|
137
|
+
this.navigate('dashboard');
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
case 'settings':
|
|
143
|
+
SettingsView.render(this._root);
|
|
144
|
+
break;
|
|
145
|
+
|
|
146
|
+
case 'diagnostics':
|
|
147
|
+
DiagnosticsView.render(this._root);
|
|
148
|
+
break;
|
|
149
|
+
|
|
150
|
+
default:
|
|
151
|
+
// Unknown route — try dashboard if we have stations, otherwise login
|
|
152
|
+
if (this.state.stations.length > 0) {
|
|
153
|
+
this.navigate('dashboard');
|
|
154
|
+
} else {
|
|
155
|
+
this.navigate('login');
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Show a blocking error when admin account is detected.
|
|
163
|
+
*/
|
|
164
|
+
_showAdminError() {
|
|
165
|
+
this._root.innerHTML = `
|
|
166
|
+
<div class="alert alert-danger alert-admin mt-4" role="alert">
|
|
167
|
+
<h5 class="alert-heading">${Helpers.iconHtml('warning.svg')} Admin Account Detected</h5>
|
|
168
|
+
<p>
|
|
169
|
+
You are not using a <strong>dedicated guest admin account</strong>.
|
|
170
|
+
Using your primary Eufy account can cause conflicts with the Eufy app.
|
|
171
|
+
</p>
|
|
172
|
+
<hr>
|
|
173
|
+
<p class="mb-0">
|
|
174
|
+
Please create a dedicated admin account for this plugin.
|
|
175
|
+
<a href="https://github.com/homebridge-plugins/homebridge-eufy-security/wiki/Create-a-dedicated-admin-account-for-Homebridge-Eufy-Security-Plugin"
|
|
176
|
+
target="_blank" class="alert-link">
|
|
177
|
+
Follow this guide
|
|
178
|
+
</a>
|
|
179
|
+
</p>
|
|
180
|
+
</div>
|
|
181
|
+
`;
|
|
182
|
+
},
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Check if a Node.js version string is affected by the RSA_PKCS1_PADDING removal.
|
|
186
|
+
* Affected: 18.19.1+, 20.11.1+, 21.6.2+, 22.x, 23.x, and 24.x < 24.5.0.
|
|
187
|
+
* Safe: <= 18.19.0, <= 20.11.0, <= 21.6.1, and >= 24.5.0.
|
|
188
|
+
* @param {string} versionStr - e.g. 'v20.18.1'
|
|
189
|
+
* @returns {boolean}
|
|
190
|
+
*/
|
|
191
|
+
isNodeVersionAffected(versionStr) {
|
|
192
|
+
const parts = versionStr.replace('v', '').split('.').map(Number);
|
|
193
|
+
const [major, minor, patch] = parts;
|
|
194
|
+
|
|
195
|
+
if (major === 18 && (minor > 19 || (minor === 19 && patch >= 1))) return true;
|
|
196
|
+
if (major === 20 && (minor > 11 || (minor === 11 && patch >= 1))) return true;
|
|
197
|
+
if (major === 21 && (minor > 6 || (minor === 6 && patch >= 2))) return true;
|
|
198
|
+
if (major === 22 || major === 23) return true;
|
|
199
|
+
if (major === 24 && (minor < 5)) return true;
|
|
200
|
+
|
|
201
|
+
return false;
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Fetch the Node.js version from the server and update state.
|
|
206
|
+
*/
|
|
207
|
+
async checkNodeVersion() {
|
|
208
|
+
try {
|
|
209
|
+
const info = await Api.getSystemInfo();
|
|
210
|
+
const affected = this.isNodeVersionAffected(info.nodeVersion);
|
|
211
|
+
this.state.nodeVersionWarning = {
|
|
212
|
+
nodeVersion: info.nodeVersion,
|
|
213
|
+
affected,
|
|
214
|
+
acknowledged: false,
|
|
215
|
+
};
|
|
216
|
+
} catch (e) {
|
|
217
|
+
// Silently ignore — non-critical check
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
// ===== Bootstrap the app when Homebridge UI is ready =====
|
|
223
|
+
homebridge.addEventListener('ready', () => {
|
|
224
|
+
App.init();
|
|
225
|
+
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-370h80v370q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-390h80v390Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-80h240v-560H360v560Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-160h240v-480H360v480Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-240h240v-400H360v400Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-320h240v-320H360v320Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-400h240v-240H360v240Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-480h240v-160H360v160Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M320-80q-17 0-28.5-11.5T280-120v-640q0-17 11.5-28.5T320-800h80v-80h160v80h80q17 0 28.5 11.5T680-760v640q0 17-11.5 28.5T640-80H320Zm40-560h240v-80H360v80Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="m422-232 207-248H469l29-227-185 267h139l-30 208ZM320-80l40-280H160l360-520h80l-40 320h240L400-80h-80Zm151-390Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M480-200q66 0 113-47t47-113v-160q0-66-47-113t-113-47q-66 0-113 47t-47 113v160q0 66 47 113t113 47Zm-80-120h160v-80H400v80Zm0-160h160v-80H400v80Zm80 40Zm0 320q-65 0-120.5-32T272-240H160v-80h84q-3-20-3.5-40t-.5-40h-80v-80h80q0-20 .5-40t3.5-40h-84v-80h112q14-23 31.5-43t40.5-35l-64-66 56-56 86 86q28-9 57-9t57 9l88-86 56 56-66 66q23 15 41.5 34.5T688-640h112v80h-84q3 20 3.5 40t.5 40h80v80h-80q0 20-.5 40t-3.5 40h84v80H688q-32 56-87.5 88T480-120Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M120-220v-80h80v80h-80Zm0-140v-80h80v80h-80Zm0-140v-80h80v80h-80ZM260-80v-80h80v80h-80Zm100-160q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480Zm40 240v-80h80v80h-80Zm-200 0q-33 0-56.5-23.5T120-160h80v80Zm340 0v-80h80q0 33-23.5 56.5T540-80ZM120-640q0-33 23.5-56.5T200-720v80h-80Zm420 80Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z"/></svg>
|