zigbee-herdsman-converters 14.0.393 → 14.0.394

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.
@@ -7761,6 +7761,31 @@ const converters = {
7761
7761
  return result;
7762
7762
  },
7763
7763
  },
7764
+ matsee_garage_door_opener: {
7765
+ cluster: 'manuSpecificTuya',
7766
+ type: ['commandDataReport', 'raw'],
7767
+ convert: (model, msg, publish, options, meta) => {
7768
+ const result = {};
7769
+ for (const dpValue of msg.data.dpValues) {
7770
+ const value = tuya.getDataValue(dpValue);
7771
+ switch (dpValue.dp) {
7772
+ case tuya.dataPoints.garageDoorTrigger:
7773
+ result.action = 'trigger';
7774
+ break;
7775
+ case tuya.dataPoints.garageDoorContact:
7776
+ result.garage_door_contact = Boolean(!value);
7777
+ break;
7778
+ case tuya.dataPoints.garageDoorStatus:
7779
+ // This reports a garage door status (open, closed), but it is very naive and misleading
7780
+ break;
7781
+ default:
7782
+ meta.logger.debug(`zigbee-herdsman-converters:matsee_garage_door_opener: NOT RECOGNIZED ` +
7783
+ `DP #${dpValue.dp} with data ${JSON.stringify(dpValue)}`);
7784
+ }
7785
+ }
7786
+ return result;
7787
+ },
7788
+ },
7764
7789
  moes_thermostat_tv: {
7765
7790
  cluster: 'manuSpecificTuya',
7766
7791
  type: ['commandDataResponse', 'commandDataReport', 'raw'],
@@ -2333,6 +2333,12 @@ const converters = {
2333
2333
  tuya.sendDataPointRaw(entity, tuya.dataPoints.lidlTimer, tuya.convertDecimalValueTo4ByteHexArray(value));
2334
2334
  },
2335
2335
  },
2336
+ matsee_garage_door_opener: {
2337
+ key: ['trigger'],
2338
+ convertSet: (entity, key, value, meta) => {
2339
+ tuya.sendDataPointBool(entity, tuya.dataPoints.action, true);
2340
+ },
2341
+ },
2336
2342
  SPZ01_power_outage_memory: {
2337
2343
  key: ['power_outage_memory'],
2338
2344
  convertSet: async (entity, key, value, meta) => {
@@ -5,6 +5,7 @@ const reporting = require('../lib/reporting');
5
5
  const extend = require('../lib/extend');
6
6
  const e = exposes.presets;
7
7
  const ea = exposes.access;
8
+ const ota = require('../lib/ota');
8
9
 
9
10
  const readInitialBatteryState = async (type, data, device) => {
10
11
  if (['deviceAnnounce'].includes(type)) {
@@ -63,6 +64,7 @@ module.exports = [
63
64
  fromZigbee: [fz.identify, fz.ignore_basic_report, fz.command_cover_open, fz.command_cover_close, fz.command_cover_stop, fz.battery,
64
65
  fz.legrand_binary_input_moving],
65
66
  toZigbee: [],
67
+ ota: ota.zigbeeOTA,
66
68
  exposes: [e.battery(), e.action(['identify', 'open', 'close', 'stop', 'moving', 'stopped'])],
67
69
  configure: async (device, coordinatorEndpoint, logger) => {
68
70
  const endpoint = device.getEndpoint(1);
@@ -182,6 +184,7 @@ module.exports = [
182
184
  zigbeeModel: [' Connected outlet\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'],
183
185
  model: '067775/741811',
184
186
  vendor: 'Legrand',
187
+ ota: ota.zigbeeOTA,
185
188
  description: 'Power socket with power consumption monitoring',
186
189
  fromZigbee: [fz.identify, fz.on_off, fz.electrical_measurement],
187
190
  toZigbee: [tz.on_off, tz.legrand_settingAlwaysEnableLed, tz.legrand_identify],
@@ -200,6 +203,7 @@ module.exports = [
200
203
  vendor: 'Legrand',
201
204
  description: 'Wired micromodule switch',
202
205
  extend: extend.switch(),
206
+ ota: ota.zigbeeOTA,
203
207
  fromZigbee: [fz.identify, fz.on_off],
204
208
  toZigbee: [tz.on_off, tz.legrand_identify],
205
209
  configure: async (device, coordinatorEndpoint, logger) => {
@@ -0,0 +1,31 @@
1
+ const fz = require('../converters/fromZigbee');
2
+ const exposes = require('../lib/exposes');
3
+ const reporting = require('../lib/reporting');
4
+ const extend = require('../lib/extend');
5
+ const e = exposes.presets;
6
+ const ea = exposes.access;
7
+
8
+
9
+ module.exports = [
10
+ {
11
+ zigbeeModel: ['SZ1000'],
12
+ model: 'ZB250',
13
+ vendor: 'Micro Matic Norge AS',
14
+ description: 'Zigbee dimmer for LED',
15
+ fromZigbee: extend.light_onoff_brightness().fromZigbee.concat([fz.electrical_measurement, fz.metering]),
16
+ toZigbee: extend.light_onoff_brightness().toZigbee,
17
+ configure: async (device, coordinatorEndpoint, logger) => {
18
+ await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
19
+ const endpoint = device.getEndpoint(1);
20
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl', 'haElectricalMeasurement', 'seMetering']);
21
+ await reporting.brightness(endpoint);
22
+ await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
23
+ await reporting.rmsVoltage(endpoint, {min: 10, change: 20}); // Voltage - Min change of 2V
24
+ await reporting.rmsCurrent(endpoint, {min: 10, change: 10}); // A - z2m displays only the first decimals, change of 10 / 0,01A
25
+ await reporting.activePower(endpoint, {min: 10, change: 15}); // W - Min change of 1,5W
26
+ await reporting.currentSummDelivered(endpoint, {min: 300}); // Report KWH every 5min
27
+ },
28
+ exposes: [e.light_brightness(), e.power(), e.current(), e.voltage().withAccess(ea.STATE), e.energy()],
29
+ },
30
+ ];
31
+
@@ -29,6 +29,13 @@ const hueExtend = {
29
29
  };
30
30
 
31
31
  module.exports = [
32
+ {
33
+ zigbeeModel: ['929003055801'],
34
+ model: '929003055801',
35
+ vendor: 'Philips',
36
+ description: 'Hue white ambiance bathroom ceiling light Adore with Bluetooth',
37
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
38
+ },
32
39
  {
33
40
  zigbeeModel: ['929003056901'],
34
41
  model: '929003056901',
@@ -261,7 +268,7 @@ module.exports = [
261
268
  ota: ota.zigbeeOTA,
262
269
  },
263
270
  {
264
- zigbeeModel: ['LLC012', 'LLC011'],
271
+ zigbeeModel: ['LLC012', 'LLC011', 'LLC013'],
265
272
  model: '7299760PH',
266
273
  vendor: 'Philips',
267
274
  description: 'Hue Bloom',
@@ -0,0 +1,20 @@
1
+ const reporting = require('zigbee-herdsman-converters/lib/reporting');
2
+ const extend = require('zigbee-herdsman-converters/lib/extend');
3
+
4
+ module.exports = [
5
+ {
6
+ zigbeeModel: ['12501'],
7
+ model: '12501',
8
+ vendor: 'Scan Products',
9
+ description: 'Zigbee push dimmer',
10
+ fromZigbee: extend.light_onoff_brightness().fromZigbee,
11
+ toZigbee: extend.light_onoff_brightness().toZigbee,
12
+ extend: extend.light_onoff_brightness({noConfigure: true}),
13
+ configure: async (device, coordinatorEndpoint, logger) => {
14
+ await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
15
+ const endpoint = device.getEndpoint(1);
16
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
17
+ await reporting.onOff(endpoint);
18
+ },
19
+ },
20
+ ];
package/devices/tuya.js CHANGED
@@ -206,7 +206,8 @@ module.exports = [
206
206
  {modelID: 'TS0501B', manufacturerName: '_TZ3210_4whigl8i'},
207
207
  {modelID: 'TS0501B', manufacturerName: '_TZ3210_9q49basr'},
208
208
  {modelID: 'TS0501B', manufacturerName: '_TZ3210_grnwgegn'},
209
- {modelID: 'TS0501B', manufacturerName: '_TZ3210_wuheofsg'}],
209
+ {modelID: 'TS0501B', manufacturerName: '_TZ3210_wuheofsg'},
210
+ {modelID: 'TS0501B', manufacturerName: '_TZ3210_e5t9bfdv'}],
210
211
  model: 'TS0501B',
211
212
  description: 'Zigbee light',
212
213
  vendor: 'TuYa',
@@ -1664,6 +1665,21 @@ module.exports = [
1664
1665
  e.energy(), exposes.enum('power_outage_memory', ea.STATE_SET, ['on', 'off', 'restore'])
1665
1666
  .withDescription('Recover state after power outage')],
1666
1667
  },
1668
+ {
1669
+ fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_nklqjk62'}],
1670
+ model: 'PJ-ZGD01',
1671
+ vendor: 'TuYa',
1672
+ description: 'Garage door opener',
1673
+ fromZigbee: [fz.matsee_garage_door_opener, fz.ignore_basic_report],
1674
+ toZigbee: [tz.matsee_garage_door_opener, tz.tuya_data_point_test],
1675
+ whiteLabel: [{vendor: 'MatSee Plus', model: 'PJ-ZGD01'}],
1676
+ configure: async (device, coordinatorEndpoint, logger) => {
1677
+ const endpoint = device.getEndpoint(1);
1678
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
1679
+ },
1680
+ exposes: [exposes.binary('trigger', ea.STATE_SET, true, false).withDescription('Trigger the door movement'),
1681
+ e.action(), exposes.binary('garage_door_contact', ea.STATE, true, false)],
1682
+ },
1667
1683
  {
1668
1684
  fingerprint: [{modelID: 'TS0201', manufacturerName: '_TZ3000_qaaysllp'}],
1669
1685
  model: 'LCZ030',
@@ -22,6 +22,21 @@ module.exports = [
22
22
  return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4, 'l5': 5};
23
23
  },
24
24
  },
25
+ {
26
+ fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_cfnprab5'}],
27
+ model: 'SM-0306E-2W',
28
+ vendor: 'UseeLink',
29
+ description: '4 gang switch, with USB',
30
+ exposes: [e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'), e.switch().withEndpoint('l3'),
31
+ e.switch().withEndpoint('l4'), e.switch().withEndpoint('l5')],
32
+ extend: extend.switch(),
33
+ meta: {multiEndpoint: true},
34
+ configure: async (device, coordinatorEndpoint, logger) => {
35
+ for (const ID of [1, 2, 3, 4, 5]) {
36
+ await reporting.bind(device.getEndpoint(ID), coordinatorEndpoint, ['genOnOff']);
37
+ }
38
+ },
39
+ },
25
40
  {
26
41
  fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_tvuarksa'}],
27
42
  model: 'SM-AZ713',
package/devices/xiaomi.js CHANGED
@@ -1448,6 +1448,7 @@ module.exports = [
1448
1448
  await reporting.onOff(endpoint);
1449
1449
  await reporting.deviceTemperature(endpoint);
1450
1450
  device.powerSource = 'Mains (single phase)';
1451
+ device.type = 'Router';
1451
1452
  device.save();
1452
1453
  },
1453
1454
  },
package/lib/tuya.js CHANGED
@@ -571,6 +571,10 @@ const dataPoints = {
571
571
  AM02Border: 16,
572
572
  AM02MotorWorkingMode: 20,
573
573
  AM02AddRemoter: 101,
574
+ // Matsee Tuya Garage Door Opener
575
+ garageDoorTrigger: 1,
576
+ garageDoorContact: 3,
577
+ garageDoorStatus: 12,
574
578
  };
575
579
 
576
580
  const thermostatWeekFormat = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.393",
3
+ "version": "14.0.394",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.393",
3
+ "version": "14.0.394",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [