homebridge-eufy-security 2.1.0-beta.2 → 2.1.0-beta.5
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/angular.json +115 -0
- package/config.schema.json +1 -585
- package/dist/accessories/CameraAccessory.d.ts.map +1 -1
- package/dist/accessories/CameraAccessory.js +1 -2
- package/dist/accessories/CameraAccessory.js.map +1 -1
- package/dist/accessories/Device.d.ts.map +1 -1
- package/dist/accessories/Device.js.map +1 -1
- package/dist/accessories/DoorbellCameraAccessory.d.ts.map +1 -1
- package/dist/accessories/DoorbellCameraAccessory.js +2 -1
- package/dist/accessories/DoorbellCameraAccessory.js.map +1 -1
- package/dist/accessories/EntrySensorAccessory.d.ts.map +1 -1
- package/dist/accessories/EntrySensorAccessory.js.map +1 -1
- package/dist/accessories/KeypadAccessory.d.ts.map +1 -1
- package/dist/accessories/KeypadAccessory.js.map +1 -1
- package/dist/accessories/LocalLivestreamManager.d.ts +0 -2
- package/dist/accessories/LocalLivestreamManager.d.ts.map +1 -1
- package/dist/accessories/LocalLivestreamManager.js.map +1 -1
- package/dist/accessories/MotionSensorAccessory.d.ts.map +1 -1
- package/dist/accessories/MotionSensorAccessory.js.map +1 -1
- package/dist/accessories/SmartLockAccessory.d.ts +2 -2
- package/dist/accessories/SmartLockAccessory.d.ts.map +1 -1
- package/dist/accessories/SmartLockAccessory.js +21 -9
- package/dist/accessories/SmartLockAccessory.js.map +1 -1
- package/dist/accessories/SnapshotManager.d.ts +0 -1
- package/dist/accessories/SnapshotManager.d.ts.map +1 -1
- package/dist/accessories/SnapshotManager.js +3 -2
- package/dist/accessories/SnapshotManager.js.map +1 -1
- package/dist/accessories/StationAccessory.d.ts +4 -0
- package/dist/accessories/StationAccessory.d.ts.map +1 -1
- package/dist/accessories/StationAccessory.js +30 -6
- package/dist/accessories/StationAccessory.js.map +1 -1
- package/dist/accessories/UniversalStream.d.ts.map +1 -1
- package/dist/accessories/UniversalStream.js +11 -7
- package/dist/accessories/UniversalStream.js.map +1 -1
- package/dist/accessories/configTypes.d.ts +7 -0
- package/dist/accessories/configTypes.d.ts.map +1 -1
- package/dist/accessories/configTypes.js.map +1 -1
- package/dist/accessories/ffmpeg.d.ts.map +1 -1
- package/dist/accessories/ffmpeg.js +4 -4
- package/dist/accessories/ffmpeg.js.map +1 -1
- package/dist/accessories/logger.d.ts.map +1 -1
- package/dist/accessories/logger.js.map +1 -1
- package/dist/accessories/streamingDelegate.d.ts +0 -2
- package/dist/accessories/streamingDelegate.d.ts.map +1 -1
- package/dist/accessories/streamingDelegate.js +99 -85
- package/dist/accessories/streamingDelegate.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +5 -0
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/homebridge-ui/configui/app/accessory.d.ts +9 -0
- package/homebridge-ui/configui/app/accessory.d.ts.map +1 -0
- package/homebridge-ui/configui/app/accessory.js +3 -0
- package/homebridge-ui/configui/app/accessory.js.map +1 -0
- package/homebridge-ui/configui/app/util/types.d.ts +17 -0
- package/homebridge-ui/configui/app/util/types.d.ts.map +1 -0
- package/homebridge-ui/configui/app/util/types.js +11 -0
- package/homebridge-ui/configui/app/util/types.js.map +1 -0
- package/homebridge-ui/public/3rdpartylicenses.txt +700 -0
- package/homebridge-ui/public/{images → assets/images}/homebridge-eufy-security.png +0 -0
- package/homebridge-ui/public/favicon.ico +0 -0
- package/homebridge-ui/public/index.html +13 -820
- package/homebridge-ui/public/main.713bc8fd3b62c234.js +1 -0
- package/homebridge-ui/public/polyfills.6050693665c0e882.js +1 -0
- package/homebridge-ui/public/runtime.1b3e1be22c2e329f.js +1 -0
- package/homebridge-ui/public/styles.cb76993070abc56c.css +6 -0
- package/homebridge-ui/server.d.ts +2 -0
- package/homebridge-ui/server.d.ts.map +1 -0
- package/homebridge-ui/server.js +201 -330
- package/homebridge-ui/server.js.map +1 -0
- package/karma.conf.js +44 -0
- package/package.json +43 -7
- package/tsconfig.configui.app.json +17 -0
- package/tsconfig.configui.json +32 -0
- package/tsconfig.configui.server.json +27 -0
- package/tsconfig.configui.spec.json +18 -0
- package/tsconfig.plugin.json +26 -0
- package/homebridge-ui/public/css/style.css +0 -94
- package/homebridge-ui/public/js/main.js +0 -997
package/angular.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"newProjectRoot": "projects",
|
|
5
|
+
"projects": {
|
|
6
|
+
"config-ui": {
|
|
7
|
+
"projectType": "application",
|
|
8
|
+
"schematics": {
|
|
9
|
+
"@schematics/angular:application": {
|
|
10
|
+
"strict": true
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"root": "",
|
|
14
|
+
"sourceRoot": "src/configui",
|
|
15
|
+
"prefix": "app",
|
|
16
|
+
"architect": {
|
|
17
|
+
"build": {
|
|
18
|
+
"builder": "@angular-devkit/build-angular:browser",
|
|
19
|
+
"options": {
|
|
20
|
+
"outputPath": "homebridge-ui/public",
|
|
21
|
+
"index": "src/configui/index.html",
|
|
22
|
+
"main": "src/configui/main.ts",
|
|
23
|
+
"polyfills": "src/configui/polyfills.ts",
|
|
24
|
+
"tsConfig": "tsconfig.configui.app.json",
|
|
25
|
+
"assets": [
|
|
26
|
+
"src/configui/favicon.ico",
|
|
27
|
+
"src/configui/assets"
|
|
28
|
+
],
|
|
29
|
+
"styles": [
|
|
30
|
+
"node_modules/bootstrap/dist/css/bootstrap.min.css",
|
|
31
|
+
"src/configui/styles.css"
|
|
32
|
+
],
|
|
33
|
+
"scripts": []
|
|
34
|
+
},
|
|
35
|
+
"configurations": {
|
|
36
|
+
"production": {
|
|
37
|
+
"budgets": [
|
|
38
|
+
{
|
|
39
|
+
"type": "initial",
|
|
40
|
+
"maximumWarning": "2mb",
|
|
41
|
+
"maximumError": "5mb"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "anyComponentStyle",
|
|
45
|
+
"maximumWarning": "2kb",
|
|
46
|
+
"maximumError": "4kb"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"fileReplacements": [
|
|
50
|
+
{
|
|
51
|
+
"replace": "src/configui/environments/environment.ts",
|
|
52
|
+
"with": "src/configui/environments/environment.prod.ts"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"optimization": {
|
|
56
|
+
"scripts": true,
|
|
57
|
+
"styles": {
|
|
58
|
+
"minify": true,
|
|
59
|
+
"inlineCritical": false
|
|
60
|
+
},
|
|
61
|
+
"fonts": true
|
|
62
|
+
},
|
|
63
|
+
"outputHashing": "all"
|
|
64
|
+
},
|
|
65
|
+
"development": {
|
|
66
|
+
"buildOptimizer": false,
|
|
67
|
+
"optimization": false,
|
|
68
|
+
"vendorChunk": true,
|
|
69
|
+
"extractLicenses": false,
|
|
70
|
+
"sourceMap": true,
|
|
71
|
+
"namedChunks": true
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"defaultConfiguration": "production"
|
|
75
|
+
},
|
|
76
|
+
"serve": {
|
|
77
|
+
"builder": "@angular-devkit/build-angular:dev-server",
|
|
78
|
+
"configurations": {
|
|
79
|
+
"production": {
|
|
80
|
+
"browserTarget": "config-ui:build:production"
|
|
81
|
+
},
|
|
82
|
+
"development": {
|
|
83
|
+
"browserTarget": "config-ui:build:development"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"defaultConfiguration": "development"
|
|
87
|
+
},
|
|
88
|
+
"extract-i18n": {
|
|
89
|
+
"builder": "@angular-devkit/build-angular:extract-i18n",
|
|
90
|
+
"options": {
|
|
91
|
+
"browserTarget": "config-ui:build"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"test": {
|
|
95
|
+
"builder": "@angular-devkit/build-angular:karma",
|
|
96
|
+
"options": {
|
|
97
|
+
"main": "src/configui/test.ts",
|
|
98
|
+
"polyfills": "src/configui/polyfills.ts",
|
|
99
|
+
"tsConfig": "tsconfig.configui.spec.json",
|
|
100
|
+
"karmaConfig": "karma.conf.js",
|
|
101
|
+
"assets": [
|
|
102
|
+
"src/configui/favicon.ico",
|
|
103
|
+
"src/configui/assets"
|
|
104
|
+
],
|
|
105
|
+
"styles": [
|
|
106
|
+
"src/configui/styles.css"
|
|
107
|
+
],
|
|
108
|
+
"scripts": []
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"defaultProject": "config-ui"
|
|
115
|
+
}
|
package/config.schema.json
CHANGED
|
@@ -2,589 +2,5 @@
|
|
|
2
2
|
"pluginAlias": "EufySecurity",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
-
"customUi": true
|
|
6
|
-
"schema": {
|
|
7
|
-
"type": "object",
|
|
8
|
-
"properties": {
|
|
9
|
-
"username": {
|
|
10
|
-
"title": "Eufy username",
|
|
11
|
-
"type": "string",
|
|
12
|
-
"required": true,
|
|
13
|
-
"description": "Eufy username/email"
|
|
14
|
-
},
|
|
15
|
-
"password": {
|
|
16
|
-
"title": "Eufy Password",
|
|
17
|
-
"type": "string",
|
|
18
|
-
"required": true,
|
|
19
|
-
"description": "Eufy password"
|
|
20
|
-
},
|
|
21
|
-
"enableDetailedLogging": {
|
|
22
|
-
"title": "Enable Detailed Logging?",
|
|
23
|
-
"type": "number",
|
|
24
|
-
"default": 0,
|
|
25
|
-
"oneOf": [
|
|
26
|
-
{
|
|
27
|
-
"title": "Normal",
|
|
28
|
-
"enum": [
|
|
29
|
-
0
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"title": "Debug",
|
|
34
|
-
"enum": [
|
|
35
|
-
1
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"title": "Insane",
|
|
40
|
-
"enum": [
|
|
41
|
-
2
|
|
42
|
-
]
|
|
43
|
-
}
|
|
44
|
-
],
|
|
45
|
-
"description": "Becarefull Debug and Insane may contain credential and personnal information which could be use to login into your Eufy Account",
|
|
46
|
-
"required": true
|
|
47
|
-
},
|
|
48
|
-
"enableCamera": {
|
|
49
|
-
"title": "Camera device seen as Camera",
|
|
50
|
-
"description": "Camera seen as Motion Sensor by default, enable this setting to transform as Camera",
|
|
51
|
-
"type": "boolean",
|
|
52
|
-
"required": false
|
|
53
|
-
},
|
|
54
|
-
"CameraMaxLivestreamDuration": {
|
|
55
|
-
"title": "Camera Max Livestream Duration (in seconds) ",
|
|
56
|
-
"type": "number",
|
|
57
|
-
"required": false
|
|
58
|
-
},
|
|
59
|
-
"pollingIntervalMinutes": {
|
|
60
|
-
"title": "Polling Interval (in minutes) ",
|
|
61
|
-
"type": "number",
|
|
62
|
-
"required": false
|
|
63
|
-
},
|
|
64
|
-
"enableButton": {
|
|
65
|
-
"title": "Display homekit button to switch on/off camera",
|
|
66
|
-
"description": "When disabling theses buttons you might need to clear accessory cache (homebridge settings) so it can take effect into homekit.",
|
|
67
|
-
"type": "boolean",
|
|
68
|
-
"default": true,
|
|
69
|
-
"required": false
|
|
70
|
-
},
|
|
71
|
-
"motionButton": {
|
|
72
|
-
"title": "Display homekit button to switch on/off motion camera",
|
|
73
|
-
"description": "When disabling theses buttons you might need to clear accessory cache (homebridge settings) so it can take effect into homekit.",
|
|
74
|
-
"type": "boolean",
|
|
75
|
-
"default": true,
|
|
76
|
-
"required": false
|
|
77
|
-
},
|
|
78
|
-
"ignoreStations": {
|
|
79
|
-
"title": "Ignoring stations",
|
|
80
|
-
"type": "array",
|
|
81
|
-
"required": false,
|
|
82
|
-
"items": {
|
|
83
|
-
"type": "string"
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
"ignoreDevices": {
|
|
87
|
-
"title": "Ignoring devices",
|
|
88
|
-
"type": "array",
|
|
89
|
-
"required": false,
|
|
90
|
-
"items": {
|
|
91
|
-
"type": "string"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
"hkHome": {
|
|
95
|
-
"title": "HomeKit Home",
|
|
96
|
-
"type": "number",
|
|
97
|
-
"default": 1,
|
|
98
|
-
"oneOf": [
|
|
99
|
-
{
|
|
100
|
-
"title": "Home",
|
|
101
|
-
"enum": [
|
|
102
|
-
1
|
|
103
|
-
]
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"title": "Away",
|
|
107
|
-
"enum": [
|
|
108
|
-
0
|
|
109
|
-
]
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"title": "Schedule",
|
|
113
|
-
"enum": [
|
|
114
|
-
2
|
|
115
|
-
]
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"title": "Custom 1",
|
|
119
|
-
"enum": [
|
|
120
|
-
3
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
"title": "Custom 2",
|
|
125
|
-
"enum": [
|
|
126
|
-
4
|
|
127
|
-
]
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"title": "Custom 3",
|
|
131
|
-
"enum": [
|
|
132
|
-
5
|
|
133
|
-
]
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"title": "Geofencing",
|
|
137
|
-
"enum": [
|
|
138
|
-
47
|
|
139
|
-
]
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"title": "Disarmed",
|
|
143
|
-
"enum": [
|
|
144
|
-
63
|
|
145
|
-
]
|
|
146
|
-
}
|
|
147
|
-
],
|
|
148
|
-
"required": false
|
|
149
|
-
},
|
|
150
|
-
"hkAway": {
|
|
151
|
-
"title": "HomeKit Away",
|
|
152
|
-
"type": "number",
|
|
153
|
-
"default": 0,
|
|
154
|
-
"oneOf": [
|
|
155
|
-
{
|
|
156
|
-
"title": "Home",
|
|
157
|
-
"enum": [
|
|
158
|
-
1
|
|
159
|
-
]
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
"title": "Away",
|
|
163
|
-
"enum": [
|
|
164
|
-
0
|
|
165
|
-
]
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"title": "Schedule",
|
|
169
|
-
"enum": [
|
|
170
|
-
2
|
|
171
|
-
]
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"title": "Custom 1",
|
|
175
|
-
"enum": [
|
|
176
|
-
3
|
|
177
|
-
]
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"title": "Custom 2",
|
|
181
|
-
"enum": [
|
|
182
|
-
4
|
|
183
|
-
]
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
"title": "Custom 3",
|
|
187
|
-
"enum": [
|
|
188
|
-
5
|
|
189
|
-
]
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"title": "Geofencing",
|
|
193
|
-
"enum": [
|
|
194
|
-
47
|
|
195
|
-
]
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
"title": "Disarmed",
|
|
199
|
-
"enum": [
|
|
200
|
-
63
|
|
201
|
-
]
|
|
202
|
-
}
|
|
203
|
-
],
|
|
204
|
-
"required": false
|
|
205
|
-
},
|
|
206
|
-
"hkNight": {
|
|
207
|
-
"title": "HomeKit Night",
|
|
208
|
-
"type": "number",
|
|
209
|
-
"default": 3,
|
|
210
|
-
"oneOf": [
|
|
211
|
-
{
|
|
212
|
-
"title": "Home",
|
|
213
|
-
"enum": [
|
|
214
|
-
1
|
|
215
|
-
]
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
"title": "Away",
|
|
219
|
-
"enum": [
|
|
220
|
-
0
|
|
221
|
-
]
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
"title": "Schedule",
|
|
225
|
-
"enum": [
|
|
226
|
-
2
|
|
227
|
-
]
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
"title": "Custom 1",
|
|
231
|
-
"enum": [
|
|
232
|
-
3
|
|
233
|
-
]
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
"title": "Custom 2",
|
|
237
|
-
"enum": [
|
|
238
|
-
4
|
|
239
|
-
]
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
"title": "Custom 3",
|
|
243
|
-
"enum": [
|
|
244
|
-
5
|
|
245
|
-
]
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
"title": "Geofencing",
|
|
249
|
-
"enum": [
|
|
250
|
-
47
|
|
251
|
-
]
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
"title": "Disarmed",
|
|
255
|
-
"enum": [
|
|
256
|
-
63
|
|
257
|
-
]
|
|
258
|
-
}
|
|
259
|
-
],
|
|
260
|
-
"required": false
|
|
261
|
-
},
|
|
262
|
-
"hkOff": {
|
|
263
|
-
"title": "HomeKit Off",
|
|
264
|
-
"type": "number",
|
|
265
|
-
"default": 63,
|
|
266
|
-
"oneOf": [
|
|
267
|
-
{
|
|
268
|
-
"title": "Home",
|
|
269
|
-
"enum": [
|
|
270
|
-
1
|
|
271
|
-
]
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
"title": "Away",
|
|
275
|
-
"enum": [
|
|
276
|
-
0
|
|
277
|
-
]
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
"title": "Schedule",
|
|
281
|
-
"enum": [
|
|
282
|
-
2
|
|
283
|
-
]
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
"title": "Custom 1",
|
|
287
|
-
"enum": [
|
|
288
|
-
3
|
|
289
|
-
]
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
"title": "Custom 2",
|
|
293
|
-
"enum": [
|
|
294
|
-
4
|
|
295
|
-
]
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
"title": "Custom 3",
|
|
299
|
-
"enum": [
|
|
300
|
-
5
|
|
301
|
-
]
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"title": "Geofencing",
|
|
305
|
-
"enum": [
|
|
306
|
-
47
|
|
307
|
-
]
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
"title": "Disarmed",
|
|
311
|
-
"enum": [
|
|
312
|
-
63
|
|
313
|
-
]
|
|
314
|
-
}
|
|
315
|
-
],
|
|
316
|
-
"required": false
|
|
317
|
-
},
|
|
318
|
-
"country": {
|
|
319
|
-
"title": "Eufy Country",
|
|
320
|
-
"type": "string",
|
|
321
|
-
"required": false,
|
|
322
|
-
"discription": "Eufy Country selection"
|
|
323
|
-
},
|
|
324
|
-
"cameras": {
|
|
325
|
-
"type": "array",
|
|
326
|
-
"items": {
|
|
327
|
-
"title": "Cameras",
|
|
328
|
-
"type": "object",
|
|
329
|
-
"properties": {
|
|
330
|
-
"serialNumber": {
|
|
331
|
-
"name": "Serial Number",
|
|
332
|
-
"type": "string",
|
|
333
|
-
"placeholder": "SerialNumber",
|
|
334
|
-
"description": "Set the serial number for display in the Home app."
|
|
335
|
-
},
|
|
336
|
-
"videoConfig": {
|
|
337
|
-
"title": "Video Configuration",
|
|
338
|
-
"type": "object",
|
|
339
|
-
"properties": {
|
|
340
|
-
"readRate": {
|
|
341
|
-
"title": "Read Rate",
|
|
342
|
-
"type": "boolean",
|
|
343
|
-
"description": "Read input at native frame rate (-re)."
|
|
344
|
-
},
|
|
345
|
-
"analyzeDuration": {
|
|
346
|
-
"title": "Analyze Duration",
|
|
347
|
-
"type": "integer",
|
|
348
|
-
"description": "Specify how many microseconds are analyzed to probe the input. A higher value will enable detecting more accurate information, but will increase latency. It defaults to 5,000,000 microseconds = 5 seconds (-analyzeduration)."
|
|
349
|
-
},
|
|
350
|
-
"probeSize": {
|
|
351
|
-
"title": "Probe Size",
|
|
352
|
-
"type": "integer",
|
|
353
|
-
"description": "Set probing size in bytes, i.e. the size of the data to analyze to get stream information. A higher value will enable detecting more information in case it is dispersed into the stream, but will increase latency. Must be an integer not lesser than 32. It is 5000000 by default (-probesize)."
|
|
354
|
-
},
|
|
355
|
-
"reorderQueueSize": {
|
|
356
|
-
"title": "Reorder Queue Size (Jitter buffer size)",
|
|
357
|
-
"type": "integer",
|
|
358
|
-
"description": "Packets may be received out of order, so before they can be passed onwards, they need to be reordered. Default jitter buffer size is 500. This option allows you to specify it manually. Higher values will lead to greater latency. Only applicable for reception over UDP (-reorder_queue_size)."
|
|
359
|
-
},
|
|
360
|
-
"maxDelay": {
|
|
361
|
-
"title": "Max Delay",
|
|
362
|
-
"type": "integer",
|
|
363
|
-
"description": "When receiving data over UDP, the demuxer tries to reorder received packets (since they may arrive out of order, or packets may get lost totally). This can be disabled by setting the maximum demuxing delay to zero (-max_delay)."
|
|
364
|
-
},
|
|
365
|
-
"maxStreams": {
|
|
366
|
-
"title": "Maximum Concurrent Streams",
|
|
367
|
-
"type": "integer",
|
|
368
|
-
"default": 2,
|
|
369
|
-
"minimum": 1,
|
|
370
|
-
"description": "The maximum number of streams that will be allowed at once to this camera."
|
|
371
|
-
},
|
|
372
|
-
"maxFPS": {
|
|
373
|
-
"title": "Maximum Framerate",
|
|
374
|
-
"type": "integer",
|
|
375
|
-
"placeholder": 20,
|
|
376
|
-
"minimum": 0,
|
|
377
|
-
"description": "The maximum frame rate used for video streamed to HomeKit. If set to 0, the framerate of the source is used. If not set, will use any framerate HomeKit requests (-r)."
|
|
378
|
-
},
|
|
379
|
-
"maxBitrate": {
|
|
380
|
-
"title": "Maximum Bitrate",
|
|
381
|
-
"type": "integer",
|
|
382
|
-
"placeholder": 299,
|
|
383
|
-
"minimum": 0,
|
|
384
|
-
"description": "The maximum bitrate used for video stream, in kbit/s. If not set, will use any bitrate HomeKit requests (-b:v)."
|
|
385
|
-
},
|
|
386
|
-
"forceMax": {
|
|
387
|
-
"title": "Force Maximums",
|
|
388
|
-
"type": "boolean",
|
|
389
|
-
"description": "If set, the settings requested by HomeKit will be overridden with any 'maximum' values defined in this config."
|
|
390
|
-
},
|
|
391
|
-
"vcodec": {
|
|
392
|
-
"title": "Video Codec",
|
|
393
|
-
"type": "string",
|
|
394
|
-
"default": "copy",
|
|
395
|
-
"typeahead": {
|
|
396
|
-
"source": [
|
|
397
|
-
"libx264",
|
|
398
|
-
"h264_omx",
|
|
399
|
-
"h264_videotoolbox",
|
|
400
|
-
"copy"
|
|
401
|
-
]
|
|
402
|
-
},
|
|
403
|
-
"description": "Set the codec used for encoding video sent to HomeKit, must be H.264-based. You can change to a hardware accelerated video codec with this option, if one is available (-vcodec)."
|
|
404
|
-
},
|
|
405
|
-
"acodec": {
|
|
406
|
-
"title": "Audio Codec",
|
|
407
|
-
"type": "string",
|
|
408
|
-
"default": "libfdk_aac",
|
|
409
|
-
"typeahead": {
|
|
410
|
-
"source": [
|
|
411
|
-
"libfdk_aac",
|
|
412
|
-
"copy"
|
|
413
|
-
]
|
|
414
|
-
},
|
|
415
|
-
"description": "Set the codec used for encoding audio sent to HomeKit for HSV, must be AAC-based (-acodec)."
|
|
416
|
-
},
|
|
417
|
-
"packetSize": {
|
|
418
|
-
"title": "Packet Size",
|
|
419
|
-
"type": "number",
|
|
420
|
-
"placeholder": 1316,
|
|
421
|
-
"multipleOf": 188,
|
|
422
|
-
"minimum": 188,
|
|
423
|
-
"description": "If audio or video is choppy try a smaller value."
|
|
424
|
-
},
|
|
425
|
-
"stimeout": {
|
|
426
|
-
"title": "Socket Timeout",
|
|
427
|
-
"type": "number",
|
|
428
|
-
"description": "Socket TCP I/O timeout in seconds. If you have problems with hanging FFmpeg processes in the background, you can enter any value here to stop the process automatically after the entered time, if no response comes (-stimeout).",
|
|
429
|
-
"minimum": 0,
|
|
430
|
-
"maximum": 60
|
|
431
|
-
},
|
|
432
|
-
"videoFilter": {
|
|
433
|
-
"title": "Additional Video Filters",
|
|
434
|
-
"type": "string",
|
|
435
|
-
"description": "Comma-delimited list of additional video filters for FFmpeg to run on the video. If 'none' is included, the default video filters are disabled (-filter:v)."
|
|
436
|
-
},
|
|
437
|
-
"encoderOptions": {
|
|
438
|
-
"title": "Encoder Options",
|
|
439
|
-
"type": "string",
|
|
440
|
-
"placeholder": "-preset ultrafast -tune zerolatency",
|
|
441
|
-
"description": "Options to be passed to the video encoder."
|
|
442
|
-
},
|
|
443
|
-
"mapvideo": {
|
|
444
|
-
"type": "string",
|
|
445
|
-
"title": "Video Stream",
|
|
446
|
-
"description": "Selects the stream used for video (-map)."
|
|
447
|
-
},
|
|
448
|
-
"mapaudio": {
|
|
449
|
-
"type": "string",
|
|
450
|
-
"title": "Audio Stream",
|
|
451
|
-
"description": "Selects the stream used for audio (-map)."
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
},
|
|
460
|
-
"layout": [
|
|
461
|
-
{
|
|
462
|
-
"type": "flex",
|
|
463
|
-
"flex-flow": "row wrap",
|
|
464
|
-
"items": [
|
|
465
|
-
"username",
|
|
466
|
-
{
|
|
467
|
-
"key": "password",
|
|
468
|
-
"type": "password"
|
|
469
|
-
}
|
|
470
|
-
]
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
"type": "fieldset",
|
|
474
|
-
"title": "Cameras",
|
|
475
|
-
"expandable": true,
|
|
476
|
-
"expanded": false,
|
|
477
|
-
"items": [
|
|
478
|
-
{
|
|
479
|
-
"key": "cameras",
|
|
480
|
-
"type": "tabarray",
|
|
481
|
-
"title": "{{ value.serialNumber || 'new Camera' }}",
|
|
482
|
-
"items": [
|
|
483
|
-
"cameras[].serialNumber",
|
|
484
|
-
{
|
|
485
|
-
"key": "cameras[]",
|
|
486
|
-
"type": "section",
|
|
487
|
-
"title": "Stream Configuration",
|
|
488
|
-
"expandable": true,
|
|
489
|
-
"expanded": false,
|
|
490
|
-
"items": [
|
|
491
|
-
"cameras[].videoConfig.maxStreams",
|
|
492
|
-
"cameras[].videoConfig.maxFPS",
|
|
493
|
-
"cameras[].videoConfig.maxBitrate",
|
|
494
|
-
"cameras[].videoConfig.forceMax"
|
|
495
|
-
]
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
"key": "cameras[]",
|
|
499
|
-
"type": "section",
|
|
500
|
-
"title": "Advanced Stream Configuration",
|
|
501
|
-
"expandable": true,
|
|
502
|
-
"expanded": false,
|
|
503
|
-
"items": [
|
|
504
|
-
"cameras[].videoConfig.readRate",
|
|
505
|
-
"cameras[].videoConfig.acodec",
|
|
506
|
-
"cameras[].videoConfig.vcodec",
|
|
507
|
-
"cameras[].videoConfig.analyzeDuration",
|
|
508
|
-
"cameras[].videoConfig.probeSize",
|
|
509
|
-
"cameras[].videoConfig.reorderQueueSize",
|
|
510
|
-
"cameras[].videoConfig.maxDelay",
|
|
511
|
-
"cameras[].videoConfig.stimeout",
|
|
512
|
-
"cameras[].videoConfig.packetSize",
|
|
513
|
-
"cameras[].videoConfig.mapvideo",
|
|
514
|
-
"cameras[].videoConfig.mapaudio",
|
|
515
|
-
"cameras[].videoConfig.videoFilter",
|
|
516
|
-
"cameras[].videoConfig.encoderOptions"
|
|
517
|
-
]
|
|
518
|
-
}
|
|
519
|
-
]
|
|
520
|
-
}
|
|
521
|
-
]
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
"type": "section",
|
|
525
|
-
"title": "HomeKit Security Mode Settings",
|
|
526
|
-
"description": "Change how each mode in the HomeKit security system is mapped to the modes in the Eufy App",
|
|
527
|
-
"expandable": true,
|
|
528
|
-
"expanded": false,
|
|
529
|
-
"items": [
|
|
530
|
-
"hkHome",
|
|
531
|
-
"hkAway",
|
|
532
|
-
"hkNight",
|
|
533
|
-
"hkOff"
|
|
534
|
-
]
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
"type": "section",
|
|
538
|
-
"title": "Optional Settings",
|
|
539
|
-
"expandable": true,
|
|
540
|
-
"expanded": false,
|
|
541
|
-
"items": [
|
|
542
|
-
"enableDetailedLogging",
|
|
543
|
-
"enableCamera",
|
|
544
|
-
"enableButton",
|
|
545
|
-
"motionButton",
|
|
546
|
-
"CameraMaxLivestreamDuration",
|
|
547
|
-
"pollingIntervalMinutes",
|
|
548
|
-
"country",
|
|
549
|
-
"codec",
|
|
550
|
-
"ffmpegdebug",
|
|
551
|
-
{
|
|
552
|
-
"key": "ignoreStations",
|
|
553
|
-
"add": "Add Another Device ID",
|
|
554
|
-
"type": "array",
|
|
555
|
-
"items": [
|
|
556
|
-
{
|
|
557
|
-
"type": "div",
|
|
558
|
-
"displayFlex": true,
|
|
559
|
-
"flex-direction": "row",
|
|
560
|
-
"items": [
|
|
561
|
-
{
|
|
562
|
-
"key": "ignoreStations[]",
|
|
563
|
-
"placeholder": "Device ID"
|
|
564
|
-
}
|
|
565
|
-
]
|
|
566
|
-
}
|
|
567
|
-
]
|
|
568
|
-
},
|
|
569
|
-
{
|
|
570
|
-
"key": "ignoreDevices",
|
|
571
|
-
"add": "Add Another Device ID",
|
|
572
|
-
"type": "array",
|
|
573
|
-
"items": [
|
|
574
|
-
{
|
|
575
|
-
"type": "div",
|
|
576
|
-
"displayFlex": true,
|
|
577
|
-
"flex-direction": "row",
|
|
578
|
-
"items": [
|
|
579
|
-
{
|
|
580
|
-
"key": "ignoreDevices[]",
|
|
581
|
-
"placeholder": "Device ID"
|
|
582
|
-
}
|
|
583
|
-
]
|
|
584
|
-
}
|
|
585
|
-
]
|
|
586
|
-
}
|
|
587
|
-
]
|
|
588
|
-
}
|
|
589
|
-
]
|
|
5
|
+
"customUi": true
|
|
590
6
|
}
|