zigbee-herdsman-converters 14.0.672 → 14.0.673

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.
@@ -2973,7 +2973,7 @@ const converters = {
2973
2973
  convert: (model, msg, publish, options, meta) => {
2974
2974
  const stateHeader = Buffer.from([122, 209]);
2975
2975
  if (msg.data.indexOf(stateHeader) === 0) {
2976
- if (msg.data[10] === 5) {
2976
+ if (msg.data[10] === 5 || msg.data[10] === 2) {
2977
2977
  const status = msg.data[14];
2978
2978
  return {
2979
2979
  state_left: status === 1 ? 'ON' : 'OFF',
@@ -2359,10 +2359,10 @@ module.exports = [
2359
2359
  },
2360
2360
  {
2361
2361
  zigbeeModel: ['LLM001'],
2362
- model: '7121131PU',
2362
+ model: '7121131PU/7120031PH/7120131PH/7120231PU',
2363
2363
  vendor: 'Philips',
2364
- description: 'Hue Beyond white and color ambiance suspension light',
2365
- extend: hueExtend.light_onoff_brightness_colortemp_color(),
2364
+ description: 'Hue Beyond white and color ambiance suspension/ceiling/table lamp',
2365
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
2366
2366
  },
2367
2367
  {
2368
2368
  zigbeeModel: ['5041131P9', '5041148P9'],
@@ -2918,7 +2918,7 @@ module.exports = [
2918
2918
  zigbeeModel: ['LCX012'],
2919
2919
  model: '929003535301',
2920
2920
  vendor: 'Philips',
2921
- description: 'Hue Festivia gradient light string 250',
2921
+ description: 'Hue Festavia gradient light string 250',
2922
2922
  extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
2923
2923
  },
2924
2924
  ];
@@ -464,6 +464,18 @@ module.exports = [
464
464
  await reporting.currentPositionLiftPercentage(endpoint);
465
465
  },
466
466
  },
467
+ {
468
+ zigbeeModel: ['1GANG/SWITCH/1'],
469
+ model: 'MEG5161-0000',
470
+ vendor: 'Schneider Electric',
471
+ description: 'Merten PlusLink relay insert with Merten Wiser system M push button (1fold)',
472
+ extend: extend.switch(),
473
+ configure: async (device, coordinatorEndpoint, logger) => {
474
+ const endpoint = device.getEndpoint(1);
475
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
476
+ await reporting.onOff(endpoint);
477
+ },
478
+ },
467
479
  {
468
480
  zigbeeModel: ['LK Switch'],
469
481
  model: '545D6514',
@@ -70,8 +70,12 @@ const tzLocal = {
70
70
  case 'counting_freeze':
71
71
  if (value.toLowerCase() === 'on') {
72
72
  payload = {'presentValue': 82};
73
+ await endpoint.write('genAnalogInput', payload);
74
+ return {state: {counting_freeze: 'ON'}};
73
75
  } else if (value.toLowerCase() === 'off') {
74
76
  payload = {'presentValue': 84};
77
+ await endpoint.write('genAnalogInput', payload);
78
+ return {state: {counting_freeze: 'OFF'}};
75
79
  }
76
80
  break;
77
81
  case 'tof_init':
@@ -80,44 +84,72 @@ const tzLocal = {
80
84
  case 'led_state':
81
85
  if (value === 'enable') {
82
86
  payload = {'presentValue': 86};
87
+ await endpoint.write('genAnalogInput', payload);
88
+ return {state: {led_state: 'enable'}};
83
89
  } else if (value === 'disable') {
84
90
  payload = {'presentValue': 87};
91
+ await endpoint.write('genAnalogInput', payload);
92
+ return {state: {led_state: 'disable'}};
85
93
  }
86
94
  break;
87
95
  case 'rf_state':
88
96
  if (value === 'enable') {
89
97
  payload = {'presentValue': 88};
98
+ await endpoint.write('genAnalogInput', payload);
99
+ return {state: {rf_state: 'enable'}};
90
100
  } else if (value === 'disable') {
91
101
  payload = {'presentValue': 89};
102
+ await endpoint.write('genAnalogInput', payload);
103
+ return {state: {rf_state: 'disable'}};
92
104
  }
93
105
  break;
94
106
  case 'transaction':
95
107
  if (value === '0ms') {
96
108
  payload = {'presentValue': 90};
109
+ await endpoint.write('genAnalogInput', payload);
110
+ return {state: {transaction: '0ms'}};
97
111
  } else if (value === '200ms') {
98
112
  payload = {'presentValue': 91};
113
+ await endpoint.write('genAnalogInput', payload);
114
+ return {state: {transaction: '200ms'}};
99
115
  } else if (value === '400ms') {
100
116
  payload = {'presentValue': 92};
117
+ await endpoint.write('genAnalogInput', payload);
118
+ return {state: {transaction: '400ms'}};
101
119
  } else if (value === '600ms') {
102
120
  payload = {'presentValue': 93};
121
+ await endpoint.write('genAnalogInput', payload);
122
+ return {state: {transaction: '600ms'}};
103
123
  } else if (value === '800ms') {
104
124
  payload = {'presentValue': 94};
125
+ await endpoint.write('genAnalogInput', payload);
126
+ return {state: {transaction: '800ms'}};
105
127
  } else if (value === '1,000ms') {
106
128
  payload = {'presentValue': 95};
129
+ await endpoint.write('genAnalogInput', payload);
130
+ return {state: {transaction: '1,000ms'}};
107
131
  }
108
132
  break;
109
133
  case 'fast_in':
110
134
  if (value === 'enable') {
111
135
  payload = {'presentValue': 96};
136
+ await endpoint.write('genAnalogInput', payload);
137
+ return {state: {fast_in: 'enable'}};
112
138
  } else if (value === 'disable') {
113
139
  payload = {'presentValue': 97};
140
+ await endpoint.write('genAnalogInput', payload);
141
+ return {state: {fast_in: 'disable'}};
114
142
  }
115
143
  break;
116
144
  case 'fast_out':
117
145
  if (value === 'enable') {
118
146
  payload = {'presentValue': 98};
147
+ await endpoint.write('genAnalogInput', payload);
148
+ return {state: {fast_out: 'enable'}};
119
149
  } else if (value === 'disable') {
120
150
  payload = {'presentValue': 99};
151
+ await endpoint.write('genAnalogInput', payload);
152
+ return {state: {fast_out: 'disable'}};
121
153
  }
122
154
  break;
123
155
  }
package/devices/sinope.js CHANGED
@@ -355,15 +355,21 @@ module.exports = [
355
355
  model: 'SP2600ZB',
356
356
  vendor: 'Sinopé',
357
357
  description: 'Zigbee smart plug',
358
- fromZigbee: [fz.on_off, fz.electrical_measurement],
358
+ fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering],
359
359
  toZigbee: [tz.on_off],
360
- exposes: [e.switch(), e.power()],
360
+ exposes: [e.switch(), e.power(), e.current(), e.voltage(), e.ac_frequency(), e.energy()],
361
361
  configure: async (device, coordinatorEndpoint, logger) => {
362
362
  const endpoint = device.getEndpoint(1);
363
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement']);
364
- await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
363
+ const binds = ['genBasic', 'genIdentify', 'genOnOff', 'haElectricalMeasurement', 'seMetering'];
364
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
365
+ await reporting.readEletricalMeasurementMultiplierDivisors(endpoint, {readFrequencyAttrs: true});
365
366
  await reporting.onOff(endpoint);
366
- await reporting.activePower(endpoint, {min: 10, change: 1});
367
+ await reporting.activePower(endpoint, {min: 10, change: 1}); // divider 10 : 0.1W
368
+ await reporting.rmsCurrent(endpoint, {min: 10, change: 10}); // divider 100: 0.1Arms
369
+ await reporting.rmsVoltage(endpoint, {min: 10, change: 10}); // divider 100: 0.1Vrms
370
+ await reporting.acFrequency(endpoint, {min: 10, change: 100}); // divider 100: 1Hz
371
+ await endpoint.read('haElectricalMeasurement', ['acFrequency']); // get a first read
372
+ await reporting.currentSummDelivered(endpoint, {min: 10, max: 307, change: [1, 1]});
367
373
  },
368
374
  },
369
375
  {
@@ -3,6 +3,7 @@ const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/lega
3
3
  const tz = require('../converters/toZigbee');
4
4
  const reporting = require('../lib/reporting');
5
5
  const extend = require('../lib/extend');
6
+ const ota = require('../lib/ota');
6
7
  const e = exposes.presets;
7
8
 
8
9
  module.exports = [
@@ -60,6 +61,7 @@ module.exports = [
60
61
  fromZigbee: [fz.ias_water_leak_alarm_1, fz.battery],
61
62
  meta: {battery: {dontDividePercentage: true}},
62
63
  toZigbee: [],
64
+ ota: ota.zigbeeOTA,
63
65
  exposes: [e.water_leak(), e.battery_low(), e.battery(), e.battery_voltage()],
64
66
  configure: async (device, coordinatorEndpoint, logger) => {
65
67
  device.powerSource = 'Battery';
package/devices/tuya.js CHANGED
@@ -1986,7 +1986,7 @@ module.exports = [
1986
1986
  'to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` ' +
1987
1987
  'instead setting the desired temperature.')
1988
1988
  .withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET)
1989
- .withPreset(['schedule', 'manual', 'boost', 'complex', 'comfort', 'eco'])
1989
+ .withPreset(['schedule', 'manual', 'boost', 'complex', 'comfort', 'eco', 'away'])
1990
1990
  .withRunningState(['idle', 'heat'], ea.STATE),
1991
1991
  e.auto_lock(), e.away_mode(), e.away_preset_days(), e.boost_time(), e.comfort_temperature(), e.eco_temperature(), e.force(),
1992
1992
  e.max_temperature(), e.min_temperature(), e.away_preset_temperature(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.672",
3
+ "version": "14.0.673",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [