zigbee-herdsman-converters 14.0.470 → 14.0.473
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 +17 -9
- package/devices/led_trading.js +29 -0
- package/devices/philips.js +35 -0
- package/devices/plaid.js +5 -3
- package/devices/tuya.js +26 -2
- package/devices/ynoa.js +24 -0
- package/package.json +2 -2
package/converters/fromZigbee.js
CHANGED
|
@@ -3129,6 +3129,21 @@ const converters = {
|
|
|
3129
3129
|
};
|
|
3130
3130
|
},
|
|
3131
3131
|
},
|
|
3132
|
+
plaid_battery: {
|
|
3133
|
+
cluster: 'genPowerCfg',
|
|
3134
|
+
type: ['readResponse', 'attributeReport'],
|
|
3135
|
+
convert: (model, msg, publish, options, meta) => {
|
|
3136
|
+
const payload = {};
|
|
3137
|
+
if (msg.data.hasOwnProperty('mainsVoltage')) {
|
|
3138
|
+
payload.voltage = msg.data['mainsVoltage'];
|
|
3139
|
+
|
|
3140
|
+
if (model.meta && model.meta.battery && model.meta.battery.voltageToPercentage) {
|
|
3141
|
+
payload.battery = batteryVoltageToPercentage(payload.voltage, model.meta.battery.voltageToPercentage);
|
|
3142
|
+
}
|
|
3143
|
+
}
|
|
3144
|
+
return payload;
|
|
3145
|
+
},
|
|
3146
|
+
},
|
|
3132
3147
|
silvercrest_smart_led_string: {
|
|
3133
3148
|
cluster: 'manuSpecificTuya',
|
|
3134
3149
|
type: ['commandDataResponse', 'commandDataReport'],
|
|
@@ -3820,7 +3835,7 @@ const converters = {
|
|
|
3820
3835
|
return {deadzone_temperature: value};
|
|
3821
3836
|
case tuya.dataPoints.moesLocalTemp:
|
|
3822
3837
|
temperature = value & 1<<15 ? value - (1<<16) + 1 : value;
|
|
3823
|
-
if (meta.device.manufacturerName
|
|
3838
|
+
if (meta.device.manufacturerName !== '_TZE200_ye5jkfsb') {
|
|
3824
3839
|
// https://github.com/Koenkk/zigbee2mqtt/issues/11980
|
|
3825
3840
|
temperature = temperature / 10;
|
|
3826
3841
|
}
|
|
@@ -4220,7 +4235,7 @@ const converters = {
|
|
|
4220
4235
|
}
|
|
4221
4236
|
case tuya.dataPoints.tuyaSabVOC:
|
|
4222
4237
|
return {voc: calibrateAndPrecisionRoundOptions(value, options, 'voc')};
|
|
4223
|
-
case tuya.dataPoints.
|
|
4238
|
+
case tuya.dataPoints.tuyaSahkFormaldehyd:
|
|
4224
4239
|
return {formaldehyd: calibrateAndPrecisionRoundOptions(value, options, 'formaldehyd')};
|
|
4225
4240
|
default:
|
|
4226
4241
|
meta.logger.warn(`zigbee-herdsman-converters:TuyaSmartAirBox: Unrecognized DP #${
|
|
@@ -5976,13 +5991,6 @@ const converters = {
|
|
|
5976
5991
|
return result;
|
|
5977
5992
|
},
|
|
5978
5993
|
},
|
|
5979
|
-
scenes_recall_scene_65029: {
|
|
5980
|
-
cluster: 65029,
|
|
5981
|
-
type: ['raw'],
|
|
5982
|
-
convert: (model, msg, publish, options, meta) => {
|
|
5983
|
-
return {action: `scene_${msg.data[msg.data.length - 1]}`};
|
|
5984
|
-
},
|
|
5985
|
-
},
|
|
5986
5994
|
scenes_recall_scene_65024: {
|
|
5987
5995
|
cluster: 65024,
|
|
5988
5996
|
type: ['raw'],
|
package/devices/led_trading.js
CHANGED
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
const reporting = require('../lib/reporting');
|
|
2
2
|
const extend = require('../lib/extend');
|
|
3
3
|
const exposes = require('../lib/exposes');
|
|
4
|
+
const utils = require('../lib/utils');
|
|
4
5
|
const e = exposes.presets;
|
|
5
6
|
|
|
7
|
+
const fzLocal = {
|
|
8
|
+
led_trading_9133: {
|
|
9
|
+
cluster: 'greenPower',
|
|
10
|
+
type: ['commandNotification', 'commandCommisioningNotification'],
|
|
11
|
+
convert: (model, msg, publish, options, meta) => {
|
|
12
|
+
const commandID = msg.data.commandID;
|
|
13
|
+
if (utils.hasAlreadyProcessedMessage(msg, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`)) return;
|
|
14
|
+
if (commandID === 224) return;
|
|
15
|
+
const lookup = {0x13: 'press_1', 0x14: 'press_2', 0x15: 'press_3', 0x16: 'press_4',
|
|
16
|
+
0x1B: 'hold_1', 0x1C: 'hold_2', 0x1D: 'hold_3', 0x1E: 'hold_4'};
|
|
17
|
+
if (!lookup.hasOwnProperty(commandID)) {
|
|
18
|
+
meta.logger.error(`led_trading_9133: missing command '${commandID}'`);
|
|
19
|
+
} else {
|
|
20
|
+
return {action: lookup[commandID]};
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
|
|
6
26
|
module.exports = [
|
|
27
|
+
{
|
|
28
|
+
fingerprint: [{modelID: 'GreenPower_2', ieeeAddr: /^0x00000000427.....$/}],
|
|
29
|
+
model: '9133',
|
|
30
|
+
vendor: 'Led Trading',
|
|
31
|
+
description: 'Pushbutton transmitter module',
|
|
32
|
+
fromZigbee: [fzLocal.led_trading_9133],
|
|
33
|
+
toZigbee: [],
|
|
34
|
+
exposes: [e.action(['press_1', 'hold_1', 'press_2', 'hold_2', 'press_3', 'hold_3', 'press_4', 'hold_4'])],
|
|
35
|
+
},
|
|
7
36
|
{
|
|
8
37
|
zigbeeModel: ['HK-LN-DIM-A'],
|
|
9
38
|
model: 'HK-LN-DIM-A',
|
package/devices/philips.js
CHANGED
|
@@ -117,6 +117,24 @@ module.exports = [
|
|
|
117
117
|
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
118
118
|
ota: ota.zigbeeOTA,
|
|
119
119
|
},
|
|
120
|
+
{
|
|
121
|
+
zigbeeModel: ['915005997601'],
|
|
122
|
+
model: '915005997601',
|
|
123
|
+
vendor: 'Philips',
|
|
124
|
+
description: 'Hue Devere M white ambiance white & dimmer',
|
|
125
|
+
meta: {turnsOffAtBrightness1: true},
|
|
126
|
+
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
127
|
+
ota: ota.zigbeeOTA,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
zigbeeModel: ['915005997701'],
|
|
131
|
+
model: '915005997701',
|
|
132
|
+
vendor: 'Philips',
|
|
133
|
+
description: 'Hue Devere L white ambiance white & dimmer',
|
|
134
|
+
meta: {turnsOffAtBrightness1: true},
|
|
135
|
+
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
136
|
+
ota: ota.zigbeeOTA,
|
|
137
|
+
},
|
|
120
138
|
{
|
|
121
139
|
zigbeeModel: ['929003054001'],
|
|
122
140
|
model: '929003054001',
|
|
@@ -2786,6 +2804,15 @@ module.exports = [
|
|
|
2786
2804
|
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [222, 454]}),
|
|
2787
2805
|
ota: ota.zigbeeOTA,
|
|
2788
2806
|
},
|
|
2807
|
+
{
|
|
2808
|
+
zigbeeModel: ['LWE006'],
|
|
2809
|
+
model: '929002294102',
|
|
2810
|
+
vendor: 'Philips',
|
|
2811
|
+
description: 'Hue white candle bulb E14 bluetooth',
|
|
2812
|
+
meta: {turnsOffAtBrightness1: true},
|
|
2813
|
+
extend: hueExtend.light_onoff_brightness(),
|
|
2814
|
+
ota: ota.zigbeeOTA,
|
|
2815
|
+
},
|
|
2789
2816
|
{
|
|
2790
2817
|
zigbeeModel: ['LWE007'],
|
|
2791
2818
|
model: '9290030211',
|
|
@@ -2821,6 +2848,14 @@ module.exports = [
|
|
|
2821
2848
|
extend: hueExtend.light_onoff_brightness(),
|
|
2822
2849
|
ota: ota.zigbeeOTA,
|
|
2823
2850
|
},
|
|
2851
|
+
{
|
|
2852
|
+
zigbeeModel: ['915005998201'],
|
|
2853
|
+
model: '915005998201',
|
|
2854
|
+
vendor: 'Philips',
|
|
2855
|
+
description: 'Hue Bluetooth white & color ambiance ceiling lamp Infuse',
|
|
2856
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
2857
|
+
ota: ota.zigbeeOTA,
|
|
2858
|
+
},
|
|
2824
2859
|
{
|
|
2825
2860
|
zigbeeModel: ['915005997301', '915005997201'],
|
|
2826
2861
|
model: '915005997301',
|
package/devices/plaid.js
CHANGED
|
@@ -11,13 +11,15 @@ module.exports = [
|
|
|
11
11
|
vendor: 'PLAID SYSTEMS',
|
|
12
12
|
description: 'Spruce temperature and moisture sensor',
|
|
13
13
|
toZigbee: [],
|
|
14
|
-
fromZigbee: [fz.temperature, fz.humidity],
|
|
15
|
-
exposes: [e.humidity(), e.temperature()],
|
|
14
|
+
fromZigbee: [fz.temperature, fz.humidity, fz.plaid_battery],
|
|
15
|
+
exposes: [e.humidity(), e.temperature(), e.battery(), e.battery_voltage()],
|
|
16
|
+
meta: {battery: {voltageToPercentage: '3V_2500'}},
|
|
16
17
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
17
18
|
const endpoint = device.getEndpoint(1);
|
|
18
|
-
await reporting.bind(endpoint, coordinatorEndpoint, ['msTemperatureMeasurement', 'msRelativeHumidity']);
|
|
19
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['msTemperatureMeasurement', 'msRelativeHumidity', 'genPowerCfg']);
|
|
19
20
|
await reporting.temperature(endpoint);
|
|
20
21
|
await reporting.humidity(endpoint);
|
|
22
|
+
device.powerSource = 'Battery';
|
|
21
23
|
},
|
|
22
24
|
},
|
|
23
25
|
];
|
package/devices/tuya.js
CHANGED
|
@@ -44,6 +44,14 @@ const tzLocal = {
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
const fzLocal = {
|
|
47
|
+
scenes_recall_scene_65029: {
|
|
48
|
+
cluster: '65029',
|
|
49
|
+
type: ['raw', 'attributeReport'],
|
|
50
|
+
convert: (model, msg, publish, options, meta) => {
|
|
51
|
+
const id = meta.device.modelID === '005f0c3b' ? msg.data[0] : msg.data[msg.data.length - 1];
|
|
52
|
+
return {action: `scene_${id}`};
|
|
53
|
+
},
|
|
54
|
+
},
|
|
47
55
|
TS0201_battery: {
|
|
48
56
|
cluster: 'genPowerCfg',
|
|
49
57
|
type: ['attributeReport', 'readResponse'],
|
|
@@ -1713,7 +1721,7 @@ module.exports = [
|
|
|
1713
1721
|
model: 'U86KCJ-ZP',
|
|
1714
1722
|
vendor: 'TuYa',
|
|
1715
1723
|
description: 'Smart 6 key scene wall switch',
|
|
1716
|
-
fromZigbee: [
|
|
1724
|
+
fromZigbee: [fzLocal.scenes_recall_scene_65029],
|
|
1717
1725
|
exposes: [e.action(['scene_1', 'scene_2', 'scene_3', 'scene_4', 'scene_5', 'scene_6'])],
|
|
1718
1726
|
toZigbee: [],
|
|
1719
1727
|
},
|
|
@@ -1884,7 +1892,7 @@ module.exports = [
|
|
|
1884
1892
|
exposes: [e.battery(), e.vibration(), exposes.enum('sensitivity', exposes.access.STATE_SET, ['low', 'medium', 'high'])],
|
|
1885
1893
|
},
|
|
1886
1894
|
{
|
|
1887
|
-
fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_8bxrzyxz'}],
|
|
1895
|
+
fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_8bxrzyxz'}, {modelID: 'TS011F', manufacturerName: '_TZ3000_ky0fq4ho'}],
|
|
1888
1896
|
model: 'TS011F_din_smart_relay',
|
|
1889
1897
|
description: 'Din smart relay (with power monitoring)',
|
|
1890
1898
|
vendor: 'TuYa',
|
|
@@ -1921,6 +1929,22 @@ module.exports = [
|
|
|
1921
1929
|
exposes: [exposes.binary('trigger', ea.STATE_SET, true, false).withDescription('Trigger the door movement'),
|
|
1922
1930
|
exposes.binary('garage_door_contact', ea.STATE, true, false)],
|
|
1923
1931
|
},
|
|
1932
|
+
{
|
|
1933
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_wfxuhoea'}],
|
|
1934
|
+
model: 'GDC311ZBQ1',
|
|
1935
|
+
vendor: 'TuYa',
|
|
1936
|
+
description: 'LoraTap garage door opener with wireless sensor',
|
|
1937
|
+
fromZigbee: [fz.matsee_garage_door_opener, fz.ignore_basic_report],
|
|
1938
|
+
toZigbee: [tz.matsee_garage_door_opener, tz.tuya_data_point_test],
|
|
1939
|
+
whiteLabel: [{vendor: 'LoraTap', model: 'GDC311ZBQ1'}],
|
|
1940
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1941
|
+
const endpoint = device.getEndpoint(1);
|
|
1942
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
|
|
1943
|
+
},
|
|
1944
|
+
exposes: [exposes.binary('trigger', ea.STATE_SET, true, false).withDescription('Trigger the door movement'),
|
|
1945
|
+
exposes.binary('garage_door_contact', ea.STATE, false, true)
|
|
1946
|
+
.withDescription('Indicates if the garage door contact is closed (= true) or open (= false)')],
|
|
1947
|
+
},
|
|
1924
1948
|
{
|
|
1925
1949
|
fingerprint: [{modelID: 'TS0201', manufacturerName: '_TZ3000_qaaysllp'}],
|
|
1926
1950
|
model: 'LCZ030',
|
package/devices/ynoa.js
CHANGED
|
@@ -2,6 +2,7 @@ const exposes = require('../lib/exposes');
|
|
|
2
2
|
const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee};
|
|
3
3
|
const reporting = require('../lib/reporting');
|
|
4
4
|
const e = exposes.presets;
|
|
5
|
+
const extend = require('..//lib/extend');
|
|
5
6
|
|
|
6
7
|
module.exports = [
|
|
7
8
|
{
|
|
@@ -18,4 +19,27 @@ module.exports = [
|
|
|
18
19
|
await reporting.batteryPercentageRemaining(endpoint);
|
|
19
20
|
},
|
|
20
21
|
},
|
|
22
|
+
{
|
|
23
|
+
zigbeeModel: ['ZBT-RGBWLight-M0000'],
|
|
24
|
+
model: 'LA-GU10-RGBW',
|
|
25
|
+
vendor: 'Ynoa',
|
|
26
|
+
description: 'Smart LED GU10 RGB CCT',
|
|
27
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 526], supportsHS: true}),
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
zigbeeModel: ['ZBT-RGBWSwitch-D0800'],
|
|
31
|
+
model: 'LA-5KEY-RGBW',
|
|
32
|
+
vendor: 'Ynoa',
|
|
33
|
+
description: '5 key control for RGBW light',
|
|
34
|
+
fromZigbee: [fz.command_on, fz.command_off, fz.command_move_to_color_temp,
|
|
35
|
+
fz.command_move_to_color, fz.command_move_to_level, fz.battery],
|
|
36
|
+
exposes: [e.battery(), e.battery_low(), e.action(['on', 'off', 'brightness_move_to_level',
|
|
37
|
+
'color_temperature_move', 'color_move'])],
|
|
38
|
+
toZigbee: [],
|
|
39
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
40
|
+
const endpoint = device.getEndpoint(1);
|
|
41
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
42
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
43
|
+
},
|
|
44
|
+
},
|
|
21
45
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zigbee-herdsman-converters",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.473",
|
|
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.0",
|
|
40
40
|
"tar-stream": "^2.2.0",
|
|
41
|
-
"zigbee-herdsman": "^0.14.
|
|
41
|
+
"zigbee-herdsman": "^0.14.22"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"eslint": "*",
|