zigbee-herdsman-converters 25.91.0 → 25.93.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 +50 -0
- package/dist/converters/fromZigbee.js +2 -2
- package/dist/converters/fromZigbee.js.map +1 -1
- package/dist/devices/dresden_elektronik.d.ts.map +1 -1
- package/dist/devices/dresden_elektronik.js +16 -6
- package/dist/devices/dresden_elektronik.js.map +1 -1
- package/dist/devices/ezviz.d.ts +3 -0
- package/dist/devices/ezviz.d.ts.map +1 -0
- package/dist/devices/ezviz.js +47 -0
- package/dist/devices/ezviz.js.map +1 -0
- package/dist/devices/gewiss.d.ts.map +1 -1
- package/dist/devices/gewiss.js +2 -1
- package/dist/devices/gewiss.js.map +1 -1
- package/dist/devices/gledopto.js +1 -1
- package/dist/devices/gledopto.js.map +1 -1
- package/dist/devices/heiman.d.ts.map +1 -1
- package/dist/devices/heiman.js +948 -256
- package/dist/devices/heiman.js.map +1 -1
- package/dist/devices/index.d.ts.map +1 -1
- package/dist/devices/index.js +2 -0
- package/dist/devices/index.js.map +1 -1
- package/dist/devices/inovelli.js +1 -1
- package/dist/devices/inovelli.js.map +1 -1
- package/dist/devices/ledvance.d.ts.map +1 -1
- package/dist/devices/ledvance.js +14 -20
- package/dist/devices/ledvance.js.map +1 -1
- package/dist/devices/lightsolutions.d.ts.map +1 -1
- package/dist/devices/lightsolutions.js +7 -0
- package/dist/devices/lightsolutions.js.map +1 -1
- package/dist/devices/lumi.d.ts.map +1 -1
- package/dist/devices/lumi.js +28 -34
- package/dist/devices/lumi.js.map +1 -1
- package/dist/devices/moes.d.ts.map +1 -1
- package/dist/devices/moes.js +98 -0
- package/dist/devices/moes.js.map +1 -1
- package/dist/devices/muller_licht.d.ts.map +1 -1
- package/dist/devices/muller_licht.js +7 -0
- package/dist/devices/muller_licht.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +31 -13
- package/dist/devices/philips.js.map +1 -1
- package/dist/devices/sonoff.d.ts.map +1 -1
- package/dist/devices/sonoff.js +45 -53
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +479 -17
- package/dist/devices/tuya.js.map +1 -1
- package/dist/lib/lumi.d.ts +2 -0
- package/dist/lib/lumi.d.ts.map +1 -1
- package/dist/lib/lumi.js +137 -0
- package/dist/lib/lumi.js.map +1 -1
- package/dist/lib/modernExtend.d.ts.map +1 -1
- package/dist/lib/modernExtend.js +3 -3
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +3 -3
package/dist/lib/lumi.d.ts
CHANGED
|
@@ -179,6 +179,8 @@ export declare const lumiModernExtend: {
|
|
|
179
179
|
lumiRGBEffect: (lookup: KeyValue, args?: Partial<modernExtend.EnumLookupArgs<"manuSpecificLumi">>) => ModernExtend;
|
|
180
180
|
lumiRGBEffectSpeed: (args?: Partial<modernExtend.NumericArgs<"manuSpecificLumi">>) => ModernExtend;
|
|
181
181
|
lumiRGBEffectColors: () => ModernExtend;
|
|
182
|
+
lumiT1MEffect: () => ModernExtend;
|
|
183
|
+
lumiSegmentColors: () => ModernExtend;
|
|
182
184
|
lumiOnOff: (args?: modernExtend.OnOffArgs & {
|
|
183
185
|
operationMode?: boolean;
|
|
184
186
|
powerOutageMemory?: "binary" | "enum";
|
package/dist/lib/lumi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lumi.d.ts","sourceRoot":"","sources":["../../src/lib/lumi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAGnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EACR,oBAAoB,EACpB,uBAAuB,EAEvB,UAAU,EAEV,EAAE,EACF,QAAQ,EACR,WAAW,EAEX,YAAY,EACZ,KAAK,EACL,EAAE,EAEL,MAAM,SAAS,CAAC;AA0BjB,OAAO,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,UAAU,EAAE,QAAQ,MAAM,aAiIlE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAElC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EACpC,MAAM,EAAE,CAAC,IAAI,EACb,OAAO,UAAU,EACjB,SAAS,QAAQ,EACjB,YAAY,QAAQ,sBAivBvB,CAAC;AA2BF,KAAK,sBAAsB,GAAG;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAErD,QAAA,MAAM,qBAAqB;;;;;;;;;;;QAWnB;;;WAGG;;QAEH;;;;;WAKG;;QAEH;;WAEG;;;;;;;;;;;CAiBV,CAAC;AAWF,eAAO,MAAM,QAAQ;;;;;;;;;;;;YA1Cb;;;eAGG;;YAEH;;;;;eAKG;;YAEH;;eAEG;;;;;;;;;;;;;;;gBAqBC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS;gBACzD,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS;gBACzD,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAY;gBAC/D,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAc;;;;sCAQzC,MAAM,EAAE,KAAG,MAAM;+BAMxB,MAAM,KAAG,MAAM;4CAGF,WAAW;mBAsEH,KAAK;eAAS;YAAC,MAAM,EAAE,MAAM,CAAA;SAAC;;;;;;;;;4CAnDtC,WAAW;mBAmDH,KAAK;eAAS;YAAC,MAAM,EAAE,MAAM,CAAA;SAAC;;;;;;;;;;gCAvBlD,GAAG,KAAG,KAAK,IAAI,MAAM;4CAQT,GAAG,KAAG,KAAK,IAAI,sBAAsB;qBAe5D;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,KAAG;QAAC,SAAS,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE;YAAC,MAAM,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC;CAMlF,CAAC;AA0JF,eAAO,MAAM,GAAG;uCACuB,MAAM;wBAYrB,MAAM;;;;0BASJ,EAAE,CAAC,IAAI,SAAS,UAAU,iBAAiB,MAAM;IAyDvE;;OAEG;2BACoB,MAAM,GAAG,iBAAiB;+BAYtB,iBAAiB,GAAG,IAAI;IAqDnD;;OAEG;6BACsB,iBAAiB,GAAG,MAAM;gCAiBvB,iBAAiB;uCAiBV,MAAM,GAAG,iBAAiB;CAsBhE,CAAC;
|
|
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
|
@@ -1443,6 +1443,35 @@ function lumiEncodeRgbColor(color) {
|
|
|
1443
1443
|
const yScaled = Math.round(xy.y * 65535);
|
|
1444
1444
|
return [(xScaled >>> 8) & 0xff, xScaled & 0xff, (yScaled >>> 8) & 0xff, yScaled & 0xff];
|
|
1445
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
|
+
}
|
|
1446
1475
|
exports.manufacturerCode = 0x115f; // TODO: from Zcl
|
|
1447
1476
|
const manufacturerOptions = {
|
|
1448
1477
|
lumi: { manufacturerCode: exports.manufacturerCode, disableDefaultResponse: true },
|
|
@@ -1620,6 +1649,114 @@ exports.lumiModernExtend = {
|
|
|
1620
1649
|
],
|
|
1621
1650
|
};
|
|
1622
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
|
+
},
|
|
1623
1760
|
lumiOnOff: (args) => {
|
|
1624
1761
|
args = { operationMode: false, lockRelay: false, ...args };
|
|
1625
1762
|
const result = modernExtend.onOff({ powerOnBehavior: false, ...args });
|