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 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;AA0kK1C,QAAA,MAAM,UAAU;;QAjIR;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QArzHH;;;;;;;;;;;WAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mLA80FoC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0lCS,CAAC;AAEpE,eAAe,UAAU,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"}
@@ -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
- if (!utils.isInRange(0, meta.mapped.meta.pinCodeCount - 1, user))
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.meta.pinCodeCount;
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
- if (!utils.isInRange(0, meta.mapped.meta.pinCodeCount - 1, user)) {
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
- if (!utils.isInRange(0, meta.mapped.meta.pinCodeCount - 1, user)) {
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 = meta.mapped.meta.pinCodeCount;
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, meta.mapped.meta.pinCodeCount - 1, user)) {
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);