zigbee-herdsman-converters 15.0.39 → 15.0.41

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.
@@ -39,7 +39,7 @@ module.exports = [
39
39
  meta: {applyRedFix: true, enhancedHue: false},
40
40
  },
41
41
  {
42
- zigbeeModel: ['ZB-CCT_Filament'],
42
+ fingerprint: [{modelID: 'CCT Light', manufacturerName: 'ZB/Ajax Online', manufacturerID: 4137}],
43
43
  model: 'ZB-CCT_Filament',
44
44
  vendor: 'Ajax Online',
45
45
  description: 'Zigbee LED filament light dimmable E27, edison ST64, flame 2200K',
@@ -5,7 +5,7 @@ module.exports = [
5
5
  zigbeeModel: ['Bankamp Dimm-Leuchte'],
6
6
  model: '2189/1-xx',
7
7
  vendor: 'Bankamp',
8
- description: 'Grazia ceiling light',
8
+ description: 'Ceiling light (e.g. Grazia, Grand)',
9
9
  extend: extend.light_onoff_brightness(),
10
10
  },
11
11
  ];
package/devices/datek.js CHANGED
@@ -10,12 +10,13 @@ const ea = exposes.access;
10
10
 
11
11
  module.exports = [
12
12
  {
13
- fingerprint: [{modelID: 'PoP', manufacturerName: 'Eva'}],
13
+ zigbeeModel: ['PoP'],
14
14
  model: 'HLU2909K',
15
15
  vendor: 'Datek',
16
16
  description: 'APEX smart plug 16A',
17
17
  fromZigbee: [fz.on_off, fz.electrical_measurement, fz.temperature],
18
18
  toZigbee: [tz.on_off, tz.power_on_behavior],
19
+ ota: ota.zigbeeOTA,
19
20
  configure: async (device, coordinatorEndpoint, logger) => {
20
21
  const endpoint = device.getEndpoint(1);
21
22
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'msTemperatureMeasurement']);
@@ -28,11 +29,10 @@ module.exports = [
28
29
  await reporting.activePower(endpoint);
29
30
  await reporting.temperature(endpoint);
30
31
  },
31
- ota: ota.zigbeeOTA,
32
32
  exposes: [e.power(), e.current(), e.voltage(), e.switch(), e.temperature(), e.power_on_behavior()],
33
33
  },
34
34
  {
35
- fingerprint: [{modelID: 'Meter Reader', manufacturerName: 'Eva'}],
35
+ zigbeeModel: ['Meter Reader'],
36
36
  model: 'HSE2905E',
37
37
  vendor: 'Datek',
38
38
  description: 'Datek Eva AMS HAN power-meter sensor',
@@ -86,7 +86,7 @@ module.exports = [
86
86
  e.voltage_phase_c(), e.temperature()],
87
87
  },
88
88
  {
89
- fingerprint: [{modelID: 'Motion Sensor', manufacturerName: 'Eva'}],
89
+ zigbeeModel: ['Motion Sensor'],
90
90
  model: 'HSE2927E',
91
91
  vendor: 'Datek',
92
92
  description: 'Eva motion sensor',
@@ -114,7 +114,7 @@ module.exports = [
114
114
  exposes.numeric('occupancy_timeout', ea.ALL).withUnit('seconds').withValueMin(0).withValueMax(65535)],
115
115
  },
116
116
  {
117
- fingerprint: [{modelID: 'ID Lock 150', manufacturerName: 'Eva'}],
117
+ zigbeeModel: ['ID Lock 150'],
118
118
  model: '0402946',
119
119
  vendor: 'Datek',
120
120
  description: 'Zigbee module for ID lock 150',
@@ -188,7 +188,7 @@ module.exports = [
188
188
  'random_pin_24_hours']).withDescription('Service Mode of the Lock')],
189
189
  },
190
190
  {
191
- fingerprint: [{modelID: 'Water Sensor', manufacturerName: 'Eva'}],
191
+ zigbeeModel: ['Water Sensor'],
192
192
  model: 'HSE2919E',
193
193
  vendor: 'Datek',
194
194
  description: 'Eva water leak sensor',
@@ -229,7 +229,6 @@ module.exports = [
229
229
  'brightness_move_down', 'brightness_move_up', 'brightness_stop'])],
230
230
  },
231
231
  {
232
- fingerprint: [{modelID: 'Door/Window Sensor', manufacturerName: 'Eva'}],
233
232
  zigbeeModel: ['Door/Window Sensor'],
234
233
  model: 'HSE2920E',
235
234
  vendor: 'Datek',
@@ -8,4 +8,11 @@ module.exports = [
8
8
  description: 'Smart LED bulb',
9
9
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
10
10
  },
11
+ {
12
+ zigbeeModel: ['EB-E27-ST64-CCT-FV'],
13
+ model: 'EB-E27-ST64-CCT-FV',
14
+ vendor: 'EssentielB',
15
+ description: 'Filament vintage light bulb',
16
+ extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 454]}),
17
+ },
11
18
  ];
package/devices/immax.js CHANGED
@@ -192,7 +192,7 @@ module.exports = [
192
192
  exposes: [e.action(['disarm', 'arm_home', 'arm_away', 'sos']), e.tamper()],
193
193
  meta: {
194
194
  tuyaDatapoints: [
195
- [24, 'tamper', tuya.valueConverter.trueFalse],
195
+ [24, 'tamper', tuya.valueConverter.trueFalse1],
196
196
  [26, 'action', tuya.valueConverter.static('disarm')],
197
197
  [27, 'action', tuya.valueConverter.static('arm_away')],
198
198
  [28, 'action', tuya.valueConverter.static('arm_home')],
@@ -81,6 +81,13 @@ module.exports = [
81
81
  description: 'Zigbee LED 4.8W GU10 bulb, dimmable & tunable',
82
82
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
83
83
  },
84
+ {
85
+ zigbeeModel: ['ZBT-CCTLight-D115'],
86
+ model: 'ZL13100314',
87
+ vendor: 'Linkind',
88
+ description: 'Ceiling light 28W, 3000 lm, Ø40CM CCT',
89
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
90
+ },
84
91
  {
85
92
  zigbeeModel: ['ZBT-CCTLight-BR300107'],
86
93
  model: 'ZL100050004',
@@ -183,7 +183,7 @@ module.exports = [
183
183
  {disableColorTempStartup: true, colorTempRange: [153, 500], disableEffect: true}),
184
184
  },
185
185
  {
186
- fingerprint: [{modelID: 'TS0003', manufacturerName: '_TYZB01_zsl6z0pw'}],
186
+ fingerprint: [{modelID: 'TS0003', manufacturerName: '_TYZB01_zsl6z0pw'}, {modelID: 'TS0003', manufacturerName: '_TYZB01_uqkphoed'}],
187
187
  model: 'QS-Zigbee-S04-2C-LN',
188
188
  vendor: 'Lonsonho',
189
189
  description: '2 gang switch module with neutral wire',
@@ -48,6 +48,9 @@ module.exports = [
48
48
  await reporting.thermostatSystemMode(endpoint);
49
49
  await reporting.thermostatPIHeatingDemand(endpoint);
50
50
  await reporting.thermostatKeypadLockMode(endpoint);
51
+ // Has Unknown power source, force it.
52
+ device.powerSource = 'Mains (single phase)';
53
+ device.save();
51
54
  },
52
55
  },
53
56
  {
package/devices/tuya.js CHANGED
@@ -873,10 +873,10 @@ module.exports = [
873
873
  exposes: [e.gas(), tuya.exposes.selfTest(), tuya.exposes.selfTestResult(), tuya.exposes.faultAlarm(), tuya.exposes.silence()],
874
874
  meta: {
875
875
  tuyaDatapoints: [
876
- [1, 'gas', tuya.valueConverter.true0ElseFalse],
876
+ [1, 'gas', tuya.valueConverter.trueFalse0],
877
877
  [8, 'self_test', tuya.valueConverter.raw],
878
878
  [9, 'self_test_result', tuya.valueConverter.selfTestResult],
879
- [11, 'fault_alarm', tuya.valueConverter.trueFalse],
879
+ [11, 'fault_alarm', tuya.valueConverter.trueFalse1],
880
880
  [16, 'silence', tuya.valueConverter.raw],
881
881
  ],
882
882
  },
@@ -1828,7 +1828,7 @@ module.exports = [
1828
1828
  vendor: 'TuYa',
1829
1829
  description: 'Wireless switch with 4 buttons',
1830
1830
  whiteLabel: [{vendor: 'Lonsonho', model: 'TS0044'}, {vendor: 'Haozee', model: 'ESW-OZAA-EU'},
1831
- {vendor: 'LoraTap', model: 'SS6400ZB'}],
1831
+ {vendor: 'LoraTap', model: 'SS6400ZB'}, {vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS'}],
1832
1832
  fromZigbee: [fz.tuya_on_off_action, fz.battery],
1833
1833
  exposes: [e.battery(), e.action(['1_single', '1_double', '1_hold', '2_single', '2_double', '2_hold',
1834
1834
  '3_single', '3_double', '3_hold', '4_single', '4_double', '4_hold'])],
@@ -1894,7 +1894,8 @@ module.exports = [
1894
1894
  exposes: [e.battery(), e.water_leak()],
1895
1895
  },
1896
1896
  {
1897
- fingerprint: tuya.fingerprint('TS0001', ['_TZ3000_xkap8wtb', '_TZ3000_qnejhcsu', '_TZ3000_x3ewpzyr', '_TZ3000_mkhkxx1p']),
1897
+ fingerprint: tuya.fingerprint('TS0001', ['_TZ3000_xkap8wtb', '_TZ3000_qnejhcsu', '_TZ3000_x3ewpzyr',
1898
+ '_TZ3000_mkhkxx1p', '_TZ3000_tgddllx4']),
1898
1899
  model: 'TS0001_power',
1899
1900
  description: 'Switch with power monitoring',
1900
1901
  vendor: 'TuYa',
@@ -2302,7 +2303,7 @@ module.exports = [
2302
2303
  [31, 'working_day', tuya.valueConverterBasic.lookup({'mon_sun': tuya.enum(0), 'mon_fri+sat+sun': tuya.enum(1),
2303
2304
  'separate': tuya.enum(2)})],
2304
2305
  [32, 'holiday_temperature', tuya.valueConverter.divideBy10],
2305
- [35, 'battery_low', tuya.valueConverter.true0ElseFalse],
2306
+ [35, 'battery_low', tuya.valueConverter.trueFalse0],
2306
2307
  [40, 'child_lock', tuya.valueConverter.lockUnlock],
2307
2308
  [45, 'error_status', tuya.valueConverter.raw],
2308
2309
  [46, 'holiday_start_stop', tuya.valueConverter.thermostatHolidayStartStop],
@@ -2349,7 +2350,7 @@ module.exports = [
2349
2350
  [16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
2350
2351
  [24, 'local_temperature', tuya.valueConverter.divideBy10],
2351
2352
  [27, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
2352
- [35, 'battery_low', tuya.valueConverter.true0ElseFalse],
2353
+ [35, 'battery_low', tuya.valueConverter.trueFalse0],
2353
2354
  [40, 'child_lock', tuya.valueConverter.lockUnlock],
2354
2355
  [45, 'error_status', tuya.valueConverter.raw],
2355
2356
  [101, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDP],
@@ -2626,9 +2627,9 @@ module.exports = [
2626
2627
  exposes: [e.smoke(), e.tamper(), e.battery_low()],
2627
2628
  meta: {
2628
2629
  tuyaDatapoints: [
2629
- [1, 'smoke', tuya.valueConverter.true0ElseFalse],
2630
+ [1, 'smoke', tuya.valueConverter.trueFalse0],
2630
2631
  [4, 'tamper', tuya.valueConverter.raw],
2631
- [14, 'battery_low', tuya.valueConverter.true0ElseFalse],
2632
+ [14, 'battery_low', tuya.valueConverter.trueFalse0],
2632
2633
  ],
2633
2634
  },
2634
2635
  },
@@ -2648,7 +2649,7 @@ module.exports = [
2648
2649
  ],
2649
2650
  meta: {
2650
2651
  tuyaDatapoints: [
2651
- [1, 'smoke', tuya.valueConverter.true0ElseFalse],
2652
+ [1, 'smoke', tuya.valueConverter.trueFalse0],
2652
2653
  [2, 'smoke_concentration', tuya.valueConverter.divideBy10],
2653
2654
  [11, 'device_fault', tuya.valueConverter.raw],
2654
2655
  [15, 'battery', tuya.valueConverter.raw],
@@ -2659,7 +2660,7 @@ module.exports = [
2659
2660
  {
2660
2661
  zigbeeModel: ['5p1vj8r'],
2661
2662
  fingerprint: tuya.fingerprint('TS0601', ['_TZE200_t5p1vj8r', '_TZE200_uebojraa', '_TZE200_vzekyi4c', '_TZE200_yh7aoahi',
2662
- '_TZE200_dnz6yvl2']),
2663
+ '_TZE200_dnz6yvl2', '_TZE200_dq1mfjug']),
2663
2664
  model: 'TS0601_smoke',
2664
2665
  vendor: 'TuYa',
2665
2666
  description: 'Smoke sensor',
@@ -2668,7 +2669,7 @@ module.exports = [
2668
2669
  exposes: [e.smoke(), e.battery(), tuya.exposes.batteryState()],
2669
2670
  meta: {
2670
2671
  tuyaDatapoints: [
2671
- [1, 'smoke', tuya.valueConverter.true0ElseFalse],
2672
+ [1, 'smoke', tuya.valueConverter.trueFalse0],
2672
2673
  [14, 'battery_state', tuya.valueConverter.batteryState],
2673
2674
  [15, 'battery', tuya.valueConverter.raw],
2674
2675
  ],
@@ -3449,9 +3450,9 @@ module.exports = [
3449
3450
  ],
3450
3451
  meta: {
3451
3452
  tuyaDatapoints: [
3452
- [1, 'presence', tuya.valueConverter.trueFalse],
3453
+ [1, 'presence', tuya.valueConverter.trueFalse1],
3453
3454
  [2, 'radar_sensitivity', tuya.valueConverter.raw],
3454
- [102, 'occupancy', tuya.valueConverterBasic.lookup({false: 1, true: 2})],
3455
+ [102, 'occupancy', tuya.valueConverterBasic.trueFalse2],
3455
3456
  [103, 'illuminance_lux', tuya.valueConverter.raw],
3456
3457
  [105, 'tumble_switch', tuya.valueConverter.plus1],
3457
3458
  [106, 'tumble_alarm_time', tuya.valueConverter.raw],
@@ -3857,7 +3858,7 @@ module.exports = [
3857
3858
  exposes: [e.gas(), tuya.exposes.gasValue().withUnit('ppm')],
3858
3859
  meta: {
3859
3860
  tuyaDatapoints: [
3860
- [1, 'gas', tuya.valueConverter.true0ElseFalse],
3861
+ [1, 'gas', tuya.valueConverter.trueFalse0],
3861
3862
  [2, 'gas_value', tuya.valueConverter.raw],
3862
3863
  ],
3863
3864
  },
@@ -3875,7 +3876,7 @@ module.exports = [
3875
3876
  [tz.light_onoff_brightness],
3876
3877
  [tzLocal.TS110E_light_onoff_brightness],
3877
3878
  ),
3878
- exposes: [e.light_brightness(), e.power_on_behavior(), tuya.exposes.switchType()],
3879
+ exposes: [e.light_brightness().withMinBrightness().withMaxBrightness(), e.power_on_behavior(), tuya.exposes.switchType()],
3879
3880
  configure: async (device, coordinatorEndpoint, logger) => {
3880
3881
  await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
3881
3882
  await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
package/lib/tuya.js CHANGED
@@ -1243,10 +1243,15 @@ const valueConverterBasic = {
1243
1243
  divideBy: (value) => {
1244
1244
  return {to: (v) => v * value, from: (v) => v / value};
1245
1245
  },
1246
+ trueFalse: (valueTrue) => {
1247
+ return {from: (v) => v === valueTrue};
1248
+ },
1246
1249
  };
1247
1250
 
1248
1251
  const valueConverter = {
1249
- trueFalse: valueConverterBasic.lookup({true: 1, false: 0}),
1252
+ trueFalse0: valueConverterBasic.trueFalse(0),
1253
+ trueFalse1: valueConverterBasic.trueFalse(1),
1254
+ trueFalse2: valueConverterBasic.trueFalse(2),
1250
1255
  onOff: valueConverterBasic.lookup({'ON': true, 'OFF': false}),
1251
1256
  powerOnBehavior: valueConverterBasic.lookup({'off': 0, 'on': 1, 'previous': 2}),
1252
1257
  lightType: valueConverterBasic.lookup({'led': 0, 'incandescent': 1, 'halogen': 2}),
@@ -1308,7 +1313,6 @@ const valueConverter = {
1308
1313
  };
1309
1314
  },
1310
1315
  },
1311
- true0ElseFalse: {from: (v) => v === 0},
1312
1316
  selfTestResult: valueConverterBasic.lookup({'checking': 0, 'success': 1, 'failure': 2, 'others': 3}),
1313
1317
  lockUnlock: valueConverterBasic.lookup({'LOCK': true, 'UNLOCK': false}),
1314
1318
  localTempCalibration1: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "15.0.39",
3
+ "version": "15.0.41",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [