zigbee-herdsman-converters 14.0.593 → 14.0.594

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.
package/devices/climax.js CHANGED
@@ -91,7 +91,7 @@ module.exports = [
91
91
  },
92
92
  exposes: [e.battery_low(), e.tamper(), e.warning(),
93
93
  exposes.numeric('max_duration', ea.ALL).withUnit('s').withValueMin(0).withValueMax(600).withDescription('Duration of Siren'),
94
- exposes.binary('alarm', ea.SET, 'ON', 'OFF').withDescription('Manual start of siren')],
94
+ exposes.binary('alarm', ea.SET, 'START', 'OFF').withDescription('Manual start of siren')],
95
95
  },
96
96
  {
97
97
  zigbeeModel: ['WS15_00.00.00.14TC'],
@@ -8,6 +8,35 @@ const ota = require('../lib/ota');
8
8
  const e = exposes.presets;
9
9
  const ea = exposes.access;
10
10
 
11
+ const fzLocal = {
12
+ // SPLZB-134 reports strange values sometimes
13
+ // https://github.com/Koenkk/zigbee2mqtt/issues/13329
14
+ SPLZB134_electrical_measurement: {
15
+ ...fz.electrical_measurement,
16
+ convert: (model, msg, publish, options, meta) => {
17
+ if (msg.data.rmsVoltage !== 0xFFFF && msg.data.rmsCurrent !== 0xFFFF && msg.data.activePower !== -0x8000) {
18
+ return fz.electrical_measurement.convert(model, msg, publish, options, meta);
19
+ }
20
+ },
21
+ },
22
+ SPLZB134_device_temperature: {
23
+ ...fz.device_temperature,
24
+ convert: (model, msg, publish, options, meta) => {
25
+ if (msg.data.currentTemperature !== -0x8000) {
26
+ return fz.device_temperature.convert(model, msg, publish, options, meta);
27
+ }
28
+ },
29
+ },
30
+ SPLZB134_metering: {
31
+ ...fz.metering,
32
+ convert: (model, msg, publish, options, meta) => {
33
+ if (msg.data.instantaneousDemand !== -0x800000) {
34
+ return fz.metering.convert(model, msg, publish, options, meta);
35
+ }
36
+ },
37
+ },
38
+ };
39
+
11
40
  module.exports = [
12
41
  {
13
42
  zigbeeModel: ['SPLZB-131'],
@@ -65,7 +94,7 @@ module.exports = [
65
94
  model: 'SPLZB-134',
66
95
  vendor: 'Develco',
67
96
  description: 'Power plug (type G)',
68
- fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.device_temperature],
97
+ fromZigbee: [fz.on_off, fzLocal.SPLZB134_electrical_measurement, fzLocal.SPLZB134_metering, fzLocal.SPLZB134_device_temperature],
69
98
  toZigbee: [tz.on_off],
70
99
  exposes: [e.switch(), e.power(), e.current(), e.voltage(), e.energy(), e.device_temperature()],
71
100
  configure: async (device, coordinatorEndpoint, logger) => {
package/devices/ecodim.js CHANGED
@@ -8,9 +8,9 @@ module.exports = [
8
8
  {
9
9
  fingerprint: [
10
10
  {type: 'Router', manufacturerName: 'EcoDim BV', modelID: 'EcoDim-Zigbee 3.0', endpoints: [
11
- {ID: 1, profileID: 260, deviceID: 257, inputClusters: [0, 3, 4, 5, 6, 8, 2821, 4096], outputClusters: [25]},
12
- {ID: 2, profileID: 260, deviceID: 257, inputClusters: [0, 3, 4, 5, 6, 8], outputClusters: []},
13
- {ID: 242, profileID: 41440, deviceID: 97, inputClusters: [], outputClusters: [33]},
11
+ {ID: 1, profileID: 260, inputClusters: [0, 3, 4, 5, 6, 8, 2821, 4096], outputClusters: [25]},
12
+ {ID: 2, profileID: 260, inputClusters: [0, 3, 4, 5, 6, 8], outputClusters: []},
13
+ {ID: 242, profileID: 41440, inputClusters: [], outputClusters: [33]},
14
14
  ]},
15
15
  ],
16
16
  model: 'Eco-Dim.05',
package/devices/istar.js CHANGED
@@ -9,4 +9,12 @@ module.exports = [
9
9
  extend: extend.light_onoff_brightness(),
10
10
  meta: {turnsOffAtBrightness1: true},
11
11
  },
12
+ {
13
+ zigbeeModel: ['iStar CCT Light'],
14
+ model: 'SCCV2403-2',
15
+ vendor: 'iStar',
16
+ description: 'Zigbee 3.0 LED controller, dimmable white spectrum',
17
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
18
+ meta: {turnsOffAtBrightness1: true},
19
+ },
12
20
  ];
package/devices/tuya.js CHANGED
@@ -842,14 +842,15 @@ module.exports = [
842
842
  extend: extend.light_onoff_brightness(),
843
843
  },
844
844
  {
845
- fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_jytabjkb'}],
845
+ fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_jytabjkb'},
846
+ {modelID: 'TS0202', manufacturerName: '_TZ3000_lltemgsf'}],
846
847
  model: 'TS0202_1',
847
848
  vendor: 'TuYa',
848
849
  description: 'Motion sensor',
849
850
  // Requires alarm_1_with_timeout https://github.com/Koenkk/zigbee2mqtt/issues/2818#issuecomment-776119586
850
851
  fromZigbee: [fz.ias_occupancy_alarm_1_with_timeout, fz.battery, fz.ignore_basic_report],
851
852
  toZigbee: [],
852
- exposes: [e.occupancy(), e.battery_low(), e.tamper(), e.battery()],
853
+ exposes: [e.occupancy(), e.battery_low(), e.linkquality()],
853
854
  },
854
855
  {
855
856
  fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_dr6sduka'},
@@ -2479,7 +2480,12 @@ module.exports = [
2479
2480
  .withLocalTemperature(ea.STATE).withLocalTemperatureCalibration(-9.9, 9.9, 0.1, ea.STATE_SET)
2480
2481
  .withSystemMode(['off', 'heat'], ea.STATE_SET).withRunningState(['idle', 'heat'], ea.STATE)
2481
2482
  .withPreset(['manual', 'program']).withSensor(['internal', 'external', 'both'], ea.STATE_SET),
2482
- exposes.text('schedule', ea.STATE_SET), e.child_lock(), e.week(),
2483
+ exposes.text('schedule', ea.STATE_SET).withDescription('There are 8 periods in the schedule in total. ' +
2484
+ '6 for workdays and 2 for holidays. It should be set in the following format for each of the periods: ' +
2485
+ '`hours:minutes/temperature`. All periods should be set at once and delimited by the space symbol. ' +
2486
+ 'For example: `06:00/20.5 08:00/15 11:30/15 13:30/15 17:00/22 22:00/15 06:00/20 22:00/15`. ' +
2487
+ 'The thermostat doesn\'t report the schedule by itself even if you change it manually from device'),
2488
+ e.child_lock(), e.week(),
2483
2489
  exposes.enum('brightness_state', ea.STATE_SET, ['off', 'low', 'medium', 'high'])
2484
2490
  .withDescription('Screen brightness'),
2485
2491
  exposes.binary('sound', ea.STATE_SET, 'ON', 'OFF')
@@ -2804,7 +2810,7 @@ module.exports = [
2804
2810
  .withFeature(exposes.binary('over_leakage_current_trip', ea.STATE_SET, 'ON', 'OFF'))
2805
2811
  .withFeature(exposes.binary('over_leakage_current_alarm', ea.STATE_SET, 'ON', 'OFF'))
2806
2812
  .withFeature(exposes.binary('self_test', ea.STATE_SET, 'test', 'clear')),*/
2807
- exposes.enum('clear_device_data', ea.SET, ['clear']),
2813
+ exposes.enum('clear_device_data', ea.SET, ['']),
2808
2814
  ],
2809
2815
  },
2810
2816
  {
@@ -3021,7 +3027,7 @@ module.exports = [
3021
3027
  .withDescription('Favorite position of this cover'),
3022
3028
  exposes.binary(`reverse_direction`, ea.STATE_SET, true, false).withDescription(`Inverts the cover direction`),
3023
3029
  exposes.text('motor_type', ea.STATE),
3024
- exposes.enum('report', ea.SET, ['REPORT']),
3030
+ exposes.enum('report', ea.SET, ['']),
3025
3031
  ],
3026
3032
  },
3027
3033
  {
@@ -0,0 +1,17 @@
1
+ const extend = require('../lib/extend');
2
+ const reporting = require('../lib/reporting');
3
+
4
+ module.exports = [
5
+ {
6
+ zigbeeModel: ['Z111PL0H-1JX'],
7
+ model: 'SA-029',
8
+ vendor: 'Woolley',
9
+ description: 'Smart Plug',
10
+ extend: extend.switch(),
11
+ configure: async (device, coordinatorEndpoint, logger) => {
12
+ const endpoint = device.getEndpoint(1);
13
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
14
+ await reporting.onOff(endpoint);
15
+ },
16
+ },
17
+ ];
package/devices/xiaomi.js CHANGED
@@ -1045,7 +1045,7 @@ module.exports = [
1045
1045
  'sensor detects approaching'),
1046
1046
  exposes.enum('motion_sensitivity', ea.ALL, ['low', 'medium', 'high']).withDescription('Different sensitivities ' +
1047
1047
  'means different static human body recognition rate and response speed of occupied'),
1048
- exposes.enum('reset_nopresence_status', ea.SET, ['Reset']).withDescription('Reset the status of no presence'),
1048
+ exposes.enum('reset_nopresence_status', ea.SET, ['']).withDescription('Reset the status of no presence'),
1049
1049
  e.device_temperature(), e.power_outage_count()],
1050
1050
  configure: async (device, coordinatorEndpoint, logger) => {
1051
1051
  const endpoint = device.getEndpoint(1);
@@ -1304,10 +1304,10 @@ module.exports = [
1304
1304
  exposes.numeric('gas_density', ea.STATE_GET).withUnit('%LEL').withDescription('Value of gas concentration'),
1305
1305
  exposes.enum('gas_sensitivity', ea.ALL, ['10%LEL', '15%LEL']).withDescription('Gas concentration value at which ' +
1306
1306
  'an alarm is triggered ("10%LEL" is more sensitive than "15%LEL")'),
1307
- exposes.enum('selftest', ea.SET, ['Test']).withDescription('Starts the self-test process (checking the indicator ' +
1307
+ exposes.enum('selftest', ea.SET, ['']).withDescription('Starts the self-test process (checking the indicator ' +
1308
1308
  'light and buzzer work properly)'),
1309
1309
  exposes.binary('test', ea.STATE, true, false).withDescription('Self-test in progress'),
1310
- exposes.enum('mute_buzzer', ea.SET, ['Mute']).withDescription('Mute the buzzer for 10 minutes (buzzer cannot be ' +
1310
+ exposes.enum('mute_buzzer', ea.SET, ['']).withDescription('Mute the buzzer for 10 minutes (buzzer cannot be ' +
1311
1311
  'pre-muted, because this function only works when the alarm is triggered)'),
1312
1312
  exposes.binary('mute', ea.STATE_GET, true, false).withDescription('Buzzer muted'),
1313
1313
  exposes.binary('linkage_alarm', ea.ALL, true, false).withDescription('When this option is enabled and a gas leak ' +
@@ -1338,10 +1338,10 @@ module.exports = [
1338
1338
  exposes: [e.smoke().withAccess(ea.STATE_GET),
1339
1339
  exposes.numeric('smoke_density', ea.STATE_GET).withDescription('Value of smoke concentration'),
1340
1340
  exposes.numeric('smoke_density_dbm', ea.STATE).withUnit('dB/m').withDescription('Value of smoke concentration in dB/m'),
1341
- exposes.enum('selftest', ea.SET, ['Test']).withDescription('Starts the self-test process (checking the indicator ' +
1341
+ exposes.enum('selftest', ea.SET, ['']).withDescription('Starts the self-test process (checking the indicator ' +
1342
1342
  'light and buzzer work properly)'),
1343
1343
  exposes.binary('test', ea.STATE, true, false).withDescription('Self-test in progress'),
1344
- exposes.enum('mute_buzzer', ea.SET, ['Mute']).withDescription('Mute the buzzer for 80 seconds (buzzer cannot be ' +
1344
+ exposes.enum('mute_buzzer', ea.SET, ['']).withDescription('Mute the buzzer for 80 seconds (buzzer cannot be ' +
1345
1345
  'pre-muted, because this function only works when the alarm is triggered)'),
1346
1346
  exposes.binary('mute', ea.STATE_GET, true, false).withDescription('Buzzer muted'),
1347
1347
  exposes.binary('heartbeat_indicator', ea.ALL, true, false).withDescription('When this option is enabled then in ' +
@@ -1771,37 +1771,37 @@ module.exports = [
1771
1771
  },
1772
1772
  exposes: [e.switch().withEndpoint('left'), e.switch().withEndpoint('center'),
1773
1773
  e.switch().withEndpoint('right'),
1774
- exposes.binary('standby_enabled', ea.SET, true, false).withDescription('Enable standby'),
1775
- exposes.enum('theme', ea.SET, ['classic', 'concise']).withDescription('Display theme'),
1776
- exposes.enum('beep_volume', ea.SET, ['mute', 'low', 'medium', 'high']).withDescription('Beep volume'),
1777
- exposes.numeric('lcd_brightness', ea.SET).withValueMin(1).withValueMax(100).withUnit('%')
1774
+ exposes.binary('standby_enabled', ea.STATE_SET, true, false).withDescription('Enable standby'),
1775
+ exposes.enum('theme', ea.STATE_SET, ['classic', 'concise']).withDescription('Display theme'),
1776
+ exposes.enum('beep_volume', ea.STATE_SET, ['mute', 'low', 'medium', 'high']).withDescription('Beep volume'),
1777
+ exposes.numeric('lcd_brightness', ea.STATE_SET).withValueMin(1).withValueMax(100).withUnit('%')
1778
1778
  .withDescription('LCD brightness (will not persist if auto-brightness is enabled)'),
1779
- exposes.enum('language', ea.SET, ['chinese', 'english']).withDescription('Interface language'),
1780
- exposes.enum('screen_saver_style', ea.SET, ['classic', 'analog clock']).withDescription('Screen saver style'),
1781
- exposes.numeric('standby_time', ea.SET).withValueMin(0).withValueMax(65534).withUnit('s')
1779
+ exposes.enum('language', ea.STATE_SET, ['chinese', 'english']).withDescription('Interface language'),
1780
+ exposes.enum('screen_saver_style', ea.STATE_SET, ['classic', 'analog clock']).withDescription('Screen saver style'),
1781
+ exposes.numeric('standby_time', ea.STATE_SET).withValueMin(0).withValueMax(65534).withUnit('s')
1782
1782
  .withDescription('Display standby time'),
1783
- exposes.enum('font_size', ea.SET, ['small', 'medium', 'large']).withDescription('Display font size'),
1784
- exposes.binary('lcd_auto_brightness_enabled', ea.SET, true, false).withDescription('Enable LCD auto brightness'),
1785
- exposes.enum('homepage', ea.SET, ['scene', 'feel', 'thermostat', 'switch']).withDescription('Default display homepage'),
1786
- exposes.binary('screen_saver_enabled', ea.SET, true, false).withDescription('Enable screen saver'),
1787
- exposes.numeric('standby_lcd_brightness', ea.SET).withValueMin(1).withValueMax(100).withUnit('%')
1783
+ exposes.enum('font_size', ea.STATE_SET, ['small', 'medium', 'large']).withDescription('Display font size'),
1784
+ exposes.binary('lcd_auto_brightness_enabled', ea.STATE_SET, true, false).withDescription('Enable LCD auto brightness'),
1785
+ exposes.enum('homepage', ea.STATE_SET, ['scene', 'feel', 'thermostat', 'switch']).withDescription('Default display homepage'),
1786
+ exposes.binary('screen_saver_enabled', ea.STATE_SET, true, false).withDescription('Enable screen saver'),
1787
+ exposes.numeric('standby_lcd_brightness', ea.STATE_SET).withValueMin(1).withValueMax(100).withUnit('%')
1788
1788
  .withDescription('Standby LCD brightness'),
1789
- exposes.enum('available_switches', ea.SET, ['none', '1', '2', '3', '1 and 2', '1 and 3', '2 and 3', 'all'])
1789
+ exposes.enum('available_switches', ea.STATE_SET, ['none', '1', '2', '3', '1 and 2', '1 and 3', '2 and 3', 'all'])
1790
1790
  .withDescription('Control which switches are available in the switches screen (none disables switches screen)'),
1791
1791
  exposes.composite('switch_1_text_icon', 'switch_1_text_icon').withDescription('Switch 1 text and icon')
1792
- .withFeature(exposes.enum('switch_1_icon', ea.SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'])
1792
+ .withFeature(exposes.enum('switch_1_icon', ea.STATE_SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'])
1793
1793
  .withDescription('Icon'))
1794
- .withFeature(exposes.text('switch_1_text', ea.SET)
1794
+ .withFeature(exposes.text('switch_1_text', ea.STATE_SET)
1795
1795
  .withDescription('Text')),
1796
1796
  exposes.composite('switch_2_text_icon', 'switch_2_text_icon').withDescription('Switch 2 text and icon')
1797
- .withFeature(exposes.enum('switch_2_icon', ea.SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'])
1797
+ .withFeature(exposes.enum('switch_2_icon', ea.STATE_SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'])
1798
1798
  .withDescription('Icon'))
1799
- .withFeature(exposes.text('switch_2_text', ea.SET)
1799
+ .withFeature(exposes.text('switch_2_text', ea.STATE_SET)
1800
1800
  .withDescription('Text')),
1801
1801
  exposes.composite('switch_3_text_icon', 'switch_3_text_icon').withDescription('Switch 3 text and icon')
1802
- .withFeature(exposes.enum('switch_3_icon', ea.SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'])
1802
+ .withFeature(exposes.enum('switch_3_icon', ea.STATE_SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'])
1803
1803
  .withDescription('Icon'))
1804
- .withFeature(exposes.text('switch_3_text', ea.SET)
1804
+ .withFeature(exposes.text('switch_3_text', ea.STATE_SET)
1805
1805
  .withDescription('Text'))],
1806
1806
  configure: async (device, coordinatorEndpoint, logger) => {
1807
1807
  await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.593",
3
+ "version": "14.0.594",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [