zigbee-herdsman-converters 14.0.645 → 14.0.646
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 +2 -22
- package/devices/adeo.js +7 -0
- package/devices/develco.js +12 -11
- package/devices/innr.js +23 -0
- package/devices/osram.js +9 -1
- package/devices/philips.js +1 -1
- package/devices/tuya.js +16 -6
- package/devices/vimar.js +25 -0
- package/lib/tuya.js +9 -1
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -5047,11 +5047,8 @@ const converters = {
|
|
|
5047
5047
|
0x63: 'release_2_and_4', 0x22: 'press_energy_bar',
|
|
5048
5048
|
};
|
|
5049
5049
|
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
} else {
|
|
5053
|
-
return {action: lookup[commandID]};
|
|
5054
|
-
}
|
|
5050
|
+
const action = lookup.hasOwnProperty(commandID) ? lookup[commandID] : `unknown_${commandID}`;
|
|
5051
|
+
return {action};
|
|
5055
5052
|
},
|
|
5056
5053
|
},
|
|
5057
5054
|
enocean_ptm215ze: {
|
|
@@ -7491,23 +7488,6 @@ const converters = {
|
|
|
7491
7488
|
return result;
|
|
7492
7489
|
},
|
|
7493
7490
|
},
|
|
7494
|
-
tuya_gas: {
|
|
7495
|
-
cluster: 'manuSpecificTuya',
|
|
7496
|
-
type: ['commandDataResponse'],
|
|
7497
|
-
convert: (model, msg, publish, options, meta) => {
|
|
7498
|
-
const dpValue = tuya.firstDpValue(msg, meta, 'tuya_gas');
|
|
7499
|
-
const dp = dpValue.dp;
|
|
7500
|
-
const value = tuya.getDataValue(dpValue);
|
|
7501
|
-
|
|
7502
|
-
switch (dp) {
|
|
7503
|
-
case tuya.dataPoints.state:
|
|
7504
|
-
return {gas: value === 0 ? true : false};
|
|
7505
|
-
default:
|
|
7506
|
-
meta.logger.warn(`zigbee-herdsman-converters:tuya_gas: Unrecognized DP #${
|
|
7507
|
-
dp} with data ${JSON.stringify(dpValue)}`);
|
|
7508
|
-
}
|
|
7509
|
-
},
|
|
7510
|
-
},
|
|
7511
7491
|
idlock: {
|
|
7512
7492
|
cluster: 'closuresDoorLock',
|
|
7513
7493
|
type: ['attributeReport', 'readResponse'],
|
package/devices/adeo.js
CHANGED
|
@@ -87,6 +87,13 @@ module.exports = [
|
|
|
87
87
|
description: 'ENKI LEXMAN E14 LED white',
|
|
88
88
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
89
89
|
},
|
|
90
|
+
{
|
|
91
|
+
zigbeeModel: ['ZBEK-11'],
|
|
92
|
+
model: 'IM-CDZDGAAG005KA-MZN',
|
|
93
|
+
vendor: 'ADEO',
|
|
94
|
+
description: 'ENKI LEXMAN GU-10 LED white',
|
|
95
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
96
|
+
},
|
|
90
97
|
{
|
|
91
98
|
zigbeeModel: ['ZBEK-12'],
|
|
92
99
|
model: 'IA-CDZFB2AA007NA-MZN-01',
|
package/devices/develco.js
CHANGED
|
@@ -534,24 +534,25 @@ module.exports = [
|
|
|
534
534
|
return {default: 35};
|
|
535
535
|
},
|
|
536
536
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
537
|
+
const endpoint39 = device.getEndpoint(39);
|
|
538
|
+
await reporting.bind(endpoint39, coordinatorEndpoint, ['msIlluminanceMeasurement']);
|
|
539
|
+
await reporting.illuminance(endpoint39,
|
|
540
|
+
{min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 500});
|
|
541
|
+
|
|
542
|
+
const endpoint38 = device.getEndpoint(38);
|
|
543
|
+
await reporting.bind(endpoint38, coordinatorEndpoint, ['msTemperatureMeasurement']);
|
|
544
|
+
await reporting.temperature(endpoint38,
|
|
545
|
+
{min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 100});
|
|
546
|
+
|
|
537
547
|
const endpoint35 = device.getEndpoint(35);
|
|
538
548
|
await reporting.bind(endpoint35, coordinatorEndpoint, ['genPowerCfg']);
|
|
539
549
|
await reporting.batteryVoltage(endpoint35, {min: constants.repInterval.HOUR, max: 43200, change: 100});
|
|
550
|
+
await endpoint35.read('genBasic', ['develcoPrimarySwVersion', 'develcoPrimaryHwVersion'], manufacturerOptions);
|
|
551
|
+
|
|
540
552
|
try {
|
|
541
|
-
await endpoint35.read('genBasic', ['develcoPrimarySwVersion', 'develcoPrimaryHwVersion'], manufacturerOptions);
|
|
542
553
|
await endpoint35.read('ssIasZone', ['develcoAlarmOffDelay'], manufacturerOptions);
|
|
543
554
|
await endpoint35.read('genBasic', ['develcoLedControl'], manufacturerOptions);
|
|
544
555
|
} catch (error) {/* some reports of timeouts on reading these */}
|
|
545
|
-
|
|
546
|
-
const endpoint38 = device.getEndpoint(38);
|
|
547
|
-
await reporting.bind(endpoint38, coordinatorEndpoint, ['msTemperatureMeasurement']);
|
|
548
|
-
await reporting.temperature(endpoint38,
|
|
549
|
-
{min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 100});
|
|
550
|
-
|
|
551
|
-
const endpoint39 = device.getEndpoint(39);
|
|
552
|
-
await reporting.bind(endpoint39, coordinatorEndpoint, ['msIlluminanceMeasurement']);
|
|
553
|
-
await reporting.illuminance(endpoint39,
|
|
554
|
-
{min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 500});
|
|
555
556
|
},
|
|
556
557
|
},
|
|
557
558
|
{
|
package/devices/innr.js
CHANGED
|
@@ -7,6 +7,21 @@ const e = exposes.presets;
|
|
|
7
7
|
const ea = exposes.access;
|
|
8
8
|
|
|
9
9
|
module.exports = [
|
|
10
|
+
{
|
|
11
|
+
zigbeeModel: ['RC 250'],
|
|
12
|
+
model: 'RC 250',
|
|
13
|
+
vendor: 'Innr',
|
|
14
|
+
description: 'Remote control',
|
|
15
|
+
fromZigbee: [fz.command_step, fz.command_on, fz.command_off, fz.command_move_to_level, fz.command_move_to_color_temp],
|
|
16
|
+
toZigbee: [],
|
|
17
|
+
exposes: [e.action(['on', 'off', 'brightness_step_up', 'brightness_step_down',
|
|
18
|
+
'brightness_move_to_level', 'color_temperature_move'])],
|
|
19
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
20
|
+
const ep = device.getEndpoint(1);
|
|
21
|
+
await reporting.bind(ep, coordinatorEndpoint, ['genBasic', 'genGroups', 'genScenes',
|
|
22
|
+
'genOnOff', 'genLevelCtrl', 'lightingColorCtrl']);
|
|
23
|
+
},
|
|
24
|
+
},
|
|
10
25
|
{
|
|
11
26
|
zigbeeModel: ['RCL 240 T'],
|
|
12
27
|
model: 'RCL 240 T',
|
|
@@ -144,6 +159,14 @@ module.exports = [
|
|
|
144
159
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
|
|
145
160
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
146
161
|
},
|
|
162
|
+
{
|
|
163
|
+
zigbeeModel: ['RB 279 T'],
|
|
164
|
+
model: 'RB 279 T',
|
|
165
|
+
vendor: 'Innr',
|
|
166
|
+
description: 'Smart bulb tunable white E27',
|
|
167
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
|
|
168
|
+
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
169
|
+
},
|
|
147
170
|
{
|
|
148
171
|
zigbeeModel: ['RB 285 C'],
|
|
149
172
|
model: 'RB 285 C',
|
package/devices/osram.js
CHANGED
|
@@ -227,7 +227,7 @@ module.exports = [
|
|
|
227
227
|
model: '4052899926110',
|
|
228
228
|
vendor: 'OSRAM',
|
|
229
229
|
description: 'Flex RGBW',
|
|
230
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666], supportsHS: true
|
|
230
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666], supportsHS: true}),
|
|
231
231
|
ota: ota.ledvance,
|
|
232
232
|
},
|
|
233
233
|
{
|
|
@@ -458,4 +458,12 @@ module.exports = [
|
|
|
458
458
|
}
|
|
459
459
|
},
|
|
460
460
|
},
|
|
461
|
+
{
|
|
462
|
+
zigbeeModel: ['LIGHTIFY Under Cabinet TW'],
|
|
463
|
+
model: '71150',
|
|
464
|
+
vendor: 'OSRAM',
|
|
465
|
+
description: 'Lightify under cabinet tunable white',
|
|
466
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
467
|
+
ota: ota.ledvance,
|
|
468
|
+
},
|
|
461
469
|
];
|
package/devices/philips.js
CHANGED
|
@@ -813,7 +813,7 @@ module.exports = [
|
|
|
813
813
|
extend: hueExtend.light_onoff_brightness(),
|
|
814
814
|
},
|
|
815
815
|
{
|
|
816
|
-
zigbeeModel: ['LTA001', '4080130P6'],
|
|
816
|
+
zigbeeModel: ['LTA001', '4080130P6', '4300631P6'],
|
|
817
817
|
model: '9290022169',
|
|
818
818
|
vendor: 'Philips',
|
|
819
819
|
description: 'Hue white ambiance E27 with Bluetooth',
|
package/devices/tuya.js
CHANGED
|
@@ -22,7 +22,7 @@ const TS011Fplugs = ['_TZ3000_5f43h46b', '_TZ3000_cphmq0q7', '_TZ3000_dpo1ysak',
|
|
|
22
22
|
'_TZ3000_zloso4jk', '_TZ3000_r6buo8ba', '_TZ3000_iksasdbv', '_TZ3000_idrffznf', '_TZ3000_okaz9tjs', '_TZ3210_q7oryllx',
|
|
23
23
|
'_TZ3000_ss98ec5d', '_TZ3000_gznh2xla', '_TZ3000_hdopuwv6', '_TZ3000_gvn91tmx', '_TZ3000_dksbtrzs', '_TZ3000_b28wrpvx',
|
|
24
24
|
'_TZ3000_aim0ztek', '_TZ3000_mlswgkc3', '_TZ3000_7dndcnnb', '_TZ3000_waho4jtj', '_TZ3000_nmsciidq', '_TZ3000_jtgxgmks',
|
|
25
|
-
'_TZ3000_rdfh8cfs'];
|
|
25
|
+
'_TZ3000_rdfh8cfs', '_TZ3000_yujkchbz'];
|
|
26
26
|
|
|
27
27
|
const tzLocal = {
|
|
28
28
|
SA12IZL_silence_siren: {
|
|
@@ -781,13 +781,23 @@ module.exports = [
|
|
|
781
781
|
exposes: [e.carbon_monoxide(), e.co()],
|
|
782
782
|
},
|
|
783
783
|
{
|
|
784
|
-
fingerprint:
|
|
784
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ggev5fsl', '_TZE200_u319yc66']),
|
|
785
785
|
model: 'TS0601_gas_sensor',
|
|
786
786
|
vendor: 'TuYa',
|
|
787
787
|
description: 'gas sensor',
|
|
788
|
-
fromZigbee: [
|
|
789
|
-
toZigbee: [],
|
|
790
|
-
|
|
788
|
+
fromZigbee: [tuya.fzDataPoints],
|
|
789
|
+
toZigbee: [tuya.tzDataPoints],
|
|
790
|
+
configure: tuya.configureMagicPacket,
|
|
791
|
+
exposes: [e.gas(), tuya.exposes.selfTest(), tuya.exposes.selfTestResult(), tuya.exposes.faultAlarm(), tuya.exposes.silence()],
|
|
792
|
+
meta: {
|
|
793
|
+
tuyaDatapoints: [
|
|
794
|
+
[1, 'gas', tuya.valueConverter.true0ElseFalse],
|
|
795
|
+
[8, 'self_test', tuya.valueConverter.raw],
|
|
796
|
+
[9, 'self_test_result', tuya.valueConverter.selfTestResult],
|
|
797
|
+
[11, 'fault_alarm', tuya.valueConverter.trueFalse],
|
|
798
|
+
[16, 'silence', tuya.valueConverter.raw],
|
|
799
|
+
],
|
|
800
|
+
},
|
|
791
801
|
},
|
|
792
802
|
{
|
|
793
803
|
fingerprint: [{modelID: 'TS0001', manufacturerName: '_TZ3000_hktqahrq'}, {manufacturerName: '_TZ3000_hktqahrq'},
|
|
@@ -2004,6 +2014,7 @@ module.exports = [
|
|
|
2004
2014
|
{modelID: 'TS0601', manufacturerName: '_TZE200_cpmgn2cf'},
|
|
2005
2015
|
{modelID: 'TS0601', manufacturerName: '_TZE200_4eeyebrt'}, // Immax 07732B
|
|
2006
2016
|
{modelID: 'TS0601', manufacturerName: '_TZE200_8whxpsiw'}, // EVOLVEO
|
|
2017
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_bvu2wnxz'}, /* model: 'TRV06', vendor: 'AVATTO' */
|
|
2007
2018
|
],
|
|
2008
2019
|
model: 'TS0601_thermostat',
|
|
2009
2020
|
vendor: 'TuYa',
|
|
@@ -2056,7 +2067,6 @@ module.exports = [
|
|
|
2056
2067
|
{modelID: 'TS0601', manufacturerName: '_TZE200_mudxchsu'}, /* model: 'TV05-ZG curve', vendor: 'TuYa' */
|
|
2057
2068
|
{modelID: 'TS0601', manufacturerName: '_TZE200_7yoranx2'}, /* model: 'TV01-ZB', vendor: 'Moes' */
|
|
2058
2069
|
{modelID: 'TS0601', manufacturerName: '_TZE200_kds0pmmv'}, /* model: 'TV01-ZB', vendor: 'Moes' */
|
|
2059
|
-
{modelID: 'TS0601', manufacturerName: '_TZE200_bvu2wnxz'}, /* model: 'TRV06', vendor: 'AVATTO' */
|
|
2060
2070
|
],
|
|
2061
2071
|
model: 'TV02-Zigbee',
|
|
2062
2072
|
vendor: 'TuYa',
|
package/devices/vimar.js
CHANGED
|
@@ -48,4 +48,29 @@ module.exports = [
|
|
|
48
48
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
49
49
|
},
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
zigbeeModel: ['Thermostat_v0.1'],
|
|
53
|
+
model: '02973.B',
|
|
54
|
+
vendor: 'Vimar',
|
|
55
|
+
description: 'Vimar IoT thermostat',
|
|
56
|
+
fromZigbee: [fz.thermostat],
|
|
57
|
+
toZigbee: [
|
|
58
|
+
tz.thermostat_local_temperature,
|
|
59
|
+
tz.thermostat_occupied_heating_setpoint,
|
|
60
|
+
tz.thermostat_occupied_cooling_setpoint,
|
|
61
|
+
tz.thermostat_system_mode,
|
|
62
|
+
],
|
|
63
|
+
exposes: [
|
|
64
|
+
exposes.climate().withSetpoint('occupied_heating_setpoint', 4, 40, 0.1)
|
|
65
|
+
.withSetpoint('occupied_cooling_setpoint', 4, 40, 0.1)
|
|
66
|
+
.withLocalTemperature()
|
|
67
|
+
.withSystemMode(['heat', 'cool']),
|
|
68
|
+
],
|
|
69
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
70
|
+
const endpoint = device.getEndpoint(10);
|
|
71
|
+
const binds = ['genBasic', 'genIdentify', 'hvacThermostat'];
|
|
72
|
+
await reporting.bind(endpoint, coordinatorEndpoint, binds);
|
|
73
|
+
await reporting.thermostatTemperature(endpoint);
|
|
74
|
+
},
|
|
75
|
+
},
|
|
51
76
|
];
|
package/lib/tuya.js
CHANGED
|
@@ -1152,6 +1152,12 @@ const tuyaExposes = {
|
|
|
1152
1152
|
countdown: () => exposes.numeric('countdown', ea.STATE_SET).withValueMin(0).withValueMax(43200).withValueStep(1).withUnit('s')
|
|
1153
1153
|
.withDescription('Countdown to turn device off after a certain time'),
|
|
1154
1154
|
switch: () => e.switch().setAccess('state', ea.STATE_SET),
|
|
1155
|
+
selfTest: () => exposes.binary('self_test', ea.STATE_SET, true, false)
|
|
1156
|
+
.withDescription('Indicates whether the device is being self-tested'),
|
|
1157
|
+
selfTestResult: () => exposes.enum('self_test_result', ea.STATE, ['checking', 'success', 'failure', 'others'])
|
|
1158
|
+
.withDescription('Result of the self-test'),
|
|
1159
|
+
faultAlarm: () => exposes.binary('fault_alarm', ea.STATE, true, false).withDescription('Indicates whether a fault was detected'),
|
|
1160
|
+
silence: () => exposes.binary('silence', ea.STATE_SET, true, false).withDescription('Silence the alarm'),
|
|
1155
1161
|
};
|
|
1156
1162
|
|
|
1157
1163
|
const skip = {
|
|
@@ -1215,10 +1221,12 @@ const valueConverter = {
|
|
|
1215
1221
|
},
|
|
1216
1222
|
},
|
|
1217
1223
|
true0ElseFalse: {from: (v) => v === 0},
|
|
1224
|
+
selfTestResult: valueConverterBasic.lookup({'checking': 0, 'success': 1, 'failure': 2, 'others': 3}),
|
|
1218
1225
|
};
|
|
1219
1226
|
|
|
1220
1227
|
const tzDataPoints = {
|
|
1221
|
-
key: ['state', 'brightness', 'min_brightness', 'max_brightness', 'power_on_behavior',
|
|
1228
|
+
key: ['state', 'brightness', 'min_brightness', 'max_brightness', 'power_on_behavior',
|
|
1229
|
+
'countdown', 'light_type', 'silence', 'self_test'],
|
|
1222
1230
|
convertSet: async (entity, key, value, meta) => {
|
|
1223
1231
|
// A set converter is only called once; therefore we need to loop
|
|
1224
1232
|
const state = {};
|