iobroker.eusec 0.8.2
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/LICENSE +21 -0
- package/README.md +569 -0
- package/adapter-settings.js +2423 -0
- package/admin/admin.d.ts +93 -0
- package/admin/euSec.png +0 -0
- package/admin/i18n/de/translations.json +18 -0
- package/admin/i18n/en/translations.json +18 -0
- package/admin/i18n/es/translations.json +18 -0
- package/admin/i18n/fr/translations.json +18 -0
- package/admin/i18n/it/translations.json +18 -0
- package/admin/i18n/nl/translations.json +18 -0
- package/admin/i18n/pl/translations.json +18 -0
- package/admin/i18n/pt/translations.json +18 -0
- package/admin/i18n/ru/translations.json +18 -0
- package/admin/i18n/zh-cn/translations.json +18 -0
- package/admin/index_m.html +156 -0
- package/admin/jsonConfig.json +134 -0
- package/admin/style.css +31 -0
- package/admin/words.js +221 -0
- package/build/lib/interfaces.js +3 -0
- package/build/lib/interfaces.js.map +1 -0
- package/build/lib/log.js +53 -0
- package/build/lib/log.js.map +1 -0
- package/build/lib/tools.js +99 -0
- package/build/lib/tools.js.map +1 -0
- package/build/lib/types.js +127 -0
- package/build/lib/types.js.map +1 -0
- package/build/lib/utils.js +451 -0
- package/build/lib/utils.js.map +1 -0
- package/build/lib/video.js +224 -0
- package/build/lib/video.js.map +1 -0
- package/build/lib/web.js +86 -0
- package/build/lib/web.js.map +1 -0
- package/build/main.js +1358 -0
- package/build/main.js.map +1 -0
- package/io-package.json +216 -0
- package/package.json +84 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.convertCamelCaseToSnakeCase = exports.handleUpdate = exports.removeLastChar = exports.getVideoClipLength = exports.sleep = exports.lowestUnusedNumber = exports.moveFiles = exports.removeFiles = exports.saveImageStates = exports.setStateWithTimestamp = exports.setStateChangedWithTimestamp = exports.saveImage = exports.getDataFilePath = exports.getImageAsHTML = exports.getImage = exports.isEmpty = exports.setStateChangedAsync = void 0;
|
|
26
|
+
const got_1 = __importDefault(require("got"));
|
|
27
|
+
const eufy_security_client_1 = require("eufy-security-client");
|
|
28
|
+
const path_1 = __importDefault(require("path"));
|
|
29
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
30
|
+
const utils = __importStar(require("@iobroker/adapter-core"));
|
|
31
|
+
const types_1 = require("./types");
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
33
|
+
const setStateChangedAsync = async function (adapter, id, value) {
|
|
34
|
+
return await adapter.setStateChangedAsync(id, value === undefined || value === null ? null : { val: value, ack: true }).catch();
|
|
35
|
+
};
|
|
36
|
+
exports.setStateChangedAsync = setStateChangedAsync;
|
|
37
|
+
const isEmpty = function (str) {
|
|
38
|
+
if (str) {
|
|
39
|
+
if (str.length > 0)
|
|
40
|
+
return false;
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
};
|
|
45
|
+
exports.isEmpty = isEmpty;
|
|
46
|
+
const getImage = async function (url) {
|
|
47
|
+
const response = await (0, got_1.default)(url, {
|
|
48
|
+
method: "GET",
|
|
49
|
+
responseType: "buffer",
|
|
50
|
+
http2: true,
|
|
51
|
+
throwHttpErrors: false,
|
|
52
|
+
retry: {
|
|
53
|
+
limit: 3,
|
|
54
|
+
methods: ["GET"]
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return response;
|
|
58
|
+
};
|
|
59
|
+
exports.getImage = getImage;
|
|
60
|
+
const getImageAsHTML = function (data) {
|
|
61
|
+
if (data && data.length > 0)
|
|
62
|
+
return `<img src="data:image/jpg;base64,${data.toString("base64")}" style="width: auto ;height: 100%;" />`;
|
|
63
|
+
return "";
|
|
64
|
+
};
|
|
65
|
+
exports.getImageAsHTML = getImageAsHTML;
|
|
66
|
+
const getDataFilePath = function (adapter, stationSerial, folderName, fileName) {
|
|
67
|
+
const dir_path = path_1.default.join(utils.getAbsoluteInstanceDataDir(adapter), stationSerial, folderName);
|
|
68
|
+
if (!fs_extra_1.default.existsSync(dir_path)) {
|
|
69
|
+
fs_extra_1.default.mkdirSync(dir_path, { mode: 0o775, recursive: true });
|
|
70
|
+
}
|
|
71
|
+
return path_1.default.join(dir_path, fileName);
|
|
72
|
+
};
|
|
73
|
+
exports.getDataFilePath = getDataFilePath;
|
|
74
|
+
const saveImage = async function (adapter, url, station_sn, device_sn, location) {
|
|
75
|
+
const result = {
|
|
76
|
+
status: 0,
|
|
77
|
+
statusText: "",
|
|
78
|
+
imageUrl: "",
|
|
79
|
+
imageHtml: ""
|
|
80
|
+
};
|
|
81
|
+
try {
|
|
82
|
+
if (url) {
|
|
83
|
+
const response = await (0, exports.getImage)(url);
|
|
84
|
+
result.status = response.statusCode;
|
|
85
|
+
result.statusText = response.statusMessage ? response.statusMessage : "";
|
|
86
|
+
if (result.status === 200) {
|
|
87
|
+
const data = response.body;
|
|
88
|
+
const fileName = `${device_sn}${types_1.IMAGE_FILE_JPEG_EXT}`;
|
|
89
|
+
const filePath = path_1.default.join(utils.getAbsoluteInstanceDataDir(adapter), station_sn, location);
|
|
90
|
+
if (!fs_extra_1.default.existsSync(filePath)) {
|
|
91
|
+
fs_extra_1.default.mkdirSync(filePath, { mode: 0o775, recursive: true });
|
|
92
|
+
}
|
|
93
|
+
await fs_extra_1.default.writeFile(path_1.default.join(filePath, fileName), data).then(() => {
|
|
94
|
+
result.imageUrl = `/${adapter.namespace}/${station_sn}/${location}/${device_sn}${types_1.IMAGE_FILE_JPEG_EXT}`;
|
|
95
|
+
result.imageHtml = (0, exports.getImageAsHTML)(data);
|
|
96
|
+
}).catch(error => {
|
|
97
|
+
adapter.log.error(`saveImage(): writeFile Error: ${error} - url: ${url}`);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
adapter.log.error(`saveImage(): Error: ${error} - url: ${url}`);
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
};
|
|
107
|
+
exports.saveImage = saveImage;
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
109
|
+
const setStateChangedWithTimestamp = async function (adapter, id, value, timestamp) {
|
|
110
|
+
//TODO: Changed value same timestamp!
|
|
111
|
+
const obj = await adapter.getObjectAsync(id);
|
|
112
|
+
if (obj) {
|
|
113
|
+
if ((obj.native.timestamp !== undefined && obj.native.timestamp < timestamp) || obj.native.timestamp === undefined) {
|
|
114
|
+
obj.native.timestamp = timestamp;
|
|
115
|
+
await (0, exports.setStateChangedAsync)(adapter, id, value);
|
|
116
|
+
await adapter.setObject(id, obj);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
exports.setStateChangedWithTimestamp = setStateChangedWithTimestamp;
|
|
121
|
+
const setStateWithTimestamp = async function (adapter, state_id, common_name, value, timestamp = new Date().getTime() - 60 * 1000, role = "text", type = "string") {
|
|
122
|
+
const obj = await adapter.getObjectAsync(state_id);
|
|
123
|
+
if (obj) {
|
|
124
|
+
if ((obj.native.timestamp !== undefined && obj.native.timestamp < timestamp) || obj.native.timestamp === undefined) {
|
|
125
|
+
obj.native.timestamp = timestamp;
|
|
126
|
+
await adapter.setStateAsync(state_id, { val: value, ack: true });
|
|
127
|
+
await adapter.setObject(state_id, obj);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
await adapter.setObjectNotExistsAsync(state_id, {
|
|
132
|
+
type: "state",
|
|
133
|
+
common: {
|
|
134
|
+
name: common_name,
|
|
135
|
+
type: type,
|
|
136
|
+
role: role,
|
|
137
|
+
read: true,
|
|
138
|
+
write: false,
|
|
139
|
+
},
|
|
140
|
+
native: {
|
|
141
|
+
timestamp: timestamp
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
await adapter.setStateAsync(state_id, { val: value, ack: true });
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
exports.setStateWithTimestamp = setStateWithTimestamp;
|
|
148
|
+
const saveImageStates = async function (adapter, url, timestamp, station_sn, device_sn, location, url_state_id, html_state_id, prefix_common_name, retry = 1) {
|
|
149
|
+
const image_data = await (0, exports.saveImage)(adapter, url, station_sn, device_sn, location);
|
|
150
|
+
if (image_data.status === 404) {
|
|
151
|
+
if (retry < 6) {
|
|
152
|
+
adapter.log.info(`Retry get image in ${5 * retry} seconds from url: ${url} (retry_count: ${retry} error: ${image_data.statusText} message: ${image_data.statusText})...`);
|
|
153
|
+
setTimeout(() => {
|
|
154
|
+
(0, exports.saveImageStates)(adapter, url, timestamp, station_sn, device_sn, location, url_state_id, html_state_id, prefix_common_name, ++retry);
|
|
155
|
+
}, 5 * 1000 * retry);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
adapter.log.warn(`Could not download the image within 5 attempts from url: ${url} (error: ${image_data.statusText} message: ${image_data.statusText})`);
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
else if (image_data.status === 200) {
|
|
163
|
+
(0, exports.setStateWithTimestamp)(adapter, url_state_id, `${prefix_common_name} URL`, image_data.imageUrl, timestamp, "url");
|
|
164
|
+
(0, exports.setStateWithTimestamp)(adapter, html_state_id, `${prefix_common_name} HTML image`, image_data.imageHtml, timestamp, "html");
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
exports.saveImageStates = saveImageStates;
|
|
168
|
+
const removeFiles = function (adapter, stationSerial, folderName, device_sn) {
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
try {
|
|
171
|
+
const dir_path = path_1.default.join(utils.getAbsoluteInstanceDataDir(adapter), stationSerial, folderName);
|
|
172
|
+
if (fs_extra_1.default.existsSync(dir_path)) {
|
|
173
|
+
const files = fs_extra_1.default.readdirSync(dir_path).filter(fn => fn.startsWith(device_sn));
|
|
174
|
+
try {
|
|
175
|
+
files.map(filename => fs_extra_1.default.removeSync(path_1.default.join(dir_path, filename)));
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
resolve();
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
reject(error);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
exports.removeFiles = removeFiles;
|
|
188
|
+
const moveFiles = function (adapter, stationSerial, device_sn, srcFolderName, dstFolderName) {
|
|
189
|
+
return new Promise((resolve, reject) => {
|
|
190
|
+
try {
|
|
191
|
+
const dirSrcPath = path_1.default.join(utils.getAbsoluteInstanceDataDir(adapter), stationSerial, srcFolderName);
|
|
192
|
+
const dirDstPath = path_1.default.join(utils.getAbsoluteInstanceDataDir(adapter), stationSerial, dstFolderName);
|
|
193
|
+
if (!fs_extra_1.default.existsSync(dirDstPath)) {
|
|
194
|
+
fs_extra_1.default.mkdirSync(dirDstPath, { mode: 0o775, recursive: true });
|
|
195
|
+
}
|
|
196
|
+
if (fs_extra_1.default.existsSync(dirSrcPath)) {
|
|
197
|
+
const files = fs_extra_1.default.readdirSync(dirSrcPath).filter(fn => fn.startsWith(device_sn));
|
|
198
|
+
try {
|
|
199
|
+
files.map(filename => fs_extra_1.default.moveSync(path_1.default.join(dirSrcPath, filename), path_1.default.join(dirDstPath, filename)));
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
resolve();
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
reject(error);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
exports.moveFiles = moveFiles;
|
|
212
|
+
const lowestUnusedNumber = function (sequence, startingFrom) {
|
|
213
|
+
const arr = sequence.slice(0);
|
|
214
|
+
arr.sort((a, b) => a - b);
|
|
215
|
+
return arr.reduce((lowest, num, i) => {
|
|
216
|
+
const seqIndex = i + startingFrom;
|
|
217
|
+
return num !== seqIndex && seqIndex < lowest ? seqIndex : lowest;
|
|
218
|
+
}, arr.length + startingFrom);
|
|
219
|
+
};
|
|
220
|
+
exports.lowestUnusedNumber = lowestUnusedNumber;
|
|
221
|
+
const sleep = async (ms) => {
|
|
222
|
+
return new Promise((resolve) => {
|
|
223
|
+
setTimeout(resolve, ms);
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
exports.sleep = sleep;
|
|
227
|
+
const getVideoClipLength = (device) => {
|
|
228
|
+
let length = 60;
|
|
229
|
+
const workingMode = device.getRawProperty(eufy_security_client_1.CommandType.CMD_SET_PIR_POWERMODE);
|
|
230
|
+
if (workingMode !== undefined) {
|
|
231
|
+
switch (workingMode.value) {
|
|
232
|
+
case "0":
|
|
233
|
+
if (device.isCamera2Product() || device.isIndoorCamera() || device.isSoloCameras())
|
|
234
|
+
length = 20;
|
|
235
|
+
else if (device.isBatteryDoorbell() || device.isBatteryDoorbell2())
|
|
236
|
+
length = 30;
|
|
237
|
+
break;
|
|
238
|
+
case "1":
|
|
239
|
+
// Corrisponds to 60 seconds
|
|
240
|
+
break;
|
|
241
|
+
case "2":
|
|
242
|
+
const customValue = device.getRawProperty(eufy_security_client_1.CommandType.CMD_DEV_RECORD_TIMEOUT);
|
|
243
|
+
if (customValue !== undefined) {
|
|
244
|
+
try {
|
|
245
|
+
length = Number.parseInt(customValue.value);
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
break;
|
|
251
|
+
case "3":
|
|
252
|
+
// Corrisponds to 60 seconds?? (this mode exists only for battery doorbells; mode: Optimal Battery Life)
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return length;
|
|
257
|
+
};
|
|
258
|
+
exports.getVideoClipLength = getVideoClipLength;
|
|
259
|
+
const removeLastChar = function (text, char) {
|
|
260
|
+
const strArr = [...text];
|
|
261
|
+
strArr.splice(text.lastIndexOf(char), 1);
|
|
262
|
+
return strArr.join("");
|
|
263
|
+
};
|
|
264
|
+
exports.removeLastChar = removeLastChar;
|
|
265
|
+
const handleUpdate = async function (adapter, log, old_version) {
|
|
266
|
+
if (old_version <= 0.31) {
|
|
267
|
+
try {
|
|
268
|
+
const watermark = await adapter.getStatesAsync("*.watermark");
|
|
269
|
+
if (watermark)
|
|
270
|
+
Object.keys(watermark).forEach(async (id) => {
|
|
271
|
+
await adapter.delObjectAsync(id).catch();
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
log.error("Version 0.3.1 - watermark: Error:", error);
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
const state = await adapter.getStatesAsync("*.state");
|
|
279
|
+
if (state)
|
|
280
|
+
Object.keys(state).forEach(async (id) => {
|
|
281
|
+
await adapter.delObjectAsync(id).catch();
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
log.error("Version 0.3.1 - state: Error:", error);
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const wifi_rssi = await adapter.getStatesAsync("*.wifi_rssi");
|
|
289
|
+
if (wifi_rssi)
|
|
290
|
+
Object.keys(wifi_rssi).forEach(async (id) => {
|
|
291
|
+
await adapter.delObjectAsync(id).catch();
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
log.error("Version 0.3.1 - wifi_rssi: Error:", error);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (old_version <= 0.41) {
|
|
299
|
+
try {
|
|
300
|
+
const changeRole = async function (adapter, state, role) {
|
|
301
|
+
try {
|
|
302
|
+
const states = await adapter.getStatesAsync(`*.${state}`);
|
|
303
|
+
if (states)
|
|
304
|
+
Object.keys(states).forEach(async (id) => {
|
|
305
|
+
await adapter.extendObjectAsync(id, {
|
|
306
|
+
type: "state",
|
|
307
|
+
common: {
|
|
308
|
+
role: role
|
|
309
|
+
}
|
|
310
|
+
}, {}).catch();
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
log.error(`state: ${state} role: ${role} - Error:`, error);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
await changeRole(adapter, types_1.CameraStateID.STATE, "value");
|
|
318
|
+
await changeRole(adapter, types_1.CameraStateID.LIVESTREAM, "url");
|
|
319
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_LIVESTREAM_PIC_URL, "url");
|
|
320
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_LIVESTREAM_PIC_HTML, "html");
|
|
321
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_LIVESTREAM_VIDEO_URL, "url");
|
|
322
|
+
await changeRole(adapter, types_1.CameraStateID.ENABLED, "switch.enable");
|
|
323
|
+
await changeRole(adapter, types_1.CameraStateID.ANTITHEFT_DETECTION, "switch.enable");
|
|
324
|
+
await changeRole(adapter, types_1.CameraStateID.AUTO_NIGHTVISION, "switch.enable");
|
|
325
|
+
await changeRole(adapter, types_1.CameraStateID.MOTION_DETECTION, "switch.enable");
|
|
326
|
+
await changeRole(adapter, types_1.CameraStateID.RTSP_STREAM, "switch.enable");
|
|
327
|
+
await changeRole(adapter, types_1.CameraStateID.RTSP_STREAM_URL, "url");
|
|
328
|
+
await changeRole(adapter, types_1.CameraStateID.LED_STATUS, "switch.enable");
|
|
329
|
+
await changeRole(adapter, types_1.CameraStateID.MOTION_DETECTED, "sensor.motion");
|
|
330
|
+
await changeRole(adapter, types_1.CameraStateID.PERSON_DETECTED, "sensor.motion");
|
|
331
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_PERSON_IDENTIFIED, "text");
|
|
332
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_EVENT_PIC_URL, "url");
|
|
333
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_EVENT_PIC_HTML, "html");
|
|
334
|
+
await changeRole(adapter, types_1.CameraStateID.LAST_EVENT_VIDEO_URL, "url");
|
|
335
|
+
await changeRole(adapter, types_1.DoorbellStateID.RINGING, "sensor");
|
|
336
|
+
await changeRole(adapter, types_1.IndoorCameraStateID.SOUND_DETECTION, "switch.enable");
|
|
337
|
+
await changeRole(adapter, types_1.IndoorCameraStateID.PET_DETECTION, "switch.enable");
|
|
338
|
+
await changeRole(adapter, types_1.IndoorCameraStateID.SOUND_DETECTED, "sensor.noise");
|
|
339
|
+
await changeRole(adapter, types_1.IndoorCameraStateID.CRYING_DETECTED, "sensor.noise");
|
|
340
|
+
await changeRole(adapter, types_1.IndoorCameraStateID.PET_DETECTED, "sensor");
|
|
341
|
+
await changeRole(adapter, types_1.EntrySensorStateID.STATE, "value");
|
|
342
|
+
await changeRole(adapter, types_1.EntrySensorStateID.SENSOR_OPEN, "sensor");
|
|
343
|
+
await changeRole(adapter, types_1.EntrySensorStateID.LOW_BATTERY, "sensor");
|
|
344
|
+
await changeRole(adapter, types_1.EntrySensorStateID.SENSOR_CHANGE_TIME, "value");
|
|
345
|
+
await changeRole(adapter, types_1.MotionSensorStateID.STATE, "value");
|
|
346
|
+
await changeRole(adapter, types_1.MotionSensorStateID.LOW_BATTERY, "sensor");
|
|
347
|
+
await changeRole(adapter, types_1.MotionSensorStateID.MOTION_DETECTED, "sensor.motion");
|
|
348
|
+
await changeRole(adapter, types_1.KeyPadStateID.STATE, "value");
|
|
349
|
+
await changeRole(adapter, types_1.KeyPadStateID.LOW_BATTERY, "sensor");
|
|
350
|
+
await changeRole(adapter, types_1.StationStateID.CURRENT_MODE, "value");
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
log.error("Version 0.4.1 - Error:", error);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
if (old_version <= 0.42) {
|
|
357
|
+
try {
|
|
358
|
+
const changeRole = async function (adapter, state, role) {
|
|
359
|
+
try {
|
|
360
|
+
const states = await adapter.getStatesAsync(`*.${state}`);
|
|
361
|
+
if (states)
|
|
362
|
+
Object.keys(states).forEach(async (id) => {
|
|
363
|
+
await adapter.extendObjectAsync(id, {
|
|
364
|
+
type: "state",
|
|
365
|
+
common: {
|
|
366
|
+
role: role
|
|
367
|
+
}
|
|
368
|
+
}, {}).catch();
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
log.error(`state: ${state} role: ${role} - Error:`, error);
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
await changeRole(adapter, types_1.CameraStateID.STATE, "info.status");
|
|
376
|
+
await changeRole(adapter, types_1.CameraStateID.NAME, "info.name");
|
|
377
|
+
await changeRole(adapter, types_1.CameraStateID.MAC_ADDRESS, "info.mac");
|
|
378
|
+
await changeRole(adapter, types_1.CameraStateID.BATTERY, "value.battery");
|
|
379
|
+
await changeRole(adapter, types_1.CameraStateID.BATTERY_TEMPERATURE, "value.temperature");
|
|
380
|
+
await changeRole(adapter, types_1.EntrySensorStateID.LOW_BATTERY, "indicator.lowbat");
|
|
381
|
+
await changeRole(adapter, types_1.StationStateID.LAN_IP_ADDRESS, "info.ip");
|
|
382
|
+
}
|
|
383
|
+
catch (error) {
|
|
384
|
+
log.error("Version 0.4.2 - States - Error:", error);
|
|
385
|
+
}
|
|
386
|
+
try {
|
|
387
|
+
if (fs_extra_1.default.existsSync(path_1.default.join(utils.getAbsoluteDefaultDataDir(), "files", adapter.namespace))) {
|
|
388
|
+
if (!fs_extra_1.default.existsSync(utils.getAbsoluteInstanceDataDir(adapter)))
|
|
389
|
+
fs_extra_1.default.mkdirpSync(utils.getAbsoluteInstanceDataDir(adapter));
|
|
390
|
+
const files = fs_extra_1.default.readdirSync(path_1.default.join(utils.getAbsoluteDefaultDataDir(), "files", adapter.namespace)).filter(fn => fn.startsWith("T"));
|
|
391
|
+
files.map(filename => fs_extra_1.default.moveSync(path_1.default.join(utils.getAbsoluteDefaultDataDir(), "files", adapter.namespace, filename), path_1.default.join(utils.getAbsoluteInstanceDataDir(adapter), filename)));
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
catch (error) {
|
|
395
|
+
log.error("Version 0.4.2 - Files - Error:", error);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
if (old_version <= 0.61) {
|
|
399
|
+
try {
|
|
400
|
+
const all = await adapter.getStatesAsync("T*");
|
|
401
|
+
if (all) {
|
|
402
|
+
Object.keys(all).forEach(async (id) => {
|
|
403
|
+
await adapter.delObjectAsync(id, { recursive: false }).catch();
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
const channels = await adapter.getChannelsOfAsync();
|
|
407
|
+
if (channels) {
|
|
408
|
+
Object.values(channels).forEach(async (channel) => {
|
|
409
|
+
if (channel.common.name !== "info") {
|
|
410
|
+
await adapter.delObjectAsync(channel._id, { recursive: false }).catch();
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
const devices = await adapter.getDevicesAsync();
|
|
415
|
+
if (devices) {
|
|
416
|
+
Object.values(devices).forEach(async (device) => {
|
|
417
|
+
await adapter.delObjectAsync(device._id, { recursive: false }).catch();
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
catch (error) {
|
|
422
|
+
log.error("Version 0.6.1: Error:", error);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
if (old_version <= 0.74) {
|
|
426
|
+
try {
|
|
427
|
+
await adapter.setObjectAsync("verify_code", {
|
|
428
|
+
type: "state",
|
|
429
|
+
common: {
|
|
430
|
+
name: "2FA verification code",
|
|
431
|
+
type: "string",
|
|
432
|
+
role: "state",
|
|
433
|
+
read: true,
|
|
434
|
+
write: true,
|
|
435
|
+
},
|
|
436
|
+
native: {},
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
log.error("Version 0.7.4: Error:", error);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
};
|
|
444
|
+
exports.handleUpdate = handleUpdate;
|
|
445
|
+
const convertCamelCaseToSnakeCase = function (value) {
|
|
446
|
+
return value.replace(/[A-Z]/g, (letter, index) => {
|
|
447
|
+
return index == 0 ? letter.toLowerCase() : "_" + letter.toLowerCase();
|
|
448
|
+
});
|
|
449
|
+
};
|
|
450
|
+
exports.convertCamelCaseToSnakeCase = convertCamelCaseToSnakeCase;
|
|
451
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|