zigbee-herdsman-converters 14.0.516 → 14.0.519
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/converters/fromZigbee.js +9 -0
- package/devices/centralite.js +30 -0
- package/devices/danalock.js +3 -4
- package/devices/heiman.js +9 -0
- package/devices/ikea.js +7 -0
- package/devices/legrand.js +3 -3
- package/devices/moes.js +1 -1
- package/devices/philips.js +10 -1
- package/devices/rademacher.js +11 -0
- package/devices/robb.js +36 -0
- package/devices/sunricher.js +20 -0
- package/devices/tuya.js +6 -1
- package/devices/ubisys.js +12 -9
- package/devices/xiaomi.js +2 -1
- package/lib/xiaomi.js +3 -3
- package/package.json +2 -2
package/converters/fromZigbee.js
CHANGED
|
@@ -5379,6 +5379,15 @@ const converters = {
|
|
|
5379
5379
|
return {action: msg.data.presentValue ? 'moving' : 'stopped'};
|
|
5380
5380
|
},
|
|
5381
5381
|
},
|
|
5382
|
+
legrand_binary_input_on_off: {
|
|
5383
|
+
cluster: 'genBinaryInput',
|
|
5384
|
+
type: ['attributeReport', 'readResponse'],
|
|
5385
|
+
convert: (model, msg, publish, options, meta) => {
|
|
5386
|
+
const multiEndpoint = model.meta && model.meta.multiEndpoint;
|
|
5387
|
+
const property = multiEndpoint ? postfixWithEndpointName('state', msg, model) : 'state';
|
|
5388
|
+
return {[property]: msg.data.presentValue ? 'ON' : 'OFF'};
|
|
5389
|
+
},
|
|
5390
|
+
},
|
|
5382
5391
|
bticino_4027C_binary_input_moving: {
|
|
5383
5392
|
cluster: 'genBinaryInput',
|
|
5384
5393
|
type: ['attributeReport', 'readResponse'],
|
package/devices/centralite.js
CHANGED
|
@@ -216,6 +216,36 @@ module.exports = [
|
|
|
216
216
|
await reporting.thermostatTemperatureSetpointHold(endpoint);
|
|
217
217
|
},
|
|
218
218
|
},
|
|
219
|
+
{
|
|
220
|
+
zigbeeModel: ['3156105'],
|
|
221
|
+
model: '3156105',
|
|
222
|
+
vendor: 'Centralite',
|
|
223
|
+
description: 'HA thermostat',
|
|
224
|
+
fromZigbee: [fz.battery, fz.thermostat, fz.fan, fz.ignore_time_read],
|
|
225
|
+
toZigbee: [tz.factory_reset, tz.thermostat_local_temperature, tz.thermostat_local_temperature_calibration,
|
|
226
|
+
tz.thermostat_occupied_heating_setpoint, tz.thermostat_occupied_cooling_setpoint,
|
|
227
|
+
tz.thermostat_setpoint_raise_lower, tz.thermostat_remote_sensing,
|
|
228
|
+
tz.thermostat_control_sequence_of_operation, tz.thermostat_system_mode,
|
|
229
|
+
tz.thermostat_relay_status_log, tz.fan_mode, tz.thermostat_running_state, tz.thermostat_temperature_setpoint_hold],
|
|
230
|
+
exposes: [e.battery(),
|
|
231
|
+
exposes.binary('temperature_setpoint_hold', ea.ALL, true, false)
|
|
232
|
+
.withDescription('Prevent changes. `false` = run normally. `true` = prevent from making changes.'),
|
|
233
|
+
exposes.climate().withSetpoint('occupied_heating_setpoint', 6.66, 30, 1).withLocalTemperature()
|
|
234
|
+
.withSystemMode(['off', 'heat', 'cool', 'emergency_heating'])
|
|
235
|
+
.withRunningState(['idle', 'heat', 'cool', 'fan_only']).withFanMode(['auto', 'on'])
|
|
236
|
+
.withSetpoint('occupied_cooling_setpoint', 6.66, 30, 1)
|
|
237
|
+
.withLocalTemperatureCalibration(-30, 30, 0.1)],
|
|
238
|
+
meta: {battery: {voltageToPercentage: '3V_1500_2800'}},
|
|
239
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
240
|
+
const endpoint = device.getEndpoint(1);
|
|
241
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'hvacThermostat', 'hvacFanCtrl']);
|
|
242
|
+
await reporting.batteryVoltage(endpoint);
|
|
243
|
+
await reporting.thermostatRunningState(endpoint);
|
|
244
|
+
await reporting.thermostatTemperature(endpoint);
|
|
245
|
+
await reporting.fanMode(endpoint);
|
|
246
|
+
await reporting.thermostatTemperatureSetpointHold(endpoint);
|
|
247
|
+
},
|
|
248
|
+
},
|
|
219
249
|
{
|
|
220
250
|
zigbeeModel: ['4200-C'],
|
|
221
251
|
model: '4200-C',
|
package/devices/danalock.js
CHANGED
|
@@ -10,15 +10,14 @@ module.exports = [
|
|
|
10
10
|
model: 'V3-BTZB/V3-BTZBE',
|
|
11
11
|
vendor: 'Danalock',
|
|
12
12
|
description: 'BT/ZB smartlock',
|
|
13
|
-
fromZigbee: [fz.lock, fz.lock_operation_event, fz.battery
|
|
14
|
-
toZigbee: [tz.lock
|
|
15
|
-
meta: {pinCodeCount: 20},
|
|
13
|
+
fromZigbee: [fz.lock, fz.lock_operation_event, fz.battery],
|
|
14
|
+
toZigbee: [tz.lock],
|
|
16
15
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
17
16
|
const endpoint = device.getEndpoint(1);
|
|
18
17
|
await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']);
|
|
19
18
|
await reporting.lockState(endpoint);
|
|
20
19
|
await reporting.batteryPercentageRemaining(endpoint);
|
|
21
20
|
},
|
|
22
|
-
exposes: [e.lock(), e.battery(), e.
|
|
21
|
+
exposes: [e.lock(), e.battery(), e.lock_action(), e.lock_action_source_name(), e.lock_action_source_user()],
|
|
23
22
|
},
|
|
24
23
|
];
|
package/devices/heiman.js
CHANGED
|
@@ -453,6 +453,15 @@ module.exports = [
|
|
|
453
453
|
toZigbee: [],
|
|
454
454
|
exposes: [e.gas(), e.battery_low(), e.tamper()],
|
|
455
455
|
},
|
|
456
|
+
{
|
|
457
|
+
zigbeeModel: ['SGPHM-I1'],
|
|
458
|
+
model: 'SGPHM-I1',
|
|
459
|
+
vendor: 'HEIMAN',
|
|
460
|
+
description: 'Propane gas sensor',
|
|
461
|
+
fromZigbee: [fz.ias_gas_alarm_1],
|
|
462
|
+
toZigbee: [],
|
|
463
|
+
exposes: [e.gas(), e.battery_low(), e.tamper()],
|
|
464
|
+
},
|
|
456
465
|
{
|
|
457
466
|
fingerprint: [{modelID: 'Vibration-N', manufacturerName: 'HEIMAN'}],
|
|
458
467
|
model: 'HS1VS-N',
|
package/devices/ikea.js
CHANGED
|
@@ -319,6 +319,13 @@ module.exports = [
|
|
|
319
319
|
description: 'LED bulb E26 450 lumen, wireless dimmable white spectrum/tube-shaped white frosted glass',
|
|
320
320
|
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
321
321
|
},
|
|
322
|
+
{
|
|
323
|
+
zigbeeModel: ['TRADFRIbulbB22WSglobeopal1055lm', 'TRADFRIbulbB22WSglobeopal1055lm'],
|
|
324
|
+
model: 'LED2035G10',
|
|
325
|
+
vendor: 'IKEA',
|
|
326
|
+
description: 'TRADFRI LED bulb B22 1055 lumen, dimmable, white spectrum, opal white',
|
|
327
|
+
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
328
|
+
},
|
|
322
329
|
{
|
|
323
330
|
zigbeeModel: ['TRADFRI bulb GU10 WS 400lm'],
|
|
324
331
|
model: 'LED1537R6/LED1739R5',
|
package/devices/legrand.js
CHANGED
|
@@ -324,7 +324,7 @@ module.exports = [
|
|
|
324
324
|
model: '067772',
|
|
325
325
|
vendor: 'Legrand',
|
|
326
326
|
description: 'Double wired switch with neutral',
|
|
327
|
-
fromZigbee: [fz.on_off, fz.legrand_cluster_fc01],
|
|
327
|
+
fromZigbee: [fz.on_off, fz.legrand_binary_input_on_off, fz.legrand_cluster_fc01],
|
|
328
328
|
toZigbee: [tz.on_off, tz.legrand_settingAlwaysEnableLed, tz.legrand_settingEnableLedIfOn],
|
|
329
329
|
exposes: [e.switch().withEndpoint('left'),
|
|
330
330
|
e.switch().withEndpoint('right'),
|
|
@@ -333,9 +333,9 @@ module.exports = [
|
|
|
333
333
|
meta: {multiEndpoint: true},
|
|
334
334
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
335
335
|
const endpointLeft = device.getEndpoint(2);
|
|
336
|
-
await reporting.bind(endpointLeft, coordinatorEndpoint, ['genOnOff']);
|
|
336
|
+
await reporting.bind(endpointLeft, coordinatorEndpoint, ['genOnOff', 'genBinaryInput']);
|
|
337
337
|
const endpointRight = device.getEndpoint(1);
|
|
338
|
-
await reporting.bind(endpointRight, coordinatorEndpoint, ['genOnOff']);
|
|
338
|
+
await reporting.bind(endpointRight, coordinatorEndpoint, ['genOnOff', 'genBinaryInput']);
|
|
339
339
|
},
|
|
340
340
|
endpoint: (device) => {
|
|
341
341
|
return {left: 2, right: 1};
|
package/devices/moes.js
CHANGED
|
@@ -118,7 +118,7 @@ module.exports = [
|
|
|
118
118
|
onEvent: tuya.onEventSetLocalTime,
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
|
-
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_amp6tsvy'}],
|
|
121
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_amp6tsvy'}, {modelID: 'TS0601', manufacturerName: '_TZE200_tviaymwx'}],
|
|
122
122
|
model: 'ZTS-EU_1gang',
|
|
123
123
|
vendor: 'Moes',
|
|
124
124
|
description: 'Wall touch light switch (1 gang)',
|
package/devices/philips.js
CHANGED
|
@@ -465,7 +465,7 @@ module.exports = [
|
|
|
465
465
|
ota: ota.zigbeeOTA,
|
|
466
466
|
},
|
|
467
467
|
{
|
|
468
|
-
zigbeeModel: ['LCT026', '7602031P7', '7602031U7'],
|
|
468
|
+
zigbeeModel: ['LCT026', '7602031P7', '7602031U7', '7602031N6'],
|
|
469
469
|
model: '7602031P7',
|
|
470
470
|
vendor: 'Philips',
|
|
471
471
|
description: 'Hue Go with Bluetooth',
|
|
@@ -2555,6 +2555,15 @@ module.exports = [
|
|
|
2555
2555
|
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
2556
2556
|
ota: ota.zigbeeOTA,
|
|
2557
2557
|
},
|
|
2558
|
+
{
|
|
2559
|
+
zigbeeModel: ['5047130P9'],
|
|
2560
|
+
model: '5047130P9 ',
|
|
2561
|
+
vendor: 'Philips',
|
|
2562
|
+
description: 'Hue White ambiance Buckram single spotlight with bluetooth',
|
|
2563
|
+
meta: {turnsOffAtBrightness1: true},
|
|
2564
|
+
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
2565
|
+
ota: ota.zigbeeOTA,
|
|
2566
|
+
},
|
|
2558
2567
|
{
|
|
2559
2568
|
zigbeeModel: ['HML006'],
|
|
2560
2569
|
model: '7531609',
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const extend = require('../lib/extend');
|
|
2
|
+
|
|
3
|
+
module.exports = [
|
|
4
|
+
{
|
|
5
|
+
zigbeeModel: ['RDM-35104001'],
|
|
6
|
+
model: '35104001',
|
|
7
|
+
vendor: 'Rademacher',
|
|
8
|
+
description: 'addZ white + colour',
|
|
9
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555]}),
|
|
10
|
+
},
|
|
11
|
+
];
|
package/devices/robb.js
CHANGED
|
@@ -7,6 +7,42 @@ const e = exposes.presets;
|
|
|
7
7
|
const ea = exposes.access;
|
|
8
8
|
|
|
9
9
|
module.exports = [
|
|
10
|
+
{
|
|
11
|
+
zigbeeModel: ['ROB_200-029-0'],
|
|
12
|
+
model: 'ROB_200-029-0',
|
|
13
|
+
vendor: 'ROBB',
|
|
14
|
+
description: 'Zigbee curtain motor controller',
|
|
15
|
+
meta: {coverInverted: true},
|
|
16
|
+
fromZigbee: [fz.cover_position_tilt],
|
|
17
|
+
toZigbee: [tz.cover_state, tz.cover_position_tilt],
|
|
18
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
19
|
+
const endpoint = device.getEndpoint(1);
|
|
20
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['closuresWindowCovering']);
|
|
21
|
+
await reporting.currentPositionLiftPercentage(endpoint);
|
|
22
|
+
},
|
|
23
|
+
exposes: [e.cover_position()],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
zigbeeModel: ['ROB_200-050-0'],
|
|
27
|
+
model: 'ROB_200-050-0',
|
|
28
|
+
vendor: 'ROBB',
|
|
29
|
+
description: '4 port switch with 2 usb ports (no metering)',
|
|
30
|
+
extend: extend.switch(),
|
|
31
|
+
exposes: [e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'), e.switch().withEndpoint('l3'),
|
|
32
|
+
e.switch().withEndpoint('l4'), e.switch().withEndpoint('l5')],
|
|
33
|
+
endpoint: (device) => {
|
|
34
|
+
return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4, 'l5': 5};
|
|
35
|
+
},
|
|
36
|
+
meta: {multiEndpoint: true},
|
|
37
|
+
whiteLabel: [{vendor: 'Sunricher', model: 'SR-ZG9023A(EU)'}],
|
|
38
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
39
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
40
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
41
|
+
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
|
|
42
|
+
await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
|
|
43
|
+
await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']);
|
|
44
|
+
},
|
|
45
|
+
},
|
|
10
46
|
{
|
|
11
47
|
zigbeeModel: ['ROB_200-006-0'],
|
|
12
48
|
model: 'ROB_200-006-0',
|
package/devices/sunricher.js
CHANGED
|
@@ -6,6 +6,26 @@ const extend = require('../lib/extend');
|
|
|
6
6
|
const e = exposes.presets;
|
|
7
7
|
|
|
8
8
|
module.exports = [
|
|
9
|
+
{
|
|
10
|
+
zigbeeModel: ['SR-ZG9023A-EU'],
|
|
11
|
+
model: 'SR-ZG9023A-EU',
|
|
12
|
+
vendor: 'Sunricher',
|
|
13
|
+
description: '4 ports switch with 2 usb ports (no metering)',
|
|
14
|
+
extend: extend.switch(),
|
|
15
|
+
exposes: [e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'),
|
|
16
|
+
e.switch().withEndpoint('l3'), e.switch().withEndpoint('l4'), e.switch().withEndpoint('l5')],
|
|
17
|
+
endpoint: (device) => {
|
|
18
|
+
return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4, 'l5': 5};
|
|
19
|
+
},
|
|
20
|
+
meta: {multiEndpoint: true},
|
|
21
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
22
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
23
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
24
|
+
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
|
|
25
|
+
await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
|
|
26
|
+
await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']);
|
|
27
|
+
},
|
|
28
|
+
},
|
|
9
29
|
{
|
|
10
30
|
zigbeeModel: ['ON/OFF(2CH)'],
|
|
11
31
|
model: 'UP-SA-9127D',
|
package/devices/tuya.js
CHANGED
|
@@ -13,7 +13,8 @@ const utils = require('../lib/utils');
|
|
|
13
13
|
const TS011Fplugs = ['_TZ3000_5f43h46b', '_TZ3000_cphmq0q7', '_TZ3000_dpo1ysak', '_TZ3000_ew3ldmgx', '_TZ3000_gjnozsaz',
|
|
14
14
|
'_TZ3000_jvzvulen', '_TZ3000_mraovvmm', '_TZ3000_nfnmi125', '_TZ3000_ps3dmato', '_TZ3000_w0qqde0g', '_TZ3000_u5u4cakc',
|
|
15
15
|
'_TZ3000_rdtixbnu', '_TZ3000_typdpbpg', '_TZ3000_kx0pris5', '_TZ3000_amdymr7l', '_TZ3000_z1pnpsdo', '_TZ3000_ksw8qtmt',
|
|
16
|
-
'_TZ3000_nzkqcvvs', '_TZ3000_1h2x4akh', '_TZ3000_9vo5icau', '_TZ3000_cehuw1lw', '_TZ3000_ko6v90pg', '_TZ3000_f1bapcit'
|
|
16
|
+
'_TZ3000_nzkqcvvs', '_TZ3000_1h2x4akh', '_TZ3000_9vo5icau', '_TZ3000_cehuw1lw', '_TZ3000_ko6v90pg', '_TZ3000_f1bapcit',
|
|
17
|
+
'_TZ3000_cjrngdr3', '_TZ3000_zloso4jk'];
|
|
17
18
|
|
|
18
19
|
const tzLocal = {
|
|
19
20
|
TS0504B_color: {
|
|
@@ -715,6 +716,8 @@ module.exports = [
|
|
|
715
716
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_pgq2qvyv'},
|
|
716
717
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_nvaik6gk'},
|
|
717
718
|
{modelID: 'TS0502B', manufacturerName: '_TZ3000_armwcncd'},
|
|
719
|
+
{modelID: 'TS0502B', manufacturerName: '_TZ3210_2p6wbry3'},
|
|
720
|
+
{modelID: 'TS0502B', manufacturerName: '_TZ3210_qamcypen'},
|
|
718
721
|
],
|
|
719
722
|
model: 'TS0502B',
|
|
720
723
|
vendor: 'TuYa',
|
|
@@ -950,6 +953,8 @@ module.exports = [
|
|
|
950
953
|
},
|
|
951
954
|
meta: {multiEndpoint: true},
|
|
952
955
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
956
|
+
const ep1 = device.getEndpoint(1);
|
|
957
|
+
await ep1.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
953
958
|
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
954
959
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
955
960
|
},
|
package/devices/ubisys.js
CHANGED
|
@@ -16,10 +16,11 @@ module.exports = [
|
|
|
16
16
|
e.action([
|
|
17
17
|
'toggle', 'on', 'off', 'recall_*',
|
|
18
18
|
'brightness_move_up', 'brightness_move_down', 'brightness_stop',
|
|
19
|
-
])
|
|
19
|
+
]),
|
|
20
|
+
e.power_on_behavior()],
|
|
20
21
|
fromZigbee: [fz.on_off, fz.metering, fz.command_toggle, fz.command_on, fz.command_off, fz.command_recall, fz.command_move,
|
|
21
|
-
fz.command_stop],
|
|
22
|
-
toZigbee: [tz.on_off, tz.metering_power, tz.ubisys_device_setup],
|
|
22
|
+
fz.command_stop, fz.power_on_behavior],
|
|
23
|
+
toZigbee: [tz.on_off, tz.metering_power, tz.ubisys_device_setup, tz.power_on_behavior],
|
|
23
24
|
endpoint: (device) => {
|
|
24
25
|
return {'l1': 1, 's1': 2, 'meter': 3};
|
|
25
26
|
},
|
|
@@ -57,10 +58,11 @@ module.exports = [
|
|
|
57
58
|
e.action([
|
|
58
59
|
'toggle', 'on', 'off', 'recall_*',
|
|
59
60
|
'brightness_move_up', 'brightness_move_down', 'brightness_stop',
|
|
60
|
-
])
|
|
61
|
+
]),
|
|
62
|
+
e.power_on_behavior()],
|
|
61
63
|
fromZigbee: [fz.on_off, fz.metering, fz.command_toggle, fz.command_on, fz.command_off, fz.command_recall, fz.command_move,
|
|
62
|
-
fz.command_stop],
|
|
63
|
-
toZigbee: [tz.on_off, tz.metering_power, tz.ubisys_device_setup],
|
|
64
|
+
fz.command_stop, fz.power_on_behavior],
|
|
65
|
+
toZigbee: [tz.on_off, tz.metering_power, tz.ubisys_device_setup, tz.power_on_behavior],
|
|
64
66
|
endpoint: (device) => {
|
|
65
67
|
return {'l1': 1, 's1': 2, 'meter': 4};
|
|
66
68
|
},
|
|
@@ -99,10 +101,11 @@ module.exports = [
|
|
|
99
101
|
e.power().withAccess(ea.STATE_GET).withEndpoint('meter').withProperty('power'),
|
|
100
102
|
e.action(['toggle_s1', 'toggle_s2', 'on_s1', 'on_s2', 'off_s1', 'off_s2', 'recall_*_s1', 'recal_*_s2', 'brightness_move_up_s1',
|
|
101
103
|
'brightness_move_up_s2', 'brightness_move_down_s1', 'brightness_move_down_s2', 'brightness_stop_s1',
|
|
102
|
-
'brightness_stop_s2'])
|
|
104
|
+
'brightness_stop_s2']),
|
|
105
|
+
e.power_on_behavior().withEndpoint('l1'), e.power_on_behavior().withEndpoint('l2')],
|
|
103
106
|
fromZigbee: [fz.on_off, fz.metering, fz.command_toggle, fz.command_on, fz.command_off, fz.command_recall, fz.command_move,
|
|
104
|
-
fz.command_stop],
|
|
105
|
-
toZigbee: [tz.on_off, tz.metering_power, tz.ubisys_device_setup],
|
|
107
|
+
fz.command_stop, fz.power_on_behavior],
|
|
108
|
+
toZigbee: [tz.on_off, tz.metering_power, tz.ubisys_device_setup, tz.power_on_behavior],
|
|
106
109
|
endpoint: (device) => {
|
|
107
110
|
return {'l1': 1, 'l2': 2, 's1': 3, 's2': 4, 'meter': 5};
|
|
108
111
|
},
|
package/devices/xiaomi.js
CHANGED
|
@@ -1344,7 +1344,7 @@ module.exports = [
|
|
|
1344
1344
|
exposes.binary('running', ea.STATE, true, false)
|
|
1345
1345
|
.withDescription('Whether the motor is moving or not'),
|
|
1346
1346
|
exposes.enum('motor_state', ea.STATE, ['closing', 'opening', 'stop'])
|
|
1347
|
-
.withDescription('The current state of the motor.')],
|
|
1347
|
+
.withDescription('The current state of the motor.'), e.power_outage_count()],
|
|
1348
1348
|
ota: ota.zigbeeOTA,
|
|
1349
1349
|
},
|
|
1350
1350
|
{
|
|
@@ -1580,6 +1580,7 @@ module.exports = [
|
|
|
1580
1580
|
device.type = 'Router';
|
|
1581
1581
|
device.save();
|
|
1582
1582
|
},
|
|
1583
|
+
ota: ota.zigbeeOTA,
|
|
1583
1584
|
},
|
|
1584
1585
|
{
|
|
1585
1586
|
zigbeeModel: ['lumi.switch.n0acn2'],
|
package/lib/xiaomi.js
CHANGED
|
@@ -154,7 +154,7 @@ const numericAttributes2Payload = (msg, meta, model, options, dataObject) => {
|
|
|
154
154
|
break;
|
|
155
155
|
case '2':
|
|
156
156
|
if (['JT-BZ-01AQ/A'].includes(model.model)) {
|
|
157
|
-
payload.power_outage_count = value;
|
|
157
|
+
payload.power_outage_count = value - 1;
|
|
158
158
|
}
|
|
159
159
|
break;
|
|
160
160
|
case '3':
|
|
@@ -168,8 +168,8 @@ const numericAttributes2Payload = (msg, meta, model, options, dataObject) => {
|
|
|
168
168
|
payload.mode_switch = {4: 'anti_flicker_mode', 1: 'quick_mode'}[value];
|
|
169
169
|
break;
|
|
170
170
|
case '5':
|
|
171
|
-
if (['Mains (single phase)', 'DC Source'].includes(meta.device.powerSource)) {
|
|
172
|
-
payload.power_outage_count = value;
|
|
171
|
+
if (['Mains (single phase)', 'DC Source'].includes(meta.device.powerSource) || ['ZNCLDJ12LM'].includes(model.model)) {
|
|
172
|
+
payload.power_outage_count = value - 1;
|
|
173
173
|
}
|
|
174
174
|
break;
|
|
175
175
|
case '10':
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zigbee-herdsman-converters",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.519",
|
|
4
4
|
"description": "Collection of device converters to be used with zigbee-herdsman",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"buffer-crc32": "^0.2.13",
|
|
39
39
|
"https-proxy-agent": "^5.0.1",
|
|
40
40
|
"tar-stream": "^2.2.0",
|
|
41
|
-
"zigbee-herdsman": "^0.14.
|
|
41
|
+
"zigbee-herdsman": "^0.14.30"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"eslint": "*",
|