zigbee-herdsman-converters 14.0.672 → 14.0.673
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/devices/philips.js +4 -4
- package/devices/schneider_electric.js +12 -0
- package/devices/shinasystem.js +32 -0
- package/devices/sinope.js +11 -5
- package/devices/third_reality.js +2 -0
- package/devices/tuya.js +1 -1
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -2973,7 +2973,7 @@ const converters = {
|
|
|
2973
2973
|
convert: (model, msg, publish, options, meta) => {
|
|
2974
2974
|
const stateHeader = Buffer.from([122, 209]);
|
|
2975
2975
|
if (msg.data.indexOf(stateHeader) === 0) {
|
|
2976
|
-
if (msg.data[10] === 5) {
|
|
2976
|
+
if (msg.data[10] === 5 || msg.data[10] === 2) {
|
|
2977
2977
|
const status = msg.data[14];
|
|
2978
2978
|
return {
|
|
2979
2979
|
state_left: status === 1 ? 'ON' : 'OFF',
|
package/devices/philips.js
CHANGED
|
@@ -2359,10 +2359,10 @@ module.exports = [
|
|
|
2359
2359
|
},
|
|
2360
2360
|
{
|
|
2361
2361
|
zigbeeModel: ['LLM001'],
|
|
2362
|
-
model: '7121131PU',
|
|
2362
|
+
model: '7121131PU/7120031PH/7120131PH/7120231PU',
|
|
2363
2363
|
vendor: 'Philips',
|
|
2364
|
-
description: 'Hue Beyond white and color ambiance suspension
|
|
2365
|
-
extend: hueExtend.light_onoff_brightness_colortemp_color(),
|
|
2364
|
+
description: 'Hue Beyond white and color ambiance suspension/ceiling/table lamp',
|
|
2365
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
2366
2366
|
},
|
|
2367
2367
|
{
|
|
2368
2368
|
zigbeeModel: ['5041131P9', '5041148P9'],
|
|
@@ -2918,7 +2918,7 @@ module.exports = [
|
|
|
2918
2918
|
zigbeeModel: ['LCX012'],
|
|
2919
2919
|
model: '929003535301',
|
|
2920
2920
|
vendor: 'Philips',
|
|
2921
|
-
description: 'Hue
|
|
2921
|
+
description: 'Hue Festavia gradient light string 250',
|
|
2922
2922
|
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
2923
2923
|
},
|
|
2924
2924
|
];
|
|
@@ -464,6 +464,18 @@ module.exports = [
|
|
|
464
464
|
await reporting.currentPositionLiftPercentage(endpoint);
|
|
465
465
|
},
|
|
466
466
|
},
|
|
467
|
+
{
|
|
468
|
+
zigbeeModel: ['1GANG/SWITCH/1'],
|
|
469
|
+
model: 'MEG5161-0000',
|
|
470
|
+
vendor: 'Schneider Electric',
|
|
471
|
+
description: 'Merten PlusLink relay insert with Merten Wiser system M push button (1fold)',
|
|
472
|
+
extend: extend.switch(),
|
|
473
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
474
|
+
const endpoint = device.getEndpoint(1);
|
|
475
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
476
|
+
await reporting.onOff(endpoint);
|
|
477
|
+
},
|
|
478
|
+
},
|
|
467
479
|
{
|
|
468
480
|
zigbeeModel: ['LK Switch'],
|
|
469
481
|
model: '545D6514',
|
package/devices/shinasystem.js
CHANGED
|
@@ -70,8 +70,12 @@ const tzLocal = {
|
|
|
70
70
|
case 'counting_freeze':
|
|
71
71
|
if (value.toLowerCase() === 'on') {
|
|
72
72
|
payload = {'presentValue': 82};
|
|
73
|
+
await endpoint.write('genAnalogInput', payload);
|
|
74
|
+
return {state: {counting_freeze: 'ON'}};
|
|
73
75
|
} else if (value.toLowerCase() === 'off') {
|
|
74
76
|
payload = {'presentValue': 84};
|
|
77
|
+
await endpoint.write('genAnalogInput', payload);
|
|
78
|
+
return {state: {counting_freeze: 'OFF'}};
|
|
75
79
|
}
|
|
76
80
|
break;
|
|
77
81
|
case 'tof_init':
|
|
@@ -80,44 +84,72 @@ const tzLocal = {
|
|
|
80
84
|
case 'led_state':
|
|
81
85
|
if (value === 'enable') {
|
|
82
86
|
payload = {'presentValue': 86};
|
|
87
|
+
await endpoint.write('genAnalogInput', payload);
|
|
88
|
+
return {state: {led_state: 'enable'}};
|
|
83
89
|
} else if (value === 'disable') {
|
|
84
90
|
payload = {'presentValue': 87};
|
|
91
|
+
await endpoint.write('genAnalogInput', payload);
|
|
92
|
+
return {state: {led_state: 'disable'}};
|
|
85
93
|
}
|
|
86
94
|
break;
|
|
87
95
|
case 'rf_state':
|
|
88
96
|
if (value === 'enable') {
|
|
89
97
|
payload = {'presentValue': 88};
|
|
98
|
+
await endpoint.write('genAnalogInput', payload);
|
|
99
|
+
return {state: {rf_state: 'enable'}};
|
|
90
100
|
} else if (value === 'disable') {
|
|
91
101
|
payload = {'presentValue': 89};
|
|
102
|
+
await endpoint.write('genAnalogInput', payload);
|
|
103
|
+
return {state: {rf_state: 'disable'}};
|
|
92
104
|
}
|
|
93
105
|
break;
|
|
94
106
|
case 'transaction':
|
|
95
107
|
if (value === '0ms') {
|
|
96
108
|
payload = {'presentValue': 90};
|
|
109
|
+
await endpoint.write('genAnalogInput', payload);
|
|
110
|
+
return {state: {transaction: '0ms'}};
|
|
97
111
|
} else if (value === '200ms') {
|
|
98
112
|
payload = {'presentValue': 91};
|
|
113
|
+
await endpoint.write('genAnalogInput', payload);
|
|
114
|
+
return {state: {transaction: '200ms'}};
|
|
99
115
|
} else if (value === '400ms') {
|
|
100
116
|
payload = {'presentValue': 92};
|
|
117
|
+
await endpoint.write('genAnalogInput', payload);
|
|
118
|
+
return {state: {transaction: '400ms'}};
|
|
101
119
|
} else if (value === '600ms') {
|
|
102
120
|
payload = {'presentValue': 93};
|
|
121
|
+
await endpoint.write('genAnalogInput', payload);
|
|
122
|
+
return {state: {transaction: '600ms'}};
|
|
103
123
|
} else if (value === '800ms') {
|
|
104
124
|
payload = {'presentValue': 94};
|
|
125
|
+
await endpoint.write('genAnalogInput', payload);
|
|
126
|
+
return {state: {transaction: '800ms'}};
|
|
105
127
|
} else if (value === '1,000ms') {
|
|
106
128
|
payload = {'presentValue': 95};
|
|
129
|
+
await endpoint.write('genAnalogInput', payload);
|
|
130
|
+
return {state: {transaction: '1,000ms'}};
|
|
107
131
|
}
|
|
108
132
|
break;
|
|
109
133
|
case 'fast_in':
|
|
110
134
|
if (value === 'enable') {
|
|
111
135
|
payload = {'presentValue': 96};
|
|
136
|
+
await endpoint.write('genAnalogInput', payload);
|
|
137
|
+
return {state: {fast_in: 'enable'}};
|
|
112
138
|
} else if (value === 'disable') {
|
|
113
139
|
payload = {'presentValue': 97};
|
|
140
|
+
await endpoint.write('genAnalogInput', payload);
|
|
141
|
+
return {state: {fast_in: 'disable'}};
|
|
114
142
|
}
|
|
115
143
|
break;
|
|
116
144
|
case 'fast_out':
|
|
117
145
|
if (value === 'enable') {
|
|
118
146
|
payload = {'presentValue': 98};
|
|
147
|
+
await endpoint.write('genAnalogInput', payload);
|
|
148
|
+
return {state: {fast_out: 'enable'}};
|
|
119
149
|
} else if (value === 'disable') {
|
|
120
150
|
payload = {'presentValue': 99};
|
|
151
|
+
await endpoint.write('genAnalogInput', payload);
|
|
152
|
+
return {state: {fast_out: 'disable'}};
|
|
121
153
|
}
|
|
122
154
|
break;
|
|
123
155
|
}
|
package/devices/sinope.js
CHANGED
|
@@ -355,15 +355,21 @@ module.exports = [
|
|
|
355
355
|
model: 'SP2600ZB',
|
|
356
356
|
vendor: 'Sinopé',
|
|
357
357
|
description: 'Zigbee smart plug',
|
|
358
|
-
fromZigbee: [fz.on_off, fz.electrical_measurement],
|
|
358
|
+
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering],
|
|
359
359
|
toZigbee: [tz.on_off],
|
|
360
|
-
exposes: [e.switch(), e.power()],
|
|
360
|
+
exposes: [e.switch(), e.power(), e.current(), e.voltage(), e.ac_frequency(), e.energy()],
|
|
361
361
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
362
362
|
const endpoint = device.getEndpoint(1);
|
|
363
|
-
|
|
364
|
-
await reporting.
|
|
363
|
+
const binds = ['genBasic', 'genIdentify', 'genOnOff', 'haElectricalMeasurement', 'seMetering'];
|
|
364
|
+
await reporting.bind(endpoint, coordinatorEndpoint, binds);
|
|
365
|
+
await reporting.readEletricalMeasurementMultiplierDivisors(endpoint, {readFrequencyAttrs: true});
|
|
365
366
|
await reporting.onOff(endpoint);
|
|
366
|
-
await reporting.activePower(endpoint, {min: 10, change: 1});
|
|
367
|
+
await reporting.activePower(endpoint, {min: 10, change: 1}); // divider 10 : 0.1W
|
|
368
|
+
await reporting.rmsCurrent(endpoint, {min: 10, change: 10}); // divider 100: 0.1Arms
|
|
369
|
+
await reporting.rmsVoltage(endpoint, {min: 10, change: 10}); // divider 100: 0.1Vrms
|
|
370
|
+
await reporting.acFrequency(endpoint, {min: 10, change: 100}); // divider 100: 1Hz
|
|
371
|
+
await endpoint.read('haElectricalMeasurement', ['acFrequency']); // get a first read
|
|
372
|
+
await reporting.currentSummDelivered(endpoint, {min: 10, max: 307, change: [1, 1]});
|
|
367
373
|
},
|
|
368
374
|
},
|
|
369
375
|
{
|
package/devices/third_reality.js
CHANGED
|
@@ -3,6 +3,7 @@ const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/lega
|
|
|
3
3
|
const tz = require('../converters/toZigbee');
|
|
4
4
|
const reporting = require('../lib/reporting');
|
|
5
5
|
const extend = require('../lib/extend');
|
|
6
|
+
const ota = require('../lib/ota');
|
|
6
7
|
const e = exposes.presets;
|
|
7
8
|
|
|
8
9
|
module.exports = [
|
|
@@ -60,6 +61,7 @@ module.exports = [
|
|
|
60
61
|
fromZigbee: [fz.ias_water_leak_alarm_1, fz.battery],
|
|
61
62
|
meta: {battery: {dontDividePercentage: true}},
|
|
62
63
|
toZigbee: [],
|
|
64
|
+
ota: ota.zigbeeOTA,
|
|
63
65
|
exposes: [e.water_leak(), e.battery_low(), e.battery(), e.battery_voltage()],
|
|
64
66
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
65
67
|
device.powerSource = 'Battery';
|
package/devices/tuya.js
CHANGED
|
@@ -1986,7 +1986,7 @@ module.exports = [
|
|
|
1986
1986
|
'to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` ' +
|
|
1987
1987
|
'instead setting the desired temperature.')
|
|
1988
1988
|
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET)
|
|
1989
|
-
.withPreset(['schedule', 'manual', 'boost', 'complex', 'comfort', 'eco'])
|
|
1989
|
+
.withPreset(['schedule', 'manual', 'boost', 'complex', 'comfort', 'eco', 'away'])
|
|
1990
1990
|
.withRunningState(['idle', 'heat'], ea.STATE),
|
|
1991
1991
|
e.auto_lock(), e.away_mode(), e.away_preset_days(), e.boost_time(), e.comfort_temperature(), e.eco_temperature(), e.force(),
|
|
1992
1992
|
e.max_temperature(), e.min_temperature(), e.away_preset_temperature(),
|