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.
@@ -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',
@@ -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',
@@ -146,5 +146,6 @@ module.exports = [
146
146
  fromZigbee: [fz.battery, fz.temperature, fz.humidity],
147
147
  toZigbee: [],
148
148
  exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
149
+ ota: ota.zigbeeOTA,
149
150
  },
150
151
  ];
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: [{modelID: 'TS0601', manufacturerName: '_TZE200_qoy0ekbd'},
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',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.673",
3
+ "version": "14.0.674",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [