zigbee-herdsman-converters 14.0.673 → 14.0.674
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/ledvance.js +29 -0
- package/devices/philips.js +7 -0
- package/devices/third_reality.js +1 -0
- package/devices/tuya.js +58 -15
- package/devices/xiaomi.js +2 -2
- package/lib/tuya.js +9 -0
- package/package.json +1 -1
package/devices/ledvance.js
CHANGED
|
@@ -66,6 +66,14 @@ module.exports = [
|
|
|
66
66
|
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
67
67
|
ota: ota.ledvance,
|
|
68
68
|
},
|
|
69
|
+
{
|
|
70
|
+
zigbeeModel: ['PAR16 RGBW T'],
|
|
71
|
+
model: '4058075729186',
|
|
72
|
+
vendor: 'LEDVANCE',
|
|
73
|
+
description: 'SMART+ Spot PAR16 28 GU10 Multicolor',
|
|
74
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
75
|
+
ota: ota.ledvance,
|
|
76
|
+
},
|
|
69
77
|
{
|
|
70
78
|
zigbeeModel: ['PAR16S TW'],
|
|
71
79
|
model: 'AC33905',
|
|
@@ -170,6 +178,14 @@ module.exports = [
|
|
|
170
178
|
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
171
179
|
ota: ota.ledvance,
|
|
172
180
|
},
|
|
181
|
+
{
|
|
182
|
+
zigbeeModel: ['P40 TW T'],
|
|
183
|
+
model: '4058075729124',
|
|
184
|
+
vendor: 'LEDVANCE',
|
|
185
|
+
description: 'SMART+ CL P40 E14 Tunable white',
|
|
186
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
187
|
+
ota: ota.ledvance,
|
|
188
|
+
},
|
|
173
189
|
{
|
|
174
190
|
zigbeeModel: ['CLA60 RGBW JP'],
|
|
175
191
|
model: 'SMARTZBA60RGBW',
|
|
@@ -255,6 +271,19 @@ module.exports = [
|
|
|
255
271
|
await reporting.onOff(endpoint);
|
|
256
272
|
},
|
|
257
273
|
},
|
|
274
|
+
{
|
|
275
|
+
zigbeeModel: ['PLUG UK T'],
|
|
276
|
+
model: '4058075729285',
|
|
277
|
+
vendor: 'LEDVANCE',
|
|
278
|
+
description: 'SMART+ Plug UK',
|
|
279
|
+
extend: extend.switch(),
|
|
280
|
+
ota: ota.ledvance,
|
|
281
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
282
|
+
const endpoint = device.getEndpoint(1);
|
|
283
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
284
|
+
await reporting.onOff(endpoint);
|
|
285
|
+
},
|
|
286
|
+
},
|
|
258
287
|
{
|
|
259
288
|
zigbeeModel: ['PLUG OUTDOOR EU T'],
|
|
260
289
|
model: '4058075729308',
|
package/devices/philips.js
CHANGED
|
@@ -742,6 +742,13 @@ module.exports = [
|
|
|
742
742
|
description: 'Hue White and Color Ambiance BR30 with bluetooth',
|
|
743
743
|
extend: hueExtend.light_onoff_brightness_colortemp_color(),
|
|
744
744
|
},
|
|
745
|
+
{
|
|
746
|
+
zigbeeModel: ['LCB002'],
|
|
747
|
+
model: '046677577957',
|
|
748
|
+
vendor: 'Philips',
|
|
749
|
+
description: 'Hue White and Color Ambiance BR30 with bluetooth',
|
|
750
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
751
|
+
},
|
|
745
752
|
{
|
|
746
753
|
zigbeeModel: ['LWB004'],
|
|
747
754
|
model: '433714',
|
package/devices/third_reality.js
CHANGED
package/devices/tuya.js
CHANGED
|
@@ -1399,7 +1399,8 @@ module.exports = [
|
|
|
1399
1399
|
fingerprint: [{modelID: 'TS0215A', manufacturerName: '_TZ3000_4fsgukof'},
|
|
1400
1400
|
{modelID: 'TS0215A', manufacturerName: '_TZ3000_wr2ucaj9'},
|
|
1401
1401
|
{modelID: 'TS0215A', manufacturerName: '_TZ3000_zsh6uat3'},
|
|
1402
|
-
{modelID: 'TS0215A', manufacturerName: '_TZ3000_tj4pwzzm'}
|
|
1402
|
+
{modelID: 'TS0215A', manufacturerName: '_TZ3000_tj4pwzzm'},
|
|
1403
|
+
{modelID: 'TS0215A', manufacturerName: '_TZ3000_2izubafb'}],
|
|
1403
1404
|
model: 'TS0215A_sos',
|
|
1404
1405
|
vendor: 'TuYa',
|
|
1405
1406
|
description: 'SOS button',
|
|
@@ -3335,8 +3336,7 @@ module.exports = [
|
|
|
3335
3336
|
exposes: [e.illuminance_lux(), e.brightness_state()],
|
|
3336
3337
|
},
|
|
3337
3338
|
{
|
|
3338
|
-
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_kltffuzl'}, {modelID: 'TS0601', manufacturerName: '_TZE200_fwoorn8y'},
|
|
3339
|
-
{modelID: 'TS0601', manufacturerName: '_TZE200_pay2byax'}],
|
|
3339
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_kltffuzl'}, {modelID: 'TS0601', manufacturerName: '_TZE200_fwoorn8y'}],
|
|
3340
3340
|
model: 'TM001-ZA/TM081',
|
|
3341
3341
|
vendor: 'TuYa',
|
|
3342
3342
|
description: 'Door and window sensor',
|
|
@@ -3418,18 +3418,7 @@ module.exports = [
|
|
|
3418
3418
|
],
|
|
3419
3419
|
},
|
|
3420
3420
|
{
|
|
3421
|
-
fingerprint:
|
|
3422
|
-
{modelID: 'TS0601', manufacturerName: '_TZE200_znbl8dj5'}],
|
|
3423
|
-
model: 'CX-0726',
|
|
3424
|
-
vendor: 'TuYa',
|
|
3425
|
-
description: 'Temperature & humidity LCD sensor',
|
|
3426
|
-
fromZigbee: [fz.tuya_temperature_humidity_sensor, fz.ignore_tuya_set_time],
|
|
3427
|
-
toZigbee: [],
|
|
3428
|
-
onEvent: tuya.onEventSetLocalTime,
|
|
3429
|
-
exposes: [e.temperature(), e.humidity(), e.battery()],
|
|
3430
|
-
},
|
|
3431
|
-
{
|
|
3432
|
-
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_3towulqd'}, {modelID: 'TS0601', manufacturerName: '_TZE200_1ibpyhdc'}],
|
|
3421
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_3towulqd', '_TZE200_1ibpyhdc', '_TZE200_bh3n6gk8']),
|
|
3433
3422
|
model: 'ZG-204ZL',
|
|
3434
3423
|
vendor: 'TuYa',
|
|
3435
3424
|
description: 'Luminance motion sensor',
|
|
@@ -3550,4 +3539,58 @@ module.exports = [
|
|
|
3550
3539
|
.withDescription('Turns the onboard LED on or off'),
|
|
3551
3540
|
],
|
|
3552
3541
|
},
|
|
3542
|
+
{
|
|
3543
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_qoy0ekbd', '_TZE200_znbl8dj5', '_TZE200_a8sdabtg']),
|
|
3544
|
+
model: 'ZG-227ZL',
|
|
3545
|
+
vendor: 'TuYa',
|
|
3546
|
+
description: 'Temperature & humidity LCD sensor',
|
|
3547
|
+
fromZigbee: [tuya.fzDataPoints],
|
|
3548
|
+
toZigbee: [tuya.tzDataPoints],
|
|
3549
|
+
configure: tuya.configureMagicPacket,
|
|
3550
|
+
exposes: [e.temperature(), e.humidity(), tuya.exposes.temperatureUnit(), tuya.exposes.temperatureCalibration(),
|
|
3551
|
+
tuya.exposes.humidityCalibration(), e.battery()],
|
|
3552
|
+
meta: {
|
|
3553
|
+
tuyaDatapoints: [
|
|
3554
|
+
[1, 'temperature', tuya.valueConverter.divideBy10],
|
|
3555
|
+
[2, 'humidity', tuya.valueConverter.raw],
|
|
3556
|
+
[4, 'battery', tuya.valueConverter.raw],
|
|
3557
|
+
[9, 'temperature_unit', tuya.valueConverter.temperatureUnit],
|
|
3558
|
+
[23, 'temperature_calibration', tuya.valueConverter.divideBy10],
|
|
3559
|
+
[24, 'humidity_calibration', tuya.valueConverter.raw],
|
|
3560
|
+
],
|
|
3561
|
+
},
|
|
3562
|
+
},
|
|
3563
|
+
{
|
|
3564
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_n8dljorx', '_TZE200_pay2byax']),
|
|
3565
|
+
model: 'ZG-102ZL',
|
|
3566
|
+
vendor: 'TuYa',
|
|
3567
|
+
description: 'Luminance door sensor',
|
|
3568
|
+
fromZigbee: [tuya.fzDataPoints],
|
|
3569
|
+
toZigbee: [tuya.tzDataPoints],
|
|
3570
|
+
configure: tuya.configureMagicPacket,
|
|
3571
|
+
exposes: [e.contact(), e.illuminance().withUnit('lx'), e.battery()],
|
|
3572
|
+
meta: {
|
|
3573
|
+
tuyaDatapoints: [
|
|
3574
|
+
[1, 'contact', tuya.valueConverter.inverse],
|
|
3575
|
+
[101, 'illuminance', tuya.valueConverter.raw],
|
|
3576
|
+
[2, 'battery', tuya.valueConverter.raw],
|
|
3577
|
+
],
|
|
3578
|
+
},
|
|
3579
|
+
},
|
|
3580
|
+
{
|
|
3581
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_8isdky6j']),
|
|
3582
|
+
model: 'ZG-225Z',
|
|
3583
|
+
vendor: 'TuYa',
|
|
3584
|
+
description: 'Gas sensor',
|
|
3585
|
+
fromZigbee: [tuya.fzDataPoints],
|
|
3586
|
+
toZigbee: [tuya.tzDataPoints],
|
|
3587
|
+
configure: tuya.configureMagicPacket,
|
|
3588
|
+
exposes: [e.gas(), tuya.exposes.gasValue()],
|
|
3589
|
+
meta: {
|
|
3590
|
+
tuyaDatapoints: [
|
|
3591
|
+
[1, 'gas', tuya.valueConverter.true0ElseFalse],
|
|
3592
|
+
[2, 'gas_value', tuya.valueConverter.raw],
|
|
3593
|
+
],
|
|
3594
|
+
},
|
|
3595
|
+
},
|
|
3553
3596
|
];
|
package/devices/xiaomi.js
CHANGED
|
@@ -131,7 +131,7 @@ const fzLocal = {
|
|
|
131
131
|
break;
|
|
132
132
|
case 0x041502bc: { // feeding report
|
|
133
133
|
const report = val.toString();
|
|
134
|
-
result['feeding_source'] = {1: 'manual', 2: 'remote'}[parseInt(report.slice(0, 2))];
|
|
134
|
+
result['feeding_source'] = {0: 'schedule', 1: 'manual', 2: 'remote'}[parseInt(report.slice(0, 2))];
|
|
135
135
|
result['feeding_size'] = parseInt(report.slice(3, 4));
|
|
136
136
|
break;
|
|
137
137
|
}
|
|
@@ -2582,7 +2582,7 @@ module.exports = [
|
|
|
2582
2582
|
toZigbee: [tzLocal.aqara_feeder],
|
|
2583
2583
|
exposes: [
|
|
2584
2584
|
exposes.enum('feed', ea.STATE_SET, ['START']).withDescription('Start feeding'),
|
|
2585
|
-
exposes.enum('feeding_source', ea.STATE, ['manual', 'remote']).withDescription('Feeding source'),
|
|
2585
|
+
exposes.enum('feeding_source', ea.STATE, ['schedule', 'manual', 'remote']).withDescription('Feeding source'),
|
|
2586
2586
|
exposes.numeric('feeding_size', ea.STATE).withDescription('Feeding size').withUnit('portion'),
|
|
2587
2587
|
exposes.numeric('portions_per_day', ea.STATE).withDescription('Portions per day'),
|
|
2588
2588
|
exposes.numeric('weight_per_day', ea.STATE).withDescription('Weight per day').withUnit('g'),
|
package/lib/tuya.js
CHANGED
|
@@ -1170,6 +1170,12 @@ const tuyaExposes = {
|
|
|
1170
1170
|
errorStatus: () => exposes.numeric('error_status', ea.STATE).withDescription('Error status'),
|
|
1171
1171
|
scheduleAllDays: (access, format) => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
|
|
1172
1172
|
.map((day) => exposes.text(`schedule_${day}`, access).withDescription(`Schedule for ${day}, format: "${format}"`)),
|
|
1173
|
+
temperatureUnit: () => exposes.enum('temperature_unit', ea.STATE_SET, ['celsius', 'fahrenheit']).withDescription('Temperature unit'),
|
|
1174
|
+
temperatureCalibration: () => exposes.numeric('temperature_calibration', ea.STATE_SET).withValueMin(-2.0).withValueMax(2.0)
|
|
1175
|
+
.withValueStep(0.1).withUnit('°C').withDescription('Temperature calibration'),
|
|
1176
|
+
humidityCalibration: () => exposes.numeric('humidity_calibration', ea.STATE_SET).withValueMin(-30).withValueMax(30)
|
|
1177
|
+
.withValueStep(1).withUnit('%').withDescription('Humidity calibration'),
|
|
1178
|
+
gasValue: () => exposes.numeric('gas_value', ea.STATE).withDescription('Measured gas concentration').withUnit('ppm'),
|
|
1173
1179
|
};
|
|
1174
1180
|
|
|
1175
1181
|
const skip = {
|
|
@@ -1255,6 +1261,7 @@ const valueConverter = {
|
|
|
1255
1261
|
scale0_254to0_1000: valueConverterBasic.scale(0, 254, 0, 1000),
|
|
1256
1262
|
scale0_1to0_1000: valueConverterBasic.scale(0, 1, 0, 1000),
|
|
1257
1263
|
divideBy100: valueConverterBasic.divideBy(100),
|
|
1264
|
+
temperatureUnit: valueConverterBasic.lookup({'celsius': 0, 'fahrenheit': 1}),
|
|
1258
1265
|
divideBy10: valueConverterBasic.divideBy(10),
|
|
1259
1266
|
raw: valueConverterBasic.raw(),
|
|
1260
1267
|
phaseVariant1: {
|
|
@@ -1452,11 +1459,13 @@ const valueConverter = {
|
|
|
1452
1459
|
return {system_mode: v === false ? 'heat' : 'off', heating_stop: v === false ? 'OFF' : 'ON'};
|
|
1453
1460
|
},
|
|
1454
1461
|
},
|
|
1462
|
+
inverse: {to: (v) => !v, from: (v) => !v},
|
|
1455
1463
|
onOffNotStrict: {from: (v) => v ? 'ON' : 'OFF', to: (v) => v === 'ON'},
|
|
1456
1464
|
};
|
|
1457
1465
|
|
|
1458
1466
|
const tzDataPoints = {
|
|
1459
1467
|
key: [
|
|
1468
|
+
'temperature_unit', 'temperature_calibration', 'humidity_calibration',
|
|
1460
1469
|
'state', 'brightness', 'min_brightness', 'max_brightness', 'power_on_behavior',
|
|
1461
1470
|
'countdown', 'light_type', 'silence', 'self_test', 'child_lock', 'open_window', 'open_window_temperature', 'frost_protection',
|
|
1462
1471
|
'system_mode', 'heating_stop', 'current_heating_setpoint', 'local_temperature_calibration', 'preset', 'boost_timeset_countdown',
|