zigbee-herdsman-converters 14.0.546 → 14.0.547
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 +0 -17
- package/devices/connecte.js +1 -1
- package/devices/ikea.js +2 -2
- package/devices/immax.js +2 -2
- package/devices/niko.js +14 -0
- package/devices/saswell.js +2 -3
- package/devices/tuya.js +5 -6
- package/devices/woox.js +21 -2
- package/lib/exposes.js +0 -6
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -7474,23 +7474,6 @@ const converters = {
|
|
|
7474
7474
|
}
|
|
7475
7475
|
},
|
|
7476
7476
|
},
|
|
7477
|
-
woox_R7060: {
|
|
7478
|
-
cluster: 'manuSpecificTuya',
|
|
7479
|
-
type: ['commandActiveStatusReport'],
|
|
7480
|
-
convert: (model, msg, publish, options, meta) => {
|
|
7481
|
-
const dpValue = tuya.firstDpValue(msg, meta, 'woox_R7060');
|
|
7482
|
-
const dp = dpValue.dp;
|
|
7483
|
-
const value = tuya.getDataValue(dpValue);
|
|
7484
|
-
|
|
7485
|
-
switch (dp) {
|
|
7486
|
-
case tuya.dataPoints.wooxSwitch:
|
|
7487
|
-
return {state: value === 2 ? 'OFF' : 'ON'};
|
|
7488
|
-
default:
|
|
7489
|
-
meta.logger.warn(`zigbee-herdsman-converters:WooxR7060: Unrecognized DP #${
|
|
7490
|
-
dp} with data ${JSON.stringify(dpValue)}`);
|
|
7491
|
-
}
|
|
7492
|
-
},
|
|
7493
|
-
},
|
|
7494
7477
|
idlock: {
|
|
7495
7478
|
cluster: 'closuresDoorLock',
|
|
7496
7479
|
type: ['attributeReport', 'readResponse'],
|
package/devices/connecte.js
CHANGED
|
@@ -24,13 +24,13 @@ module.exports = [
|
|
|
24
24
|
.withDescription('On/off state of the switch'),
|
|
25
25
|
e.child_lock(),
|
|
26
26
|
e.window_detection(),
|
|
27
|
+
e.away_mode(),
|
|
27
28
|
exposes.climate()
|
|
28
29
|
.withSetpoint('current_heating_setpoint', 5, 35, 1, ea.STATE_SET)
|
|
29
30
|
.withLocalTemperature(ea.STATE)
|
|
30
31
|
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET)
|
|
31
32
|
.withSystemMode(['heat', 'auto'], ea.STATE_SET)
|
|
32
33
|
.withRunningState(['idle', 'heat'], ea.STATE)
|
|
33
|
-
.withAwayMode()
|
|
34
34
|
.withSensor(['internal', 'external', 'both']),
|
|
35
35
|
exposes.numeric('external_temperature', ea.STATE)
|
|
36
36
|
.withUnit('°C')
|
package/devices/ikea.js
CHANGED
|
@@ -292,10 +292,10 @@ module.exports = [
|
|
|
292
292
|
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
|
-
zigbeeModel: ['TRADFRIbulbE27WSglobeopal1055lm', 'TRADFRIbulbE26WSglobeopal1100lm'],
|
|
295
|
+
zigbeeModel: ['TRADFRIbulbE27WSglobeopal1055lm', 'TRADFRIbulbE26WSglobeopal1100lm', 'TRADFRIbulbE26WSglobeopal1160lm'],
|
|
296
296
|
model: 'LED2003G10',
|
|
297
297
|
vendor: 'IKEA',
|
|
298
|
-
description: 'TRADFRI LED bulb E26/27 1100/1055 lumen, dimmable, white spectrum, opal white',
|
|
298
|
+
description: 'TRADFRI LED bulb E26/27 1100/1055/1160 lumen, dimmable, white spectrum, opal white',
|
|
299
299
|
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
300
300
|
},
|
|
301
301
|
{
|
package/devices/immax.js
CHANGED
|
@@ -97,10 +97,10 @@ module.exports = [
|
|
|
97
97
|
weeklyScheduleFirstDayDpId: tuya.dataPoints.schedule,
|
|
98
98
|
},
|
|
99
99
|
},
|
|
100
|
-
exposes: [e.battery_low(), e.child_lock(), exposes.climate()
|
|
100
|
+
exposes: [e.battery_low(), e.child_lock(), e.away_mode(), exposes.climate()
|
|
101
101
|
.withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
102
102
|
.withLocalTemperature(ea.STATE).withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET)
|
|
103
|
-
.withRunningState(['idle', 'heat'], ea.STATE)
|
|
103
|
+
.withRunningState(['idle', 'heat'], ea.STATE)],
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
zigbeeModel: ['Bulb-RGB+CCT-ZB3.0'],
|
package/devices/niko.js
CHANGED
|
@@ -234,4 +234,18 @@ module.exports = [
|
|
|
234
234
|
await reporting.brightness(endpoint);
|
|
235
235
|
},
|
|
236
236
|
},
|
|
237
|
+
{
|
|
238
|
+
zigbeeModel: ['Connectable motor control,3A'],
|
|
239
|
+
model: '552-72301',
|
|
240
|
+
vendor: 'Niko',
|
|
241
|
+
description: 'Connectable motor control',
|
|
242
|
+
fromZigbee: [fz.cover_position_tilt, fz.battery],
|
|
243
|
+
toZigbee: [tz.cover_state, tz.cover_position_tilt],
|
|
244
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
245
|
+
const endpoint = device.getEndpoint(1);
|
|
246
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['closuresWindowCovering']);
|
|
247
|
+
await reporting.currentPositionLiftPercentage(endpoint);
|
|
248
|
+
},
|
|
249
|
+
exposes: [e.cover_position()],
|
|
250
|
+
},
|
|
237
251
|
];
|
package/devices/saswell.js
CHANGED
|
@@ -42,13 +42,12 @@ module.exports = [
|
|
|
42
42
|
const endpoint = device.getEndpoint(1);
|
|
43
43
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
|
|
44
44
|
},
|
|
45
|
-
exposes: [e.battery_low(), e.window_detection(), e.child_lock(),
|
|
45
|
+
exposes: [e.battery_low(), e.window_detection(), e.child_lock(), e.away_mode(),
|
|
46
46
|
exposes.binary('heating', ea.STATE, 'ON', 'OFF').withDescription('Device valve is open or closed (heating or not)'),
|
|
47
47
|
exposes.climate()
|
|
48
48
|
.withSetpoint('current_heating_setpoint', 5, 30, 0.5, ea.STATE_SET).withLocalTemperature(ea.STATE)
|
|
49
49
|
.withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET)
|
|
50
50
|
// Range is -6 - 6 and step 1: https://github.com/Koenkk/zigbee2mqtt/issues/11777
|
|
51
|
-
.withLocalTemperatureCalibration(-6, 6, 1, ea.STATE_SET)
|
|
52
|
-
.withAwayMode()],
|
|
51
|
+
.withLocalTemperatureCalibration(-6, 6, 1, ea.STATE_SET)],
|
|
53
52
|
},
|
|
54
53
|
];
|
package/devices/tuya.js
CHANGED
|
@@ -1359,7 +1359,7 @@ module.exports = [
|
|
|
1359
1359
|
'to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` ' +
|
|
1360
1360
|
'instead setting the desired temperature.')
|
|
1361
1361
|
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET)
|
|
1362
|
-
.
|
|
1362
|
+
.withPreset(['schedule', 'manual', 'boost', 'complex', 'comfort', 'eco'])
|
|
1363
1363
|
.withRunningState(['idle', 'heat'], ea.STATE),
|
|
1364
1364
|
e.auto_lock(), e.away_mode(), e.away_preset_days(), e.boost_time(), e.comfort_temperature(), e.eco_temperature(), e.force(),
|
|
1365
1365
|
e.max_temperature(), e.min_temperature(), e.away_preset_temperature(),
|
|
@@ -1439,10 +1439,9 @@ module.exports = [
|
|
|
1439
1439
|
weeklyScheduleFirstDayDpId: tuya.dataPoints.schedule,
|
|
1440
1440
|
},
|
|
1441
1441
|
},
|
|
1442
|
-
exposes: [e.child_lock(), exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
1442
|
+
exposes: [e.child_lock(), e.away_mode(), exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
1443
1443
|
.withLocalTemperature(ea.STATE)
|
|
1444
|
-
.withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET).withRunningState(['idle', 'heat'], ea.STATE)
|
|
1445
|
-
.withAwayMode()],
|
|
1444
|
+
.withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET).withRunningState(['idle', 'heat'], ea.STATE)],
|
|
1446
1445
|
},
|
|
1447
1446
|
{
|
|
1448
1447
|
fingerprint: [{modelID: 'dpplnsn\u0000', manufacturerName: '_TYST11_2dpplnsn'},
|
|
@@ -1463,9 +1462,9 @@ module.exports = [
|
|
|
1463
1462
|
},
|
|
1464
1463
|
},
|
|
1465
1464
|
exposes: [
|
|
1466
|
-
e.battery_low(), e.child_lock(), exposes.climate()
|
|
1465
|
+
e.battery_low(), e.child_lock(), e.away_mode(), exposes.climate()
|
|
1467
1466
|
.withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
1468
|
-
.withLocalTemperature(ea.STATE)
|
|
1467
|
+
.withLocalTemperature(ea.STATE)
|
|
1469
1468
|
.withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET).withRunningState(['idle', 'heat'], ea.STATE),
|
|
1470
1469
|
],
|
|
1471
1470
|
},
|
package/devices/woox.js
CHANGED
|
@@ -52,6 +52,25 @@ const fzLocal = {
|
|
|
52
52
|
return result;
|
|
53
53
|
},
|
|
54
54
|
},
|
|
55
|
+
woox_R7060: {
|
|
56
|
+
cluster: 'manuSpecificTuya',
|
|
57
|
+
type: ['commandActiveStatusReport'],
|
|
58
|
+
convert: (model, msg, publish, options, meta) => {
|
|
59
|
+
const dpValue = tuya.firstDpValue(msg, meta, 'woox_R7060');
|
|
60
|
+
const dp = dpValue.dp;
|
|
61
|
+
const value = tuya.getDataValue(dpValue);
|
|
62
|
+
|
|
63
|
+
switch (dp) {
|
|
64
|
+
case tuya.dataPoints.wooxSwitch:
|
|
65
|
+
return {state: value === 2 ? 'OFF' : 'ON'};
|
|
66
|
+
case 101:
|
|
67
|
+
return {battery: value};
|
|
68
|
+
default:
|
|
69
|
+
meta.logger.warn(`zigbee-herdsman-converters:WooxR7060: Unrecognized DP #${
|
|
70
|
+
dp} with data ${JSON.stringify(dpValue)}`);
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
},
|
|
55
74
|
};
|
|
56
75
|
|
|
57
76
|
const tzLocal = {
|
|
@@ -82,10 +101,10 @@ module.exports = [
|
|
|
82
101
|
model: 'R7060',
|
|
83
102
|
vendor: 'Woox',
|
|
84
103
|
description: 'Smart garden irrigation control',
|
|
85
|
-
fromZigbee: [fz.on_off, fz.ignore_tuya_set_time, fz.ignore_basic_report,
|
|
104
|
+
fromZigbee: [fz.on_off, fz.ignore_tuya_set_time, fz.ignore_basic_report, fzLocal.woox_R7060],
|
|
86
105
|
toZigbee: [tz.on_off],
|
|
87
106
|
onEvent: tuya.onEventSetTime,
|
|
88
|
-
exposes: [e.switch(), e.battery()
|
|
107
|
+
exposes: [e.switch(), e.battery()],
|
|
89
108
|
meta: {disableDefaultResponse: true},
|
|
90
109
|
},
|
|
91
110
|
{
|
package/lib/exposes.js
CHANGED
|
@@ -427,12 +427,6 @@ class Climate extends Base {
|
|
|
427
427
|
return this;
|
|
428
428
|
}
|
|
429
429
|
|
|
430
|
-
withAwayMode() {
|
|
431
|
-
assert(!this.endpoint, 'Cannot add feature after adding endpoint');
|
|
432
|
-
this.features.push(new Binary('away_mode', access.STATE_SET, 'ON', 'OFF').withDescription('Away mode'));
|
|
433
|
-
return this;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
430
|
withPiHeatingDemand(access=a.STATE) {
|
|
437
431
|
assert(!this.endpoint, 'Cannot add feature after adding endpoint');
|
|
438
432
|
this.features.push(new Numeric('pi_heating_demand', access).withValueMin(0).withValueMax(100).withUnit('%').withDescription('Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open'));
|