zigbee-herdsman-converters 14.0.335 → 14.0.336

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.
@@ -2471,7 +2471,7 @@ const converters = {
2471
2471
  buttonMapping = {1: '1', 2: '2'};
2472
2472
  } else if (model.model === 'TS0043') {
2473
2473
  buttonMapping = {1: '1', 2: '2', 3: '3'};
2474
- } else if (['TS0044', 'YSR-MINI-Z'].includes(model.model)) {
2474
+ } else if (['TS0044', 'YSR-MINI-Z', 'TS004F'].includes(model.model)) {
2475
2475
  buttonMapping = {1: '1', 2: '2', 3: '3', 4: '4'};
2476
2476
  }
2477
2477
  const button = buttonMapping ? `${buttonMapping[msg.endpoint.ID]}_` : '';
@@ -42,8 +42,8 @@ module.exports = [
42
42
  exposes.climate().withSetpoint('occupied_heating_setpoint', 5, 32, 0.5).withLocalTemperature().withPiHeatingDemand()
43
43
  .withSystemMode(['heat']).withRunningState(['idle', 'heat'], ea.STATE),
44
44
  exposes.numeric('external_measured_room_sensor', ea.ALL)
45
- .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes at every 100 ' +
46
- 'value change. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
45
+ .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 ' +
46
+ 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
47
47
  exposes.numeric('window_open_internal', ea.STATE_GET).withValueMin(0).withValueMax(4)
48
48
  .withDescription('0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, ' +
49
49
  '3=Open window detected, 4=In window open state from external but detected closed locally'),
package/devices/hive.js CHANGED
@@ -183,8 +183,8 @@ module.exports = [
183
183
  exposes.climate().withSetpoint('occupied_heating_setpoint', 5, 32, 0.5).withLocalTemperature().withPiHeatingDemand()
184
184
  .withSystemMode(['heat']).withRunningState(['idle', 'heat'], ea.STATE),
185
185
  exposes.numeric('external_measured_room_sensor', ea.ALL)
186
- .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes at every 100 ' +
187
- 'value change. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
186
+ .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 ' +
187
+ 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
188
188
  exposes.numeric('window_open_internal', ea.STATE_GET).withValueMin(0).withValueMax(4)
189
189
  .withDescription('0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, ' +
190
190
  '3=Open window detected, 4=In window open state from external but detected closed locally'),
package/devices/lidl.js CHANGED
@@ -655,7 +655,7 @@ module.exports = [
655
655
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_chyvmhay'}],
656
656
  model: '368308_2010',
657
657
  vendor: 'Lidl',
658
- description: 'Silvercrest rdiator valve with thermostat',
658
+ description: 'Silvercrest radiator valve with thermostat',
659
659
  fromZigbee: [fz.ignore_tuya_set_time, fzLocal.zs_thermostat, fz.tuya_data_point_dump],
660
660
  toZigbee: [tzLocal.zs_thermostat_current_heating_setpoint, tzLocal.zs_thermostat_child_lock,
661
661
  tzLocal.zs_thermostat_comfort_temp, tzLocal.zs_thermostat_eco_temp, tzLocal.zs_thermostat_preset_mode,
package/devices/popp.js CHANGED
@@ -42,8 +42,8 @@ module.exports = [
42
42
  exposes.climate().withSetpoint('occupied_heating_setpoint', 5, 32, 0.5).withLocalTemperature().withPiHeatingDemand()
43
43
  .withSystemMode(['heat']).withRunningState(['idle', 'heat'], ea.STATE),
44
44
  exposes.numeric('external_measured_room_sensor', ea.ALL)
45
- .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes at every 100 ' +
46
- 'value change. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
45
+ .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 ' +
46
+ 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
47
47
  exposes.numeric('window_open_internal', ea.STATE_GET).withValueMin(0).withValueMax(4)
48
48
  .withDescription('0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, ' +
49
49
  '3=Open window detected, 4=In window open state from external but detected closed locally'),
@@ -282,4 +282,21 @@ module.exports = [
282
282
  await reporting.batteryVoltage(endpoint, {min: 30, max: 21600, change: 1});
283
283
  },
284
284
  },
285
+ {
286
+ zigbeeModel: ['PMM-300Z1'],
287
+ model: 'PMM-300Z1',
288
+ vendor: 'ShinaSystem',
289
+ description: 'SiHAS energy monitor',
290
+ fromZigbee: [fz.electrical_measurement, fz.metering],
291
+ toZigbee: [tz.electrical_measurement_power],
292
+ exposes: [e.power().withAccess(ea.STATE_GET), e.energy()],
293
+ configure: async (device, coordinatorEndpoint, logger) => {
294
+ const endpoint = device.getEndpoint(1);
295
+ await reporting.bind(endpoint, coordinatorEndpoint, ['haElectricalMeasurement', 'seMetering']);
296
+ await reporting.activePower(endpoint, {min: 1, max: 600, change: 5});
297
+ await reporting.instantaneousDemand(endpoint, {min: 1, max: 600, change: 1});
298
+ endpoint.saveClusterAttributeKeyValue('seMetering', {multiplier: 1, divisor: 1000});
299
+ await reporting.currentSummDelivered(endpoint, {min: 1, max: 600, change: 5});
300
+ },
301
+ },
285
302
  ];
package/devices/tuya.js CHANGED
@@ -124,8 +124,8 @@ module.exports = [
124
124
  model: 'TS0505B',
125
125
  vendor: 'TuYa',
126
126
  description: 'Zigbee RGB+CCT light',
127
- whiteLabel: [{vendor: 'Mercator ikuü', model: 'SMD4106W-RGB-ZB'},
128
- {vendor: 'TuYa', model: 'A5C-21F7-01'}, {vendor: 'Mercator ikuü', model: 'S9E27LED9W-RGB-Z'}],
127
+ whiteLabel: [{vendor: 'Mercator Ikuü', model: 'SMD4106W-RGB-ZB'},
128
+ {vendor: 'TuYa', model: 'A5C-21F7-01'}, {vendor: 'Mercator Ikuü', model: 'S9E27LED9W-RGB-Z'}],
129
129
  extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
130
130
  meta: {applyRedFix: true, enhancedHue: false},
131
131
  },
@@ -250,7 +250,7 @@ module.exports = [
250
250
  {vendor: 'Earda', model: 'EDM-1ZAA-EU'},
251
251
  {vendor: 'Earda', model: 'EDM-1ZAB-EU'},
252
252
  {vendor: 'Earda', model: 'EDM-1ZBA-EU'},
253
- {vendor: 'Mercator ikuü', model: 'SSWD01'},
253
+ {vendor: 'Mercator Ikuü', model: 'SSWD01'},
254
254
  ],
255
255
  },
256
256
  {
@@ -446,7 +446,7 @@ module.exports = [
446
446
  model: 'TS0502B',
447
447
  vendor: 'TuYa',
448
448
  description: 'Light controller',
449
- whiteLabel: [{vendor: 'Mercator ikuü', model: 'SMI7040', description: 'Ford Batten Light'}],
449
+ whiteLabel: [{vendor: 'Mercator Ikuü', model: 'SMI7040', description: 'Ford Batten Light'}],
450
450
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 500]}),
451
451
  },
452
452
  {
@@ -554,16 +554,24 @@ module.exports = [
554
554
  model: 'TS004F',
555
555
  vendor: 'TuYa',
556
556
  description: 'Wireless switch with 4 buttons',
557
- exposes: [e.battery(), e.action(
558
- ['on', 'off', 'brightness_move_up', 'brightness_step_up', 'brightness_step_down', 'brightness_move_down', 'brightness_stop'])],
559
- fromZigbee: [fz.battery, fz.command_on, fz.command_off, fz.command_step, fz.command_move, fz.command_stop],
560
- toZigbee: [],
557
+ exposes: [e.battery(), e.action(['1_single', '1_double', '1_hold', '2_single', '2_double', '2_hold',
558
+ '3_single', '3_double', '3_hold', '4_single', '4_double', '4_hold'])],
559
+ fromZigbee: [fz.battery, fz.tuya_on_off_action],
560
+ toZigbee: [tz.tuya_operation_mode],
561
561
  configure: async (device, coordinatorEndpoint, logger) => {
562
562
  const endpoint = device.getEndpoint(1);
563
- await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
563
+ await endpoint.read('genBasic', [0x0004, 0x000, 0x0001, 0x0005, 0x0007, 0xfffe]);
564
+ await endpoint.write('genOnOff', {'tuyaOperationMode': 1});
565
+ await endpoint.read('genOnOff', ['tuyaOperationMode']);
564
566
  try {
565
- await reporting.batteryPercentageRemaining(endpoint);
566
- } catch (error) {/* Fails for some*/}
567
+ await endpoint.read(0xE001, [0xD011]);
568
+ } catch (err) {/* do nothing */}
569
+ await endpoint.read('genPowerCfg', ['batteryVoltage', 'batteryPercentageRemaining']);
570
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
571
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
572
+ await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
573
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
574
+ await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
567
575
  },
568
576
  },
569
577
  {
@@ -1194,7 +1202,7 @@ module.exports = [
1194
1202
  {vendor: 'Vrey', model: 'VR-X712U-0013'},
1195
1203
  {vendor: 'TUYATEC', model: 'GDKES-01TZXD'},
1196
1204
  {vendor: 'Lonsonho', model: 'QS-Zigbee-S05-L', description: '1 gang smart switch module without neutral wire'},
1197
- {vendor: 'Mercator ikuü', model: 'SSW01'},
1205
+ {vendor: 'Mercator Ikuü', model: 'SSW01'},
1198
1206
  ],
1199
1207
  configure: async (device, coordinatorEndpoint, logger) => {
1200
1208
  await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
@@ -1327,7 +1335,7 @@ module.exports = [
1327
1335
  {
1328
1336
  fingerprint: [{modelID: 'TS0014', manufacturerName: '_TZ3000_jr2atpww'}, {modelID: 'TS0014', manufacturerName: '_TYZB01_dvakyzhd'},
1329
1337
  {modelID: 'TS0014', manufacturerName: '_TZ3210_w3hl6rao'}, {modelID: 'TS0014', manufacturerName: '_TYZB01_bagt1e4o'},
1330
- {modelID: 'TS0014', manufacturerName: '_TZ3000_r0pmi2p3'}],
1338
+ {modelID: 'TS0014', manufacturerName: '_TZ3000_r0pmi2p3'}, {modelID: 'TS0014', manufacturerName: '_TZ3000_fxjdcikv'}],
1331
1339
  model: 'TS0014',
1332
1340
  vendor: 'TuYa',
1333
1341
  description: 'Smart light switch - 4 gang without neutral wire',
@@ -1338,7 +1346,7 @@ module.exports = [
1338
1346
  return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4};
1339
1347
  },
1340
1348
  whiteLabel: [{vendor: 'TUYATEC', model: 'GDKES-04TZXD'}, {vendor: 'Vizo', model: 'VZ-222S'},
1341
- {vendor: 'MakeGood', model: 'MG-ZG04W/B/G'}],
1349
+ {vendor: 'MakeGood', model: 'MG-ZG04W/B/G'}, {vendor: 'Mercator Ikuü', model: 'SSW04'}],
1342
1350
  meta: {multiEndpoint: true},
1343
1351
  configure: async (device, coordinatorEndpoint, logger) => {
1344
1352
  try {