zigbee-herdsman-converters 15.0.55 → 15.0.57
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/develco.js +20 -0
- package/devices/iluminize.js +16 -3
- package/devices/lidl.js +7 -7
- package/devices/sunricher.js +1 -1
- package/devices/third_reality.js +1 -1
- package/devices/tuya.js +32 -0
- package/package.json +3 -3
package/devices/develco.js
CHANGED
|
@@ -534,6 +534,26 @@ module.exports = [
|
|
|
534
534
|
await reporting.batteryVoltage(endpoint38);
|
|
535
535
|
},
|
|
536
536
|
},
|
|
537
|
+
{
|
|
538
|
+
zigbeeModel: ['WISZB-138'],
|
|
539
|
+
model: 'WISZB-138',
|
|
540
|
+
vendor: 'Develco',
|
|
541
|
+
description: 'Window sensor',
|
|
542
|
+
fromZigbee: [fz.ias_contact_alarm_1, fz.battery, develco.fz.temperature],
|
|
543
|
+
toZigbee: [],
|
|
544
|
+
exposes: [e.contact(), e.battery(), e.battery_low(), e.temperature()],
|
|
545
|
+
meta: {battery: {voltageToPercentage: '3V_2500'}},
|
|
546
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
547
|
+
const endpoint35 = device.getEndpoint(35);
|
|
548
|
+
const endpoint38 = device.getEndpoint(38);
|
|
549
|
+
await reporting.bind(endpoint35, coordinatorEndpoint, ['genPowerCfg']);
|
|
550
|
+
await reporting.bind(endpoint38, coordinatorEndpoint, ['msTemperatureMeasurement']);
|
|
551
|
+
await reporting.batteryVoltage(endpoint35);
|
|
552
|
+
await reporting.temperature(endpoint38);
|
|
553
|
+
|
|
554
|
+
await develco.configure.read_sw_hw_version(device, logger);
|
|
555
|
+
},
|
|
556
|
+
},
|
|
537
557
|
{
|
|
538
558
|
zigbeeModel: ['MOSZB-130'],
|
|
539
559
|
model: 'MOSZB-130',
|
package/devices/iluminize.js
CHANGED
|
@@ -26,7 +26,7 @@ module.exports = [
|
|
|
26
26
|
zigbeeModel: ['511.201'],
|
|
27
27
|
model: '511.201',
|
|
28
28
|
vendor: 'Iluminize',
|
|
29
|
-
description: 'ZigBee 3.0
|
|
29
|
+
description: 'ZigBee 3.0 dimming actuator mini 1x 230V',
|
|
30
30
|
extend: extend.light_onoff_brightness({noConfigure: true}),
|
|
31
31
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
32
32
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
|
@@ -39,7 +39,7 @@ module.exports = [
|
|
|
39
39
|
zigbeeModel: ['5120.1100'],
|
|
40
40
|
model: '5120.1100',
|
|
41
41
|
vendor: 'Iluminize',
|
|
42
|
-
description: 'ZigBee 3.0
|
|
42
|
+
description: 'ZigBee 3.0 dimming actuator mini 1x 230V',
|
|
43
43
|
extend: extend.light_onoff_brightness({noConfigure: true}),
|
|
44
44
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
45
45
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
|
@@ -52,7 +52,20 @@ module.exports = [
|
|
|
52
52
|
zigbeeModel: ['5120.1110'],
|
|
53
53
|
model: '5120.1110',
|
|
54
54
|
vendor: 'Iluminize',
|
|
55
|
-
description: 'ZigBee 3.0
|
|
55
|
+
description: 'ZigBee 3.0 dimming actuator mini 1x 230V',
|
|
56
|
+
extend: extend.light_onoff_brightness({noConfigure: true}),
|
|
57
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
58
|
+
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
|
59
|
+
const endpoint = device.getEndpoint(1);
|
|
60
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
|
|
61
|
+
await reporting.onOff(endpoint);
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
zigbeeModel: ['5120.2110'],
|
|
66
|
+
model: '5120.2110',
|
|
67
|
+
vendor: 'Iluminize',
|
|
68
|
+
description: 'ZigBee 3.0 dimming actuator mini 1x 230V',
|
|
56
69
|
extend: extend.light_onoff_brightness({noConfigure: true}),
|
|
57
70
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
58
71
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
package/devices/lidl.js
CHANGED
|
@@ -8,7 +8,7 @@ const tuya = require('../lib/tuya');
|
|
|
8
8
|
const globalStore = require('../lib/store');
|
|
9
9
|
const ota = require('../lib/ota');
|
|
10
10
|
const utils = require('../lib/utils');
|
|
11
|
-
const {ColorMode} = require('../lib/constants');
|
|
11
|
+
const {ColorMode, colorModeLookup} = require('../lib/constants');
|
|
12
12
|
const libColor = require('../lib/color');
|
|
13
13
|
|
|
14
14
|
const tuyaLocal = {
|
|
@@ -152,18 +152,18 @@ const tzLocal = {
|
|
|
152
152
|
const newState = {};
|
|
153
153
|
|
|
154
154
|
// The color mode encodes whether the light is using its white LEDs or its color LEDs
|
|
155
|
-
let colorMode = meta.state.color_mode ?? ColorMode.ColorTemp;
|
|
155
|
+
let colorMode = meta.state.color_mode ?? colorModeLookup[ColorMode.ColorTemp];
|
|
156
156
|
|
|
157
157
|
// Color mode switching is done by setting color temperature (switch to white LEDs) or setting color (switch
|
|
158
158
|
// to color LEDs)
|
|
159
|
-
if ('color_temp' in meta.message) colorMode = ColorMode.ColorTemp;
|
|
160
|
-
if ('color' in meta.message) colorMode = ColorMode.HS;
|
|
159
|
+
if ('color_temp' in meta.message) colorMode = colorModeLookup[ColorMode.ColorTemp];
|
|
160
|
+
if ('color' in meta.message) colorMode = colorModeLookup[ColorMode.HS];
|
|
161
161
|
|
|
162
162
|
if (colorMode != meta.state.color_mode) {
|
|
163
163
|
newState.color_mode = colorMode;
|
|
164
164
|
|
|
165
165
|
// To switch between white mode and color mode, we have to send a special command:
|
|
166
|
-
const rgbMode = (colorMode == ColorMode.HS);
|
|
166
|
+
const rgbMode = (colorMode == colorModeLookup[ColorMode.HS]);
|
|
167
167
|
await entity.command('lightingColorCtrl', 'tuyaRgbMode', {enable: rgbMode}, {}, {disableDefaultResponse: true});
|
|
168
168
|
}
|
|
169
169
|
|
|
@@ -171,7 +171,7 @@ const tzLocal = {
|
|
|
171
171
|
// transition time, so for "no transition" we use 1 (tenth of a second).
|
|
172
172
|
const transtime = 'transition' in meta.message ? meta.message.transition * 10 : 1;
|
|
173
173
|
|
|
174
|
-
if (colorMode == ColorMode.ColorTemp) {
|
|
174
|
+
if (colorMode == colorModeLookup[ColorMode.ColorTemp]) {
|
|
175
175
|
if ('brightness' in meta.message) {
|
|
176
176
|
const zclData = {level: Number(meta.message.brightness), transtime};
|
|
177
177
|
await entity.command('genLevelCtrl', 'moveToLevel', zclData, utils.getOptions(meta.mapped, entity));
|
|
@@ -183,7 +183,7 @@ const tzLocal = {
|
|
|
183
183
|
await entity.command('lightingColorCtrl', 'moveToColorTemp', zclData, utils.getOptions(meta.mapped, entity));
|
|
184
184
|
newState.color_temp = meta.message.color_temp;
|
|
185
185
|
}
|
|
186
|
-
} else if (colorMode == ColorMode.HS) {
|
|
186
|
+
} else if (colorMode == colorModeLookup[ColorMode.HS]) {
|
|
187
187
|
if ('brightness' in meta.message || 'color' in meta.message) {
|
|
188
188
|
// We ignore the brightness of the color and instead use the overall brightness setting of the lamp
|
|
189
189
|
// for the brightness because I think that's the expected behavior and also because the color
|
package/devices/sunricher.js
CHANGED
|
@@ -388,7 +388,7 @@ module.exports = [
|
|
|
388
388
|
'cw_ww_release', 'cw_dec_ww_inc', 'ww_inc_cw_dec', 'r_g_b', 'b_g_r', 'rgb_release'])],
|
|
389
389
|
},
|
|
390
390
|
{
|
|
391
|
-
zigbeeModel: ['ZG9092'],
|
|
391
|
+
zigbeeModel: ['ZG9092', 'HK-LN-HEATER-A'],
|
|
392
392
|
model: 'SR-ZG9092A',
|
|
393
393
|
vendor: 'Sunricher',
|
|
394
394
|
description: 'Touch thermostat',
|
package/devices/third_reality.js
CHANGED
|
@@ -184,7 +184,7 @@ module.exports = [
|
|
|
184
184
|
await reporting.rmsCurrent(endpoint, {change: 50});
|
|
185
185
|
await reporting.rmsVoltage(endpoint, {change: 5});
|
|
186
186
|
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
187
|
-
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor:
|
|
187
|
+
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 3600000, multiplier: 1});
|
|
188
188
|
endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {
|
|
189
189
|
acVoltageMultiplier: 1, acVoltageDivisor: 10, acCurrentMultiplier: 1, acCurrentDivisor: 1000, acPowerMultiplier: 1,
|
|
190
190
|
acPowerDivisor: 10,
|
package/devices/tuya.js
CHANGED
|
@@ -117,6 +117,22 @@ const tzLocal = {
|
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
119
|
},
|
|
120
|
+
TS0224: {
|
|
121
|
+
key: ['light', 'duration', 'volume'],
|
|
122
|
+
convertSet: async (entity, key, value, meta) => {
|
|
123
|
+
if (key === 'light') {
|
|
124
|
+
await entity.command('genOnOff', value.toLowerCase() === 'on' ? 'on' : 'off', {}, utils.getOptions(meta.mapped, entity));
|
|
125
|
+
} else if (key === 'duration') {
|
|
126
|
+
await entity.write('ssIasWd', {'maxDuration': value}, utils.getOptions(meta.mapped, entity));
|
|
127
|
+
} else if (key === 'volume') {
|
|
128
|
+
const lookup = {'mute': 0, 'low': 10, 'medium': 30, 'high': 50};
|
|
129
|
+
value = value.toLowerCase();
|
|
130
|
+
utils.validateValue(value, Object.keys(lookup));
|
|
131
|
+
await entity.write('ssIasWd', {0x0002: {value: lookup[value], type: 0x0a}}, utils.getOptions(meta.mapped, entity));
|
|
132
|
+
}
|
|
133
|
+
return {state: {[key]: value}};
|
|
134
|
+
},
|
|
135
|
+
},
|
|
120
136
|
power_on_behavior: {
|
|
121
137
|
key: ['power_on_behavior'],
|
|
122
138
|
convertSet: async (entity, key, value, meta) => {
|
|
@@ -2115,6 +2131,7 @@ module.exports = [
|
|
|
2115
2131
|
{modelID: 'TS0601', manufacturerName: '_TZE200_cowvfni3'},
|
|
2116
2132
|
{modelID: 'TS0601', manufacturerName: '_TZE200_rddyvrci'},
|
|
2117
2133
|
{modelID: 'TS0601', manufacturerName: '_TZE200_nueqqe6k'},
|
|
2134
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_bqcqqjpb'},
|
|
2118
2135
|
{modelID: 'TS0601', manufacturerName: '_TZE200_xaabybja'},
|
|
2119
2136
|
{modelID: 'TS0601', manufacturerName: '_TZE200_rmymn92d'},
|
|
2120
2137
|
{modelID: 'TS0601', manufacturerName: '_TZE200_3i3exuay'},
|
|
@@ -4142,4 +4159,19 @@ module.exports = [
|
|
|
4142
4159
|
{vendor: 'Lerlink', model: 'T2-Z67/T2-W67'},
|
|
4143
4160
|
],
|
|
4144
4161
|
},
|
|
4162
|
+
{
|
|
4163
|
+
zigbeeModel: ['TS0224'],
|
|
4164
|
+
model: 'TS0224',
|
|
4165
|
+
vendor: 'TuYa',
|
|
4166
|
+
description: 'Smart light & sound siren',
|
|
4167
|
+
fromZigbee: [],
|
|
4168
|
+
toZigbee: [tz.warning, tzLocal.TS0224],
|
|
4169
|
+
exposes: [e.warning(),
|
|
4170
|
+
exposes.binary('light', ea.STATE_SET, 'ON', 'OFF').withDescription('Turn the light of the alarm ON/OFF'),
|
|
4171
|
+
exposes.numeric('duration', ea.STATE_SET).withValueMin(60).withValueMax(3600).withValueStep(1).withUnit('s')
|
|
4172
|
+
.withDescription('Duration of the alarm'),
|
|
4173
|
+
exposes.enum('volume', ea.STATE_SET, ['mute', 'low', 'medium', 'high'])
|
|
4174
|
+
.withDescription('Volume of the alarm'),
|
|
4175
|
+
],
|
|
4176
|
+
},
|
|
4145
4177
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zigbee-herdsman-converters",
|
|
3
|
-
"version": "15.0.
|
|
3
|
+
"version": "15.0.57",
|
|
4
4
|
"description": "Collection of device converters to be used with zigbee-herdsman",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://github.com/Koenkk/zigbee-herdsman-converters",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"axios": "^1.3.
|
|
37
|
+
"axios": "^1.3.4",
|
|
38
38
|
"buffer-crc32": "^0.2.13",
|
|
39
39
|
"https-proxy-agent": "^5.0.1",
|
|
40
40
|
"tar-stream": "^3.0.0",
|
|
41
|
-
"zigbee-herdsman": "^0.14.
|
|
41
|
+
"zigbee-herdsman": "^0.14.95"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"eslint": "*",
|