zigbee-herdsman-converters 14.0.687 → 14.0.688
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/adeo.js +7 -0
- package/devices/ewelink.js +23 -0
- package/devices/m/303/274ller_licht.js +1 -1
- package/devices/tuya.js +26 -24
- package/lib/tuya.js +29 -0
- package/package.json +1 -1
package/devices/adeo.js
CHANGED
|
@@ -52,6 +52,13 @@ module.exports = [
|
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
},
|
|
55
|
+
{
|
|
56
|
+
zigbeeModel: ['ZBEK-7'],
|
|
57
|
+
model: 'IST-CDZFB2AS007NA-MZN-02',
|
|
58
|
+
vendor: 'ADEO',
|
|
59
|
+
description: 'ENKI LEXMAN E27 LED Edison white filament 806 lumen',
|
|
60
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
61
|
+
},
|
|
55
62
|
{
|
|
56
63
|
zigbeeModel: ['ZBEK-8'],
|
|
57
64
|
model: 'IG-CDZFB2G009RA-MZN-02',
|
package/devices/ewelink.js
CHANGED
|
@@ -122,4 +122,27 @@ module.exports = [
|
|
|
122
122
|
device.skipDefaultResponse = true;
|
|
123
123
|
},
|
|
124
124
|
},
|
|
125
|
+
{
|
|
126
|
+
zigbeeModel: ['ZB-SW05'],
|
|
127
|
+
model: 'ZB-SW05',
|
|
128
|
+
vendor: 'eWeLink',
|
|
129
|
+
description: 'Smart light switch - 5 gang',
|
|
130
|
+
extend: extend.switch(),
|
|
131
|
+
exposes: [e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'),
|
|
132
|
+
e.switch().withEndpoint('l3'), e.switch().withEndpoint('l4'), e.switch().withEndpoint('l5')],
|
|
133
|
+
endpoint: (device) => {
|
|
134
|
+
return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4, 'l5': 5};
|
|
135
|
+
},
|
|
136
|
+
meta: {multiEndpoint: true},
|
|
137
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
138
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
139
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
140
|
+
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
|
|
141
|
+
await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
|
|
142
|
+
await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']);
|
|
143
|
+
},
|
|
144
|
+
onEvent: async (type, data, device) => {
|
|
145
|
+
device.skipDefaultResponse = true;
|
|
146
|
+
},
|
|
147
|
+
},
|
|
125
148
|
];
|
|
@@ -101,7 +101,7 @@ module.exports = [
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
zigbeeModel: ['RGB-CCT'],
|
|
104
|
-
model: '404028',
|
|
104
|
+
model: '404028/44435',
|
|
105
105
|
vendor: 'Müller Licht',
|
|
106
106
|
description: 'Tint LED Panel, color, opal white',
|
|
107
107
|
extend: extend.light_onoff_brightness_colortemp_color(),
|
package/devices/tuya.js
CHANGED
|
@@ -470,11 +470,10 @@ const fzLocal = {
|
|
|
470
470
|
TS0201_humidity: {
|
|
471
471
|
...fz.humidity,
|
|
472
472
|
convert: (model, msg, publish, options, meta) => {
|
|
473
|
-
const result = fz.humidity.convert(model, msg, publish, options, meta);
|
|
474
473
|
if (meta.device.manufacturerName === '_TZ3000_ywagc4rj') {
|
|
475
|
-
|
|
474
|
+
msg.data['measuredValue'] *= 10;
|
|
476
475
|
}
|
|
477
|
-
return
|
|
476
|
+
return fz.humidity.convert(model, msg, publish, options, meta);
|
|
478
477
|
},
|
|
479
478
|
},
|
|
480
479
|
TS0222: {
|
|
@@ -971,6 +970,13 @@ module.exports = [
|
|
|
971
970
|
extend: tuya.extend.switch(),
|
|
972
971
|
whiteLabel: [{vendor: 'KTNNKG', model: 'ZB1248-10A'}],
|
|
973
972
|
},
|
|
973
|
+
{
|
|
974
|
+
zigbeeModel: ['CK-BL702-AL-01(7009_Z102LG03-1)'],
|
|
975
|
+
model: 'CK-BL702-AL-01',
|
|
976
|
+
vendor: 'TuYa',
|
|
977
|
+
description: 'Zigbee LED bulb',
|
|
978
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [142, 500]}),
|
|
979
|
+
},
|
|
974
980
|
{
|
|
975
981
|
zigbeeModel: ['TS0505B'],
|
|
976
982
|
model: 'TS0505B',
|
|
@@ -1988,6 +1994,7 @@ module.exports = [
|
|
|
1988
1994
|
{modelID: 'TS0601', manufacturerName: '_TZE200_g5wdnuow'},
|
|
1989
1995
|
// Tubular motors:
|
|
1990
1996
|
{modelID: 'TS0601', manufacturerName: '_TZE200_5sbebbzs'},
|
|
1997
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_udank5zs'},
|
|
1991
1998
|
{modelID: 'TS0601', manufacturerName: '_TZE200_zuz7f94z'},
|
|
1992
1999
|
{modelID: 'TS0601', manufacturerName: '_TZE200_68nvbio9'},
|
|
1993
2000
|
],
|
|
@@ -2028,6 +2035,7 @@ module.exports = [
|
|
|
2028
2035
|
fingerprint: [
|
|
2029
2036
|
{modelID: 'TS0601', manufacturerName: '_TZE200_ckud7u2l'},
|
|
2030
2037
|
{modelID: 'TS0601', manufacturerName: '_TZE200_ywdxldoj'},
|
|
2038
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_do5qy8zo'},
|
|
2031
2039
|
{modelID: 'TS0601', manufacturerName: '_TZE200_cwnjrr72'},
|
|
2032
2040
|
{modelID: 'TS0601', manufacturerName: '_TZE200_pvvbommb'},
|
|
2033
2041
|
{modelID: 'TS0601', manufacturerName: '_TZE200_9sfg7gm0'}, // HomeCloud
|
|
@@ -2107,24 +2115,18 @@ module.exports = [
|
|
|
2107
2115
|
exposes: [
|
|
2108
2116
|
e.battery_low(), e.child_lock(), e.open_window(), e.open_window_temperature().withValueMin(5).withValueMax(30),
|
|
2109
2117
|
e.comfort_temperature().withValueMin(5).withValueMax(30), e.eco_temperature().withValueMin(5).withValueMax(30),
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
.withSystemMode(['off', 'heat'], ea.STATE_SET, '
|
|
2113
|
-
|
|
2114
|
-
'
|
|
2115
|
-
'
|
|
2116
|
-
|
|
2117
|
-
'
|
|
2118
|
-
'`holiday_start_stop` and `holiday_temperature` properties.')
|
|
2119
|
-
.withLocalTemperatureCalibration(-5, 5, 0.1, ea.STATE_SET)
|
|
2120
|
-
.withLocalTemperature(ea.STATE)
|
|
2121
|
-
.withSetpoint('current_heating_setpoint', 5, 30, 0.5, ea.STATE_SET),
|
|
2118
|
+
exposes.climate().withPreset(['auto', 'manual', 'holiday']).withLocalTemperatureCalibration(-5, 5, 0.1, ea.STATE_SET)
|
|
2119
|
+
.withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 30, 0.5, ea.SET)
|
|
2120
|
+
.withSystemMode(['off', 'heat'], ea.STATE_SET, 'Only for Homeassistant'),
|
|
2121
|
+
exposes.binary('heating_stop', ea.STATE_SET, 'ON', 'OFF').withDescription('Battery life can be prolonged'+
|
|
2122
|
+
' by switching the heating off. To achieve this, the valve is closed fully. To activate the '+
|
|
2123
|
+
'heating stop, the device display "HS", press the pair button to cancel.'),
|
|
2124
|
+
tuya.exposes.frostProtection('When Anti-Freezing function is activated, the temperature in the house is kept '+
|
|
2125
|
+
'at 8 °C, the device display "AF".press the pair button to cancel.'),
|
|
2122
2126
|
exposes.numeric('boost_timeset_countdown', ea.STATE_SET).withUnit('second').withDescription('Setting '+
|
|
2123
2127
|
'minimum 0 - maximum 465 seconds boost time. The boost (♨) function is activated. The remaining '+
|
|
2124
2128
|
'time for the function will be counted down in seconds ( 465 to 0 ).').withValueMin(0).withValueMax(465),
|
|
2125
|
-
|
|
2126
|
-
exposes.numeric('holiday_temperature', ea.STATE_SET).withUnit('°C').withDescription('Holiday temperature')
|
|
2127
|
-
.withValueMin(5).withValueMax(30),
|
|
2129
|
+
e.holiday_temperature().withValueMin(5).withValueMax(30),
|
|
2128
2130
|
exposes.text('holiday_start_stop', ea.STATE_SET).withDescription('The holiday mode will automatically start ' +
|
|
2129
2131
|
'at the set time starting point and run the holiday temperature. Can be defined in the following format: ' +
|
|
2130
2132
|
'`startYear/startMonth/startDay startHours:startMinutes | endYear/endMonth/endDay endHours:endMinutes`. ' +
|
|
@@ -2146,15 +2148,15 @@ module.exports = [
|
|
|
2146
2148
|
'period and until the next period, e.g., `04:00/20 24:00/22` means that from 00:00 to 04:00 temperature will be 20 ' +
|
|
2147
2149
|
'degrees and from 04:00 to 00:00 temperature will be 22 degrees.'),
|
|
2148
2150
|
...tuya.exposes.scheduleAllDays(ea.STATE, 'HH:MM/C'),
|
|
2149
|
-
exposes.binary('online', ea.STATE_SET, 'ON', 'OFF').withDescription('
|
|
2150
|
-
|
|
2151
|
-
'Setting this property doesn\'t turn on the display.'),
|
|
2151
|
+
exposes.binary('online', ea.STATE_SET, 'ON', 'OFF').withDescription('The current data request from the device.'),
|
|
2152
|
+
tuya.exposes.errorStatus(),
|
|
2152
2153
|
],
|
|
2153
2154
|
meta: {
|
|
2154
2155
|
tuyaDatapoints: [
|
|
2155
2156
|
[2, 'preset', tuya.valueConverterBasic.lookup({'auto': tuya.enum(0), 'manual': tuya.enum(1), 'holiday': tuya.enum(3)})],
|
|
2156
2157
|
[8, 'open_window', tuya.valueConverter.onOff],
|
|
2157
|
-
[10,
|
|
2158
|
+
[10, null, tuya.valueConverter.TV02FrostProtection],
|
|
2159
|
+
[10, 'frost_protection', tuya.valueConverter.TV02FrostProtection],
|
|
2158
2160
|
[16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
|
|
2159
2161
|
[24, 'local_temperature', tuya.valueConverter.divideBy10],
|
|
2160
2162
|
[27, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
|
|
@@ -2171,8 +2173,8 @@ module.exports = [
|
|
|
2171
2173
|
[105, 'eco_temperature', tuya.valueConverter.divideBy10],
|
|
2172
2174
|
[106, 'schedule', tuya.valueConverter.thermostatScheduleDaySingleDP],
|
|
2173
2175
|
[107, null, tuya.valueConverter.TV02SystemMode],
|
|
2174
|
-
[107, 'system_mode', tuya.
|
|
2175
|
-
[107, 'heating_stop', tuya.valueConverter.
|
|
2176
|
+
[107, 'system_mode', tuya.valueConverter.TV02SystemMode],
|
|
2177
|
+
[107, 'heating_stop', tuya.valueConverter.TV02SystemMode],
|
|
2176
2178
|
[115, 'online', tuya.valueConverter.onOffNotStrict],
|
|
2177
2179
|
[108, 'schedule_monday', tuya.valueConverter.thermostatScheduleDaySingleDP],
|
|
2178
2180
|
[112, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDaySingleDP],
|
package/lib/tuya.js
CHANGED
|
@@ -1470,10 +1470,39 @@ const valueConverter = {
|
|
|
1470
1470
|
},
|
|
1471
1471
|
},
|
|
1472
1472
|
TV02SystemMode: {
|
|
1473
|
+
to: async (v, meta) => {
|
|
1474
|
+
const entity = meta.device.endpoints[0];
|
|
1475
|
+
if (meta.message.system_mode) {
|
|
1476
|
+
if (meta.message.system_mode === 'off') {
|
|
1477
|
+
await sendDataPointBool(entity, 107, true, 'dataRequest', 1);
|
|
1478
|
+
} else {
|
|
1479
|
+
await sendDataPointEnum(entity, 2, 1, 'dataRequest', 1); // manual
|
|
1480
|
+
}
|
|
1481
|
+
} else if (meta.message.heating_stop) {
|
|
1482
|
+
if (meta.message.heating_stop === 'ON') {
|
|
1483
|
+
await sendDataPointBool(entity, 107, true, 'dataRequest', 1);
|
|
1484
|
+
} else {
|
|
1485
|
+
await sendDataPointEnum(entity, 2, 1, 'dataRequest', 1); // manual
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
},
|
|
1473
1489
|
from: (v) => {
|
|
1474
1490
|
return {system_mode: v === false ? 'heat' : 'off', heating_stop: v === false ? 'OFF' : 'ON'};
|
|
1475
1491
|
},
|
|
1476
1492
|
},
|
|
1493
|
+
TV02FrostProtection: {
|
|
1494
|
+
to: async (v, meta) => {
|
|
1495
|
+
const entity = meta.device.endpoints[0];
|
|
1496
|
+
if (v === 'ON') {
|
|
1497
|
+
await sendDataPointBool(entity, 10, true, 'dataRequest', 1);
|
|
1498
|
+
} else {
|
|
1499
|
+
await sendDataPointEnum(entity, 2, 1, 'dataRequest', 1); // manual
|
|
1500
|
+
}
|
|
1501
|
+
},
|
|
1502
|
+
from: (v) => {
|
|
1503
|
+
return {frost_protection: v === false ? 'OFF' : 'ON'};
|
|
1504
|
+
},
|
|
1505
|
+
},
|
|
1477
1506
|
inverse: {to: (v) => !v, from: (v) => !v},
|
|
1478
1507
|
onOffNotStrict: {from: (v) => v ? 'ON' : 'OFF', to: (v) => v === 'ON'},
|
|
1479
1508
|
errorOrBatteryLow: {
|