iobroker.zigbee 1.8.3 → 1.8.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/README.md +3 -0
- package/admin/admin.js +512 -493
- package/admin/index_m.html +1171 -1001
- package/admin/tab_m.html +44 -3
- package/docs/de/img/CC2531.png +0 -0
- package/docs/de/img/CC2538_CC2592_PA.PNG +0 -0
- package/docs/de/img/CC2591.png +0 -0
- package/docs/de/img/boards.jpg +0 -0
- package/docs/de/img/cc26x2r.PNG +0 -0
- package/docs/de/img/results.jpg +0 -0
- package/docs/de/img/sku_429478_2.png +0 -0
- package/docs/de/img/sku_429601_2.png +0 -0
- package/docs/de/readme.md +27 -0
- package/docs/en/img/CC2531.png +0 -0
- package/docs/en/img/CC2591.png +0 -0
- package/docs/en/img/deconz.png +0 -0
- package/docs/en/img/sku_429478_2.png +0 -0
- package/docs/en/img/sku_429601_2.png +0 -0
- package/docs/en/readme.md +30 -0
- package/docs/flashing_via_arduino_(en).md +110 -0
- package/docs/ru/img/CC2531.png +0 -0
- package/docs/ru/img/CC2591.png +0 -0
- package/docs/ru/img/sku_429478_2.png +0 -0
- package/docs/ru/img/sku_429601_2.png +0 -0
- package/docs/ru/readme.md +28 -0
- package/docs/tutorial/CC2530_20190425.zip +0 -0
- package/docs/tutorial/CC2530_CC2591_20190515.zip +0 -0
- package/docs/tutorial/CC2530_CC2592_20190515.zip +0 -0
- package/docs/tutorial/CC2531_20190425.zip +0 -0
- package/docs/tutorial/adm5_1.PNG +0 -0
- package/docs/tutorial/adm5_2.PNG +0 -0
- package/docs/tutorial/cat.PNG +0 -0
- package/docs/tutorial/groups-1.png +0 -0
- package/docs/tutorial/groups-2.png +0 -0
- package/docs/tutorial/inst.PNG +0 -0
- package/docs/tutorial/reflash-finish.PNG +0 -0
- package/docs/tutorial/reflash-step0.png +0 -0
- package/docs/tutorial/reflash-step1.PNG +0 -0
- package/docs/tutorial/reflash-step2.PNG +0 -0
- package/docs/tutorial/settings.png +0 -0
- package/docs/tutorial/tab-dev-1.png +0 -0
- package/docs/tutorial/zigbee.png +0 -0
- package/docs/tutorial/zigbee15.png +0 -0
- package/io-package.json +17 -25
- package/lib/backup.js +2 -2
- package/lib/binding.js +32 -37
- package/lib/colors.js +163 -158
- package/lib/commands.js +100 -91
- package/lib/developer.js +9 -12
- package/lib/devices.js +168 -178
- package/lib/exclude.js +30 -36
- package/lib/exposes.js +163 -139
- package/lib/groups.js +81 -83
- package/lib/json.js +5 -6
- package/lib/networkmap.js +2 -3
- package/lib/ota.js +34 -18
- package/lib/rgb.js +114 -72
- package/lib/seriallist.js +25 -20
- package/lib/states.js +511 -526
- package/lib/statescontroller.js +206 -183
- package/lib/utils.js +24 -23
- package/lib/zbBaseExtension.js +4 -4
- package/lib/zbDelayedAction.js +5 -13
- package/lib/zbDeviceAvailability.js +69 -65
- package/lib/zbDeviceConfigure.js +9 -21
- package/lib/zbDeviceEvent.js +3 -4
- package/lib/zigbeecontroller.js +133 -128
- package/main.js +169 -154
- package/package.json +27 -13
- package/.eslintignore +0 -2
- package/.eslintrc.json +0 -37
- package/.github/FUNDING.yml +0 -3
- package/.github/auto-merge.yml +0 -17
- package/.github/dependabot.yml +0 -24
- package/.github/stale.yml +0 -13
- package/.github/workflows/codeql.yml +0 -41
- package/.github/workflows/dependabot-automerge.yml +0 -22
- package/.github/workflows/test-and-release.yml +0 -149
- package/.releaseconfig.json +0 -3
- package/.travis/wiki.sh +0 -28
- package/.travis.yml +0 -41
- package/gulpfile.js +0 -464
- package/test/integration.js +0 -5
- package/test/mocha.custom.opts +0 -2
- package/test/mocha.setup.js +0 -14
- package/test/package.js +0 -5
- package/test/unit.js +0 -5
package/lib/exclude.js
CHANGED
|
@@ -27,13 +27,12 @@ class Exclude {
|
|
|
27
27
|
debug(msg) {
|
|
28
28
|
this.adapter.log.debug(msg);
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
warn(msg) {
|
|
32
32
|
this.adapter.log.warn(msg);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
|
|
37
36
|
/**
|
|
38
37
|
* @param {ioBroker.Message} obj
|
|
39
38
|
*/
|
|
@@ -42,24 +41,21 @@ class Exclude {
|
|
|
42
41
|
switch (obj.command) {
|
|
43
42
|
case 'addExclude':
|
|
44
43
|
if (obj && obj.message && typeof obj.message === 'object') {
|
|
45
|
-
this.addExclude(obj.from, obj.command, obj.message,
|
|
46
|
-
this.adapter.sendTo(obj.from, obj.command, err, obj.callback);
|
|
47
|
-
});
|
|
44
|
+
this.addExclude(obj.from, obj.command, obj.message, err =>
|
|
45
|
+
this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
|
|
48
46
|
}
|
|
49
47
|
break;
|
|
50
48
|
|
|
51
49
|
case 'getExclude':
|
|
52
50
|
if (obj && obj.message && typeof obj.message === 'object') {
|
|
53
|
-
this.getExclude(
|
|
54
|
-
this.adapter.sendTo(obj.from, obj.command, exclude, obj.callback);
|
|
55
|
-
});
|
|
51
|
+
this.getExclude(exclude =>
|
|
52
|
+
this.adapter.sendTo(obj.from, obj.command, exclude, obj.callback));
|
|
56
53
|
}
|
|
57
54
|
break;
|
|
58
55
|
case 'delExclude':
|
|
59
56
|
if (obj && obj.message) {
|
|
60
|
-
this.delExclude(obj.from, obj.command, obj.message,
|
|
61
|
-
this.adapter.sendTo(obj.from, obj.command, err, obj.callback);
|
|
62
|
-
});
|
|
57
|
+
this.delExclude(obj.from, obj.command, obj.message, err =>
|
|
58
|
+
this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
|
|
63
59
|
}
|
|
64
60
|
break;
|
|
65
61
|
}
|
|
@@ -69,13 +65,14 @@ class Exclude {
|
|
|
69
65
|
getExcludeId(exclude_target) {
|
|
70
66
|
return `${this.extractDeviceId(exclude_target)}`;
|
|
71
67
|
}
|
|
72
|
-
|
|
68
|
+
|
|
73
69
|
extractDeviceId(stateId) {
|
|
74
|
-
if (stateId)
|
|
70
|
+
if (stateId) {
|
|
75
71
|
return stateId.replace(`${this.adapter.namespace}.`, '');
|
|
72
|
+
}
|
|
76
73
|
return '';
|
|
77
74
|
}
|
|
78
|
-
|
|
75
|
+
|
|
79
76
|
extractExcludeId(stateId) {
|
|
80
77
|
return stateId.replace(`${this.adapter.namespace}.exclude.`, '');
|
|
81
78
|
}
|
|
@@ -94,27 +91,25 @@ class Exclude {
|
|
|
94
91
|
{
|
|
95
92
|
type: 'state',
|
|
96
93
|
common: {name: exclude_mod},
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
});
|
|
101
|
-
}
|
|
94
|
+
},
|
|
95
|
+
() => this.adapter.setState(stateId, exclude_mod, true, () =>
|
|
96
|
+
callback()),
|
|
102
97
|
);
|
|
103
98
|
} catch (error) {
|
|
104
99
|
this.error(`Failed to addExclude ${error.stack}`);
|
|
105
100
|
throw new Error(`Failed to addExclude ${error.stack}`);
|
|
106
101
|
}
|
|
107
102
|
}
|
|
103
|
+
|
|
108
104
|
async delExclude(from, command, exclude_id, callback) {
|
|
109
105
|
try {
|
|
110
|
-
this.debug(
|
|
106
|
+
this.debug(`delExclude message: ${JSON.stringify(exclude_id)}`);
|
|
111
107
|
const stateId = `exclude.${exclude_id}`;
|
|
112
108
|
this.adapter.getStateAsync(stateId)
|
|
113
109
|
.then(async (stateV) => {
|
|
114
|
-
this.debug(
|
|
115
|
-
this.adapter.deleteState(null, 'exclude', exclude_id, async () =>
|
|
116
|
-
callback();
|
|
117
|
-
});
|
|
110
|
+
this.debug(`found state: ${JSON.stringify(stateV)}`);
|
|
111
|
+
this.adapter.deleteState(null, 'exclude', exclude_id, async () =>
|
|
112
|
+
callback());
|
|
118
113
|
});
|
|
119
114
|
} catch (error) {
|
|
120
115
|
this.error(`Failed to delExclude ${error.stack}`);
|
|
@@ -130,32 +125,31 @@ class Exclude {
|
|
|
130
125
|
const exc = [];
|
|
131
126
|
states.forEach(state => {
|
|
132
127
|
if (state._id.startsWith(`${this.adapter.namespace}.exclude`)) {
|
|
133
|
-
exc.push(new Promise(resolve =>
|
|
134
|
-
|
|
128
|
+
exc.push(new Promise(resolve =>
|
|
129
|
+
this.adapter.getStateAsync(state._id)
|
|
135
130
|
.then(stateVa => {
|
|
136
131
|
if (stateVa !== null) {
|
|
137
132
|
const val = {
|
|
138
133
|
id: this.extractExcludeId(state._id),
|
|
139
|
-
name
|
|
134
|
+
name: stateVa.val
|
|
140
135
|
};
|
|
141
136
|
if (this.extractExcludeId(state._id) !== 'all') {
|
|
142
137
|
exclude.push(val);
|
|
143
138
|
}
|
|
144
139
|
}
|
|
145
140
|
resolve();
|
|
146
|
-
});
|
|
147
|
-
}));
|
|
141
|
+
})));
|
|
148
142
|
}
|
|
149
143
|
});
|
|
150
|
-
return Promise.all(exc)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
144
|
+
return Promise.all(exc)
|
|
145
|
+
.then(() => {
|
|
146
|
+
const arrExclude = JSON.stringify(exclude);
|
|
147
|
+
this.debug(`getExclude result: ${arrExclude}`);
|
|
148
|
+
this.adapter.setState('exclude.all', arrExclude, true, () =>
|
|
149
|
+
callback(exclude));
|
|
155
150
|
});
|
|
156
|
-
});
|
|
157
151
|
} else {
|
|
158
|
-
this.debug(
|
|
152
|
+
this.debug(`getExclude result: ${JSON.stringify(exclude)}`);
|
|
159
153
|
callback(exclude);
|
|
160
154
|
}
|
|
161
155
|
});
|