zigbee-herdsman-converters 25.90.0 → 25.92.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/devices/ewelink.d.ts.map +1 -1
  3. package/dist/devices/ewelink.js +2 -1
  4. package/dist/devices/ewelink.js.map +1 -1
  5. package/dist/devices/gledopto.js +1 -1
  6. package/dist/devices/gledopto.js.map +1 -1
  7. package/dist/devices/inovelli.js +1 -1
  8. package/dist/devices/inovelli.js.map +1 -1
  9. package/dist/devices/lightsolutions.d.ts.map +1 -1
  10. package/dist/devices/lightsolutions.js +7 -0
  11. package/dist/devices/lightsolutions.js.map +1 -1
  12. package/dist/devices/lincukoo.d.ts.map +1 -1
  13. package/dist/devices/lincukoo.js +8 -0
  14. package/dist/devices/lincukoo.js.map +1 -1
  15. package/dist/devices/lumi.d.ts.map +1 -1
  16. package/dist/devices/lumi.js +60 -54
  17. package/dist/devices/lumi.js.map +1 -1
  18. package/dist/devices/philips.d.ts.map +1 -1
  19. package/dist/devices/philips.js +10 -2
  20. package/dist/devices/philips.js.map +1 -1
  21. package/dist/devices/somfy.d.ts.map +1 -1
  22. package/dist/devices/somfy.js +7 -0
  23. package/dist/devices/somfy.js.map +1 -1
  24. package/dist/devices/sonoff.d.ts.map +1 -1
  25. package/dist/devices/sonoff.js +42 -53
  26. package/dist/devices/sonoff.js.map +1 -1
  27. package/dist/devices/third_reality.d.ts.map +1 -1
  28. package/dist/devices/third_reality.js +98 -34
  29. package/dist/devices/third_reality.js.map +1 -1
  30. package/dist/devices/tuya.d.ts.map +1 -1
  31. package/dist/devices/tuya.js +119 -8
  32. package/dist/devices/tuya.js.map +1 -1
  33. package/dist/lib/lumi.d.ts +5 -0
  34. package/dist/lib/lumi.d.ts.map +1 -1
  35. package/dist/lib/lumi.js +250 -0
  36. package/dist/lib/lumi.js.map +1 -1
  37. package/dist/models-index.json +1 -1
  38. package/package.json +1 -1
@@ -176,6 +176,11 @@ export declare const lumiModernExtend: {
176
176
  lumiOnOffDuration: (args?: Partial<modernExtend.NumericArgs<"genLevelCtrl">>) => ModernExtend;
177
177
  lumiTransitionCurveCurvature: (args?: Partial<modernExtend.NumericArgs<"manuSpecificLumi">>) => ModernExtend;
178
178
  lumiTransitionInitialBrightness: (args?: Partial<modernExtend.NumericArgs<"manuSpecificLumi">>) => ModernExtend;
179
+ lumiRGBEffect: (lookup: KeyValue, args?: Partial<modernExtend.EnumLookupArgs<"manuSpecificLumi">>) => ModernExtend;
180
+ lumiRGBEffectSpeed: (args?: Partial<modernExtend.NumericArgs<"manuSpecificLumi">>) => ModernExtend;
181
+ lumiRGBEffectColors: () => ModernExtend;
182
+ lumiT1MEffect: () => ModernExtend;
183
+ lumiSegmentColors: () => ModernExtend;
179
184
  lumiOnOff: (args?: modernExtend.OnOffArgs & {
180
185
  operationMode?: boolean;
181
186
  powerOutageMemory?: "binary" | "enum";
@@ -1 +1 @@
1
- {"version":3,"file":"lumi.d.ts","sourceRoot":"","sources":["../../src/lib/lumi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lumi.d.ts","sourceRoot":"","sources":["../../src/lib/lumi.ts"],"names":[],"mappings":"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"}
package/dist/lib/lumi.js CHANGED
@@ -1401,6 +1401,77 @@ exports.trv = {
1401
1401
  return schedule;
1402
1402
  },
1403
1403
  };
1404
+ /**
1405
+ * Converts RGB (0-255) to CIE xy color space
1406
+ * Used for Aqara RGB devices that require xy format
1407
+ */
1408
+ function lumiRgbToXY(r, g, b) {
1409
+ let red = r / 255.0;
1410
+ let green = g / 255.0;
1411
+ let blue = b / 255.0;
1412
+ red = red > 0.04045 ? ((red + 0.055) / 1.055) ** 2.4 : red / 12.92;
1413
+ green = green > 0.04045 ? ((green + 0.055) / 1.055) ** 2.4 : green / 12.92;
1414
+ blue = blue > 0.04045 ? ((blue + 0.055) / 1.055) ** 2.4 : blue / 12.92;
1415
+ const X = red * 0.4124564 + green * 0.3575761 + blue * 0.1804375;
1416
+ const Y = red * 0.2126729 + green * 0.7151522 + blue * 0.072175;
1417
+ const Z = red * 0.0193339 + green * 0.119192 + blue * 0.9503041;
1418
+ const sum = X + Y + Z;
1419
+ if (sum === 0) {
1420
+ return { x: 0, y: 0 };
1421
+ }
1422
+ return {
1423
+ x: X / sum,
1424
+ y: Y / sum,
1425
+ };
1426
+ }
1427
+ /**
1428
+ * Encodes RGB color to Aqara's 4-byte xy format
1429
+ * Returns [xHi, xLo, yHi, yLo]
1430
+ */
1431
+ function lumiEncodeRgbColor(color) {
1432
+ if (typeof color !== "object" || color.r === undefined || color.g === undefined || color.b === undefined) {
1433
+ throw new Error(`Invalid color format. Expected {r: 0-255, g: 0-255, b: 0-255}, got: ${JSON.stringify(color)}`);
1434
+ }
1435
+ const r = Number(color.r);
1436
+ const g = Number(color.g);
1437
+ const b = Number(color.b);
1438
+ if (r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255) {
1439
+ throw new Error(`RGB values must be between 0-255. Got r:${r}, g:${g}, b:${b}`);
1440
+ }
1441
+ const xy = lumiRgbToXY(r, g, b);
1442
+ const xScaled = Math.round(xy.x * 65535);
1443
+ const yScaled = Math.round(xy.y * 65535);
1444
+ return [(xScaled >>> 8) & 0xff, xScaled & 0xff, (yScaled >>> 8) & 0xff, yScaled & 0xff];
1445
+ }
1446
+ /**
1447
+ * Generates segment bitmask for T1M and T1 Strip devices
1448
+ */
1449
+ function lumiGenerateSegmentMask(segments, deviceType, maxSegments) {
1450
+ const maskSize = deviceType === "t1m" ? 4 : 8;
1451
+ const mask = new Array(maskSize).fill(0);
1452
+ for (const seg of segments) {
1453
+ if (seg < 1 || seg > maxSegments) {
1454
+ throw new Error(`Invalid segment: ${seg}. Must be 1-${maxSegments}`);
1455
+ }
1456
+ const bitPos = seg - 1;
1457
+ const byteIndex = Math.floor(bitPos / 8);
1458
+ const bitIndex = 7 - (bitPos % 8);
1459
+ mask[byteIndex] |= 1 << bitIndex;
1460
+ }
1461
+ return mask;
1462
+ }
1463
+ /**
1464
+ * Builds packet for T1M and T1 Strip segment color control
1465
+ */
1466
+ function lumiBuildSegmentPacket(segments, color, deviceType, maxSegments, brightness = 254) {
1467
+ const segmentMask = lumiGenerateSegmentMask(segments, deviceType, maxSegments);
1468
+ const colorBytes = lumiEncodeRgbColor(color);
1469
+ if (deviceType === "t1m") {
1470
+ return [...segmentMask, 0x00, 0x00, 0x00, 0x00, ...colorBytes];
1471
+ }
1472
+ const brightnessByte = Math.max(0, Math.min(254, Math.round(brightness)));
1473
+ return [0x01, 0x01, 0x01, 0x0f, brightnessByte, ...segmentMask, ...colorBytes, 0x00, 0x14];
1474
+ }
1404
1475
  exports.manufacturerCode = 0x115f; // TODO: from Zcl
1405
1476
  const manufacturerOptions = {
1406
1477
  lumi: { manufacturerCode: exports.manufacturerCode, disableDefaultResponse: true },
@@ -1507,6 +1578,185 @@ exports.lumiModernExtend = {
1507
1578
  entityCategory: "config",
1508
1579
  ...args,
1509
1580
  }),
1581
+ lumiRGBEffect: (lookup, args) => {
1582
+ return modernExtend.enumLookup({
1583
+ name: "effect",
1584
+ lookup: lookup,
1585
+ cluster: "manuSpecificLumi",
1586
+ attribute: { ID: 0x051f, type: 0x23 },
1587
+ description: "RGB dynamic effect type",
1588
+ zigbeeCommandOptions: { manufacturerCode: exports.manufacturerCode },
1589
+ ...args,
1590
+ });
1591
+ },
1592
+ lumiRGBEffectSpeed: (args) => {
1593
+ return modernExtend.numeric({
1594
+ name: "effect_speed",
1595
+ cluster: "manuSpecificLumi",
1596
+ attribute: { ID: 0x0520, type: 0x20 },
1597
+ description: "RGB dynamic effect speed (1-100%)",
1598
+ zigbeeCommandOptions: { manufacturerCode: exports.manufacturerCode },
1599
+ unit: "%",
1600
+ valueMin: 1,
1601
+ valueMax: 100,
1602
+ valueStep: 1,
1603
+ ...args,
1604
+ });
1605
+ },
1606
+ lumiRGBEffectColors: () => {
1607
+ return {
1608
+ isModernExtend: true,
1609
+ toZigbee: [
1610
+ {
1611
+ key: ["effect_colors"],
1612
+ convertSet: async (entity, key, value, meta) => {
1613
+ const colors = value ||
1614
+ meta.state.effect_colors || [
1615
+ { r: 255, g: 0, b: 0 },
1616
+ { r: 0, g: 255, b: 0 },
1617
+ { r: 0, g: 0, b: 255 },
1618
+ ];
1619
+ if (!Array.isArray(colors) || colors.length < 1 || colors.length > 8) {
1620
+ throw new Error("Must provide array of 1-8 RGB color objects");
1621
+ }
1622
+ const colorBytes = [];
1623
+ for (const color of colors) {
1624
+ const encoded = lumiEncodeRgbColor(color);
1625
+ colorBytes.push(...encoded);
1626
+ }
1627
+ const packet = node_buffer_1.Buffer.from([0x00, colors.length, ...colorBytes]);
1628
+ const targetEndpoint = meta.device.getEndpoint(1);
1629
+ await targetEndpoint.write("manuSpecificLumi", { 1315: { value: packet, type: 0x41 } }, { manufacturerCode: exports.manufacturerCode, disableDefaultResponse: false });
1630
+ return {
1631
+ state: {
1632
+ effect_colors: colors,
1633
+ },
1634
+ };
1635
+ },
1636
+ },
1637
+ ],
1638
+ exposes: [
1639
+ exposes
1640
+ .list("effect_colors", ea.SET, exposes
1641
+ .composite("color", "color", ea.SET)
1642
+ .withFeature(exposes.numeric("r", ea.SET).withValueMin(0).withValueMax(255).withDescription("Red (0-255)"))
1643
+ .withFeature(exposes.numeric("g", ea.SET).withValueMin(0).withValueMax(255).withDescription("Green (0-255)"))
1644
+ .withFeature(exposes.numeric("b", ea.SET).withValueMin(0).withValueMax(255).withDescription("Blue (0-255)")))
1645
+ .withDescription("Array of RGB color objects for dynamic effects (1-8 colors).")
1646
+ .withLengthMin(1)
1647
+ .withLengthMax(8)
1648
+ .withCategory("config"),
1649
+ ],
1650
+ };
1651
+ },
1652
+ lumiT1MEffect: () => {
1653
+ return {
1654
+ isModernExtend: true,
1655
+ toZigbee: [
1656
+ {
1657
+ key: ["effect"],
1658
+ convertSet: async (entity, key, value, meta) => {
1659
+ (0, utils_1.assertString)(value);
1660
+ const lookup = { flow1: 0, flow2: 1, fading: 2, hopping: 3, breathing: 4, rolling: 5 };
1661
+ if (!(value in lookup)) {
1662
+ throw new Error(`Invalid effect: ${value}. Must be one of: ${Object.keys(lookup).join(", ")}`);
1663
+ }
1664
+ const effectValue = lookup[value];
1665
+ const endpoint = meta.device.getEndpoint(1);
1666
+ await endpoint.write("manuSpecificLumi", { 1311: { value: effectValue, type: 0x23 } }, { manufacturerCode: exports.manufacturerCode, disableDefaultResponse: false });
1667
+ return { state: { effect: value } };
1668
+ },
1669
+ },
1670
+ ],
1671
+ exposes: [
1672
+ exposes
1673
+ .enum("effect", ea.SET, ["flow1", "flow2", "fading", "hopping", "breathing", "rolling"])
1674
+ .withDescription("RGB dynamic effect type")
1675
+ .withCategory("config"),
1676
+ ],
1677
+ };
1678
+ },
1679
+ lumiSegmentColors: () => {
1680
+ return {
1681
+ isModernExtend: true,
1682
+ toZigbee: [
1683
+ {
1684
+ key: ["segment_colors"],
1685
+ convertSet: async (entity, key, value, meta) => {
1686
+ if (!Array.isArray(value) || value.length === 0) {
1687
+ throw new Error("segment_colors must be a non-empty array");
1688
+ }
1689
+ const model = meta.device.modelID;
1690
+ const deviceType = model === "lumi.light.acn132" ? "strip" : "t1m";
1691
+ let maxSegments;
1692
+ if (model === "lumi.light.acn031") {
1693
+ maxSegments = 20;
1694
+ }
1695
+ else if (model === "lumi.light.acn032") {
1696
+ maxSegments = 26;
1697
+ }
1698
+ else if (model === "lumi.light.acn132") {
1699
+ maxSegments = Math.round((meta.state.length !== undefined ? Number(meta.state.length) : 2) * 5);
1700
+ }
1701
+ else {
1702
+ maxSegments = 26;
1703
+ }
1704
+ const brightness = meta.state && meta.state.brightness !== undefined ? Number(meta.state.brightness) : 254;
1705
+ const colorGroups = {};
1706
+ for (const item of value) {
1707
+ if (!item.segment || !item.color) {
1708
+ throw new Error(`Each segment must have "segment" (1-${maxSegments}) and "color" {r, g, b} fields`);
1709
+ }
1710
+ const segment = Number(item.segment);
1711
+ const color = item.color;
1712
+ if (segment < 1 || segment > maxSegments) {
1713
+ throw new Error(`Invalid segment: ${segment}. Must be 1-${maxSegments}`);
1714
+ }
1715
+ if (typeof color !== "object" || color.r === undefined || color.g === undefined || color.b === undefined) {
1716
+ throw new Error(`Invalid color for segment ${segment}. Expected {r, g, b}`);
1717
+ }
1718
+ const colorKey = JSON.stringify({ r: color.r, g: color.g, b: color.b });
1719
+ if (!colorGroups[colorKey]) {
1720
+ colorGroups[colorKey] = {
1721
+ color: color,
1722
+ segments: [],
1723
+ };
1724
+ }
1725
+ colorGroups[colorKey].segments.push(segment);
1726
+ }
1727
+ const groups = Object.values(colorGroups);
1728
+ const ATTR_SEGMENT_CONTROL = deviceType === "t1m" ? 1314 : 1319;
1729
+ for (let i = 0; i < groups.length; i++) {
1730
+ const group = groups[i];
1731
+ const packet = lumiBuildSegmentPacket(group.segments, group.color, deviceType, maxSegments, brightness);
1732
+ await entity.write("manuSpecificLumi", { [ATTR_SEGMENT_CONTROL]: { value: node_buffer_1.Buffer.from(packet), type: 0x41 } }, { manufacturerCode: exports.manufacturerCode, disableDefaultResponse: false });
1733
+ if (i < groups.length - 1) {
1734
+ await (0, utils_1.sleep)(50);
1735
+ }
1736
+ }
1737
+ if (deviceType === "strip") {
1738
+ return { state: { segment_colors: value, state: "ON" } };
1739
+ }
1740
+ return { state: { segment_colors: value } };
1741
+ },
1742
+ },
1743
+ ],
1744
+ exposes: [
1745
+ exposes
1746
+ .list("segment_colors", ea.SET, exposes
1747
+ .composite("segment_color", "segment_color", ea.SET)
1748
+ .withFeature(exposes.numeric("segment", ea.SET).withDescription("Segment number"))
1749
+ .withFeature(exposes
1750
+ .composite("color", "color", ea.SET)
1751
+ .withFeature(exposes.numeric("r", ea.SET).withValueMin(0).withValueMax(255).withDescription("Red (0-255)"))
1752
+ .withFeature(exposes.numeric("g", ea.SET).withValueMin(0).withValueMax(255).withDescription("Green (0-255)"))
1753
+ .withFeature(exposes.numeric("b", ea.SET).withValueMin(0).withValueMax(255).withDescription("Blue (0-255)"))
1754
+ .withDescription("RGB color object")))
1755
+ .withDescription("Set individual segment colors.")
1756
+ .withCategory("config"),
1757
+ ],
1758
+ };
1759
+ },
1510
1760
  lumiOnOff: (args) => {
1511
1761
  args = { operationMode: false, lockRelay: false, ...args };
1512
1762
  const result = modernExtend.onOff({ powerOnBehavior: false, ...args });