zigbee-herdsman-converters 21.11.0 → 21.13.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 +40 -0
- package/converters/fromZigbee.js +5 -5
- package/converters/fromZigbee.js.map +1 -1
- package/converters/toZigbee.d.ts.map +1 -1
- package/converters/toZigbee.js +14 -2
- package/converters/toZigbee.js.map +1 -1
- package/devices/datek.d.ts.map +1 -1
- package/devices/datek.js +13 -1
- package/devices/datek.js.map +1 -1
- package/devices/dresden_elektronik.js +1 -1
- package/devices/dresden_elektronik.js.map +1 -1
- package/devices/hzc_electric.d.ts.map +1 -1
- package/devices/hzc_electric.js +11 -0
- package/devices/hzc_electric.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/lumi.d.ts.map +1 -1
- package/devices/lumi.js +8 -0
- package/devices/lumi.js.map +1 -1
- package/devices/lutron.d.ts.map +1 -1
- package/devices/lutron.js +2 -1
- package/devices/lutron.js.map +1 -1
- package/devices/moes.js +2 -2
- package/devices/moes.js.map +1 -1
- package/devices/salus_controls.d.ts.map +1 -1
- package/devices/salus_controls.js +41 -2
- package/devices/salus_controls.js.map +1 -1
- package/devices/sonoff.d.ts.map +1 -1
- package/devices/sonoff.js +5 -0
- package/devices/sonoff.js.map +1 -1
- package/devices/tuya.d.ts.map +1 -1
- package/devices/tuya.js +174 -7
- package/devices/tuya.js.map +1 -1
- package/devices/xal.d.ts.map +1 -1
- package/devices/xal.js +9 -2
- package/devices/xal.js.map +1 -1
- package/devices/yokis.d.ts +4 -0
- package/devices/yokis.d.ts.map +1 -0
- package/devices/yokis.js +2454 -0
- package/devices/yokis.js.map +1 -0
- package/lib/modernExtend.d.ts.map +1 -1
- package/lib/modernExtend.js +5 -1
- package/lib/modernExtend.js.map +1 -1
- package/package.json +5 -5
package/devices/tuya.js
CHANGED
|
@@ -1308,7 +1308,7 @@ const definitions = [
|
|
|
1308
1308
|
exposes: [e.co2()],
|
|
1309
1309
|
},
|
|
1310
1310
|
{
|
|
1311
|
-
fingerprint:
|
|
1311
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_7bztmfm1', '_TZE204_7bztmfm1']),
|
|
1312
1312
|
model: 'TS0601_smart_CO_air_box',
|
|
1313
1313
|
vendor: 'Tuya',
|
|
1314
1314
|
description: 'Smart air box (carbon monoxide)',
|
|
@@ -3616,6 +3616,7 @@ const definitions = [
|
|
|
3616
3616
|
'_TZ3000_qaabwu5c',
|
|
3617
3617
|
'_TZ3000_ikuxinvo',
|
|
3618
3618
|
'_TZ3000_hzlsaltw',
|
|
3619
|
+
'_TZ3000_jsfzkftc',
|
|
3619
3620
|
]),
|
|
3620
3621
|
model: 'TS0001_power',
|
|
3621
3622
|
description: 'Switch with power monitoring',
|
|
@@ -5438,6 +5439,7 @@ const definitions = [
|
|
|
5438
5439
|
tuya.whitelabel('Elivco', 'LSPA9', 'Smart plug (with power monitoring)', ['_TZ3000_okaz9tjs']),
|
|
5439
5440
|
tuya.whitelabel('PSMART', 'T440', 'Smart wallsocket (with power monitoring)', ['_TZ3000_y4ona9me']),
|
|
5440
5441
|
tuya.whitelabel('Nous', 'A6Z', 'Outdoor smart socket', ['_TZ3000_266azbg3']),
|
|
5442
|
+
tuya.whitelabel('Nedis', 'ZBPO130FWT', 'Outdoor smart plug (with power monitoring)', ['_TZ3000_3ias4w4o']),
|
|
5441
5443
|
],
|
|
5442
5444
|
ota: true,
|
|
5443
5445
|
extend: [
|
|
@@ -5595,7 +5597,7 @@ const definitions = [
|
|
|
5595
5597
|
},
|
|
5596
5598
|
},
|
|
5597
5599
|
{
|
|
5598
|
-
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_m9skfctm', '_TZE200_rccxox8p']),
|
|
5600
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_m9skfctm', '_TZE200_rccxox8p', '_TZE284_rccxox8p']),
|
|
5599
5601
|
model: 'PA-44Z',
|
|
5600
5602
|
vendor: 'Tuya',
|
|
5601
5603
|
description: 'Photoelectric smoke detector',
|
|
@@ -6615,6 +6617,30 @@ const definitions = [
|
|
|
6615
6617
|
}
|
|
6616
6618
|
},
|
|
6617
6619
|
},
|
|
6620
|
+
{
|
|
6621
|
+
fingerprint: tuya.fingerprint('TS0726', ['_TZ3002_rbnycsav']),
|
|
6622
|
+
model: 'TS0726_3_gang',
|
|
6623
|
+
vendor: 'Tuya',
|
|
6624
|
+
description: '3 gang switch with neutral wire',
|
|
6625
|
+
fromZigbee: [fromZigbee_1.default.on_off, tuya.fz.power_on_behavior_2, fromZigbee_1.default.ignore_basic_report, fzLocal.TS0726_action],
|
|
6626
|
+
toZigbee: [toZigbee_1.default.on_off, tuya.tz.power_on_behavior_2, tzLocal.TS0726_switch_mode],
|
|
6627
|
+
exposes: [
|
|
6628
|
+
...[1, 2, 3].map((ep) => e.switch().withEndpoint(`l${ep}`)),
|
|
6629
|
+
...[1, 2, 3].map((ep) => e.power_on_behavior().withEndpoint(`l${ep}`)),
|
|
6630
|
+
...[1, 2, 3].map((ep) => e.enum('switch_mode', ea.STATE_SET, ['switch', 'scene']).withEndpoint(`l${ep}`)),
|
|
6631
|
+
e.action(['scene_1', 'scene_2', 'scene_3']),
|
|
6632
|
+
],
|
|
6633
|
+
endpoint: (device) => {
|
|
6634
|
+
return { l1: 1, l2: 2, l3: 3 };
|
|
6635
|
+
},
|
|
6636
|
+
meta: { multiEndpoint: true },
|
|
6637
|
+
configure: async (device, coordinatorEndpoint) => {
|
|
6638
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
6639
|
+
for (const ep of [1, 2, 3]) {
|
|
6640
|
+
await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ['genOnOff']);
|
|
6641
|
+
}
|
|
6642
|
+
},
|
|
6643
|
+
},
|
|
6618
6644
|
{
|
|
6619
6645
|
zigbeeModel: ['TS0726'],
|
|
6620
6646
|
model: 'TS0726_4_gang',
|
|
@@ -12213,14 +12239,14 @@ const definitions = [
|
|
|
12213
12239
|
},
|
|
12214
12240
|
},
|
|
12215
12241
|
{
|
|
12216
|
-
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_q22avxbv', '_TZE204_mrffaamu']),
|
|
12242
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_q22avxbv', '_TZE204_mrffaamu', '_TZE204_tzreobvu']),
|
|
12217
12243
|
model: 'TOQCB2-80',
|
|
12218
12244
|
vendor: 'Tuya',
|
|
12219
12245
|
description: 'Smart circuit breaker',
|
|
12220
12246
|
fromZigbee: [tuya.fz.datapoints],
|
|
12221
12247
|
toZigbee: [tuya.tz.datapoints],
|
|
12222
|
-
// Important: respondToMcuVersionResponse should be false
|
|
12223
|
-
// queryIntervalSeconds: is doing a pooling to update device's parameters, now
|
|
12248
|
+
// Important: respondToMcuVersionResponse should be false otherwise there is an avalanche of commandMcuVersionResponse messages every second.
|
|
12249
|
+
// queryIntervalSeconds: is doing a pooling to update the device's parameters, now defined to update data every 3 minutes.
|
|
12224
12250
|
onEvent: tuya.onEvent({ respondToMcuVersionResponse: false, queryIntervalSeconds: 3 * 60 }),
|
|
12225
12251
|
configure: tuya.configureMagicPacket,
|
|
12226
12252
|
exposes: [
|
|
@@ -12546,7 +12572,7 @@ const definitions = [
|
|
|
12546
12572
|
{
|
|
12547
12573
|
zigbeeModel: ['TS0105'],
|
|
12548
12574
|
model: 'TS0105',
|
|
12549
|
-
vendor: '
|
|
12575
|
+
vendor: 'Tuya',
|
|
12550
12576
|
description: '3 gang switch',
|
|
12551
12577
|
extend: [tuyaBase({ dp: true }), (0, modernExtend_1.deviceEndpoints)({ endpoints: { l1: 1, l2: 1, l3: 1 } })],
|
|
12552
12578
|
exposes: [
|
|
@@ -12845,7 +12871,7 @@ const definitions = [
|
|
|
12845
12871
|
{
|
|
12846
12872
|
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ha0vwoew']),
|
|
12847
12873
|
model: 'TS0601_thermostat_thermosphere',
|
|
12848
|
-
vendor: '
|
|
12874
|
+
vendor: 'Tuya',
|
|
12849
12875
|
description: 'ThermoSphere thermostat',
|
|
12850
12876
|
extend: [tuyaBase({ dp: true })],
|
|
12851
12877
|
exposes: [
|
|
@@ -13333,6 +13359,147 @@ const definitions = [
|
|
|
13333
13359
|
],
|
|
13334
13360
|
},
|
|
13335
13361
|
},
|
|
13362
|
+
{
|
|
13363
|
+
fingerprint: tuya.fingerprint('TS0225', ['_TZ321C_fkzihax8', '_TZ321C_4slreunp']),
|
|
13364
|
+
model: 'MTD085-ZB',
|
|
13365
|
+
vendor: 'LeapMMW',
|
|
13366
|
+
description: 'Human presence sensor',
|
|
13367
|
+
extend: [tuyaBase({ dp: true })],
|
|
13368
|
+
fromZigbee: [fromZigbee_1.default.ias_occupancy_alarm_1, fromZigbee_1.default.ias_occupancy_alarm_1_report],
|
|
13369
|
+
exposes: [
|
|
13370
|
+
e.occupancy(),
|
|
13371
|
+
e.illuminance(),
|
|
13372
|
+
e.numeric('target_distance', ea.STATE).withDescription('Distance to target').withUnit('m'),
|
|
13373
|
+
e
|
|
13374
|
+
.numeric('radar_sensitivity', ea.STATE_SET)
|
|
13375
|
+
.withValueMin(10)
|
|
13376
|
+
.withValueMax(100)
|
|
13377
|
+
.withValueStep(10)
|
|
13378
|
+
.withUnit('%')
|
|
13379
|
+
.withDescription('Detection threshold for the strength of object energy'),
|
|
13380
|
+
e
|
|
13381
|
+
.numeric('detection_range', ea.STATE_SET)
|
|
13382
|
+
.withValueMin(0)
|
|
13383
|
+
.withValueMax(8)
|
|
13384
|
+
.withValueStep(0.1)
|
|
13385
|
+
.withUnit('m')
|
|
13386
|
+
.withDescription('Maximum distance detected by the sensor'),
|
|
13387
|
+
e
|
|
13388
|
+
.numeric('shield_range', ea.STATE_SET)
|
|
13389
|
+
.withValueMin(0)
|
|
13390
|
+
.withValueMax(8)
|
|
13391
|
+
.withValueStep(0.1)
|
|
13392
|
+
.withUnit('m')
|
|
13393
|
+
.withDescription('Nearest distance detected by the sensor'),
|
|
13394
|
+
e
|
|
13395
|
+
.numeric('entry_sensitivity', ea.STATE_SET)
|
|
13396
|
+
.withValueMin(10)
|
|
13397
|
+
.withValueMax(100)
|
|
13398
|
+
.withValueStep(10)
|
|
13399
|
+
.withUnit('%')
|
|
13400
|
+
.withDescription('Sensitivity threshold triggered for the first time when the target enters the detection range'),
|
|
13401
|
+
e
|
|
13402
|
+
.numeric('entry_distance', ea.STATE_SET)
|
|
13403
|
+
.withValueMin(0)
|
|
13404
|
+
.withValueMax(8)
|
|
13405
|
+
.withValueStep(0.1)
|
|
13406
|
+
.withUnit('m')
|
|
13407
|
+
.withDescription('Dectection distance when unoccupied'),
|
|
13408
|
+
e
|
|
13409
|
+
.numeric('entry_filter_time', ea.STATE_SET)
|
|
13410
|
+
.withValueMin(0)
|
|
13411
|
+
.withValueMax(0.5)
|
|
13412
|
+
.withValueStep(0.05)
|
|
13413
|
+
.withUnit('s')
|
|
13414
|
+
.withDescription('Sensitivity threshold triggered for the first time when the target enters the detection range '),
|
|
13415
|
+
e
|
|
13416
|
+
.numeric('departure_delay', ea.STATE_SET)
|
|
13417
|
+
.withValueMin(5)
|
|
13418
|
+
.withValueMax(7200)
|
|
13419
|
+
.withValueStep(1)
|
|
13420
|
+
.withUnit('s')
|
|
13421
|
+
.withDescription('Confirmation time after the target disappears'),
|
|
13422
|
+
e
|
|
13423
|
+
.numeric('block_time', ea.STATE_SET)
|
|
13424
|
+
.withValueMin(0)
|
|
13425
|
+
.withValueMax(10)
|
|
13426
|
+
.withValueStep(0.1)
|
|
13427
|
+
.withUnit('s')
|
|
13428
|
+
.withDescription('Time for the target to be detected again after switching from manned(occupy) to unmanned(unoccupy) mode'),
|
|
13429
|
+
e.enum('status_indication', ea.STATE_SET, ['OFF', 'ON']).withDescription('Indicator light will turn on when human presence is detected'),
|
|
13430
|
+
e
|
|
13431
|
+
.enum('sensor', ea.STATE_SET, ['on', 'occupied', 'unoccupied'])
|
|
13432
|
+
.withDescription(`The radar sensor can be set in three states: on, occupied and unoccupied. For example, if set to occupied, ` +
|
|
13433
|
+
`it will continue to maintain presence regardless of whether someone is present or not. If set to unoccupied, the unoccupied ` +
|
|
13434
|
+
`state will be maintained permanently.`),
|
|
13435
|
+
e
|
|
13436
|
+
.enum('scene_preset', ea.STATE_SET, [
|
|
13437
|
+
'Custom',
|
|
13438
|
+
'Toilet',
|
|
13439
|
+
'Kitchen',
|
|
13440
|
+
'Hallway',
|
|
13441
|
+
'Bedroom',
|
|
13442
|
+
'Livingroom',
|
|
13443
|
+
'Meetingroom',
|
|
13444
|
+
'Factory default',
|
|
13445
|
+
])
|
|
13446
|
+
.withDescription(`Presets`),
|
|
13447
|
+
e
|
|
13448
|
+
.enum('distance_report_mode', ea.STATE_SET, ['Normal', 'Occupancy detection'])
|
|
13449
|
+
.withDescription('Indicator light will turn on when human presence is detected'),
|
|
13450
|
+
e
|
|
13451
|
+
.enum('debug_mode', ea.STATE_SET, ['OFF', 'ON'])
|
|
13452
|
+
.withDescription(`In debug mode, radar will report more information, can be used to identify interference`),
|
|
13453
|
+
e.numeric('debug_distance', ea.STATE).withDescription('Real time distance to target').withUnit('m'),
|
|
13454
|
+
e.numeric('debug_countdown', ea.STATE).withDescription('Time before the target disappears').withUnit('s'),
|
|
13455
|
+
],
|
|
13456
|
+
meta: {
|
|
13457
|
+
tuyaSendCommand: 'sendData',
|
|
13458
|
+
tuyaDatapoints: [
|
|
13459
|
+
// [1, 'presence', tuya.valueConverter.trueFalse1],
|
|
13460
|
+
[101, 'entry_sensitivity', tuya.valueConverter.raw],
|
|
13461
|
+
[102, 'entry_distance', tuya.valueConverter.divideBy100],
|
|
13462
|
+
[103, 'departure_delay', tuya.valueConverter.raw],
|
|
13463
|
+
[104, 'entry_filter_time', tuya.valueConverter.divideBy100],
|
|
13464
|
+
[105, 'block_time', tuya.valueConverter.divideBy10],
|
|
13465
|
+
[107, 'illuminance', tuya.valueConverter.divideBy10],
|
|
13466
|
+
[108, 'debug_mode', tuya.valueConverterBasic.lookup({ OFF: tuya.enum(0), ON: tuya.enum(1) })],
|
|
13467
|
+
[109, 'debug_distance', tuya.valueConverter.divideBy100],
|
|
13468
|
+
[110, 'debug_countdown', tuya.valueConverter.raw],
|
|
13469
|
+
[
|
|
13470
|
+
111,
|
|
13471
|
+
'scene_preset',
|
|
13472
|
+
tuya.valueConverterBasic.lookup({
|
|
13473
|
+
Custom: tuya.enum(0),
|
|
13474
|
+
Toilet: tuya.enum(1),
|
|
13475
|
+
Kitchen: tuya.enum(2),
|
|
13476
|
+
Hallway: tuya.enum(3),
|
|
13477
|
+
Bedroom: tuya.enum(4),
|
|
13478
|
+
Livingroom: tuya.enum(5),
|
|
13479
|
+
Meetingroom: tuya.enum(6),
|
|
13480
|
+
Default: tuya.enum(7),
|
|
13481
|
+
}),
|
|
13482
|
+
],
|
|
13483
|
+
[
|
|
13484
|
+
112,
|
|
13485
|
+
'sensor',
|
|
13486
|
+
tuya.valueConverterBasic.lookup({
|
|
13487
|
+
on: tuya.enum(0),
|
|
13488
|
+
occupied: tuya.enum(1),
|
|
13489
|
+
unoccupied: tuya.enum(2),
|
|
13490
|
+
}),
|
|
13491
|
+
],
|
|
13492
|
+
[113, 'cline', tuya.valueConverter.raw],
|
|
13493
|
+
[114, 'status_indication', tuya.valueConverterBasic.lookup({ OFF: tuya.enum(0), ON: tuya.enum(1) })],
|
|
13494
|
+
[115, 'radar_sensitivity', tuya.valueConverter.raw],
|
|
13495
|
+
[116, 'shield_range', tuya.valueConverter.divideBy100],
|
|
13496
|
+
[117, 'detection_range', tuya.valueConverter.divideBy100],
|
|
13497
|
+
[118, 'equipment_status', tuya.valueConverter.raw],
|
|
13498
|
+
[119, 'target_distance', tuya.valueConverter.divideBy100],
|
|
13499
|
+
[120, 'distance_report_mode', tuya.valueConverterBasic.lookup({ Normal: tuya.enum(0), 'Occupancy detection': tuya.enum(1) })],
|
|
13500
|
+
],
|
|
13501
|
+
},
|
|
13502
|
+
},
|
|
13336
13503
|
{
|
|
13337
13504
|
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_d6i25bwg']),
|
|
13338
13505
|
model: 'PO-BOCO-ELEC',
|