zigbee-herdsman-converters 14.0.584 → 14.0.587
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/converters/fromZigbee.js +1 -1
- package/converters/toZigbee.js +8 -8
- package/devices/adeo.js +30 -0
- package/devices/awox.js +26 -131
- package/devices/enocean.js +2 -0
- package/devices/led_trading.js +0 -36
- package/devices/m/303/274ller_licht.js +2 -1
- package/devices/sengled.js +4 -4
- package/devices/tuya.js +9 -2
- package/lib/reporting.js +1 -1
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -1545,7 +1545,7 @@ const converters = {
|
|
|
1545
1545
|
const value = msg.data['currentPositionLiftPercentage'];
|
|
1546
1546
|
result[postfixWithEndpointName('position', msg, model, meta)] = invert ? value : 100 - value;
|
|
1547
1547
|
result[postfixWithEndpointName('state', msg, model, meta)] =
|
|
1548
|
-
invert ? (value
|
|
1548
|
+
invert ? (value === 100 ? 'CLOSE' : 'OPEN') : (value === 0 ? 'CLOSE' : 'OPEN');
|
|
1549
1549
|
}
|
|
1550
1550
|
if (msg.data.hasOwnProperty('currentPositionTiltPercentage') && msg.data['currentPositionTiltPercentage'] <= 100) {
|
|
1551
1551
|
const value = msg.data['currentPositionTiltPercentage'];
|
package/converters/toZigbee.js
CHANGED
|
@@ -2562,15 +2562,15 @@ const converters = {
|
|
|
2562
2562
|
},
|
|
2563
2563
|
lidl_watering_timer: {
|
|
2564
2564
|
key: ['timer'],
|
|
2565
|
-
convertSet: (entity, key, value, meta) => {
|
|
2566
|
-
tuya.sendDataPointRaw(entity, tuya.dataPoints.lidlTimer, tuya.convertDecimalValueTo4ByteHexArray(value));
|
|
2565
|
+
convertSet: async (entity, key, value, meta) => {
|
|
2566
|
+
await tuya.sendDataPointRaw(entity, tuya.dataPoints.lidlTimer, tuya.convertDecimalValueTo4ByteHexArray(value));
|
|
2567
2567
|
},
|
|
2568
2568
|
},
|
|
2569
2569
|
matsee_garage_door_opener: {
|
|
2570
2570
|
key: ['trigger'],
|
|
2571
|
-
convertSet: (entity, key, value, meta) => {
|
|
2571
|
+
convertSet: async (entity, key, value, meta) => {
|
|
2572
2572
|
const state = meta.message.hasOwnProperty('trigger') ? meta.message.trigger : true;
|
|
2573
|
-
tuya.sendDataPointBool(entity, tuya.dataPoints.garageDoorTrigger, state);
|
|
2573
|
+
await tuya.sendDataPointBool(entity, tuya.dataPoints.garageDoorTrigger, state);
|
|
2574
2574
|
return {state: {trigger: state}};
|
|
2575
2575
|
},
|
|
2576
2576
|
},
|
|
@@ -4927,7 +4927,7 @@ const converters = {
|
|
|
4927
4927
|
payload[i * 3 + 2] = value[prob][i].temperature;
|
|
4928
4928
|
}
|
|
4929
4929
|
}
|
|
4930
|
-
tuya.sendDataPointRaw(entity, dpId, payload);
|
|
4930
|
+
await tuya.sendDataPointRaw(entity, dpId, payload);
|
|
4931
4931
|
}
|
|
4932
4932
|
},
|
|
4933
4933
|
},
|
|
@@ -4956,7 +4956,7 @@ const converters = {
|
|
|
4956
4956
|
payload[i*3+1] = minute;
|
|
4957
4957
|
payload[i*3+2] = temperature;
|
|
4958
4958
|
}
|
|
4959
|
-
tuya.sendDataPointRaw(entity, dpId, payload);
|
|
4959
|
+
await tuya.sendDataPointRaw(entity, dpId, payload);
|
|
4960
4960
|
},
|
|
4961
4961
|
},
|
|
4962
4962
|
tuya_thermostat_week: {
|
|
@@ -6613,7 +6613,7 @@ const converters = {
|
|
|
6613
6613
|
},
|
|
6614
6614
|
wiser_sed_thermostat_local_temperature_calibration: {
|
|
6615
6615
|
key: ['local_temperature_calibration'],
|
|
6616
|
-
convertSet: (entity, key, value, meta) => {
|
|
6616
|
+
convertSet: async (entity, key, value, meta) => {
|
|
6617
6617
|
entity.write('hvacThermostat', {localTemperatureCalibration: Math.round(value * 10)},
|
|
6618
6618
|
{srcEndpoint: 11, disableDefaultResponse: true, sendWhen: 'active'});
|
|
6619
6619
|
return {state: {local_temperature_calibration: value}};
|
|
@@ -6762,7 +6762,7 @@ const converters = {
|
|
|
6762
6762
|
await tuya.sendDataPointRaw(entity, 102, [value]);
|
|
6763
6763
|
break;
|
|
6764
6764
|
} else {
|
|
6765
|
-
tuya.sendDataPointRaw(entity, 105, [value]);
|
|
6765
|
+
await tuya.sendDataPointRaw(entity, 105, [value]);
|
|
6766
6766
|
break;
|
|
6767
6767
|
}
|
|
6768
6768
|
case 'led_enable':// OK (value true/false or 1/0)
|
package/devices/adeo.js
CHANGED
|
@@ -5,7 +5,37 @@ const extend = require('../lib/extend');
|
|
|
5
5
|
const tz = require('../converters/toZigbee');
|
|
6
6
|
const e = exposes.presets;
|
|
7
7
|
|
|
8
|
+
const fzLocal = {
|
|
9
|
+
LDSENK08: {
|
|
10
|
+
cluster: 'ssIasZone',
|
|
11
|
+
type: 'commandStatusChangeNotification',
|
|
12
|
+
convert: (model, msg, publish, options, meta) => {
|
|
13
|
+
const zoneStatus = msg.data.zonestatus;
|
|
14
|
+
return {
|
|
15
|
+
contact: !((zoneStatus & 1) > 0),
|
|
16
|
+
vibration: (zoneStatus & 1<<1) > 0,
|
|
17
|
+
tamper: (zoneStatus & 1<<2) > 0,
|
|
18
|
+
battery_low: (zoneStatus & 1<<3) > 0,
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
8
24
|
module.exports = [
|
|
25
|
+
{
|
|
26
|
+
zigbeeModel: ['LDSENK08'],
|
|
27
|
+
model: 'LDSENK08',
|
|
28
|
+
vendor: 'ADEO',
|
|
29
|
+
description: 'ENKI LEXMAN wireless smart door window sensor with vibration',
|
|
30
|
+
fromZigbee: [fzLocal.LDSENK08, fz.battery],
|
|
31
|
+
toZigbee: [],
|
|
32
|
+
exposes: [e.battery_low(), e.contact(), e.vibration(), e.tamper(), e.battery()],
|
|
33
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
34
|
+
const endpoint = device.getEndpoint(1);
|
|
35
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
36
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
37
|
+
},
|
|
38
|
+
},
|
|
9
39
|
{
|
|
10
40
|
zigbeeModel: ['LDSENK09'],
|
|
11
41
|
model: 'LDSENK09',
|
package/devices/awox.js
CHANGED
|
@@ -72,25 +72,9 @@ module.exports = [
|
|
|
72
72
|
{
|
|
73
73
|
fingerprint: [
|
|
74
74
|
{
|
|
75
|
-
type: 'EndDevice',
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
powerSource: 'Battery',
|
|
79
|
-
endpoints: [
|
|
80
|
-
{
|
|
81
|
-
ID: 1,
|
|
82
|
-
profileID: 260,
|
|
83
|
-
deviceID: 2048,
|
|
84
|
-
inputClusters: [0, 3, 4, 4096],
|
|
85
|
-
outputClusters: [0, 3, 4, 5, 6, 8, 768, 4096],
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
ID: 3,
|
|
89
|
-
profileID: 4751,
|
|
90
|
-
deviceID: 2048,
|
|
91
|
-
inputClusters: [65360, 65361],
|
|
92
|
-
outputClusters: [65360, 65361],
|
|
93
|
-
},
|
|
75
|
+
type: 'EndDevice', manufacturerName: 'AwoX', modelID: 'TLSR82xx', powerSource: 'Battery', endpoints: [
|
|
76
|
+
{ID: 1, profileID: 260, deviceID: 2048, inputClusters: [0, 3, 4, 4096], outputClusters: [0, 3, 4, 5, 6, 8, 768, 4096]},
|
|
77
|
+
{ID: 3, profileID: 4751, deviceID: 2048, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
94
78
|
],
|
|
95
79
|
},
|
|
96
80
|
],
|
|
@@ -108,76 +92,35 @@ module.exports = [
|
|
|
108
92
|
fingerprint: [
|
|
109
93
|
{
|
|
110
94
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
111
|
-
{
|
|
112
|
-
|
|
113
|
-
profileID: 260,
|
|
114
|
-
deviceID: 269,
|
|
115
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599, 10],
|
|
116
|
-
outputClusters: [6],
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
ID: 3,
|
|
120
|
-
profileID: 4751,
|
|
121
|
-
deviceID: 269,
|
|
122
|
-
inputClusters: [65360, 65361],
|
|
123
|
-
outputClusters: [65360, 65361],
|
|
124
|
-
},
|
|
95
|
+
{ID: 1, profileID: 260, deviceID: 269, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599, 10], outputClusters: [6]},
|
|
96
|
+
{ID: 3, profileID: 4751, deviceID: 269, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
125
97
|
{ID: 242, profileID: 41440, deviceID: 97, inputClusters: [], outputClusters: [33]},
|
|
126
98
|
],
|
|
127
99
|
},
|
|
128
100
|
{
|
|
129
101
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
130
|
-
{
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
{
|
|
138
|
-
|
|
139
|
-
profileID: 49152,
|
|
140
|
-
deviceID: 258,
|
|
141
|
-
inputClusters: [65360, 65361],
|
|
142
|
-
outputClusters: [65360, 65361],
|
|
143
|
-
},
|
|
102
|
+
{ID: 1, profileID: 260, deviceID: 269, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599, 10], outputClusters: [6]},
|
|
103
|
+
{ID: 3, profileID: 4751, deviceID: 269, inputClusters: [65360, 65361, 4], outputClusters: [65360, 65361]},
|
|
104
|
+
{ID: 242, profileID: 41440, deviceID: 97, inputClusters: [], outputClusters: [33]},
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
109
|
+
{ID: 1, profileID: 260, deviceID: 258, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096], outputClusters: [6, 25]},
|
|
110
|
+
{ID: 3, profileID: 49152, deviceID: 258, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
144
111
|
],
|
|
145
112
|
},
|
|
146
113
|
{
|
|
147
114
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
148
|
-
{
|
|
149
|
-
|
|
150
|
-
profileID: 260,
|
|
151
|
-
deviceID: 269,
|
|
152
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599],
|
|
153
|
-
outputClusters: [6],
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
ID: 3,
|
|
157
|
-
profileID: 4751,
|
|
158
|
-
deviceID: 269,
|
|
159
|
-
inputClusters: [65360, 65361],
|
|
160
|
-
outputClusters: [65360, 65361],
|
|
161
|
-
},
|
|
115
|
+
{ID: 1, profileID: 260, deviceID: 269, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599], outputClusters: [6]},
|
|
116
|
+
{ID: 3, profileID: 4751, deviceID: 269, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
162
117
|
{ID: 242, profileID: 41440, deviceID: 97, inputClusters: [], outputClusters: [33]},
|
|
163
118
|
],
|
|
164
119
|
},
|
|
165
120
|
{
|
|
166
121
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
167
|
-
{
|
|
168
|
-
|
|
169
|
-
profileID: 260,
|
|
170
|
-
deviceID: 269,
|
|
171
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599],
|
|
172
|
-
outputClusters: [6],
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
ID: 3,
|
|
176
|
-
profileID: 4751,
|
|
177
|
-
deviceID: 269,
|
|
178
|
-
inputClusters: [65360, 65361],
|
|
179
|
-
outputClusters: [65360, 65361],
|
|
180
|
-
},
|
|
122
|
+
{ID: 1, profileID: 260, deviceID: 269, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599], outputClusters: [6]},
|
|
123
|
+
{ID: 3, profileID: 4751, deviceID: 269, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
181
124
|
],
|
|
182
125
|
},
|
|
183
126
|
],
|
|
@@ -190,58 +133,22 @@ module.exports = [
|
|
|
190
133
|
fingerprint: [
|
|
191
134
|
{
|
|
192
135
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
193
|
-
{
|
|
194
|
-
|
|
195
|
-
profileID: 260,
|
|
196
|
-
deviceID: 268,
|
|
197
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599],
|
|
198
|
-
outputClusters: [6],
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
ID: 3,
|
|
202
|
-
profileID: 4751,
|
|
203
|
-
deviceID: 268,
|
|
204
|
-
inputClusters: [65360, 65361],
|
|
205
|
-
outputClusters: [65360, 65361],
|
|
206
|
-
},
|
|
136
|
+
{ID: 1, profileID: 260, deviceID: 268, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599], outputClusters: [6]},
|
|
137
|
+
{ID: 3, profileID: 4751, deviceID: 268, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
207
138
|
],
|
|
208
139
|
},
|
|
209
140
|
{
|
|
210
141
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
211
|
-
{
|
|
212
|
-
ID: 1,
|
|
213
|
-
profileID: 260,
|
|
214
|
-
deviceID: 268,
|
|
215
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599],
|
|
216
|
-
outputClusters: [6],
|
|
217
|
-
},
|
|
142
|
+
{ID: 1, profileID: 260, deviceID: 268, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599], outputClusters: [6]},
|
|
218
143
|
{ID: 242, profileID: 41440, deviceID: 97, inputClusters: [], outputClusters: [33]},
|
|
219
|
-
{
|
|
220
|
-
ID: 3,
|
|
221
|
-
profileID: 4751,
|
|
222
|
-
deviceID: 268,
|
|
223
|
-
inputClusters: [65360, 65361],
|
|
224
|
-
outputClusters: [65360, 65361],
|
|
225
|
-
},
|
|
144
|
+
{ID: 3, profileID: 4751, deviceID: 268, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
226
145
|
],
|
|
227
146
|
},
|
|
228
147
|
{
|
|
229
148
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
230
|
-
{
|
|
231
|
-
ID: 1,
|
|
232
|
-
profileID: 260,
|
|
233
|
-
deviceID: 268,
|
|
234
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599, 10],
|
|
235
|
-
outputClusters: [6],
|
|
236
|
-
},
|
|
149
|
+
{ID: 1, profileID: 260, deviceID: 268, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096, 64599, 10], outputClusters: [6]},
|
|
237
150
|
{ID: 242, profileID: 41440, deviceID: 97, inputClusters: [], outputClusters: [33]},
|
|
238
|
-
{
|
|
239
|
-
ID: 3,
|
|
240
|
-
profileID: 4751,
|
|
241
|
-
deviceID: 268,
|
|
242
|
-
inputClusters: [65360, 65361],
|
|
243
|
-
outputClusters: [65360, 65361],
|
|
244
|
-
},
|
|
151
|
+
{ID: 3, profileID: 4751, deviceID: 268, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
245
152
|
],
|
|
246
153
|
},
|
|
247
154
|
],
|
|
@@ -255,20 +162,8 @@ module.exports = [
|
|
|
255
162
|
fingerprint: [
|
|
256
163
|
{
|
|
257
164
|
type: 'Router', manufacturerName: 'AwoX', modelID: 'TLSR82xx', endpoints: [
|
|
258
|
-
{
|
|
259
|
-
|
|
260
|
-
profileID: 260,
|
|
261
|
-
deviceID: 268,
|
|
262
|
-
inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096],
|
|
263
|
-
outputClusters: [6, 25],
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
ID: 3,
|
|
267
|
-
profileID: 49152,
|
|
268
|
-
deviceID: 268,
|
|
269
|
-
inputClusters: [65360, 65361],
|
|
270
|
-
outputClusters: [65360, 65361],
|
|
271
|
-
},
|
|
165
|
+
{ID: 1, profileID: 260, deviceID: 268, inputClusters: [0, 3, 4, 5, 6, 8, 768, 4096], outputClusters: [6, 25]},
|
|
166
|
+
{ID: 3, profileID: 49152, deviceID: 268, inputClusters: [65360, 65361], outputClusters: [65360, 65361]},
|
|
272
167
|
],
|
|
273
168
|
},
|
|
274
169
|
],
|
package/devices/enocean.js
CHANGED
|
@@ -16,6 +16,8 @@ module.exports = [
|
|
|
16
16
|
{vendor: 'Niko', description: 'Dimmer switch for Hue system', model: '91004'},
|
|
17
17
|
{vendor: 'NodOn', description: 'Smart switch for Philips Hue', model: 'CWS-4-1-01_HUE'},
|
|
18
18
|
{vendor: 'Vimar', description: 'Zigbee Friends of Hue RF switch', model: '03906'},
|
|
19
|
+
{vendor: 'Sunricher', model: 'SR-ZGP2801K4-FOH-E'},
|
|
20
|
+
{vendor: 'LED Trading', model: '9125'},
|
|
19
21
|
],
|
|
20
22
|
},
|
|
21
23
|
{
|
package/devices/led_trading.js
CHANGED
|
@@ -21,31 +21,6 @@ const fzLocal = {
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
|
-
led_trading_9125: {
|
|
25
|
-
cluster: 'greenPower',
|
|
26
|
-
type: ['commandNotification', 'commandCommisioningNotification'],
|
|
27
|
-
convert: (model, msg, publish, options, meta) => {
|
|
28
|
-
const commandID = msg.data.commandID;
|
|
29
|
-
if (utils.hasAlreadyProcessedMessage(msg, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`)) return;
|
|
30
|
-
if (commandID === 104) return; // Skip commisioning command.
|
|
31
|
-
|
|
32
|
-
// Button 1: A0 (top left)
|
|
33
|
-
// Button 2: A1 (bottom left)
|
|
34
|
-
// Button 3: B0 (top right)
|
|
35
|
-
// Button 4: B1 (bottom right)
|
|
36
|
-
const lookup = {
|
|
37
|
-
0x10: 'press_1', 0x14: 'release_1', 0x11: 'press_2', 0x15: 'release_2', 0x13: 'press_3', 0x17: 'release_3',
|
|
38
|
-
0x12: 'press_4', 0x16: 'release_4', 0x64: 'press_1_and_3', 0x65: 'release_1_and_3', 0x62: 'press_2_and_4',
|
|
39
|
-
0x63: 'release_2_and_4',
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
if (!lookup.hasOwnProperty(commandID)) {
|
|
43
|
-
meta.logger.error(`LED Trading 9125: missing command '${commandID}'`);
|
|
44
|
-
} else {
|
|
45
|
-
return {action: lookup[commandID]};
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
24
|
};
|
|
50
25
|
|
|
51
26
|
module.exports = [
|
|
@@ -91,15 +66,4 @@ module.exports = [
|
|
|
91
66
|
await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']);
|
|
92
67
|
},
|
|
93
68
|
},
|
|
94
|
-
{
|
|
95
|
-
fingerprint: [{modelID: 'GreenPower_2', ieeeAddr: /^0x00000000017.....$/, manufId: null}],
|
|
96
|
-
model: '9125',
|
|
97
|
-
vendor: 'LED Trading',
|
|
98
|
-
description: 'FOH smart switch',
|
|
99
|
-
whiteLabel: [{vendor: 'Sunricher', model: 'SR-ZGP2801K4-FOH-E'}],
|
|
100
|
-
fromZigbee: [fzLocal.led_trading_9125],
|
|
101
|
-
toZigbee: [],
|
|
102
|
-
exposes: [e.action(['press_1', 'release_1', 'press_2', 'release_2', 'press_3', 'release_3', 'press_4', 'release_4',
|
|
103
|
-
'press_1_and_3', 'release_1_and_3', 'press_2_and_4', 'release_2_and_4'])],
|
|
104
|
-
},
|
|
105
69
|
];
|
|
@@ -100,7 +100,8 @@ module.exports = [
|
|
|
100
100
|
toZigbee: extend.light_onoff_brightness_colortemp_color().toZigbee.concat([tz.tint_scene]),
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
|
-
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3210_mntza0sw'}
|
|
103
|
+
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3210_mntza0sw'},
|
|
104
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3210_r0vzq1oj'}],
|
|
104
105
|
model: '404062',
|
|
105
106
|
vendor: 'Müller Licht',
|
|
106
107
|
description: 'Kea RGB+CCT',
|
package/devices/sengled.js
CHANGED
|
@@ -146,11 +146,11 @@ module.exports = [
|
|
|
146
146
|
model: 'E11-N1EA',
|
|
147
147
|
vendor: 'Sengled',
|
|
148
148
|
description: 'Element plus color (A19)',
|
|
149
|
-
fromZigbee: sengledExtend.
|
|
150
|
-
toZigbee: sengledExtend.
|
|
149
|
+
fromZigbee: sengledExtend.light_onoff_brightness_colortemp_color().fromZigbee.concat([fz.metering]),
|
|
150
|
+
toZigbee: sengledExtend.light_onoff_brightness_colortemp_color().toZigbee,
|
|
151
151
|
ota: ota.zigbeeOTA,
|
|
152
152
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
153
|
-
await sengledExtend.
|
|
153
|
+
await sengledExtend.light_onoff_brightness_colortemp_color().configure(device, coordinatorEndpoint, logger);
|
|
154
154
|
device.powerSource = 'Mains (single phase)';
|
|
155
155
|
device.save();
|
|
156
156
|
|
|
@@ -160,7 +160,7 @@ module.exports = [
|
|
|
160
160
|
await reporting.currentSummDelivered(endpoint);
|
|
161
161
|
await reporting.instantaneousDemand(endpoint);
|
|
162
162
|
},
|
|
163
|
-
exposes: sengledExtend.
|
|
163
|
+
exposes: sengledExtend.light_onoff_brightness_colortemp_color().exposes.concat([e.power(), e.energy()]),
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
zigbeeModel: ['E11-U2E'],
|
package/devices/tuya.js
CHANGED
|
@@ -794,7 +794,9 @@ module.exports = [
|
|
|
794
794
|
{modelID: 'TS0503B', manufacturerName: '_TZ3210_778drfdt'},
|
|
795
795
|
{modelID: 'TS0503B', manufacturerName: '_TZ3000_g5xawfcq'},
|
|
796
796
|
{modelID: 'TS0503B', manufacturerName: '_TZ3210_trm3l2aw'},
|
|
797
|
-
{modelID: 'TS0503B', manufacturerName: '
|
|
797
|
+
{modelID: 'TS0503B', manufacturerName: '_TZ3210_95txyzbx'},
|
|
798
|
+
{modelID: 'TS0503B', manufacturerName: '_TZ3210_odlghna1'},
|
|
799
|
+
{modelID: 'TS0503B', manufacturerName: '_TZ3220_wp1k8xws'}],
|
|
798
800
|
model: 'TS0503B',
|
|
799
801
|
vendor: 'TuYa',
|
|
800
802
|
description: 'Zigbee RGB light',
|
|
@@ -1161,6 +1163,7 @@ module.exports = [
|
|
|
1161
1163
|
},
|
|
1162
1164
|
{
|
|
1163
1165
|
fingerprint: [{modelID: 'TS0215A', manufacturerName: '_TZ3000_p6ju8myv'},
|
|
1166
|
+
{modelID: 'TS0215A', manufacturerName: '_TZ3000_0zrccfgx'},
|
|
1164
1167
|
{modelID: 'TS0215A', manufacturerName: '_TZ3000_fsiepnrh'}],
|
|
1165
1168
|
model: 'TS0215A_remote',
|
|
1166
1169
|
vendor: 'TuYa',
|
|
@@ -1477,7 +1480,11 @@ module.exports = [
|
|
|
1477
1480
|
meta: {multiEndpoint: true},
|
|
1478
1481
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1479
1482
|
const ep1 = device.getEndpoint(1);
|
|
1480
|
-
|
|
1483
|
+
try {
|
|
1484
|
+
await ep1.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
1485
|
+
} catch (e) {
|
|
1486
|
+
// Fails for some: https://github.com/Koenkk/zigbee2mqtt/discussions/13368
|
|
1487
|
+
}
|
|
1481
1488
|
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
1482
1489
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
1483
1490
|
},
|
package/lib/reporting.js
CHANGED
|
@@ -171,7 +171,7 @@ module.exports = {
|
|
|
171
171
|
await endpoint.configureReporting('hvacThermostat', p);
|
|
172
172
|
},
|
|
173
173
|
thermostatRunningMode: async (endpoint, overrides) => {
|
|
174
|
-
const p = payload('runningMode',
|
|
174
|
+
const p = payload('runningMode', 10, repInterval.HOUR, null, overrides);
|
|
175
175
|
await endpoint.configureReporting('hvacThermostat', p);
|
|
176
176
|
},
|
|
177
177
|
thermostatOcupancy: async (endpoint, overrides) => {
|