zigbee-herdsman-converters 14.0.293 → 14.0.294

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.
@@ -6865,10 +6865,10 @@ const converters = {
6865
6865
  }
6866
6866
  break;
6867
6867
  case tuya.dataPoints.tvWindowDetection:
6868
- result = {window_detection: {1: false, 0: true}[value]};
6868
+ result = {window_detection: {1: true, 0: false}[value]};
6869
6869
  break;
6870
6870
  case tuya.dataPoints.tvFrostDetection:
6871
- result = {frost_detection: {1: false, 0: true}[value]};
6871
+ result = {frost_detection: {1: true, 0: false}[value]};
6872
6872
  break;
6873
6873
  case tuya.dataPoints.tvHeatingSetpoint:
6874
6874
  result = {current_heating_setpoint: (value / 10).toFixed(1)};
@@ -6931,6 +6931,19 @@ const converters = {
6931
6931
  return {people: msg.data.presentValue};
6932
6932
  },
6933
6933
  },
6934
+ sihas_action: {
6935
+ cluster: 'genOnOff',
6936
+ type: ['commandOn', 'commandOff', 'commandToggle'],
6937
+ convert: (model, msg, publish, options, meta) => {
6938
+ const lookup = {'commandToggle': 'long', 'commandOn': 'double', 'commandOff': 'single'};
6939
+ let buttonMapping = null;
6940
+ if (model.model === 'MSM-300ZB') {
6941
+ buttonMapping = {1: '1', 2: '2', 3: '3', 4: '4'};
6942
+ }
6943
+ const button = buttonMapping ? `${buttonMapping[msg.endpoint.ID]}_` : '';
6944
+ return {action: `${button}${lookup[msg.type]}`};
6945
+ },
6946
+ },
6934
6947
  hoch_din: {
6935
6948
  cluster: 'manuSpecificTuya',
6936
6949
  type: ['commandGetData', 'commandSetDataResponse'],
@@ -5868,7 +5868,7 @@ const converters = {
5868
5868
  key: [
5869
5869
  'system_mode', 'window_detection', 'frost_detection', 'child_lock',
5870
5870
  'current_heating_setpoint', 'local_temperature_calibration',
5871
- 'holiday_temperature', 'comfort_temperature', 'eco_temperature', 'boost_mode',
5871
+ 'holiday_temperature', 'comfort_temperature', 'eco_temperature',
5872
5872
  'open_window_temperature', 'heating_stop', 'preset',
5873
5873
  ],
5874
5874
  convertSet: async (entity, key, value, meta) => {
@@ -5882,13 +5882,18 @@ const converters = {
5882
5882
  }
5883
5883
  break;
5884
5884
  case 'window_detection':
5885
- await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvWindowDetection, (value) ? 0 : 1);
5885
+ await tuya.sendDataPointBool(entity, tuya.dataPoints.tvWindowDetection, value);
5886
5886
  break;
5887
5887
  case 'frost_detection':
5888
- await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvFrostDetection, (value) ? 0 : 1);
5888
+ if (value == false) {
5889
+ await tuya.sendDataPointBool(entity, tuya.dataPoints.tvFrostDetection, 0);
5890
+ await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvMode, 1);
5891
+ } else {
5892
+ await tuya.sendDataPointBool(entity, tuya.dataPoints.tvFrostDetection, 1);
5893
+ }
5889
5894
  break;
5890
5895
  case 'child_lock':
5891
- await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvChildLock, {'unlock': 0, 'lock': 1}[value.toLowerCase()]);
5896
+ await tuya.sendDataPointBool(entity, tuya.dataPoints.tvChildLock, value === 'LOCK');
5892
5897
  break;
5893
5898
  case 'local_temperature_calibration':
5894
5899
  value = Math.round(value * 10);
@@ -11,7 +11,7 @@ module.exports = [
11
11
  zigbeeModel: ['CSM-300Z'],
12
12
  model: 'CSM-300ZB',
13
13
  vendor: 'ShinaSystem',
14
- description: 'Sihas multipurpose sensor',
14
+ description: 'SiHAS multipurpose sensor',
15
15
  meta: {battery: {voltageToPercentage: '3V_2100'}},
16
16
  fromZigbee: [fz.battery, fz.sihas_people_cnt],
17
17
  toZigbee: [tz.sihas_set_people],
@@ -30,7 +30,7 @@ module.exports = [
30
30
  zigbeeModel: ['USM-300Z'],
31
31
  model: 'USM-300ZB',
32
32
  vendor: 'ShinaSystem',
33
- description: 'Sihas multipurpose sensor',
33
+ description: 'SiHAS multipurpose sensor',
34
34
  meta: {battery: {voltageToPercentage: '3V_2100'}},
35
35
  fromZigbee: [fz.battery, fz.temperature, fz.humidity, fz.occupancy, fz.illuminance],
36
36
  toZigbee: [],
@@ -51,7 +51,7 @@ module.exports = [
51
51
  zigbeeModel: ['SBM300Z1'],
52
52
  model: 'SBM300Z1',
53
53
  vendor: 'ShinaSystem',
54
- description: 'IOT smart switch 1 gang',
54
+ description: 'SiHAS IOT smart switch 1 gang',
55
55
  extend: extend.switch(),
56
56
  configure: async (device, coordinatorEndpoint, logger) => {
57
57
  const endpoint = device.getEndpoint(1);
@@ -63,7 +63,7 @@ module.exports = [
63
63
  zigbeeModel: ['SBM300Z2'],
64
64
  model: 'SBM300Z2',
65
65
  vendor: 'ShinaSystem',
66
- description: 'IOT smart switch 2 gang',
66
+ description: 'SiHAS IOT smart switch 2 gang',
67
67
  extend: extend.switch(),
68
68
  exposes: [e.switch().withEndpoint('top'), e.switch().withEndpoint('bottom')],
69
69
  endpoint: (device) => {
@@ -81,7 +81,7 @@ module.exports = [
81
81
  zigbeeModel: ['SBM300Z3'],
82
82
  model: 'SBM300Z3',
83
83
  vendor: 'ShinaSystem',
84
- description: 'IOT smart switch 3 gang',
84
+ description: 'SiHAS IOT smart switch 3 gang',
85
85
  extend: extend.switch(),
86
86
  exposes: [e.switch().withEndpoint('top'), e.switch().withEndpoint('center'), e.switch().withEndpoint('bottom')],
87
87
  endpoint: (device) => {
@@ -101,7 +101,7 @@ module.exports = [
101
101
  zigbeeModel: ['SBM300Z4'],
102
102
  model: 'SBM300Z4',
103
103
  vendor: 'ShinaSystem',
104
- description: 'IOT smart switch 4 gang',
104
+ description: 'SiHAS IOT smart switch 4 gang',
105
105
  extend: extend.switch(),
106
106
  exposes: [e.switch().withEndpoint('top_left'), e.switch().withEndpoint('bottom_left'),
107
107
  e.switch().withEndpoint('top_right'), e.switch().withEndpoint('bottom_right')],
@@ -124,7 +124,7 @@ module.exports = [
124
124
  zigbeeModel: ['SBM300Z5'],
125
125
  model: 'SBM300Z5',
126
126
  vendor: 'ShinaSystem',
127
- description: 'IOT smart switch 5 gang',
127
+ description: 'SiHAS IOT smart switch 5 gang',
128
128
  extend: extend.switch(),
129
129
  exposes: [e.switch().withEndpoint('top_left'), e.switch().withEndpoint('top_right'), e.switch().withEndpoint('center_left'),
130
130
  e.switch().withEndpoint('bottom_left'), e.switch().withEndpoint('bottom_right')],
@@ -149,7 +149,7 @@ module.exports = [
149
149
  zigbeeModel: ['SBM300Z6'],
150
150
  model: 'SBM300Z6',
151
151
  vendor: 'ShinaSystem',
152
- description: 'IOT smart switch 6 gang',
152
+ description: 'SiHAS IOT smart switch 6 gang',
153
153
  extend: extend.switch(),
154
154
  exposes: [e.switch().withEndpoint('top_left'), e.switch().withEndpoint('bottom_left'), e.switch().withEndpoint('center_left'),
155
155
  e.switch().withEndpoint('center_right'), e.switch().withEndpoint('top_right'), e.switch().withEndpoint('bottom_right')],
@@ -172,4 +172,68 @@ module.exports = [
172
172
  await reporting.onOff(device.getEndpoint(6));
173
173
  },
174
174
  },
175
+ {
176
+ zigbeeModel: ['BSM-300Z'],
177
+ model: 'BSM-300ZB',
178
+ vendor: 'ShinaSystem',
179
+ description: 'SiHAS remote control',
180
+ meta: {battery: {voltageToPercentage: '3V_2100'}},
181
+ fromZigbee: [fz.battery, fz.sihas_action],
182
+ toZigbee: [],
183
+ configure: async (device, coordinatorEndpoint, logger) => {
184
+ const endpoint = device.getEndpoint(1);
185
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
186
+ await reporting.batteryVoltage(endpoint);
187
+ },
188
+ exposes: [e.battery(), e.battery_voltage(), e.action(['single', 'double', 'long'])],
189
+ },
190
+ {
191
+ zigbeeModel: ['TSM-300Z'],
192
+ model: 'TSM-300ZB',
193
+ vendor: 'ShinaSystem',
194
+ description: 'SiHAS temperature/humidity sensor',
195
+ meta: {battery: {voltageToPercentage: '3V_2100'}},
196
+ fromZigbee: [fz.temperature, fz.humidity, fz.battery],
197
+ toZigbee: [],
198
+ configure: async (device, coordinatorEndpoint, logger) => {
199
+ const endpoint = device.getEndpoint(1);
200
+ await reporting.bind(endpoint, coordinatorEndpoint, ['msTemperatureMeasurement', 'msRelativeHumidity', 'genPowerCfg']);
201
+ await reporting.temperature(endpoint, {min: 30, max: 300, change: 30});
202
+ await reporting.humidity(endpoint, {min: 30, max: 3600, change: 50});
203
+ await reporting.batteryVoltage(endpoint, {min: 30, max: 21600, change: 1});
204
+ },
205
+ exposes: [e.temperature(), e.humidity(), e.battery(), e.battery_voltage()],
206
+ },
207
+ {
208
+ zigbeeModel: ['DSM-300Z'],
209
+ model: 'DSM-300ZB',
210
+ vendor: 'ShinaSystem',
211
+ description: 'SiHAS contact sensor',
212
+ meta: {battery: {voltageToPercentage: '3V_2100'}},
213
+ fromZigbee: [fz.ias_contact_alarm_1, fz.battery],
214
+ toZigbee: [],
215
+ configure: async (device, coordinatorEndpoint, logger) => {
216
+ const endpoint = device.getEndpoint(1);
217
+ await reporting.bind(endpoint, coordinatorEndpoint, ['ssIasZone', 'genPowerCfg']);
218
+ await endpoint.read('ssIasZone', ['iasCieAddr', 'zoneState', 'zoneId']);
219
+ await reporting.batteryVoltage(endpoint, {min: 30, max: 21600, change: 1});
220
+ },
221
+ exposes: [e.contact(), e.battery(), e.battery_voltage()],
222
+ },
223
+ {
224
+ zigbeeModel: ['MSM-300Z'],
225
+ model: 'MSM-300ZB',
226
+ vendor: 'ShinaSystem',
227
+ description: 'SiHAS remote control 4 button',
228
+ fromZigbee: [fz.sihas_action, fz.battery],
229
+ toZigbee: [],
230
+ exposes: [e.action(['1_single', '1_double', '1_long', '2_single', '2_double', '2_long',
231
+ '3_single', '3_double', '3_long', '4_single', '4_double', '4_long']), e.battery(), e.battery_voltage()],
232
+ meta: {battery: {voltageToPercentage: '3V_2100'}},
233
+ configure: async (device, coordinatorEndpoint, logger) => {
234
+ const endpoint = device.getEndpoint(1);
235
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
236
+ await reporting.batteryVoltage(endpoint, {min: 30, max: 21600, change: 1});
237
+ },
238
+ },
175
239
  ];
package/devices/tuya.js CHANGED
@@ -103,6 +103,7 @@ module.exports = [
103
103
  {
104
104
  fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_qqjaziws'},
105
105
  {modelID: 'TS0505B', manufacturerName: '_TZ3000_jtmhndw2'},
106
+ {modelID: 'TS0505B', manufacturerName: '_TZ3000_ezlg0pht'},
106
107
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_5snkkrxw'},
107
108
  {modelID: 'TS0505B', manufacturerName: '_TZ3000_12sxjap4'},
108
109
  {modelID: 'TS0505B', manufacturerName: '_TZ3000_x2fqbdun'},
@@ -423,6 +424,7 @@ module.exports = [
423
424
  {
424
425
  fingerprint: [
425
426
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_s1x7gcq0'},
427
+ {modelID: 'TS0502B', manufacturerName: '_TZ3000_muqovqv0'},
426
428
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_hi1ym4bl'},
427
429
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_psgq7ysz'},
428
430
  {modelID: 'TS0502B', manufacturerName: '_TZ3000_zw7wr5uo'},
@@ -744,13 +746,12 @@ module.exports = [
744
746
  {
745
747
  zigbeeModel: ['kud7u2l'],
746
748
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_ckud7u2l'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ywdxldoj'},
747
- {modelID: 'TS0601', manufacturerName: '_TZE200_cwnjrr72'}, {modelID: 'TS0601', manufacturerName: '_TZE200_chyvmhay'},
748
- {modelID: 'TS0601', manufacturerName: '_TZE200_a4bpgplm'}],
749
+ {modelID: 'TS0601', manufacturerName: '_TZE200_cwnjrr72'}, {modelID: 'TS0601', manufacturerName: '_TZE200_chyvmhay'}],
749
750
  model: 'TS0601_thermostat',
750
751
  vendor: 'TuYa',
751
752
  description: 'Radiator valve with thermostat',
752
753
  whiteLabel: [{vendor: 'Moes', model: 'HY368'}, {vendor: 'Moes', model: 'HY369RT'}, {vendor: 'SHOJZJ', model: '378RT'},
753
- {vendor: 'Silvercrest', model: 'TVR01'}, {vendor: 'Haozee', model: 'TRV601'}],
754
+ {vendor: 'Silvercrest', model: 'TVR01'}],
754
755
  meta: {tuyaThermostatPreset: tuya.thermostatPresets, tuyaThermostatSystemMode: tuya.thermostatSystemModes3},
755
756
  ota: ota.zigbeeOTA,
756
757
  onEvent: tuya.onEventSetLocalTime,
@@ -865,7 +866,7 @@ module.exports = [
865
866
  extend: extend.switch(),
866
867
  },
867
868
  {
868
- fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7'},
869
+ fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7', applicationVersion: 67},
869
870
  {modelID: 'TS011F', manufacturerName: '_TZ3000_ew3ldmgx'},
870
871
  {modelID: 'TS011F', manufacturerName: '_TZ3000_ps3dmato'},
871
872
  {modelID: 'TS011F', manufacturerName: '_TZ3000_mraovvmm'},
@@ -906,7 +907,8 @@ module.exports = [
906
907
  .withDescription('Recover state after power outage')],
907
908
  },
908
909
  {
909
- fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak'}],
910
+ fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak'},
911
+ {modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7', applicationVersion: 69}],
910
912
  model: 'TS011F_plug_3',
911
913
  description: 'Smart plug (with power monitoring by polling)',
912
914
  vendor: 'TuYa',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.293",
3
+ "version": "14.0.294",
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.293",
3
+ "version": "14.0.294",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [