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