zigbee-herdsman-converters 14.0.555 → 14.0.558
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 +14 -13
- package/devices/evvr.js +17 -0
- package/devices/ikea.js +1 -1
- package/devices/jasco.js +2 -0
- package/devices/lidl.js +1 -1
- package/devices/lonsonho.js +1 -1
- package/devices/lupus.js +1 -1
- package/devices/moes.js +27 -2
- package/devices/paulmann.js +1 -0
- package/devices/philips.js +1 -1
- package/devices/rgb_genie.js +26 -1
- package/devices/tuya.js +8 -2
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -7273,7 +7273,7 @@ const converters = {
|
|
|
7273
7273
|
cluster: 'genOnOff',
|
|
7274
7274
|
type: ['attributeReport', 'readResponse'],
|
|
7275
7275
|
convert: (model, msg, publish, options, meta) => {
|
|
7276
|
-
const property =
|
|
7276
|
+
const property = 'moesStartUpOnOff';
|
|
7277
7277
|
|
|
7278
7278
|
if (msg.data.hasOwnProperty(property)) {
|
|
7279
7279
|
const dict = {0x00: 'off', 0x01: 'on', 0x02: 'restore'};
|
package/converters/toZigbee.js
CHANGED
|
@@ -73,7 +73,7 @@ const converters = {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
if (isNotification) {
|
|
76
|
-
entity.commandResponse('ssIasAce', 'armRsp', {armnotification: mode}, {}, value.transaction);
|
|
76
|
+
await entity.commandResponse('ssIasAce', 'armRsp', {armnotification: mode}, {}, value.transaction);
|
|
77
77
|
|
|
78
78
|
// Do not update PanelStatus after confirming transaction.
|
|
79
79
|
// Instead the server should send an arm_mode command with the necessary state.
|
|
@@ -88,7 +88,7 @@ const converters = {
|
|
|
88
88
|
|
|
89
89
|
globalStore.putValue(entity, 'panelStatus', panelStatus);
|
|
90
90
|
const payload = {panelstatus: panelStatus, secondsremain: 0, audiblenotif: 0, alarmstatus: 0};
|
|
91
|
-
entity.commandResponse('ssIasAce', 'panelStatusChanged', payload);
|
|
91
|
+
await entity.commandResponse('ssIasAce', 'panelStatusChanged', payload);
|
|
92
92
|
},
|
|
93
93
|
},
|
|
94
94
|
battery_percentage_remaining: {
|
|
@@ -2577,17 +2577,7 @@ const converters = {
|
|
|
2577
2577
|
return {state: {power_outage_memory: value}};
|
|
2578
2578
|
},
|
|
2579
2579
|
},
|
|
2580
|
-
|
|
2581
|
-
key: ['power_outage_memory'],
|
|
2582
|
-
convertSet: async (entity, key, value, meta) => {
|
|
2583
|
-
value = value.toLowerCase();
|
|
2584
|
-
const lookup = {'off': 0x00, 'on': 0x01, 'restore': 0x02};
|
|
2585
|
-
utils.validateValue(value, Object.keys(lookup));
|
|
2586
|
-
const payload = lookup[value];
|
|
2587
|
-
await entity.write('genOnOff', {0x8002: {value: payload, type: 0x30}});
|
|
2588
|
-
return {state: {power_outage_memory: value}};
|
|
2589
|
-
},
|
|
2590
|
-
},
|
|
2580
|
+
|
|
2591
2581
|
tuya_relay_din_led_indicator: {
|
|
2592
2582
|
key: ['indicator_mode'],
|
|
2593
2583
|
convertSet: async (entity, key, value, meta) => {
|
|
@@ -3580,6 +3570,17 @@ const converters = {
|
|
|
3580
3570
|
await tuya.sendDataPointBool(entity, tuya.dataPoints.state, value === 'cool');
|
|
3581
3571
|
},
|
|
3582
3572
|
},
|
|
3573
|
+
tuya_switch_power_outage_memory: {
|
|
3574
|
+
key: ['power_outage_memory'],
|
|
3575
|
+
convertSet: async (entity, key, value, meta) => {
|
|
3576
|
+
value = value.toLowerCase();
|
|
3577
|
+
const lookup = {'off': 0x00, 'on': 0x01, 'restore': 0x02};
|
|
3578
|
+
utils.validateValue(value, Object.keys(lookup));
|
|
3579
|
+
const payload = lookup[value];
|
|
3580
|
+
await entity.write('genOnOff', {moesStartUpOnOff: payload});
|
|
3581
|
+
return {state: {power_outage_memory: value}};
|
|
3582
|
+
},
|
|
3583
|
+
},
|
|
3583
3584
|
moes_power_on_behavior: {
|
|
3584
3585
|
key: ['power_on_behavior'],
|
|
3585
3586
|
convertSet: async (entity, key, value, meta) => {
|
package/devices/evvr.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const reporting = require('../lib/reporting');
|
|
2
|
+
const extend = require('../lib/extend');
|
|
3
|
+
|
|
4
|
+
module.exports = [
|
|
5
|
+
{
|
|
6
|
+
zigbeeModel: ['SRB01', 'SRB01A'],
|
|
7
|
+
model: 'SRB01',
|
|
8
|
+
vendor: 'Evvr',
|
|
9
|
+
description: 'In-wall relay switch',
|
|
10
|
+
extend: extend.switch(),
|
|
11
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
12
|
+
const endpoint = device.getEndpoint(1);
|
|
13
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
14
|
+
await reporting.onOff(endpoint);
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
];
|
package/devices/ikea.js
CHANGED
|
@@ -46,7 +46,7 @@ const bulbOnEvent = async (type, data, device, options, state) => {
|
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
const configureRemote = async (device, coordinatorEndpoint, logger) => {
|
|
49
|
-
// Firmware 2.3.
|
|
49
|
+
// Firmware 2.3.075 >= only supports binding to endpoint, before only to group
|
|
50
50
|
// - https://github.com/Koenkk/zigbee2mqtt/issues/2772#issuecomment-577389281
|
|
51
51
|
// - https://github.com/Koenkk/zigbee2mqtt/issues/7716
|
|
52
52
|
const endpoint = device.getEndpoint(1);
|
package/devices/jasco.js
CHANGED
|
@@ -25,6 +25,7 @@ module.exports = [
|
|
|
25
25
|
vendor: 'Jasco',
|
|
26
26
|
description: 'Zigbee smart outlet',
|
|
27
27
|
extend: extend.switch(),
|
|
28
|
+
fromZigbee: [...extend.switch().fromZigbee, fz.metering],
|
|
28
29
|
exposes: [e.switch(), e.power(), e.energy()],
|
|
29
30
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
30
31
|
const endpoint = device.getEndpoint(1);
|
|
@@ -32,6 +33,7 @@ module.exports = [
|
|
|
32
33
|
await reporting.onOff(endpoint);
|
|
33
34
|
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
34
35
|
await reporting.instantaneousDemand(endpoint);
|
|
36
|
+
await reporting.currentSummDelivered(endpoint);
|
|
35
37
|
},
|
|
36
38
|
},
|
|
37
39
|
{
|
package/devices/lidl.js
CHANGED
|
@@ -795,7 +795,7 @@ module.exports = [
|
|
|
795
795
|
meta: {enhancedHue: false},
|
|
796
796
|
},
|
|
797
797
|
{
|
|
798
|
-
fingerprint: [{modelID: 'TS0505B',
|
|
798
|
+
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_bwlvyjwk'}],
|
|
799
799
|
model: 'HG08383B',
|
|
800
800
|
vendor: 'Lidl',
|
|
801
801
|
description: 'Livarno outdoor LED light chain',
|
package/devices/lonsonho.js
CHANGED
|
@@ -33,7 +33,7 @@ module.exports = [
|
|
|
33
33
|
exposes.numeric('calibration_time', ea.STATE).withUnit('S').withDescription('Calibration time')],
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
|
-
fingerprint: [{modelID: 'TS130F', manufacturerName: '_TZ3000_j1xl73iw'}],
|
|
36
|
+
fingerprint: [{modelID: 'TS130F', manufacturerName: '_TZ3000_j1xl73iw'}, {modelID: 'TS130F', manufacturerName: '_TZ3000_kmsbwdol'}],
|
|
37
37
|
model: 'TS130F_dual',
|
|
38
38
|
vendor: 'Lonsonho',
|
|
39
39
|
description: 'Dual curtain/blind module',
|
package/devices/lupus.js
CHANGED
|
@@ -18,7 +18,7 @@ module.exports = [
|
|
|
18
18
|
exposes: [e.cover_position().setAccess('state', ea.ALL)],
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
zigbeeModel: ['SCM-3-OTA_00.00.03.16TC', 'SCM-6-OTA_00.00.03.17TC'],
|
|
21
|
+
zigbeeModel: ['SCM-3-OTA_00.00.03.16TC', 'SCM-6-OTA_00.00.03.17TC', 'SCM-6-OTA_00.00.03.18TC'],
|
|
22
22
|
model: 'LS12128',
|
|
23
23
|
vendor: 'Lupus',
|
|
24
24
|
description: 'Roller shutter',
|
package/devices/moes.js
CHANGED
|
@@ -7,6 +7,10 @@ const reporting = require('../lib/reporting');
|
|
|
7
7
|
const extend = require('../lib/extend');
|
|
8
8
|
const e = exposes.presets;
|
|
9
9
|
const ea = exposes.access;
|
|
10
|
+
const zosung = require('../lib/zosung');
|
|
11
|
+
const fzZosung = zosung.fzZosung;
|
|
12
|
+
const tzZosung = zosung.tzZosung;
|
|
13
|
+
const ez = zosung.presetsZosung;
|
|
10
14
|
|
|
11
15
|
module.exports = [
|
|
12
16
|
{
|
|
@@ -299,7 +303,8 @@ module.exports = [
|
|
|
299
303
|
},
|
|
300
304
|
},
|
|
301
305
|
{
|
|
302
|
-
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_7hcgjxpc'}
|
|
306
|
+
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_7hcgjxpc'},
|
|
307
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3210_rcggc0ys'}],
|
|
303
308
|
model: 'ZLD-RCW',
|
|
304
309
|
vendor: 'Moes',
|
|
305
310
|
description: 'RGB+CCT Zigbee LED Controller',
|
|
@@ -308,7 +313,7 @@ module.exports = [
|
|
|
308
313
|
]),
|
|
309
314
|
meta: {applyRedFix: true, enhancedHue: false},
|
|
310
315
|
fromZigbee: extend.light_onoff_brightness_colortemp_color().fromZigbee,
|
|
311
|
-
exposes: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}).exposes.concat([
|
|
316
|
+
exposes: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500], disableColorTempStartup: true}).exposes.concat([
|
|
312
317
|
exposes.binary('do_not_disturb', ea.STATE_SET, true, false)
|
|
313
318
|
.withDescription('Do not disturb mode'),
|
|
314
319
|
exposes.enum('color_power_on_behavior', ea.STATE_SET, ['initial', 'previous', 'cutomized'])
|
|
@@ -336,4 +341,24 @@ module.exports = [
|
|
|
336
341
|
exposes: [e.cover_position().setAccess('position', ea.STATE_SET), exposes.enum('backlight', ea.STATE_SET, ['OFF', 'ON']),
|
|
337
342
|
exposes.enum('calibration', ea.STATE_SET, ['OFF', 'ON']), exposes.enum('motor_reversal', ea.STATE_SET, ['OFF', 'ON'])],
|
|
338
343
|
},
|
|
344
|
+
{
|
|
345
|
+
fingerprint: [{modelID: 'TS1201', manufacturerName: '_TZ3290_j37rooaxrcdcqo5n'}],
|
|
346
|
+
model: 'UFO-R11',
|
|
347
|
+
vendor: 'Moes',
|
|
348
|
+
description: 'Universal smart IR remote control',
|
|
349
|
+
fromZigbee: [
|
|
350
|
+
fzZosung.zosung_send_ir_code_00, fzZosung.zosung_send_ir_code_01, fzZosung.zosung_send_ir_code_02,
|
|
351
|
+
fzZosung.zosung_send_ir_code_03, fzZosung.zosung_send_ir_code_04, fzZosung.zosung_send_ir_code_05,
|
|
352
|
+
fz.battery,
|
|
353
|
+
],
|
|
354
|
+
toZigbee: [tzZosung.zosung_ir_code_to_send, tzZosung.zosung_learn_ir_code],
|
|
355
|
+
exposes: [ez.learn_ir_code(), ez.learned_ir_code(), ez.ir_code_to_send(), e.battery(), e.battery_voltage()],
|
|
356
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
357
|
+
const endpoint = device.getEndpoint(1);
|
|
358
|
+
await endpoint.read('genPowerCfg', ['batteryVoltage', 'batteryPercentageRemaining']);
|
|
359
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
360
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
361
|
+
await reporting.batteryVoltage(endpoint);
|
|
362
|
+
},
|
|
363
|
+
},
|
|
339
364
|
];
|
package/devices/paulmann.js
CHANGED
|
@@ -71,6 +71,7 @@ module.exports = [
|
|
|
71
71
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
|
+
fingerprint: [{modelID: 'CCT Light', manufacturerName: 'Paulmann lamp'}],
|
|
74
75
|
zigbeeModel: ['CCT light', 'CCT_light', 'CCT light '],
|
|
75
76
|
model: '50064',
|
|
76
77
|
vendor: 'Paulmann',
|
package/devices/philips.js
CHANGED
|
@@ -917,7 +917,7 @@ module.exports = [
|
|
|
917
917
|
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
918
918
|
},
|
|
919
919
|
{
|
|
920
|
-
zigbeeModel: ['3418131P6'],
|
|
920
|
+
zigbeeModel: ['3418131P6', '929003056401'],
|
|
921
921
|
model: '3418131P6',
|
|
922
922
|
vendor: 'Philips',
|
|
923
923
|
description: 'Hue white ambiance Adore GU10 with Bluetooth (3 spots)',
|
package/devices/rgb_genie.js
CHANGED
|
@@ -3,6 +3,30 @@ const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/lega
|
|
|
3
3
|
const reporting = require('../lib/reporting');
|
|
4
4
|
const extend = require('../lib/extend');
|
|
5
5
|
const e = exposes.presets;
|
|
6
|
+
const utils = require('../lib/utils');
|
|
7
|
+
|
|
8
|
+
const fzLocal = {
|
|
9
|
+
// ZB-1026 requires separate on/off converters since it re-uses the transaction number
|
|
10
|
+
// https://github.com/Koenkk/zigbee2mqtt/issues/12957
|
|
11
|
+
ZB1026_command_on: {
|
|
12
|
+
cluster: 'genOnOff',
|
|
13
|
+
type: 'commandOn',
|
|
14
|
+
convert: (model, msg, publish, options, meta) => {
|
|
15
|
+
const payload = {action: utils.postfixWithEndpointName('on', msg, model)};
|
|
16
|
+
utils.addActionGroup(payload, msg, model);
|
|
17
|
+
return payload;
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
ZB1026_command_off: {
|
|
21
|
+
cluster: 'genOnOff',
|
|
22
|
+
type: 'commandOff',
|
|
23
|
+
convert: (model, msg, publish, options, meta) => {
|
|
24
|
+
const payload = {action: utils.postfixWithEndpointName('off', msg, model)};
|
|
25
|
+
utils.addActionGroup(payload, msg, model);
|
|
26
|
+
return payload;
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
6
30
|
|
|
7
31
|
module.exports = [
|
|
8
32
|
{
|
|
@@ -17,7 +41,8 @@ module.exports = [
|
|
|
17
41
|
model: 'ZB-5001',
|
|
18
42
|
vendor: 'RGB Genie',
|
|
19
43
|
description: 'Zigbee 3.0 remote control',
|
|
20
|
-
fromZigbee: [fz.command_recall,
|
|
44
|
+
fromZigbee: [fz.command_recall, fzLocal.ZB1026_command_on, fzLocal.ZB1026_command_off,
|
|
45
|
+
fz.command_move, fz.command_stop, fz.battery],
|
|
21
46
|
exposes: [e.battery(), e.action(['recall_*', 'on', 'off', 'brightness_stop', 'brightness_move_up', 'brightness_move_down'])],
|
|
22
47
|
toZigbee: [],
|
|
23
48
|
},
|
package/devices/tuya.js
CHANGED
|
@@ -470,9 +470,9 @@ module.exports = [
|
|
|
470
470
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_qxenlrin'},
|
|
471
471
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_iwbaamgh'},
|
|
472
472
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_klv2wul0'},
|
|
473
|
-
{modelID: 'TS0505B', manufacturerName: '_TZ3210_rcggc0ys'},
|
|
474
473
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_s6zec0of'},
|
|
475
474
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_y5fjkn7x'},
|
|
475
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3210_cuqkfz2q'},
|
|
476
476
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_6amjviba'}],
|
|
477
477
|
model: 'TS0505B',
|
|
478
478
|
vendor: 'TuYa',
|
|
@@ -502,6 +502,7 @@ module.exports = [
|
|
|
502
502
|
fingerprint: [{modelID: 'TS0504B', manufacturerName: '_TZ3000_ukuvyhaa'},
|
|
503
503
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_bfvybixd'},
|
|
504
504
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_i2i0bsnv'},
|
|
505
|
+
{modelID: 'TS0504B', manufacturerName: '_TZ3210_elzv6aia'},
|
|
505
506
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_1elppmba'}],
|
|
506
507
|
model: 'TS0504B',
|
|
507
508
|
vendor: 'TuYa',
|
|
@@ -906,6 +907,7 @@ module.exports = [
|
|
|
906
907
|
{modelID: 'TS0502B', manufacturerName: '_TZ3000_armwcncd'},
|
|
907
908
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_2p6wbry3'},
|
|
908
909
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_qamcypen'},
|
|
910
|
+
{modelID: 'TS0502B', manufacturerName: '_TZ3210_zdrhqmo0'},
|
|
909
911
|
],
|
|
910
912
|
model: 'TS0502B',
|
|
911
913
|
vendor: 'TuYa',
|
|
@@ -961,9 +963,13 @@ module.exports = [
|
|
|
961
963
|
model: 'WSD500A',
|
|
962
964
|
vendor: 'TuYa',
|
|
963
965
|
description: 'Temperature & humidity sensor',
|
|
964
|
-
fromZigbee: [
|
|
966
|
+
fromZigbee: [fzLocal.TS0201_battery, fz.temperature, fz.humidity],
|
|
965
967
|
toZigbee: [],
|
|
966
968
|
exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
|
|
969
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
970
|
+
const endpoint = device.getEndpoint(1);
|
|
971
|
+
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
972
|
+
},
|
|
967
973
|
},
|
|
968
974
|
{
|
|
969
975
|
fingerprint: [{modelID: 'SM0201', manufacturerName: '_TYZB01_cbiezpds'}],
|