zigbee-herdsman-converters 21.2.1 → 21.4.0
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/CHANGELOG.md +66 -0
- package/converters/toZigbee.d.ts +0 -9
- package/converters/toZigbee.d.ts.map +1 -1
- package/converters/toZigbee.js +0 -16
- package/converters/toZigbee.js.map +1 -1
- package/devices/amina.js +8 -8
- package/devices/amina.js.map +1 -1
- package/devices/custom_devices_diy.d.ts.map +1 -1
- package/devices/custom_devices_diy.js +30 -19
- package/devices/custom_devices_diy.js.map +1 -1
- package/devices/danfoss.d.ts.map +1 -1
- package/devices/danfoss.js +2 -1
- package/devices/danfoss.js.map +1 -1
- package/devices/elko.d.ts.map +1 -1
- package/devices/elko.js +14 -8
- package/devices/elko.js.map +1 -1
- package/devices/heiman.d.ts.map +1 -1
- package/devices/heiman.js +1 -0
- package/devices/heiman.js.map +1 -1
- package/devices/ikea.js +3 -3
- package/devices/ikea.js.map +1 -1
- package/devices/index.d.ts.map +1 -1
- package/devices/index.js +2 -0
- package/devices/index.js.map +1 -1
- package/devices/innr.d.ts.map +1 -1
- package/devices/innr.js +7 -0
- package/devices/innr.js.map +1 -1
- package/devices/inovelli.d.ts.map +1 -1
- package/devices/inovelli.js +162 -293
- package/devices/inovelli.js.map +1 -1
- package/devices/mazda.d.ts +4 -0
- package/devices/mazda.d.ts.map +1 -0
- package/devices/mazda.js +142 -0
- package/devices/mazda.js.map +1 -0
- package/devices/miboxer.d.ts.map +1 -1
- package/devices/miboxer.js +2 -1
- package/devices/miboxer.js.map +1 -1
- package/devices/moes.d.ts.map +1 -1
- package/devices/moes.js +5 -1
- package/devices/moes.js.map +1 -1
- package/devices/neo.js +1 -1
- package/devices/neo.js.map +1 -1
- package/devices/rademacher.d.ts.map +1 -1
- package/devices/rademacher.js +7 -0
- package/devices/rademacher.js.map +1 -1
- package/devices/saswell.d.ts.map +1 -1
- package/devices/saswell.js +2 -0
- package/devices/saswell.js.map +1 -1
- package/devices/schneider_electric.d.ts.map +1 -1
- package/devices/schneider_electric.js +89 -0
- package/devices/schneider_electric.js.map +1 -1
- package/devices/smlight.d.ts.map +1 -1
- package/devices/smlight.js +9 -10
- package/devices/smlight.js.map +1 -1
- package/devices/sonoff.d.ts.map +1 -1
- package/devices/sonoff.js +11 -3
- package/devices/sonoff.js.map +1 -1
- package/devices/tech.d.ts.map +1 -1
- package/devices/tech.js +4 -1
- package/devices/tech.js.map +1 -1
- package/devices/third_reality.d.ts.map +1 -1
- package/devices/third_reality.js +7 -3
- package/devices/third_reality.js.map +1 -1
- package/devices/tuya.d.ts.map +1 -1
- package/devices/tuya.js +310 -20
- package/devices/tuya.js.map +1 -1
- package/lib/lumi.d.ts.map +1 -1
- package/lib/lumi.js +4 -0
- package/lib/lumi.js.map +1 -1
- package/lib/modernExtend.d.ts +18 -0
- package/lib/modernExtend.d.ts.map +1 -1
- package/lib/modernExtend.js +42 -0
- package/lib/modernExtend.js.map +1 -1
- package/lib/ota.js +1 -1
- package/lib/ota.js.map +1 -1
- package/lib/tuya.js +1 -1
- package/lib/tuya.js.map +1 -1
- package/package.json +5 -5
package/devices/tuya.js
CHANGED
|
@@ -51,7 +51,7 @@ const utils = __importStar(require("../lib/utils"));
|
|
|
51
51
|
const utils_1 = require("../lib/utils");
|
|
52
52
|
const zosung = __importStar(require("../lib/zosung"));
|
|
53
53
|
const NS = 'zhc:tuya';
|
|
54
|
-
const { tuyaLight, tuyaBase } = tuya.modernExtend;
|
|
54
|
+
const { tuyaLight, tuyaBase, tuyaMagicPacket, dpBinary, dpNumeric, dpEnumLookup } = tuya.modernExtend;
|
|
55
55
|
const e = exposes.presets;
|
|
56
56
|
const ea = exposes.access;
|
|
57
57
|
const fzZosung = zosung.fzZosung;
|
|
@@ -1540,6 +1540,13 @@ const definitions = [
|
|
|
1540
1540
|
},
|
|
1541
1541
|
whiteLabel: [tuya.whitelabel('Zemismart', 'ZM-H7', 'Hand wave wall smart switch', ['_TZ3000_jcqs2mrv'])],
|
|
1542
1542
|
},
|
|
1543
|
+
{
|
|
1544
|
+
zigbeeModel: ['TS0505'],
|
|
1545
|
+
model: 'TS0505',
|
|
1546
|
+
vendor: 'Tuya',
|
|
1547
|
+
description: ' GU10 zbeacon Zigbee LED bulb',
|
|
1548
|
+
extend: [(0, modernExtend_1.light)({ colorTemp: { range: [153, 500] }, color: { modes: ['xy', 'hs'] } })],
|
|
1549
|
+
},
|
|
1543
1550
|
{
|
|
1544
1551
|
zigbeeModel: ['TS0505B'],
|
|
1545
1552
|
model: 'TS0505B_1',
|
|
@@ -1587,6 +1594,7 @@ const definitions = [
|
|
|
1587
1594
|
tuya.whitelabel('Moes', 'ZB-LZD10-RCW', '10W RGB+CCT Smart Downlight', ['_TZ3210_s9lumfhn', '_TZ3210_jjqdqxfq']),
|
|
1588
1595
|
tuya.whitelabel('Moes', 'ZB-TDC6-RCW-E14', 'RGB+CCT 5W E14 LED bulb', ['_TZ3210_ifga63rg']),
|
|
1589
1596
|
tuya.whitelabel('MiBoxer', 'FUT106ZR', 'GU10 bulb', ['_TZB210_rwy5hexp', '_TZB210_lnnkh3f9']),
|
|
1597
|
+
tuya.whitelabel('MiBoxer', 'E3-ZR', '3 in 1 LED Controller', ['_TZB210_wy1pyu1q']),
|
|
1590
1598
|
tuya.whitelabel('Tuya', 'TS0505B_1_1', 'Zigbee 3.0 18W led light bulb E27 RGBCW', [
|
|
1591
1599
|
'_TZ3210_jd3z4yig',
|
|
1592
1600
|
'_TZ3210_r5afgmkl',
|
|
@@ -1876,6 +1884,7 @@ const definitions = [
|
|
|
1876
1884
|
{ modelID: 'TS0207', manufacturerName: '_TZ3000_5k5vh43t' },
|
|
1877
1885
|
{ modelID: 'TS0207', manufacturerName: '_TZ3000_kxlmv9ag' },
|
|
1878
1886
|
{ modelID: 'TS0207', manufacturerName: '_TZ3000_wmlc9p9z' },
|
|
1887
|
+
{ modelID: 'TS0207', manufacturerName: '_TZ3000_shopg9ss' },
|
|
1879
1888
|
],
|
|
1880
1889
|
model: 'TS0207_repeater',
|
|
1881
1890
|
vendor: 'Tuya',
|
|
@@ -2080,7 +2089,7 @@ const definitions = [
|
|
|
2080
2089
|
},
|
|
2081
2090
|
},
|
|
2082
2091
|
{
|
|
2083
|
-
fingerprint: tuya.fingerprint('TS0601', ['_TZE284_aao3yzhs']),
|
|
2092
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE284_aao3yzhs', '_TZE284_nhgdf6qr', '_TZE284_ap9owrsa']),
|
|
2084
2093
|
model: 'TS0601_soil_3',
|
|
2085
2094
|
vendor: 'Tuya',
|
|
2086
2095
|
description: 'Soil sensor',
|
|
@@ -2094,9 +2103,10 @@ const definitions = [
|
|
|
2094
2103
|
[5, 'temperature', tuya.valueConverter.divideBy10],
|
|
2095
2104
|
[9, 'temperature_unit', tuya.valueConverter.temperatureUnit],
|
|
2096
2105
|
[14, 'battery_state', tuya.valueConverter.batteryState],
|
|
2097
|
-
[15, 'battery', tuya.
|
|
2106
|
+
[15, 'battery', tuya.valueConverterBasic.scale(6, 60, 0, 100)], //device reports back false scaling
|
|
2098
2107
|
],
|
|
2099
2108
|
},
|
|
2109
|
+
whiteLabel: [tuya.whitelabel('GIEX', 'GX04', 'Soil Moisture Sensor', ['_TZE284_nhgdf6qr'])],
|
|
2100
2110
|
},
|
|
2101
2111
|
{
|
|
2102
2112
|
fingerprint: tuya.fingerprint('TS0601', [
|
|
@@ -2382,6 +2392,10 @@ const definitions = [
|
|
|
2382
2392
|
modelID: 'TS0601',
|
|
2383
2393
|
manufacturerName: '_TZE204_5cuocqty',
|
|
2384
2394
|
},
|
|
2395
|
+
{
|
|
2396
|
+
modelID: 'TS0601',
|
|
2397
|
+
manufacturerName: '_TZE204_nqqylykc',
|
|
2398
|
+
},
|
|
2385
2399
|
],
|
|
2386
2400
|
model: 'ZDMS16-1',
|
|
2387
2401
|
vendor: 'Avatto',
|
|
@@ -2980,7 +2994,7 @@ const definitions = [
|
|
|
2980
2994
|
description: 'Light controller',
|
|
2981
2995
|
extend: [tuya.modernExtend.tuyaLight({ colorTemp: { range: [153, 500] } })],
|
|
2982
2996
|
whiteLabel: [
|
|
2983
|
-
tuya.whitelabel('Lidl', 'HG06492B', 'Livarno
|
|
2997
|
+
tuya.whitelabel('Lidl', 'HG06492B/HG08130B', 'Livarno Home E14 candle CCT', ['_TZ3000_oborybow']),
|
|
2984
2998
|
tuya.whitelabel('Lidl', 'HG06492A/HG08130A', 'Livarno Lux GU10 spot CCT', ['_TZ3000_el5kt5im']),
|
|
2985
2999
|
tuya.whitelabel('Lidl', 'HG06492C/HG08130C/HG09154C', 'Livarno Lux E27 bulb CCT', ['_TZ3000_49qchf10']),
|
|
2986
3000
|
tuya.whitelabel('Lidl', '14147206L', 'Livarno Lux ceiling light', ['_TZ3000_rylaozuc', '_TZ3000_5fkufhn1']),
|
|
@@ -3044,7 +3058,7 @@ const definitions = [
|
|
|
3044
3058
|
tuya.whitelabel('Lidl', '14148906L', 'Livarno Lux mood light RGB+CCT', ['_TZ3000_9cpuaca6']),
|
|
3045
3059
|
tuya.whitelabel('Lidl', '14149505L/14149506L_1', 'Livarno Lux light bar RGB+CCT (black/white)', ['_TZ3000_gek6snaj']),
|
|
3046
3060
|
tuya.whitelabel('Mycket', 'MS-SP-LE27WRGB', 'E27 RGBW bulb', ['_TZ3000_evag0pvn']),
|
|
3047
|
-
tuya.whitelabel('Lidl', 'HG06104A', 'Livarno
|
|
3061
|
+
tuya.whitelabel('Lidl', 'HG06104A', 'Livarno Home RGB+CCT LED light strip 2m', ['_TZ3000_riwp3k79', '_TZ3000_riwp3k79']),
|
|
3048
3062
|
],
|
|
3049
3063
|
configure: async (device, coordinatorEndpoint) => {
|
|
3050
3064
|
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', { colorCapabilities: 29 });
|
|
@@ -3066,6 +3080,7 @@ const definitions = [
|
|
|
3066
3080
|
tuya.whitelabel('Tuya', 'TS0201_1', 'Zigbee 3.0 temperature humidity sensor with display', ['_TZ3210_alxkwn0h']),
|
|
3067
3081
|
tuya.whitelabel('Tuya', 'ZTH01/ZTH02', 'Temperature and humidity sensor', ['_TZ3000_0s1izerx']),
|
|
3068
3082
|
tuya.whitelabel('SEDEA', 'eTH730', 'Temperature and humidity sensor', ['_TZ3000_lqmvrwa2']),
|
|
3083
|
+
tuya.whitelabel('Danfoss', '014G2480', 'Temperature and humidity sensor', ['_TZ3000_mxzo5rhf']),
|
|
3069
3084
|
],
|
|
3070
3085
|
},
|
|
3071
3086
|
{
|
|
@@ -5035,11 +5050,11 @@ const definitions = [
|
|
|
5035
5050
|
},
|
|
5036
5051
|
},
|
|
5037
5052
|
{
|
|
5038
|
-
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_9mjy74mp', '_TZE200_rtrmfadk']),
|
|
5053
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_9mjy74mp', '_TZE200_rtrmfadk', '_TZE200_9mjy74mp']),
|
|
5039
5054
|
model: 'TRV602',
|
|
5040
5055
|
vendor: 'Tuya',
|
|
5041
5056
|
description: 'Thermostatic radiator valve.',
|
|
5042
|
-
whiteLabel: [tuya.whitelabel('Moes', 'TRV801', 'Thermostatic radiator valve', ['_TZE204_9mjy74mp'])],
|
|
5057
|
+
whiteLabel: [tuya.whitelabel('Moes', 'TRV801', 'Thermostatic radiator valve', ['_TZE204_9mjy74mp', '_TZE200_9mjy74mp'])],
|
|
5043
5058
|
onEvent: tuya.onEventSetLocalTime,
|
|
5044
5059
|
fromZigbee: [tuya.fz.datapoints],
|
|
5045
5060
|
toZigbee: [tuya.tz.datapoints],
|
|
@@ -5113,10 +5128,11 @@ const definitions = [
|
|
|
5113
5128
|
},
|
|
5114
5129
|
},
|
|
5115
5130
|
{
|
|
5116
|
-
fingerprint:
|
|
5131
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_qyr2m29i', '_TZE204_ltwbm23f']),
|
|
5117
5132
|
model: 'TRV602Z',
|
|
5118
5133
|
vendor: 'Tuya',
|
|
5119
5134
|
description: 'Thermostatic radiator valve.',
|
|
5135
|
+
whiteLabel: [tuya.whitelabel('Moes', 'TRV801Z', 'Thermostatic radiator valve', ['_TZE204_qyr2m29i'])],
|
|
5120
5136
|
extend: [tuyaBase({ dp: true })],
|
|
5121
5137
|
exposes: [
|
|
5122
5138
|
e.battery(),
|
|
@@ -5236,6 +5252,100 @@ const definitions = [
|
|
|
5236
5252
|
],
|
|
5237
5253
|
},
|
|
5238
5254
|
},
|
|
5255
|
+
{
|
|
5256
|
+
fingerprint: [{ modelID: 'TS0601', manufacturerName: '_TZE284_ymldrmzx' }],
|
|
5257
|
+
model: 'TRV603-WZ',
|
|
5258
|
+
vendor: 'Tuya',
|
|
5259
|
+
description: 'Thermostatic radiator valve.',
|
|
5260
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
5261
|
+
toZigbee: [tuya.tz.datapoints],
|
|
5262
|
+
onEvent: tuya.onEventSetLocalTime,
|
|
5263
|
+
configure: tuya.configureMagicPacket,
|
|
5264
|
+
exposes: [
|
|
5265
|
+
e.battery(),
|
|
5266
|
+
e.child_lock(),
|
|
5267
|
+
e.window_detection(),
|
|
5268
|
+
e.binary('window', ea.STATE, 'OPEN', 'CLOSE').withDescription('Window status closed or open '),
|
|
5269
|
+
e.enum('mode', ea.STATE_SET, ['auto', 'manual']).withDescription('Mode'),
|
|
5270
|
+
e.binary('holiday_mode', ea.STATE_SET, 'ON', 'OFF'),
|
|
5271
|
+
e.binary('heating_stop', ea.STATE_SET, 'ON', 'OFF'),
|
|
5272
|
+
e
|
|
5273
|
+
.climate()
|
|
5274
|
+
.withLocalTemperature(ea.STATE)
|
|
5275
|
+
.withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
5276
|
+
.withLocalTemperatureCalibration(-30, 30, 0.1, ea.STATE_SET),
|
|
5277
|
+
e.comfort_temperature().withValueMin(5).withValueMax(30).withDescription('Comfort mode temperature'),
|
|
5278
|
+
e.eco_temperature().withValueMin(5).withValueMax(30).withDescription('Eco mode temperature'),
|
|
5279
|
+
e.enum('screen_orientation', ea.STATE_SET, ['up', 'right', 'down', 'left']).withDescription('Screen orientation'),
|
|
5280
|
+
tuya.exposes.frostProtection(),
|
|
5281
|
+
e.binary('boost_heating', ea.STATE_SET, 'ON', 'OFF'),
|
|
5282
|
+
e.numeric('boost_time', ea.STATE_SET).withUnit('min').withDescription('Countdown in minutes').withValueMin(0).withValueMax(1000),
|
|
5283
|
+
e.numeric('fault_code', ea.STATE).withDescription('Raw fault code'),
|
|
5284
|
+
],
|
|
5285
|
+
meta: {
|
|
5286
|
+
tuyaDatapoints: [
|
|
5287
|
+
[
|
|
5288
|
+
2,
|
|
5289
|
+
'mode',
|
|
5290
|
+
tuya.valueConverterBasic.lookup({
|
|
5291
|
+
auto: tuya.enum(0),
|
|
5292
|
+
manual: tuya.enum(1),
|
|
5293
|
+
}),
|
|
5294
|
+
],
|
|
5295
|
+
[4, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
|
|
5296
|
+
[5, 'local_temperature', tuya.valueConverter.divideBy10],
|
|
5297
|
+
[6, 'battery', tuya.valueConverter.raw],
|
|
5298
|
+
[
|
|
5299
|
+
7,
|
|
5300
|
+
'child_lock',
|
|
5301
|
+
tuya.valueConverterBasic.lookup({
|
|
5302
|
+
LOCK: true,
|
|
5303
|
+
UNLOCK: false,
|
|
5304
|
+
}),
|
|
5305
|
+
],
|
|
5306
|
+
[14, 'window_detection', tuya.valueConverter.onOff],
|
|
5307
|
+
[
|
|
5308
|
+
15,
|
|
5309
|
+
'window',
|
|
5310
|
+
tuya.valueConverterBasic.lookup({
|
|
5311
|
+
CLOSE: tuya.enum(0),
|
|
5312
|
+
OPEN: tuya.enum(1),
|
|
5313
|
+
}),
|
|
5314
|
+
],
|
|
5315
|
+
[21, 'holiday_temperature', tuya.valueConverter.divideBy10],
|
|
5316
|
+
[36, 'frost_protection', tuya.valueConverter.onOff],
|
|
5317
|
+
[39, 'switch_scale', tuya.valueConverter.raw],
|
|
5318
|
+
[47, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
|
|
5319
|
+
[101, 'boost_heating', tuya.valueConverter.onOff],
|
|
5320
|
+
[102, 'boost_time', tuya.valueConverter.countdown],
|
|
5321
|
+
[103, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(1)],
|
|
5322
|
+
[104, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(2)],
|
|
5323
|
+
[105, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(3)],
|
|
5324
|
+
[106, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(4)],
|
|
5325
|
+
[107, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(5)],
|
|
5326
|
+
[108, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(6)],
|
|
5327
|
+
[109, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(7)],
|
|
5328
|
+
[110, 'holiday_mode', tuya.valueConverter.onOff],
|
|
5329
|
+
[
|
|
5330
|
+
111,
|
|
5331
|
+
'screen_orientation',
|
|
5332
|
+
tuya.valueConverterBasic.lookup({
|
|
5333
|
+
up: tuya.enum(0),
|
|
5334
|
+
right: tuya.enum(1),
|
|
5335
|
+
down: tuya.enum(2),
|
|
5336
|
+
left: tuya.enum(3),
|
|
5337
|
+
}),
|
|
5338
|
+
],
|
|
5339
|
+
[112, 'antifrost_temperature', tuya.valueConverter.divideBy10],
|
|
5340
|
+
[113, 'heating_stop', tuya.valueConverter.onOff],
|
|
5341
|
+
[114, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
|
|
5342
|
+
[115, 'programming_mode', tuya.valueConverter.raw],
|
|
5343
|
+
[116, 'eco_temperature', tuya.valueConverter.divideBy10],
|
|
5344
|
+
[117, 'comfort_temperature', tuya.valueConverter.divideBy10],
|
|
5345
|
+
[118, 'fault_code', tuya.valueConverter.raw],
|
|
5346
|
+
],
|
|
5347
|
+
},
|
|
5348
|
+
},
|
|
5239
5349
|
{
|
|
5240
5350
|
zigbeeModel: ['TS0121'],
|
|
5241
5351
|
model: 'TS0121_plug',
|
|
@@ -6836,7 +6946,7 @@ const definitions = [
|
|
|
6836
6946
|
return { auto: tuya.enum(0), manual: tuya.enum(1), temporary_manual: tuya.enum(2) };
|
|
6837
6947
|
}
|
|
6838
6948
|
else {
|
|
6839
|
-
return { auto: tuya.enum(
|
|
6949
|
+
return { auto: tuya.enum(1), manual: tuya.enum(0), temporary_manual: tuya.enum(2) };
|
|
6840
6950
|
}
|
|
6841
6951
|
}),
|
|
6842
6952
|
],
|
|
@@ -6964,7 +7074,7 @@ const definitions = [
|
|
|
6964
7074
|
whiteLabel: [tuya.whitelabel('Tuya', 'QT-07S', 'Soil sensor', ['_TZE204_myd45weu'])],
|
|
6965
7075
|
},
|
|
6966
7076
|
{
|
|
6967
|
-
fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw', '_TZ3000_9kbbfeho']),
|
|
7077
|
+
fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw', '_TZ3000_9kbbfeho', '_TZ3000_l6rsaipj']),
|
|
6968
7078
|
model: 'TS0222_light',
|
|
6969
7079
|
vendor: 'Tuya',
|
|
6970
7080
|
description: 'Light sensor',
|
|
@@ -7148,17 +7258,61 @@ const definitions = [
|
|
|
7148
7258
|
model: 'PJ-ZGD01',
|
|
7149
7259
|
vendor: 'Tuya',
|
|
7150
7260
|
description: 'Garage door opener',
|
|
7151
|
-
fromZigbee: [legacy.fromZigbee.matsee_garage_door_opener, fromZigbee_1.default.ignore_basic_report],
|
|
7152
|
-
toZigbee: [legacy.toZigbee.matsee_garage_door_opener, legacy.toZigbee.tuya_data_point_test],
|
|
7153
7261
|
whiteLabel: [{ vendor: 'MatSee Plus', model: 'PJ-ZGD01' }],
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7262
|
+
extend: [
|
|
7263
|
+
tuyaMagicPacket(),
|
|
7264
|
+
dpBinary({
|
|
7265
|
+
name: 'trigger',
|
|
7266
|
+
dp: 1,
|
|
7267
|
+
type: tuya.dataTypes.bool,
|
|
7268
|
+
valueOn: [true, true],
|
|
7269
|
+
valueOff: [false, false],
|
|
7270
|
+
description: 'Request door to close (= false) or open (= true), will not pulse output if contact shows door is already in requested state',
|
|
7271
|
+
}),
|
|
7272
|
+
dpNumeric({
|
|
7273
|
+
name: 'countdown',
|
|
7274
|
+
dp: 2,
|
|
7275
|
+
type: tuya.dataTypes.number,
|
|
7276
|
+
description: 'Countdown to trigger door movement after a certain time, will pulse output in all cases',
|
|
7277
|
+
unit: 's',
|
|
7278
|
+
valueMin: 0,
|
|
7279
|
+
valueMax: 43200,
|
|
7280
|
+
}),
|
|
7281
|
+
dpBinary({
|
|
7282
|
+
name: 'garage_door_contact',
|
|
7283
|
+
dp: 3,
|
|
7284
|
+
type: tuya.dataTypes.bool,
|
|
7285
|
+
valueOn: [true, false],
|
|
7286
|
+
valueOff: [false, true],
|
|
7287
|
+
description: 'Indicates if the garage door contact is closed (= true) or open (= false)',
|
|
7288
|
+
readOnly: true,
|
|
7289
|
+
}),
|
|
7290
|
+
dpNumeric({
|
|
7291
|
+
name: 'run_time',
|
|
7292
|
+
dp: 4,
|
|
7293
|
+
type: tuya.dataTypes.number,
|
|
7294
|
+
description: 'Configure the time to wait for the door contact status to change before triggering a run time alarm',
|
|
7295
|
+
unit: 's',
|
|
7296
|
+
valueMin: 0,
|
|
7297
|
+
valueMax: 120,
|
|
7298
|
+
}),
|
|
7299
|
+
dpNumeric({
|
|
7300
|
+
name: 'open_alarm_time',
|
|
7301
|
+
dp: 5,
|
|
7302
|
+
type: tuya.dataTypes.number,
|
|
7303
|
+
description: 'Configure the amount of time the door may be open before an open time alarm is triggered',
|
|
7304
|
+
unit: 's',
|
|
7305
|
+
valueMin: 0,
|
|
7306
|
+
valueMax: 86400,
|
|
7307
|
+
}),
|
|
7308
|
+
dpEnumLookup({
|
|
7309
|
+
name: 'status',
|
|
7310
|
+
dp: 12,
|
|
7311
|
+
type: tuya.dataTypes.enum,
|
|
7312
|
+
description: 'Indicates run time alarm, door open alarm or noraml status, will not retunr to normal until door is triggered again',
|
|
7313
|
+
lookup: { 'Open Time Alarm': 0, 'Run Time Alarm': 1, Normal: 2 },
|
|
7314
|
+
readOnly: true,
|
|
7315
|
+
}),
|
|
7162
7316
|
],
|
|
7163
7317
|
},
|
|
7164
7318
|
{
|
|
@@ -13011,6 +13165,142 @@ const definitions = [
|
|
|
13011
13165
|
],
|
|
13012
13166
|
},
|
|
13013
13167
|
},
|
|
13168
|
+
{
|
|
13169
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE284_8zizsafo']),
|
|
13170
|
+
model: 'GX03',
|
|
13171
|
+
vendor: 'GIEX',
|
|
13172
|
+
description: 'GIEX 2 zone watering timer',
|
|
13173
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
13174
|
+
toZigbee: [tuya.tz.datapoints],
|
|
13175
|
+
configure: tuya.configureMagicPacket,
|
|
13176
|
+
exposes: [
|
|
13177
|
+
e.binary('valve_1', ea.STATE_SET, 'ON', 'OFF').withDescription('Switch state'),
|
|
13178
|
+
e
|
|
13179
|
+
.numeric('countdown_1', ea.STATE_SET)
|
|
13180
|
+
.withValueMin(1)
|
|
13181
|
+
.withValueMax(1440)
|
|
13182
|
+
.withValueStep(1)
|
|
13183
|
+
.withUnit('min')
|
|
13184
|
+
.withDescription('Countdown timer for valve operation'),
|
|
13185
|
+
e.binary('valve_2', ea.STATE_SET, 'ON', 'OFF').withDescription('Switch state'),
|
|
13186
|
+
e
|
|
13187
|
+
.numeric('countdown_2', ea.STATE_SET)
|
|
13188
|
+
.withValueMin(1)
|
|
13189
|
+
.withValueMax(1440)
|
|
13190
|
+
.withValueStep(1)
|
|
13191
|
+
.withUnit('min')
|
|
13192
|
+
.withDescription('Countdown timer for valve operation'),
|
|
13193
|
+
e.battery(),
|
|
13194
|
+
],
|
|
13195
|
+
meta: {
|
|
13196
|
+
tuyaDatapoints: [
|
|
13197
|
+
[1, 'valve_1', tuya.valueConverter.onOff],
|
|
13198
|
+
[59, 'battery', tuya.valueConverter.raw],
|
|
13199
|
+
[104, 'valve_1', tuya.valueConverterBasic.lookup({ OFF: tuya.enum(2), ON: tuya.enum(0) })],
|
|
13200
|
+
[2, 'valve_2', tuya.valueConverter.onOff],
|
|
13201
|
+
[105, 'valve_1', tuya.valueConverterBasic.lookup({ OFF: tuya.enum(2), ON: tuya.enum(0) })],
|
|
13202
|
+
[13, 'countdown_1', tuya.valueConverter.raw],
|
|
13203
|
+
[14, 'countdown_2', tuya.valueConverter.raw],
|
|
13204
|
+
],
|
|
13205
|
+
},
|
|
13206
|
+
},
|
|
13207
|
+
{
|
|
13208
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_eaulras5']),
|
|
13209
|
+
model: 'PJ3201A',
|
|
13210
|
+
vendor: 'Dongguan Pinjia Technology Co.,LTD.',
|
|
13211
|
+
description: 'Human Presence Sensor',
|
|
13212
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
13213
|
+
toZigbee: [tuya.tz.datapoints],
|
|
13214
|
+
configure: tuya.configureMagicPacket,
|
|
13215
|
+
exposes: [
|
|
13216
|
+
e.presence().withDescription('Indicates whether the device detected presence. Will be true also when movement (occupancy) is detected.'),
|
|
13217
|
+
e
|
|
13218
|
+
.occupancy()
|
|
13219
|
+
.withDescription('Indicates whether the device detected movement. Will be true when movement. Can remain true even if the target left the detection range. In this case presence will be reset to false reliably.'),
|
|
13220
|
+
e.numeric('closest_target_distance', ea.STATE).withDescription('the target distance away from the sensor').withUnit('m'),
|
|
13221
|
+
e
|
|
13222
|
+
.numeric('movement_timeout', ea.STATE_SET)
|
|
13223
|
+
.withValueMin(0)
|
|
13224
|
+
.withValueMax(43200)
|
|
13225
|
+
.withValueStep(1)
|
|
13226
|
+
.withDescription('Timeout until the movement (occupancy) is reset when no further movement is detected. (Occupancy -> None)')
|
|
13227
|
+
.withUnit('s'),
|
|
13228
|
+
e
|
|
13229
|
+
.numeric('idle_timeout', ea.STATE_SET)
|
|
13230
|
+
.withValueMin(0)
|
|
13231
|
+
.withValueMax(43200)
|
|
13232
|
+
.withValueStep(1)
|
|
13233
|
+
.withDescription('Timeout until the presence is reset when no further presence is detected (Presence -> None)')
|
|
13234
|
+
.withUnit('s'),
|
|
13235
|
+
e.illuminance(),
|
|
13236
|
+
e
|
|
13237
|
+
.numeric('far_movement_sensitivity', ea.STATE_SET)
|
|
13238
|
+
.withValueMin(0)
|
|
13239
|
+
.withValueMax(10)
|
|
13240
|
+
.withValueStep(1)
|
|
13241
|
+
.withDescription('the moving detecting sensitivity 1 meter away'),
|
|
13242
|
+
e
|
|
13243
|
+
.numeric('near_movement_sensitivity', ea.STATE_SET)
|
|
13244
|
+
.withValueMin(0)
|
|
13245
|
+
.withValueMax(10)
|
|
13246
|
+
.withValueStep(1)
|
|
13247
|
+
.withDescription('the moving detecting sensitivity within 1 meter'),
|
|
13248
|
+
e
|
|
13249
|
+
.numeric('near_presence_sensitivity', ea.STATE_SET)
|
|
13250
|
+
.withValueMin(0)
|
|
13251
|
+
.withValueMax(10)
|
|
13252
|
+
.withValueStep(1)
|
|
13253
|
+
.withDescription('the presence detecting sensitivity within 1 meter'),
|
|
13254
|
+
e
|
|
13255
|
+
.numeric('far_presence_sensitivity', ea.STATE_SET)
|
|
13256
|
+
.withValueMin(0)
|
|
13257
|
+
.withValueMax(10)
|
|
13258
|
+
.withValueStep(1)
|
|
13259
|
+
.withDescription('the presence detecting sensitivity 1 meter away'),
|
|
13260
|
+
e
|
|
13261
|
+
.numeric('closest_detection_distance', ea.STATE_SET)
|
|
13262
|
+
.withValueMin(0.1)
|
|
13263
|
+
.withValueMax(7)
|
|
13264
|
+
.withValueStep(0.1)
|
|
13265
|
+
.withDescription('The closest distance that can be detected')
|
|
13266
|
+
.withUnit('m'),
|
|
13267
|
+
e
|
|
13268
|
+
.numeric('largest_movement_detection_distance', ea.STATE_SET)
|
|
13269
|
+
.withValueMin(0.1)
|
|
13270
|
+
.withValueMax(7)
|
|
13271
|
+
.withValueStep(0.1)
|
|
13272
|
+
.withDescription('The farest distance that can be detected (moving)')
|
|
13273
|
+
.withUnit('m'),
|
|
13274
|
+
e
|
|
13275
|
+
.numeric('largest_presence_detection_distance', ea.STATE_SET)
|
|
13276
|
+
.withValueMin(0.1)
|
|
13277
|
+
.withValueMax(7)
|
|
13278
|
+
.withValueStep(0.1)
|
|
13279
|
+
.withDescription('The farest distance that can be detected (present)')
|
|
13280
|
+
.withUnit('m'),
|
|
13281
|
+
e.binary('restore_factory', ea.STATE_SET, 'ON', 'OFF').withDescription('restore_factory'),
|
|
13282
|
+
e.binary('led_indicator', ea.STATE_SET, 'ON', 'OFF').withDescription('turn on or off the led '),
|
|
13283
|
+
],
|
|
13284
|
+
meta: {
|
|
13285
|
+
tuyaDatapoints: [
|
|
13286
|
+
[104, 'presence', tuya.valueConverter.trueFalse1],
|
|
13287
|
+
[112, 'occupancy', tuya.valueConverter.trueFalseInvert],
|
|
13288
|
+
[9, 'closest_target_distance', tuya.valueConverter.divideBy100],
|
|
13289
|
+
[101, 'movement_timeout', tuya.valueConverter.raw],
|
|
13290
|
+
[102, 'idle_timeout', tuya.valueConverter.raw],
|
|
13291
|
+
[103, 'illuminance', tuya.valueConverter.divideBy10],
|
|
13292
|
+
[105, 'far_movement_sensitivity', tuya.valueConverter.raw],
|
|
13293
|
+
[110, 'near_movement_sensitivity', tuya.valueConverter.raw],
|
|
13294
|
+
[109, 'near_presence_sensitivity', tuya.valueConverter.raw],
|
|
13295
|
+
[111, 'far_presence_sensitivity', tuya.valueConverter.raw],
|
|
13296
|
+
[3, 'closest_detection_distance', tuya.valueConverter.divideBy100],
|
|
13297
|
+
[4, 'largest_movement_detection_distance', tuya.valueConverter.divideBy100],
|
|
13298
|
+
[108, 'largest_presence_detection_distance', tuya.valueConverter.divideBy100],
|
|
13299
|
+
[106, 'restore_factory', tuya.valueConverterBasic.lookup({ ON: false, OFF: true })],
|
|
13300
|
+
[107, 'led_indicator', tuya.valueConverterBasic.lookup({ ON: false, OFF: true })],
|
|
13301
|
+
],
|
|
13302
|
+
},
|
|
13303
|
+
},
|
|
13014
13304
|
];
|
|
13015
13305
|
exports.default = definitions;
|
|
13016
13306
|
module.exports = definitions;
|