zigbee-herdsman-converters 15.0.74 → 15.0.75
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/devices/heiman.js +15 -0
- package/devices/ikea.js +92 -0
- package/devices/innr.js +22 -0
- package/devices/tuya.js +1 -1
- package/package.json +1 -1
package/devices/heiman.js
CHANGED
|
@@ -787,4 +787,19 @@ module.exports = [
|
|
|
787
787
|
},
|
|
788
788
|
exposes: [e.co2(), e.battery(), e.humidity(), e.temperature()],
|
|
789
789
|
},
|
|
790
|
+
{
|
|
791
|
+
zigbeeModel: ['RouteLight-EF-3.0'],
|
|
792
|
+
model: 'HS2RNL',
|
|
793
|
+
vendor: 'HEIMAN',
|
|
794
|
+
description: 'Smart repeater & night light',
|
|
795
|
+
fromZigbee: [fz.on_off, fz.battery],
|
|
796
|
+
toZigbee: [tz.on_off],
|
|
797
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
798
|
+
const endpoint = device.getEndpoint(1);
|
|
799
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'genOnOff', 'genLevelCtrl']);
|
|
800
|
+
await reporting.onOff(endpoint); // switch the night light on/off
|
|
801
|
+
await reporting.batteryPercentageRemaining(endpoint); // internal backup battery in case of power outage
|
|
802
|
+
},
|
|
803
|
+
exposes: [e.switch(), e.battery()],
|
|
804
|
+
},
|
|
790
805
|
];
|
package/devices/ikea.js
CHANGED
|
@@ -245,6 +245,71 @@ const ikea = {
|
|
|
245
245
|
}
|
|
246
246
|
},
|
|
247
247
|
},
|
|
248
|
+
ikea_dots_click_v1: {
|
|
249
|
+
// For remotes with firmware 1.0.012 (20211214)
|
|
250
|
+
cluster: 64639,
|
|
251
|
+
type: 'raw',
|
|
252
|
+
convert: (model, msg, publish, options, meta) => {
|
|
253
|
+
if (!Buffer.isBuffer(msg.data)) return;
|
|
254
|
+
let action;
|
|
255
|
+
const button = msg.data[5];
|
|
256
|
+
switch (msg.data[6]) {
|
|
257
|
+
case 1: action = 'initial_press'; break;
|
|
258
|
+
case 2: action = 'double_press'; break;
|
|
259
|
+
case 3: action = 'long_press'; break;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return {action: `dots_${button}_${action}`};
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
ikea_dots_click_v2: {
|
|
266
|
+
// For remotes with firmware 1.0.32 (20221219)
|
|
267
|
+
cluster: 'heimanSpecificScenes',
|
|
268
|
+
type: 'raw',
|
|
269
|
+
convert: (model, msg, publish, options, meta) => {
|
|
270
|
+
if (!Buffer.isBuffer(msg.data)) return;
|
|
271
|
+
let button;
|
|
272
|
+
let action;
|
|
273
|
+
switch (msg.endpoint.ID) {
|
|
274
|
+
case 2: button = '1'; break; // 1 dot
|
|
275
|
+
case 3: button = '2'; break; // 2 dot
|
|
276
|
+
}
|
|
277
|
+
switch (msg.data[4]) {
|
|
278
|
+
case 1: action = 'initial_press'; break;
|
|
279
|
+
case 2: action = 'long_press'; break;
|
|
280
|
+
case 3: action = 'short_release'; break;
|
|
281
|
+
case 4: action = 'long_release'; break;
|
|
282
|
+
case 6: action = 'double_press'; break;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return {action: `dots_${button}_${action}`};
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
ikea_volume_click: {
|
|
289
|
+
cluster: 'genLevelCtrl',
|
|
290
|
+
type: 'commandMoveWithOnOff',
|
|
291
|
+
convert: (model, msg, publish, options, meta) => {
|
|
292
|
+
const direction = msg.data.movemode === 1 ? 'down' : 'up';
|
|
293
|
+
return {action: `volume_${direction}`};
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
ikea_volume_hold: {
|
|
297
|
+
cluster: 'genLevelCtrl',
|
|
298
|
+
type: 'commandMove',
|
|
299
|
+
convert: (model, msg, publish, options, meta) => {
|
|
300
|
+
const direction = msg.data.movemode === 1 ? 'down_hold' : 'up_hold';
|
|
301
|
+
return {action: `volume_${direction}`};
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
ikea_track_click: {
|
|
305
|
+
cluster: 'genLevelCtrl',
|
|
306
|
+
type: 'commandStep',
|
|
307
|
+
convert: (model, msg, publish, options, meta) => {
|
|
308
|
+
if (utils.hasAlreadyProcessedMessage(msg, model)) return;
|
|
309
|
+
const direction = msg.data.stepmode === 1 ? 'previous' : 'next';
|
|
310
|
+
return {action: `track_${direction}`};
|
|
311
|
+
},
|
|
312
|
+
},
|
|
248
313
|
},
|
|
249
314
|
tz: {
|
|
250
315
|
air_purifier_fan_mode: {
|
|
@@ -1073,4 +1138,31 @@ module.exports = [
|
|
|
1073
1138
|
}]);
|
|
1074
1139
|
},
|
|
1075
1140
|
},
|
|
1141
|
+
{
|
|
1142
|
+
zigbeeModel: ['SYMFONISK sound remote gen2'],
|
|
1143
|
+
model: 'E2123',
|
|
1144
|
+
vendor: 'IKEA',
|
|
1145
|
+
description: 'SYMFONISK sound remote gen2',
|
|
1146
|
+
fromZigbee: [ikea.fz.battery, fz.legacy.E1744_play_pause, ikea.fz.ikea_track_click, ikea.fz.ikea_volume_click,
|
|
1147
|
+
ikea.fz.ikea_volume_hold, ikea.fz.ikea_dots_click_v1, ikea.fz.ikea_dots_click_v2],
|
|
1148
|
+
exposes: [e.battery().withAccess(ea.STATE_GET), e.action(['toggle', 'track_previous', 'track_next', 'volume_up',
|
|
1149
|
+
'volume_down', 'volume_up_hold', 'volume_down_hold', 'dots_1_initial_press', 'dots_2_initial_press',
|
|
1150
|
+
'dots_1_long_press', 'dots_2_long_press', 'dots_1_short_release', 'dots_2_short_release', 'dots_1_long_release',
|
|
1151
|
+
'dots_2_long_release', 'dots_1_double_press', 'dots_2_double_press'])],
|
|
1152
|
+
toZigbee: [tz.battery_percentage_remaining],
|
|
1153
|
+
ota: ota.zigbeeOTA,
|
|
1154
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1155
|
+
const endpoint1 = device.getEndpoint(1);
|
|
1156
|
+
const endpoint2 = device.getEndpoint(2);
|
|
1157
|
+
const endpoint3 = device.getEndpoint(3);
|
|
1158
|
+
await reporting.bind(endpoint1, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl', 'genPollCtrl']);
|
|
1159
|
+
if (endpoint2) {
|
|
1160
|
+
await reporting.bind(endpoint2, coordinatorEndpoint, ['heimanSpecificScenes']);
|
|
1161
|
+
}
|
|
1162
|
+
if (endpoint3) {
|
|
1163
|
+
await reporting.bind(endpoint3, coordinatorEndpoint, ['heimanSpecificScenes']);
|
|
1164
|
+
}
|
|
1165
|
+
await reporting.batteryVoltage(endpoint1);
|
|
1166
|
+
},
|
|
1167
|
+
},
|
|
1076
1168
|
];
|
package/devices/innr.js
CHANGED
|
@@ -44,6 +44,7 @@ module.exports = [
|
|
|
44
44
|
description: 'Smart round ceiling lamp comfort',
|
|
45
45
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200, 454]}),
|
|
46
46
|
meta: {turnsOffAtBrightness1: true},
|
|
47
|
+
ota: ota.zigbeeOTA,
|
|
47
48
|
},
|
|
48
49
|
{
|
|
49
50
|
zigbeeModel: ['FL 140 C'],
|
|
@@ -76,6 +77,7 @@ module.exports = [
|
|
|
76
77
|
description: 'B22 filament bulb dimmable',
|
|
77
78
|
extend: extend.light_onoff_brightness(),
|
|
78
79
|
meta: {turnsOffAtBrightness1: true},
|
|
80
|
+
ota: ota.zigbeeOTA,
|
|
79
81
|
},
|
|
80
82
|
{
|
|
81
83
|
zigbeeModel: ['OGL 130 C'],
|
|
@@ -125,6 +127,7 @@ module.exports = [
|
|
|
125
127
|
description: 'E14 bulb RGBW',
|
|
126
128
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555], supportsHS: true}),
|
|
127
129
|
meta: {enhancedHue: false, applyRedFix: true, turnsOffAtBrightness1: true},
|
|
130
|
+
ota: ota.zigbeeOTA,
|
|
128
131
|
},
|
|
129
132
|
{
|
|
130
133
|
zigbeeModel: ['RB 265'],
|
|
@@ -141,6 +144,7 @@ module.exports = [
|
|
|
141
144
|
description: 'B22 (Bayonet) bulb, dimmable',
|
|
142
145
|
extend: extend.light_onoff_brightness(),
|
|
143
146
|
meta: {turnsOffAtBrightness1: true},
|
|
147
|
+
ota: ota.zigbeeOTA,
|
|
144
148
|
},
|
|
145
149
|
{
|
|
146
150
|
zigbeeModel: ['RB 266'],
|
|
@@ -149,6 +153,7 @@ module.exports = [
|
|
|
149
153
|
description: 'E27 bulb',
|
|
150
154
|
extend: extend.light_onoff_brightness(),
|
|
151
155
|
meta: {turnsOffAtBrightness1: true},
|
|
156
|
+
ota: ota.zigbeeOTA,
|
|
152
157
|
},
|
|
153
158
|
{
|
|
154
159
|
zigbeeModel: ['RF 265'],
|
|
@@ -157,6 +162,7 @@ module.exports = [
|
|
|
157
162
|
description: 'E27 bulb filament clear',
|
|
158
163
|
extend: extend.light_onoff_brightness(),
|
|
159
164
|
meta: {turnsOffAtBrightness1: true},
|
|
165
|
+
ota: ota.zigbeeOTA,
|
|
160
166
|
},
|
|
161
167
|
{
|
|
162
168
|
zigbeeModel: ['BF 265'],
|
|
@@ -165,6 +171,7 @@ module.exports = [
|
|
|
165
171
|
description: 'B22 bulb filament clear',
|
|
166
172
|
extend: extend.light_onoff_brightness(),
|
|
167
173
|
meta: {turnsOffAtBrightness1: true},
|
|
174
|
+
ota: ota.zigbeeOTA,
|
|
168
175
|
},
|
|
169
176
|
{
|
|
170
177
|
zigbeeModel: ['RB 278 T'],
|
|
@@ -181,6 +188,7 @@ module.exports = [
|
|
|
181
188
|
description: 'Smart bulb tunable white E27',
|
|
182
189
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
|
|
183
190
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
191
|
+
ota: ota.zigbeeOTA,
|
|
184
192
|
},
|
|
185
193
|
{
|
|
186
194
|
zigbeeModel: ['RB 285 C'],
|
|
@@ -197,6 +205,7 @@ module.exports = [
|
|
|
197
205
|
description: 'E27 bulb RGBW',
|
|
198
206
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555], supportsHS: true}),
|
|
199
207
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
208
|
+
ota: ota.zigbeeOTA,
|
|
200
209
|
},
|
|
201
210
|
{
|
|
202
211
|
zigbeeModel: ['BY 285 C'],
|
|
@@ -213,6 +222,7 @@ module.exports = [
|
|
|
213
222
|
description: 'B22 bulb RGBW',
|
|
214
223
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555], supportsHS: true}),
|
|
215
224
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
225
|
+
ota: ota.zigbeeOTA,
|
|
216
226
|
},
|
|
217
227
|
{
|
|
218
228
|
zigbeeModel: ['RB 165'],
|
|
@@ -293,6 +303,7 @@ module.exports = [
|
|
|
293
303
|
description: 'GU10 Spot',
|
|
294
304
|
extend: extend.light_onoff_brightness(),
|
|
295
305
|
meta: {turnsOffAtBrightness1: true},
|
|
306
|
+
ota: ota.zigbeeOTA,
|
|
296
307
|
},
|
|
297
308
|
{
|
|
298
309
|
zigbeeModel: ['RS 227 T'],
|
|
@@ -301,6 +312,7 @@ module.exports = [
|
|
|
301
312
|
description: 'GU10 spot 420 lm, dimmable, white spectrum',
|
|
302
313
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200, 454]}),
|
|
303
314
|
meta: {turnsOffAtBrightness1: true},
|
|
315
|
+
ota: ota.zigbeeOTA,
|
|
304
316
|
},
|
|
305
317
|
{
|
|
306
318
|
zigbeeModel: ['RS 128 T'],
|
|
@@ -325,6 +337,7 @@ module.exports = [
|
|
|
325
337
|
description: 'GU10 spot 350 lm, dimmable, white spectrum',
|
|
326
338
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200, 454]}),
|
|
327
339
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
340
|
+
ota: ota.zigbeeOTA,
|
|
328
341
|
},
|
|
329
342
|
{
|
|
330
343
|
zigbeeModel: ['RS 230 C'],
|
|
@@ -334,6 +347,7 @@ module.exports = [
|
|
|
334
347
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555], supportsHS: true}),
|
|
335
348
|
exposes: [e.light_brightness_colortemp_color()],
|
|
336
349
|
meta: {enhancedHue: false, applyRedFix: true, turnsOffAtBrightness1: true},
|
|
350
|
+
ota: ota.zigbeeOTA,
|
|
337
351
|
},
|
|
338
352
|
{
|
|
339
353
|
zigbeeModel: ['RB 145'],
|
|
@@ -350,6 +364,7 @@ module.exports = [
|
|
|
350
364
|
description: 'E14 candle',
|
|
351
365
|
extend: extend.light_onoff_brightness(),
|
|
352
366
|
meta: {turnsOffAtBrightness1: true},
|
|
367
|
+
ota: ota.zigbeeOTA,
|
|
353
368
|
},
|
|
354
369
|
{
|
|
355
370
|
zigbeeModel: ['RB 248 T'],
|
|
@@ -358,6 +373,7 @@ module.exports = [
|
|
|
358
373
|
description: 'E14 candle with white spectrum',
|
|
359
374
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
|
|
360
375
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
376
|
+
ota: ota.zigbeeOTA,
|
|
361
377
|
},
|
|
362
378
|
{
|
|
363
379
|
zigbeeModel: ['RB 249 T'],
|
|
@@ -366,6 +382,7 @@ module.exports = [
|
|
|
366
382
|
description: 'E14 candle, dimmable with, color temp',
|
|
367
383
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200, 454]}),
|
|
368
384
|
meta: {turnsOffAtBrightness1: true},
|
|
385
|
+
ota: ota.zigbeeOTA,
|
|
369
386
|
},
|
|
370
387
|
{
|
|
371
388
|
zigbeeModel: ['RB 148 T'],
|
|
@@ -382,6 +399,7 @@ module.exports = [
|
|
|
382
399
|
description: 'E27 filament bulb dimmable',
|
|
383
400
|
extend: extend.light_onoff_brightness(),
|
|
384
401
|
meta: {turnsOffAtBrightness1: true},
|
|
402
|
+
ota: ota.zigbeeOTA,
|
|
385
403
|
},
|
|
386
404
|
{
|
|
387
405
|
zigbeeModel: ['RF 263'],
|
|
@@ -390,6 +408,7 @@ module.exports = [
|
|
|
390
408
|
description: 'E27 filament bulb dimmable',
|
|
391
409
|
extend: extend.light_onoff_brightness(),
|
|
392
410
|
meta: {turnsOffAtBrightness1: true},
|
|
411
|
+
ota: ota.zigbeeOTA,
|
|
393
412
|
},
|
|
394
413
|
{
|
|
395
414
|
zigbeeModel: ['RF 264'],
|
|
@@ -398,6 +417,7 @@ module.exports = [
|
|
|
398
417
|
description: 'E27 filament bulb dimmable',
|
|
399
418
|
extend: extend.light_onoff_brightness(),
|
|
400
419
|
meta: {turnsOffAtBrightness1: true},
|
|
420
|
+
ota: ota.zigbeeOTA,
|
|
401
421
|
},
|
|
402
422
|
{
|
|
403
423
|
zigbeeModel: ['BY 165', 'BY 265'],
|
|
@@ -518,6 +538,7 @@ module.exports = [
|
|
|
518
538
|
description: 'E26 bulb RGBW',
|
|
519
539
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555], supportsHS: true}),
|
|
520
540
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
541
|
+
ota: ota.zigbeeOTA,
|
|
521
542
|
},
|
|
522
543
|
{
|
|
523
544
|
zigbeeModel: ['SP 120'],
|
|
@@ -574,6 +595,7 @@ module.exports = [
|
|
|
574
595
|
vendor: 'Innr',
|
|
575
596
|
description: 'Smart plug',
|
|
576
597
|
extend: extend.switch(),
|
|
598
|
+
ota: ota.zigbeeOTA,
|
|
577
599
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
578
600
|
const endpoint = device.getEndpoint(1);
|
|
579
601
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
package/devices/tuya.js
CHANGED
|
@@ -1987,7 +1987,7 @@ module.exports = [
|
|
|
1987
1987
|
},
|
|
1988
1988
|
},
|
|
1989
1989
|
{
|
|
1990
|
-
fingerprint:
|
|
1990
|
+
fingerprint: tuya.fingerprint('TS0001', ['_TZ3000_tqlv4ug4', '_TZ3000_gjrubzje', '_TZ3000_tygpxwqa']),
|
|
1991
1991
|
model: 'TS0001_switch_module',
|
|
1992
1992
|
vendor: 'TuYa',
|
|
1993
1993
|
description: '1 gang switch module',
|