zigbee-herdsman-converters 15.132.0 → 16.0.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 +11 -0
- package/converters/toZigbee.d.ts.map +1 -1
- package/converters/toZigbee.js +43 -7
- package/converters/toZigbee.js.map +1 -1
- package/devices/gledopto.js +1 -1
- package/devices/gledopto.js.map +1 -1
- package/devices/index.d.ts +1 -1
- package/devices/ubisys.d.ts.map +1 -1
- package/devices/ubisys.js +2 -0
- package/devices/ubisys.js.map +1 -1
- package/index.js +39 -50
- package/lib/exposes.d.ts +1 -2
- package/lib/exposes.d.ts.map +1 -1
- package/lib/legacy.d.ts.map +1 -1
- package/lib/legacy.js +4 -0
- package/lib/legacy.js.map +1 -1
- package/lib/ota/index.d.ts +2 -0
- package/lib/ota/index.d.ts.map +1 -1
- package/lib/ota/index.js +0 -8
- package/lib/ota/index.js.map +1 -1
- package/lib/tuya.d.ts.map +1 -1
- package/lib/tuya.js +2 -0
- package/lib/tuya.js.map +1 -1
- package/lib/types.d.ts +17 -9
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts +2 -2
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +16 -8
- package/lib/utils.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [16.0.0](https://github.com/Koenkk/zigbee-herdsman-converters/compare/v15.132.0...v16.0.0) (2023-12-03)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* **ignore:** Fix typing and remove legacy from index ([#6614](https://github.com/Koenkk/zigbee-herdsman-converters/issues/6614))
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **ignore:** Fix typing and remove legacy from index ([#6614](https://github.com/Koenkk/zigbee-herdsman-converters/issues/6614)) ([42d37a0](https://github.com/Koenkk/zigbee-herdsman-converters/commit/42d37a09dc6bd80c62dbdc25b7423042cab99f92))
|
|
13
|
+
|
|
3
14
|
## [15.132.0](https://github.com/Koenkk/zigbee-herdsman-converters/compare/v15.131.0...v15.132.0) (2023-12-03)
|
|
4
15
|
|
|
5
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toZigbee.d.ts","sourceRoot":"","sources":["../src/converters/toZigbee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAC,MAAM,cAAc,CAAC;AAOvD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"toZigbee.d.ts","sourceRoot":"","sources":["../src/converters/toZigbee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAC,MAAM,cAAc,CAAC;AAOvD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AA6lK1C,QAAA,MAAM,UAAU;;QAjIR;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAl0HH;;;;;;;;;;;WAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mLA21FoC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0lCS,CAAC;AAEpE,eAAe,UAAU,CAAC"}
|
package/converters/toZigbee.js
CHANGED
|
@@ -244,6 +244,8 @@ const converters2 = {
|
|
|
244
244
|
convertSet: async (entity, key, value, meta) => {
|
|
245
245
|
utils.assertEndpoint(entity);
|
|
246
246
|
utils.assertObject(value, key);
|
|
247
|
+
if (Array.isArray(meta.mapped))
|
|
248
|
+
throw new Error(`Not supported for groups`);
|
|
247
249
|
const isNotification = value.hasOwnProperty('transaction');
|
|
248
250
|
const modeSrc = isNotification ? constants.armNotification : constants.armMode;
|
|
249
251
|
const mode = utils.getKey(modeSrc, value.mode, undefined, Number);
|
|
@@ -352,7 +354,8 @@ const converters2 = {
|
|
|
352
354
|
const pinCode = value.pin_code;
|
|
353
355
|
if (isNaN(user))
|
|
354
356
|
throw new Error('user must be numbers');
|
|
355
|
-
|
|
357
|
+
const pinCodeCount = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
358
|
+
if (!utils.isInRange(0, pinCodeCount - 1, user))
|
|
356
359
|
throw new Error('user must be in range for device');
|
|
357
360
|
if (pinCode == null) {
|
|
358
361
|
await entity.command('closuresDoorLock', 'clearPinCode', { 'userid': user }, utils.getOptions(meta.mapped, entity));
|
|
@@ -374,7 +377,7 @@ const converters2 = {
|
|
|
374
377
|
// @ts-expect-error
|
|
375
378
|
const user = meta && meta.message && meta.message.pin_code ? meta.message.pin_code.user : undefined;
|
|
376
379
|
if (user === undefined) {
|
|
377
|
-
const max = meta.mapped
|
|
380
|
+
const max = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
378
381
|
// Get all
|
|
379
382
|
const options = utils.getOptions(meta.mapped, entity);
|
|
380
383
|
for (let i = 0; i < max; i++) {
|
|
@@ -385,7 +388,8 @@ const converters2 = {
|
|
|
385
388
|
if (isNaN(user)) {
|
|
386
389
|
throw new Error('user must be numbers');
|
|
387
390
|
}
|
|
388
|
-
|
|
391
|
+
const pinCodeCount = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
392
|
+
if (!utils.isInRange(0, pinCodeCount - 1, user)) {
|
|
389
393
|
throw new Error('userId must be in range for device');
|
|
390
394
|
}
|
|
391
395
|
await entity.command('closuresDoorLock', 'getPinCode', { userid: user }, utils.getOptions(meta.mapped, entity));
|
|
@@ -400,7 +404,8 @@ const converters2 = {
|
|
|
400
404
|
if (isNaN(user)) {
|
|
401
405
|
throw new Error('user must be numbers');
|
|
402
406
|
}
|
|
403
|
-
|
|
407
|
+
const pinCodeCount = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
408
|
+
if (!utils.isInRange(0, pinCodeCount - 1, user)) {
|
|
404
409
|
throw new Error('user must be in range for device');
|
|
405
410
|
}
|
|
406
411
|
const status = utils.getKey(constants.lockUserStatus, value.status, undefined, Number);
|
|
@@ -415,8 +420,9 @@ const converters2 = {
|
|
|
415
420
|
convertGet: async (entity, key, meta) => {
|
|
416
421
|
// @ts-expect-error
|
|
417
422
|
const user = meta && meta.message && meta.message.user_status ? meta.message.user_status.user : undefined;
|
|
423
|
+
const pinCodeCount = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
418
424
|
if (user === undefined) {
|
|
419
|
-
const max =
|
|
425
|
+
const max = pinCodeCount;
|
|
420
426
|
// Get all
|
|
421
427
|
const options = utils.getOptions(meta.mapped, entity);
|
|
422
428
|
for (let i = 0; i < max; i++) {
|
|
@@ -427,7 +433,7 @@ const converters2 = {
|
|
|
427
433
|
if (isNaN(user)) {
|
|
428
434
|
throw new Error('user must be numbers');
|
|
429
435
|
}
|
|
430
|
-
if (!utils.isInRange(0,
|
|
436
|
+
if (!utils.isInRange(0, pinCodeCount - 1, user)) {
|
|
431
437
|
throw new Error('userId must be in range for device');
|
|
432
438
|
}
|
|
433
439
|
await entity.command('closuresDoorLock', 'getUserStatus', { userid: user }, utils.getOptions(meta.mapped, entity));
|
|
@@ -481,6 +487,8 @@ const converters2 = {
|
|
|
481
487
|
};
|
|
482
488
|
let info;
|
|
483
489
|
// https://github.com/Koenkk/zigbee2mqtt/issues/8310 some devices require the info to be reversed.
|
|
490
|
+
if (Array.isArray(meta.mapped))
|
|
491
|
+
throw new Error(`Not supported for groups`);
|
|
484
492
|
if (['SIRZB-110', 'SRAC-23B-ZBSR', 'AV2010/29A', 'AV2010/24A'].includes(meta.mapped.model)) {
|
|
485
493
|
info = (utils.getFromLookup(values.mode, mode)) + ((values.strobe ? 1 : 0) << 4) + (utils.getFromLookup(values.level, level) << 6);
|
|
486
494
|
}
|
|
@@ -507,6 +515,8 @@ const converters2 = {
|
|
|
507
515
|
const alarmState = (value === 'alarm' || value === 'OFF' ? 0 : 1);
|
|
508
516
|
let info;
|
|
509
517
|
// For Develco SMSZB-120, introduced change in fw 4.0.5, tested backward with 4.0.4
|
|
518
|
+
if (Array.isArray(meta.mapped))
|
|
519
|
+
throw new Error(`Not supported for groups`);
|
|
510
520
|
if (['SMSZB-120'].includes(meta.mapped.model)) {
|
|
511
521
|
info = ((alarmState) << 7) + ((alarmState) << 6);
|
|
512
522
|
}
|
|
@@ -2151,6 +2161,8 @@ const converters2 = {
|
|
|
2151
2161
|
xiaomi_switch_power_outage_memory: {
|
|
2152
2162
|
key: ['power_outage_memory'],
|
|
2153
2163
|
convertSet: async (entity, key, value, meta) => {
|
|
2164
|
+
if (Array.isArray(meta.mapped))
|
|
2165
|
+
throw new Error(`Not supported for groups`);
|
|
2154
2166
|
if (['SP-EUC01', 'ZNCZ04LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'SSM-U01', 'SSM-U02', 'DLKZMK11LM', 'DLKZMK12LM',
|
|
2155
2167
|
'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM',
|
|
2156
2168
|
'QBKG30LM', 'QBKG31LM', 'QBKG32LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM',
|
|
@@ -2178,6 +2190,8 @@ const converters2 = {
|
|
|
2178
2190
|
return { state: { power_outage_memory: value } };
|
|
2179
2191
|
},
|
|
2180
2192
|
convertGet: async (entity, key, meta) => {
|
|
2193
|
+
if (Array.isArray(meta.mapped))
|
|
2194
|
+
throw new Error(`Not supported for groups`);
|
|
2181
2195
|
if (['SP-EUC01', 'ZNCZ04LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'SSM-U01', 'SSM-U02', 'DLKZMK11LM', 'DLKZMK12LM',
|
|
2182
2196
|
'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM',
|
|
2183
2197
|
'QBKG30LM', 'QBKG31LM', 'QBKG32LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM',
|
|
@@ -2211,6 +2225,8 @@ const converters2 = {
|
|
|
2211
2225
|
xiaomi_auto_off: {
|
|
2212
2226
|
key: ['auto_off'],
|
|
2213
2227
|
convertSet: async (entity, key, value, meta) => {
|
|
2228
|
+
if (Array.isArray(meta.mapped))
|
|
2229
|
+
throw new Error(`Not supported for groups`);
|
|
2214
2230
|
if (['ZNCZ04LM', 'ZNCZ12LM', 'SP-EUC01'].includes(meta.mapped.model)) {
|
|
2215
2231
|
await entity.write('aqaraOpple', { 0x0202: { value: value ? 1 : 0, type: 0x10 } }, manufacturerOptions.xiaomi);
|
|
2216
2232
|
}
|
|
@@ -2226,6 +2242,8 @@ const converters2 = {
|
|
|
2226
2242
|
return { state: { auto_off: value } };
|
|
2227
2243
|
},
|
|
2228
2244
|
convertGet: async (entity, key, meta) => {
|
|
2245
|
+
if (Array.isArray(meta.mapped))
|
|
2246
|
+
throw new Error(`Not supported for groups`);
|
|
2229
2247
|
if (['ZNCZ04LM', 'ZNCZ12LM', 'SP-EUC01'].includes(meta.mapped.model)) {
|
|
2230
2248
|
await entity.read('aqaraOpple', [0x0202], manufacturerOptions.xiaomi);
|
|
2231
2249
|
}
|
|
@@ -2306,6 +2324,8 @@ const converters2 = {
|
|
|
2306
2324
|
xiaomi_led_disabled_night: {
|
|
2307
2325
|
key: ['led_disabled_night'],
|
|
2308
2326
|
convertSet: async (entity, key, value, meta) => {
|
|
2327
|
+
if (Array.isArray(meta.mapped))
|
|
2328
|
+
throw new Error(`Not supported for groups`);
|
|
2309
2329
|
if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
|
|
2310
2330
|
'QBKG28LM', 'QBKG29LM', 'QBKG30LM', 'QBKG31LM', 'QBKG32LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02',
|
|
2311
2331
|
'WS-EUK03', 'WS-EUK04', 'SP-EUC01', 'ZNQBKG24LM', 'ZNQBKG25LM'].includes(meta.mapped.model)) {
|
|
@@ -2323,6 +2343,8 @@ const converters2 = {
|
|
|
2323
2343
|
return { state: { led_disabled_night: value } };
|
|
2324
2344
|
},
|
|
2325
2345
|
convertGet: async (entity, key, meta) => {
|
|
2346
|
+
if (Array.isArray(meta.mapped))
|
|
2347
|
+
throw new Error(`Not supported for groups`);
|
|
2326
2348
|
if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
|
|
2327
2349
|
'QBKG28LM', 'QBKG29LM', 'QBKG30LM', 'QBKG31LM', 'QBKG32LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02',
|
|
2328
2350
|
'WS-EUK03', 'WS-EUK04', 'SP-EUC01', 'ZNQBKG24LM', 'ZNQBKG25LM'].includes(meta.mapped.model)) {
|
|
@@ -2370,6 +2392,8 @@ const converters2 = {
|
|
|
2370
2392
|
key: ['operation_mode'],
|
|
2371
2393
|
convertSet: async (entity, key, value, meta) => {
|
|
2372
2394
|
utils.assertEndpoint(entity);
|
|
2395
|
+
if (Array.isArray(meta.mapped))
|
|
2396
|
+
throw new Error(`Not supported for groups`);
|
|
2373
2397
|
let targetValue = utils.isObject(value) && value.hasOwnProperty('state') ? value.state : value;
|
|
2374
2398
|
// 1/2 gang switches using genBasic on endpoint 1.
|
|
2375
2399
|
let attrId;
|
|
@@ -2400,6 +2424,8 @@ const converters2 = {
|
|
|
2400
2424
|
},
|
|
2401
2425
|
convertGet: async (entity, key, meta) => {
|
|
2402
2426
|
let attrId;
|
|
2427
|
+
if (Array.isArray(meta.mapped))
|
|
2428
|
+
throw new Error(`Not supported for groups`);
|
|
2403
2429
|
if (meta.mapped.meta && meta.mapped.meta.multiEndpoint) {
|
|
2404
2430
|
attrId = { left: 0xFF22, right: 0xFF23 }[meta.endpoint_name];
|
|
2405
2431
|
if (attrId == null) {
|
|
@@ -2443,6 +2469,8 @@ const converters2 = {
|
|
|
2443
2469
|
key: ['options'],
|
|
2444
2470
|
convertSet: async (entity, key, value, meta) => {
|
|
2445
2471
|
utils.assertObject(value);
|
|
2472
|
+
if (Array.isArray(meta.mapped))
|
|
2473
|
+
throw new Error(`Not supported for groups`);
|
|
2446
2474
|
const opts = {
|
|
2447
2475
|
reverse_direction: false,
|
|
2448
2476
|
hand_open: true,
|
|
@@ -2479,6 +2507,8 @@ const converters2 = {
|
|
|
2479
2507
|
return { state: { options: opts } };
|
|
2480
2508
|
},
|
|
2481
2509
|
convertGet: async (entity, key, meta) => {
|
|
2510
|
+
if (Array.isArray(meta.mapped))
|
|
2511
|
+
throw new Error(`Not supported for groups`);
|
|
2482
2512
|
if (meta.mapped.model === 'ZNCLDJ11LM') {
|
|
2483
2513
|
await entity.read('genBasic', [0x0401], manufacturerOptions.xiaomi);
|
|
2484
2514
|
}
|
|
@@ -2491,6 +2521,8 @@ const converters2 = {
|
|
|
2491
2521
|
key: ['state', 'position'],
|
|
2492
2522
|
options: [exposes.options.invert_cover()],
|
|
2493
2523
|
convertSet: async (entity, key, value, meta) => {
|
|
2524
|
+
if (Array.isArray(meta.mapped))
|
|
2525
|
+
throw new Error(`Not supported for groups`);
|
|
2494
2526
|
if (key === 'state' && typeof value === 'string' && value.toLowerCase() === 'stop') {
|
|
2495
2527
|
if (meta.mapped.model == 'ZNJLBL01LM') {
|
|
2496
2528
|
const payload = { 'presentValue': 2 };
|
|
@@ -2531,7 +2563,7 @@ const converters2 = {
|
|
|
2531
2563
|
}
|
|
2532
2564
|
},
|
|
2533
2565
|
convertGet: async (entity, key, meta) => {
|
|
2534
|
-
if (['ZNCLBL01LM'].includes(meta.mapped.model)) {
|
|
2566
|
+
if (!Array.isArray(meta.mapped) && ['ZNCLBL01LM'].includes(meta.mapped.model)) {
|
|
2535
2567
|
await entity.read('closuresWindowCovering', ['currentPositionLiftPercentage']);
|
|
2536
2568
|
}
|
|
2537
2569
|
else {
|
|
@@ -2542,6 +2574,8 @@ const converters2 = {
|
|
|
2542
2574
|
xiaomi_curtain_battery_voltage: {
|
|
2543
2575
|
key: ['voltage'],
|
|
2544
2576
|
convertGet: async (entity, key, meta) => {
|
|
2577
|
+
if (Array.isArray(meta.mapped))
|
|
2578
|
+
throw new Error(`Not supported for groups`);
|
|
2545
2579
|
switch (meta.mapped.model) {
|
|
2546
2580
|
case 'ZNCLBL01LM':
|
|
2547
2581
|
await entity.read('aqaraOpple', [0x040B], manufacturerOptions.xiaomi);
|
|
@@ -2686,6 +2720,8 @@ const converters2 = {
|
|
|
2686
2720
|
key: ['buzzer'],
|
|
2687
2721
|
convertSet: async (entity, key, value, meta) => {
|
|
2688
2722
|
utils.assertString(value, key);
|
|
2723
|
+
if (Array.isArray(meta.mapped))
|
|
2724
|
+
throw new Error(`Not supported for groups`);
|
|
2689
2725
|
const attribute = ['JY-GZ-01AQ'].includes(meta.mapped.model) ? 0x013e : 0x013f;
|
|
2690
2726
|
value = (value.toLowerCase() === 'alarm') ? 15361 : 15360;
|
|
2691
2727
|
await entity.write('aqaraOpple', { [`${attribute}`]: { value: [`${value}`], type: 0x23 } }, manufacturerOptions.xiaomi);
|