matterbridge 1.2.10 → 1.2.12
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 +37 -1
- package/README.md +97 -4
- package/dist/cli.js +10 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/matterbridge.d.ts +14 -0
- package/dist/matterbridge.d.ts.map +1 -1
- package/dist/matterbridge.js +215 -47
- package/dist/matterbridge.js.map +1 -1
- package/dist/matterbridgeDevice.d.ts +43 -16
- package/dist/matterbridgeDevice.d.ts.map +1 -1
- package/dist/matterbridgeDevice.js +127 -50
- package/dist/matterbridgeDevice.js.map +1 -1
- package/frontend/build/asset-manifest.json +6 -6
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/css/main.1880392b.css +2 -0
- package/frontend/build/static/css/main.1880392b.css.map +1 -0
- package/frontend/build/static/js/main.0c70c26b.js +3 -0
- package/frontend/build/static/js/{main.cf64bc64.js.LICENSE.txt → main.0c70c26b.js.LICENSE.txt} +2 -0
- package/frontend/build/static/js/main.0c70c26b.js.map +1 -0
- package/package.json +5 -1
- package/frontend/build/static/css/main.4c325919.css +0 -2
- package/frontend/build/static/css/main.4c325919.css.map +0 -1
- package/frontend/build/static/js/main.cf64bc64.js +0 -3
- package/frontend/build/static/js/main.cf64bc64.js.map +0 -1
|
@@ -62,7 +62,7 @@ export interface SerializedMatterbridgeDevice {
|
|
|
62
62
|
deviceName: string;
|
|
63
63
|
serialNumber: string;
|
|
64
64
|
uniqueId: string;
|
|
65
|
-
|
|
65
|
+
deviceTypes: AtLeastOne<DeviceTypeDefinition>;
|
|
66
66
|
endpoint: EndpointNumber | undefined;
|
|
67
67
|
endpointName: string;
|
|
68
68
|
clusterServersId: ClusterId[];
|
|
@@ -91,7 +91,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
91
91
|
* @param {DeviceTypeDefinition} definition - The DeviceTypeDefinition of the device.
|
|
92
92
|
* @returns MatterbridgeDevice instance.
|
|
93
93
|
*/
|
|
94
|
-
static loadInstance(definition: DeviceTypeDefinition): Promise<MatterbridgeDevice>;
|
|
94
|
+
static loadInstance(definition: DeviceTypeDefinition, options: EndpointOptions): Promise<MatterbridgeDevice>;
|
|
95
95
|
/**
|
|
96
96
|
* Adds a device type to the list of device types.
|
|
97
97
|
* If the device type is not already present in the list, it will be added.
|
|
@@ -99,6 +99,13 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
99
99
|
* @param {DeviceTypeDefinition} deviceType - The device type to add.
|
|
100
100
|
*/
|
|
101
101
|
addDeviceType(deviceType: DeviceTypeDefinition): void;
|
|
102
|
+
/**
|
|
103
|
+
* Adds one or more device types with the required cluster servers and the specified cluster servers.
|
|
104
|
+
*
|
|
105
|
+
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
106
|
+
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
107
|
+
*/
|
|
108
|
+
addDeviceTypeWithClusterServer(deviceTypes: AtLeastOne<DeviceTypeDefinition>, includeServerList: ClusterId[]): void;
|
|
102
109
|
/**
|
|
103
110
|
* Adds a child device type with cluster server.
|
|
104
111
|
*
|
|
@@ -106,7 +113,28 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
106
113
|
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
107
114
|
* @returns {Endpoint} - The child endpoint that was added.
|
|
108
115
|
*/
|
|
109
|
-
addChildDeviceTypeWithClusterServer(deviceTypes: AtLeastOne<DeviceTypeDefinition>, includeServerList: ClusterId[]): Endpoint;
|
|
116
|
+
addChildDeviceTypeWithClusterServer(endpointName: string, deviceTypes: AtLeastOne<DeviceTypeDefinition>, includeServerList: ClusterId[]): Endpoint;
|
|
117
|
+
/**
|
|
118
|
+
* Retrieves a child endpoint by its name.
|
|
119
|
+
*
|
|
120
|
+
* @param {string} endpointName - The name of the endpoint to retrieve.
|
|
121
|
+
* @returns {Endpoint | undefined} The child endpoint with the specified name, or undefined if not found.
|
|
122
|
+
*/
|
|
123
|
+
getChildEndpointByName(endpointName: string): Endpoint | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Retrieves a child endpoint name.
|
|
126
|
+
*
|
|
127
|
+
* @param {Endpoint} child - The child endpoint to retrieve the name.
|
|
128
|
+
* @returns {string | undefined} The child endpoint name, or undefined if not found.
|
|
129
|
+
*/
|
|
130
|
+
getChildEndpointName(child: Endpoint): string | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* Sets the endpoint name for a child endpoint.
|
|
133
|
+
*
|
|
134
|
+
* @param {Endpoint} child - The child endpoint.
|
|
135
|
+
* @param {string} endpointName - The name of the endpoint.
|
|
136
|
+
*/
|
|
137
|
+
setChildEndpointName(child: Endpoint, endpointName: string): void;
|
|
110
138
|
/**
|
|
111
139
|
* Serializes the Matterbridge device into a serialized object.
|
|
112
140
|
*
|
|
@@ -151,7 +179,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
151
179
|
readonly eveEnergy: import("@project-chip/matter.js/schema").BitFlag;
|
|
152
180
|
readonly eveWeather: import("@project-chip/matter.js/schema").BitFlag;
|
|
153
181
|
readonly eveRoom: import("@project-chip/matter.js/schema").BitFlag;
|
|
154
|
-
}>>, "ConfigDataGet" | "ConfigDataSet" | "HistoryStatus" | "HistoryEntries" | "HistoryRequest" | "HistorySetTime" | "
|
|
182
|
+
}>>, "ConfigDataGet" | "ConfigDataSet" | "HistoryStatus" | "HistoryEntries" | "HistoryRequest" | "HistorySetTime" | "LastEvent" | "TimesOpened" | "ResetTotal" | "RLoc" | "MotionSensitivity" | "Voltage" | "Current" | "Consumption" | "TotalConsumption" | "EnergyUnknown" | "ChildLock" | "Elevation" | "AirPressure" | "WeatherTrend" | "TemperatureDisplayUnits" | keyof import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
|
|
155
183
|
readonly eveDoor: import("@project-chip/matter.js/schema").BitFlag;
|
|
156
184
|
readonly eveMotion: import("@project-chip/matter.js/schema").BitFlag;
|
|
157
185
|
readonly eveEnergy: import("@project-chip/matter.js/schema").BitFlag;
|
|
@@ -173,7 +201,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
173
201
|
readonly EnergyUnknown: import("@project-chip/matter-node.js/cluster").OptionalAttribute<number, any>;
|
|
174
202
|
readonly ChildLock: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<boolean, any>;
|
|
175
203
|
readonly RLoc: import("@project-chip/matter-node.js/cluster").Attribute<number, any>;
|
|
176
|
-
}, "ConfigDataGet" | "ConfigDataSet" | "HistoryStatus" | "HistoryEntries" | "HistoryRequest" | "HistorySetTime" | "
|
|
204
|
+
}, "ConfigDataGet" | "ConfigDataSet" | "HistoryStatus" | "HistoryEntries" | "HistoryRequest" | "HistorySetTime" | "LastEvent" | "TimesOpened" | "ResetTotal" | "RLoc" | "MotionSensitivity" | "Voltage" | "Current" | "Consumption" | "TotalConsumption" | "EnergyUnknown" | "ChildLock" | "Elevation" | "AirPressure" | "WeatherTrend" | "TemperatureDisplayUnits" | keyof import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
|
|
177
205
|
readonly eveDoor: import("@project-chip/matter.js/schema").BitFlag;
|
|
178
206
|
readonly eveMotion: import("@project-chip/matter.js/schema").BitFlag;
|
|
179
207
|
readonly eveEnergy: import("@project-chip/matter.js/schema").BitFlag;
|
|
@@ -207,7 +235,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
207
235
|
readonly eveEnergy: import("@project-chip/matter.js/schema").BitFlag;
|
|
208
236
|
readonly eveWeather: import("@project-chip/matter.js/schema").BitFlag;
|
|
209
237
|
readonly eveRoom: import("@project-chip/matter.js/schema").BitFlag;
|
|
210
|
-
}>>, "ConfigDataGet" | "ConfigDataSet" | "HistoryStatus" | "HistoryEntries" | "HistoryRequest" | "HistorySetTime" | "
|
|
238
|
+
}>>, "ConfigDataGet" | "ConfigDataSet" | "HistoryStatus" | "HistoryEntries" | "HistoryRequest" | "HistorySetTime" | "LastEvent" | "TimesOpened" | "ResetTotal" | "RLoc" | "MotionSensitivity" | "Voltage" | "Current" | "Consumption" | "TotalConsumption" | "EnergyUnknown" | "ChildLock" | "Elevation" | "AirPressure" | "WeatherTrend" | "TemperatureDisplayUnits" | keyof import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
|
|
211
239
|
readonly eveDoor: import("@project-chip/matter.js/schema").BitFlag;
|
|
212
240
|
readonly eveMotion: import("@project-chip/matter.js/schema").BitFlag;
|
|
213
241
|
readonly eveEnergy: import("@project-chip/matter.js/schema").BitFlag;
|
|
@@ -1600,7 +1628,14 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
1600
1628
|
}>>, "clusterRevision" | "featureMap" | "attributeList" | "eventList" | "acceptedCommandList" | "generatedCommandList" | "utcTime" | "granularity" | "timeSource" | "trustedTimeNodeId"> & Omit<{
|
|
1601
1629
|
readonly timeZone: import("@project-chip/matter-node.js/cluster").WritableAttribute<import("@project-chip/matter.js/tlv").TypeFromFields<{
|
|
1602
1630
|
offset: import("@project-chip/matter.js/tlv").FieldType<number>;
|
|
1603
|
-
validAt: import("@project-chip/matter.js/tlv").FieldType<number | bigint>;
|
|
1631
|
+
validAt: import("@project-chip/matter.js/tlv").FieldType<number | bigint>; /**
|
|
1632
|
+
* Creates a default Electrical Measurement Cluster Server.
|
|
1633
|
+
*
|
|
1634
|
+
* @param voltage - The RMS voltage value.
|
|
1635
|
+
* @param current - The RMS current value.
|
|
1636
|
+
* @param power - The active power value.
|
|
1637
|
+
* @param consumption - The total active power consumption value.
|
|
1638
|
+
*/
|
|
1604
1639
|
name: import("@project-chip/matter.js/tlv").OptionalFieldType<string>;
|
|
1605
1640
|
}>[], any>;
|
|
1606
1641
|
readonly dstOffset: import("@project-chip/matter-node.js/cluster").WritableAttribute<import("@project-chip/matter.js/tlv").TypeFromFields<{
|
|
@@ -1629,15 +1664,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
|
|
|
1629
1664
|
readonly ntpServer: import("@project-chip/matter.js/schema").BitFlag;
|
|
1630
1665
|
}>>, Pick<{}, never> & Omit<{
|
|
1631
1666
|
readonly dstTableEmpty: import("@project-chip/matter-node.js/cluster").Event<void, any>;
|
|
1632
|
-
readonly dstStatus: import("@project-chip/matter-node.js/cluster").Event<void, any>;
|
|
1633
|
-
* Creates a default color control cluster server.
|
|
1634
|
-
*
|
|
1635
|
-
* @param currentHue - The current hue value.
|
|
1636
|
-
* @param currentSaturation - The current saturation value.
|
|
1637
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1638
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1639
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1640
|
-
*/
|
|
1667
|
+
readonly dstStatus: import("@project-chip/matter-node.js/cluster").Event<void, any>;
|
|
1641
1668
|
readonly timeZoneStatus: import("@project-chip/matter-node.js/cluster").Event<import("@project-chip/matter.js/tlv").TypeFromFields<{
|
|
1642
1669
|
offset: import("@project-chip/matter.js/tlv").FieldType<number>;
|
|
1643
1670
|
name: import("@project-chip/matter.js/tlv").OptionalFieldType<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matterbridgeDevice.d.ts","sourceRoot":"","sources":["../src/matterbridgeDevice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAML,qBAAqB,EACrB,YAAY,EAEZ,QAAQ,
|
|
1
|
+
{"version":3,"file":"matterbridgeDevice.d.ts","sourceRoot":"","sources":["../src/matterbridgeDevice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAML,qBAAqB,EACrB,YAAY,EAEZ,QAAQ,EAQR,QAAQ,EAIR,YAAY,EAEZ,gBAAgB,EAEhB,KAAK,EAEL,WAAW,EAYX,UAAU,EAIV,QAAQ,EAER,cAAc,EAKf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAiB,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC7H,OAAO,EAAE,UAAU,EAA8B,MAAM,mCAAmC,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAsD,MAAM,gBAAgB,CAAC;AAGnG,OAAO,EAAE,UAAU,EAAqB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,UAAU,EAA+B,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,eAAe,EAA0B,MAAM,kBAAkB,CAAC;AAE3E,KAAK,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAE9C,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAErF,EAAE,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,GAAG,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,aAAa,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAE5F,WAAW,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/F,oBAAoB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEjH,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3F,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACvF,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACvF,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzG,cAAc,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrG,cAAc,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrG,sBAAsB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACrH,sBAAsB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAErH,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,WAAW,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACjG,UAAU,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/F,kBAAkB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE/G,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACrF,UAAU,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzF,kBAAkB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;CAC5G,CAAC;AAGF,eAAO,MAAM,WAAW,sBAOtB,CAAC;AAEH,eAAO,MAAM,cAAc,sBAOzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,sBAOjC,CAAC;AAEH,eAAO,MAAM,gBAAgB,sBAO3B,CAAC;AAEH,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC9C,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAC;CAC/B;;;;;;AAED,qBAAa,kBAAmB,SAAQ,uBAA6E;IACnH,OAAc,UAAU,SAAM;IAC9B,GAAG,EAAE,UAAU,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAa;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC3C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IAEzC;;;;;OAKG;gBACS,UAAU,EAAE,oBAAoB,EAAE,OAAO,GAAE,eAAoB;IAK3E;;;;;OAKG;WACU,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe;IAIpF;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,oBAAoB;IAQ9C;;;;;OAKG;IACH,8BAA8B,CAAC,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE;IA2B5G;;;;;;OAMG;IACH,mCAAmC,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,QAAQ;IA+BlJ;;;;;OAKG;IACH,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAWlE;;;;;OAKG;IACH,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IASzD;;;;;OAKG;IACH,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM;IAI1D;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM;IAiB5B;;;;;;;;OAQG;IACH,uCAAuC,CAAC,OAAO,SAAI,EAAE,OAAO,SAAI,EAAE,KAAK,SAAI,EAAE,WAAW,SAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2B5F;;;;;OAKG;IACH,iCAAiC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAiEzE;;;;;OAKG;IACH,oCAAoC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAoE5E;;;;;OAKG;IACH,mCAAmC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAsF3E;;;;;OAKG;IACH,mCAAmC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAuE3E;;;;;OAKG;IACH,iCAAiC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAsFzE;;OAEG;IACH,+BAA+B;;;;;;IAiB/B;;OAEG;IACH,kCAAkC;IAIlC;;OAEG;IACH,6BAA6B;;;;;;;IAI7B;;OAEG;IACH,gCAAgC;IAIhC;;OAEG;IACH,6BAA6B;;;;;;;;;;;;IAI7B;;OAEG;IACH,gCAAgC;IAIhC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;;;;;;;;;;OAaG;IACH,uCAAuC,CACrC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,eAAe,SAAI,EACnB,qBAAqB,SAAU,EAC/B,eAAe,SAAI,EACnB,qBAAqB,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BjC;;;;;;;;;;;;;OAaG;IACH,0CAA0C,CACxC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,eAAe,SAAI,EACnB,qBAAqB,SAAU,EAC/B,eAAe,SAAI,EACnB,qBAAqB,SAAU;IAYjC;;;;;;;;;;;;OAYG;IACH,oDAAoD,CAClD,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,eAAe,SAAI,EACnB,qBAAqB,SAAU,EAC/B,eAAe,SAAI,EACnB,qBAAqB,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyBjC;;;;;;;;;;;;OAYG;IACH,uDAAuD,CACrD,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,eAAe,SAAI,EACnB,qBAAqB,SAAU,EAC/B,eAAe,SAAI,EACnB,qBAAqB,SAAU;IAQjC;;;;;;;OAOG;IACH,4CAA4C,CAAC,OAAO,SAAI,EAAE,OAAO,SAAI,EAAE,KAAK,SAAI,EAAE,WAAW,SAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcjG;;;;;;;OAOG;IACH,+CAA+C,CAAC,OAAO,SAAI,EAAE,OAAO,SAAI,EAAE,KAAK,SAAI,EAAE,WAAW,SAAI;IAIpG;;;;;;;OAOG;IACH,uDAAuD;IAoCvD;;;;OAIG;IACH,4BAA4B,CAAC,KAAK,UAAQ;;;;;IA2B1C;;;;OAIG;IACH,+BAA+B,CAAC,KAAK,UAAQ;IAI7C;;;;OAIG;IACH,mCAAmC,CAAC,YAAY,SAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmDpD;;;;OAIG;IACH,sCAAsC,CAAC,YAAY,SAAI;IAIvD;;;;;;;;OAQG;IACH,mCAAmC,CAAC,UAAU,SAAI,EAAE,iBAAiB,SAAI,EAAE,sBAAsB,SAAM,EAAE,0BAA0B,SAAM,EAAE,0BAA0B,SAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2E3K;;;;;;;;OAQG;IACH,sCAAsC,CAAC,UAAU,SAAI,EAAE,iBAAiB,SAAI,EAAE,sBAAsB,SAAM,EAAE,0BAA0B,SAAM,EAAE,0BAA0B,SAAM;IAI9K;;;;OAIG;IACH,qCAAqC,CAAC,qBAAqB,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkDpE;;;;OAIG;IACH,wCAAwC,CAAC,qBAAqB,CAAC,EAAE,MAAM;IAIvE;;OAEG;IACH,0CAA0C;IAiB1C;;;;;OAKG;IACH,oCAAoC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,cAAc;IAe3G;;;OAGG;IACH,uBAAuB,CAAC,MAAM,EAAE,cAAc,CAAC,cAAc;IAQ7D;;;OAGG;IACH,uBAAuB;IASvB;;;;OAIG;IACH,yCAAyC,CAAC,QAAQ,EAAE,MAAM;IAS1D;;;;;;OAMG;IACH,+BAA+B,CAAC,SAAS,qBAA4B,EAAE,QAAQ,oBAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6B5G;;;;;;OAMG;IACH,kCAAkC,CAAC,SAAS,qBAA4B,EAAE,QAAQ,oBAA6B;IAI/G;;;;;OAKG;IACH,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmB7B;;;;;OAKG;IACH,gCAAgC;IAMhC;;;;OAIG;IACH,uCAAuC,CAAC,QAAQ,UAAQ;;;;;;;;;;;;;;;;;;;;IAYxD;;;;OAIG;IACH,0CAA0C,CAAC,QAAQ,UAAQ;IAI3D;;;;OAIG;IACH,6CAA6C,CAAC,aAAa,GAAE,MAAU;;;;;;;IAavE;;;;OAIG;IACH,gDAAgD,CAAC,aAAa,GAAE,MAAU;IAI1E;;;;OAIG;IACH,sCAAsC,CAAC,aAAa,GAAE,MAAU;;;;;;IAchE;;;;OAIG;IACH,yCAAyC,CAAC,aAAa,GAAE,MAAU;IAInE;;;;OAIG;IACH,6CAA6C,CAAC,aAAa,GAAE,MAAU;;;;;;IAcvE;;;;OAIG;IACH,gDAAgD,CAAC,aAAa,GAAE,MAAU;IAI1E;;;;OAIG;IACH,kDAAkD,CAAC,aAAa,GAAE,MAAU;;;;;;IAa5E;;;;OAIG;IACH,qDAAqD,CAAC,aAAa,GAAE,MAAU;IAI/E;;;;OAIG;IACH,0CAA0C,CAAC,aAAa,GAAE,MAAa;;;;;;;;IAavE;;;;OAIG;IACH,6CAA6C,CAAC,aAAa,GAAE,MAAa;IAI1E;;;;OAIG;IACH,mCAAmC,CAAC,OAAO,CAAC,EAAE,OAAO;;;;;;;IAarD;;;;OAIG;IACH,sCAAsC,CAAC,OAAO,CAAC,EAAE,OAAO;IAIxD;;;;;;;;OAQG;IACH,uDAAuD,CACrD,mBAAmB,GAAE,MAAY,EACjC,cAAc,GAAE,WAAW,CAAC,cAA8C,EAC1E,UAAU,GAAE,MAAa,EACzB,yBAAyB,GAAE,MAAuB,EAClD,WAAW,GAAE,MAAU;IAwBzB;;;;;;OAMG;IACH,wDAAwD,CAAC,mBAAmB,GAAE,MAAY,EAAE,cAAc,GAAE,WAAW,CAAC,cAA8C,EAAE,UAAU,GAAE,MAAa;IAwBjM;;;;OAIG;IACH,0CAA0C,CAAC,gBAAgB,GAAE,WAAW,CAAC,gBAAkD;IAgB3H;;;;;;;;;OASG;IACH,kDAAkD,CAAC,cAAc,CAAC,EAAE,MAAM;IAa1E;;;;OAIG;IACH,iCAAiC,CAAC,UAAU,4BAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUhF;;;;OAIG;IACH,oCAAoC,CAAC,UAAU,4BAAoC;IAInF;;;;OAIG;IACH,sCAAsC,CAAC,aAAa,GAAE,MAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYhE;;;;OAIG;IACH,yCAAyC,CAAC,aAAa,GAAE,MAAU;IAInE;;;;;;;OAOG;IACH,iCAAiC,CAAC,gBAAgB,GAAE,MAAW,EAAE,uBAAuB,GAAE,MAAW,EAAE,uBAAuB,GAAE,MAAW,EAAE,mBAAmB,GAAE,MAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+B5K;;;;;;;OAOG;IACH,oCAAoC,CAAC,gBAAgB,GAAE,MAAW,EAAE,uBAAuB,GAAE,MAAW,EAAE,uBAAuB,GAAE,MAAW,EAAE,mBAAmB,GAAE,MAAU;IAI/K;;OAEG;IACH,+BAA+B;;;;;;;;;;;;uFA93B/B;;;;;;;eAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAi5BH;;OAEG;IACH,kCAAkC;CAGnC"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* See the License for the specific language governing permissions and
|
|
21
21
|
* limitations under the License. *
|
|
22
22
|
*/
|
|
23
|
-
import { BasicInformationCluster, BooleanState, BooleanStateCluster, BridgedDeviceBasicInformationCluster, ClusterServer, ColorControl, ColorControlCluster, DoorLock, DoorLockCluster, ElectricalMeasurement, ElectricalMeasurementCluster, FlowMeasurement, FlowMeasurementCluster, Groups, Identify, IdentifyCluster, IlluminanceMeasurement, IlluminanceMeasurementCluster, LevelControl, LevelControlCluster, OccupancySensing, OccupancySensingCluster, OnOff, OnOffCluster, PowerSource, PowerSourceCluster, PowerSourceConfigurationCluster, PressureMeasurement, PressureMeasurementCluster, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, Scenes, Switch, SwitchCluster, TemperatureMeasurement, TemperatureMeasurementCluster, Thermostat, ThermostatCluster, ThreadNetworkDiagnostics, ThreadNetworkDiagnosticsCluster, TimeSync, TimeSyncCluster, WindowCovering, WindowCoveringCluster, createDefaultGroupsClusterServer, createDefaultScenesClusterServer, getClusterNameById, } from '@project-chip/matter-node.js/cluster';
|
|
23
|
+
import { BasicInformationCluster, BooleanState, BooleanStateCluster, BridgedDeviceBasicInformationCluster, ClusterServer, ColorControl, ColorControlCluster, DoorLock, DoorLockCluster, ElectricalMeasurement, ElectricalMeasurementCluster, FixedLabelCluster, FlowMeasurement, FlowMeasurementCluster, Groups, Identify, IdentifyCluster, IlluminanceMeasurement, IlluminanceMeasurementCluster, LevelControl, LevelControlCluster, OccupancySensing, OccupancySensingCluster, OnOff, OnOffCluster, PowerSource, PowerSourceCluster, PowerSourceConfigurationCluster, PressureMeasurement, PressureMeasurementCluster, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, Scenes, Switch, SwitchCluster, TemperatureMeasurement, TemperatureMeasurementCluster, Thermostat, ThermostatCluster, ThreadNetworkDiagnostics, ThreadNetworkDiagnosticsCluster, TimeSync, TimeSyncCluster, WindowCovering, WindowCoveringCluster, createDefaultGroupsClusterServer, createDefaultScenesClusterServer, getClusterNameById, } from '@project-chip/matter-node.js/cluster';
|
|
24
24
|
import { EndpointNumber, VendorId } from '@project-chip/matter-node.js/datatype';
|
|
25
25
|
import { Device, DeviceClasses, DeviceTypeDefinition, Endpoint } from '@project-chip/matter-node.js/device';
|
|
26
26
|
import { extendPublicHandlerMethods } from '@project-chip/matter-node.js/util';
|
|
@@ -84,8 +84,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
84
84
|
* @param {DeviceTypeDefinition} definition - The DeviceTypeDefinition of the device.
|
|
85
85
|
* @returns MatterbridgeDevice instance.
|
|
86
86
|
*/
|
|
87
|
-
static async loadInstance(definition) {
|
|
88
|
-
return new MatterbridgeDevice(definition);
|
|
87
|
+
static async loadInstance(definition, options) {
|
|
88
|
+
return new MatterbridgeDevice(definition, options);
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Adds a device type to the list of device types.
|
|
@@ -100,6 +100,52 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
100
100
|
this.setDeviceTypes(deviceTypes);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Adds one or more device types with the required cluster servers and the specified cluster servers.
|
|
105
|
+
*
|
|
106
|
+
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
107
|
+
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
108
|
+
*/
|
|
109
|
+
addDeviceTypeWithClusterServer(deviceTypes, includeServerList) {
|
|
110
|
+
this.log.debug('addDeviceTypeWithClusterServer:');
|
|
111
|
+
deviceTypes.forEach((deviceType) => {
|
|
112
|
+
this.addDeviceType(deviceType);
|
|
113
|
+
this.log.debug(`- with deviceType: ${zb}${deviceType.code}${db}-${zb}${deviceType.name}${db}`);
|
|
114
|
+
deviceType.requiredServerClusters.forEach((clusterId) => {
|
|
115
|
+
if (!includeServerList.includes(clusterId))
|
|
116
|
+
includeServerList.push(clusterId);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
includeServerList.forEach((clusterId) => {
|
|
120
|
+
this.log.debug(`- with cluster: ${hk}${clusterId}${db}-${hk}${getClusterNameById(clusterId)}${db}`);
|
|
121
|
+
});
|
|
122
|
+
if (includeServerList.includes(Identify.Cluster.id))
|
|
123
|
+
this.addClusterServer(this.getDefaultIdentifyClusterServer());
|
|
124
|
+
if (includeServerList.includes(Groups.Cluster.id))
|
|
125
|
+
this.addClusterServer(this.getDefaultGroupsClusterServer());
|
|
126
|
+
if (includeServerList.includes(Scenes.Cluster.id))
|
|
127
|
+
this.addClusterServer(this.getDefaultScenesClusterServer());
|
|
128
|
+
if (includeServerList.includes(OnOff.Cluster.id))
|
|
129
|
+
this.addClusterServer(this.getDefaultOnOffClusterServer());
|
|
130
|
+
if (includeServerList.includes(TemperatureMeasurement.Cluster.id))
|
|
131
|
+
this.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer());
|
|
132
|
+
if (includeServerList.includes(RelativeHumidityMeasurement.Cluster.id))
|
|
133
|
+
this.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer());
|
|
134
|
+
if (includeServerList.includes(PressureMeasurement.Cluster.id))
|
|
135
|
+
this.addClusterServer(this.getDefaultPressureMeasurementClusterServer());
|
|
136
|
+
if (includeServerList.includes(FlowMeasurement.Cluster.id))
|
|
137
|
+
this.addClusterServer(this.getDefaultFlowMeasurementClusterServer());
|
|
138
|
+
if (includeServerList.includes(BooleanState.Cluster.id))
|
|
139
|
+
this.addClusterServer(this.getDefaultBooleanStateClusterServer());
|
|
140
|
+
if (includeServerList.includes(OccupancySensing.Cluster.id))
|
|
141
|
+
this.addClusterServer(this.getDefaultOccupancySensingClusterServer());
|
|
142
|
+
if (includeServerList.includes(IlluminanceMeasurement.Cluster.id))
|
|
143
|
+
this.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer());
|
|
144
|
+
if (includeServerList.includes(EveHistory.Cluster.id))
|
|
145
|
+
this.addClusterServer(this.getDefaultStaticEveHistoryClusterServer());
|
|
146
|
+
if (includeServerList.includes(ElectricalMeasurement.Cluster.id))
|
|
147
|
+
this.addClusterServer(this.getDefaultElectricalMeasurementClusterServer());
|
|
148
|
+
}
|
|
103
149
|
/**
|
|
104
150
|
* Adds a child device type with cluster server.
|
|
105
151
|
*
|
|
@@ -107,9 +153,10 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
107
153
|
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
108
154
|
* @returns {Endpoint} - The child endpoint that was added.
|
|
109
155
|
*/
|
|
110
|
-
addChildDeviceTypeWithClusterServer(deviceTypes, includeServerList) {
|
|
156
|
+
addChildDeviceTypeWithClusterServer(endpointName, deviceTypes, includeServerList) {
|
|
111
157
|
this.log.debug('addChildDeviceTypeWithClusterServer:');
|
|
112
158
|
const child = new Endpoint(deviceTypes);
|
|
159
|
+
child.addFixedLabel('endpointName', endpointName);
|
|
113
160
|
deviceTypes.forEach((deviceType) => {
|
|
114
161
|
this.log.debug(`- with deviceType: ${zb}${deviceType.code}${db}-${zb}${deviceType.name}${db}`);
|
|
115
162
|
deviceType.requiredServerClusters.forEach((clusterId) => {
|
|
@@ -120,48 +167,78 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
120
167
|
includeServerList.forEach((clusterId) => {
|
|
121
168
|
this.log.debug(`- with cluster: ${hk}${clusterId}${db}-${hk}${getClusterNameById(clusterId)}${db}`);
|
|
122
169
|
});
|
|
123
|
-
if (includeServerList.includes(Identify.Cluster.id))
|
|
170
|
+
if (includeServerList.includes(Identify.Cluster.id))
|
|
124
171
|
child.addClusterServer(this.getDefaultIdentifyClusterServer());
|
|
125
|
-
|
|
126
|
-
if (includeServerList.includes(Groups.Cluster.id)) {
|
|
172
|
+
if (includeServerList.includes(Groups.Cluster.id))
|
|
127
173
|
child.addClusterServer(this.getDefaultGroupsClusterServer());
|
|
128
|
-
|
|
129
|
-
if (includeServerList.includes(Scenes.Cluster.id)) {
|
|
174
|
+
if (includeServerList.includes(Scenes.Cluster.id))
|
|
130
175
|
child.addClusterServer(this.getDefaultScenesClusterServer());
|
|
131
|
-
|
|
132
|
-
if (includeServerList.includes(OnOff.Cluster.id)) {
|
|
176
|
+
if (includeServerList.includes(OnOff.Cluster.id))
|
|
133
177
|
child.addClusterServer(this.getDefaultOnOffClusterServer());
|
|
134
|
-
|
|
135
|
-
if (includeServerList.includes(TemperatureMeasurement.Cluster.id)) {
|
|
178
|
+
if (includeServerList.includes(TemperatureMeasurement.Cluster.id))
|
|
136
179
|
child.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer());
|
|
137
|
-
|
|
138
|
-
if (includeServerList.includes(RelativeHumidityMeasurement.Cluster.id)) {
|
|
180
|
+
if (includeServerList.includes(RelativeHumidityMeasurement.Cluster.id))
|
|
139
181
|
child.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer());
|
|
140
|
-
|
|
141
|
-
if (includeServerList.includes(PressureMeasurement.Cluster.id)) {
|
|
182
|
+
if (includeServerList.includes(PressureMeasurement.Cluster.id))
|
|
142
183
|
child.addClusterServer(this.getDefaultPressureMeasurementClusterServer());
|
|
143
|
-
|
|
144
|
-
if (includeServerList.includes(FlowMeasurement.Cluster.id)) {
|
|
184
|
+
if (includeServerList.includes(FlowMeasurement.Cluster.id))
|
|
145
185
|
child.addClusterServer(this.getDefaultFlowMeasurementClusterServer());
|
|
146
|
-
|
|
147
|
-
if (includeServerList.includes(BooleanState.Cluster.id)) {
|
|
186
|
+
if (includeServerList.includes(BooleanState.Cluster.id))
|
|
148
187
|
child.addClusterServer(this.getDefaultBooleanStateClusterServer());
|
|
149
|
-
|
|
150
|
-
if (includeServerList.includes(OccupancySensing.Cluster.id)) {
|
|
188
|
+
if (includeServerList.includes(OccupancySensing.Cluster.id))
|
|
151
189
|
child.addClusterServer(this.getDefaultOccupancySensingClusterServer());
|
|
152
|
-
|
|
153
|
-
if (includeServerList.includes(IlluminanceMeasurement.Cluster.id)) {
|
|
190
|
+
if (includeServerList.includes(IlluminanceMeasurement.Cluster.id))
|
|
154
191
|
child.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer());
|
|
155
|
-
|
|
156
|
-
if (includeServerList.includes(EveHistory.Cluster.id) && !this.hasClusterServer(EveHistory.Complete)) {
|
|
192
|
+
if (includeServerList.includes(EveHistory.Cluster.id) && !this.hasClusterServer(EveHistory.Complete))
|
|
157
193
|
child.addClusterServer(this.getDefaultStaticEveHistoryClusterServer());
|
|
158
|
-
|
|
159
|
-
if (includeServerList.includes(ElectricalMeasurement.Cluster.id) && !this.hasClusterServer(ElectricalMeasurement.Complete)) {
|
|
194
|
+
if (includeServerList.includes(ElectricalMeasurement.Cluster.id) && !this.hasClusterServer(ElectricalMeasurement.Complete))
|
|
160
195
|
child.addClusterServer(this.getDefaultElectricalMeasurementClusterServer());
|
|
161
|
-
}
|
|
162
196
|
this.addChildEndpoint(child);
|
|
163
197
|
return child;
|
|
164
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Retrieves a child endpoint by its name.
|
|
201
|
+
*
|
|
202
|
+
* @param {string} endpointName - The name of the endpoint to retrieve.
|
|
203
|
+
* @returns {Endpoint | undefined} The child endpoint with the specified name, or undefined if not found.
|
|
204
|
+
*/
|
|
205
|
+
getChildEndpointByName(endpointName) {
|
|
206
|
+
for (const child of this.getChildEndpoints()) {
|
|
207
|
+
// Find the endpoint name (l1...)
|
|
208
|
+
const labelList = child.getClusterServer(FixedLabelCluster)?.getLabelListAttribute();
|
|
209
|
+
if (!labelList)
|
|
210
|
+
continue;
|
|
211
|
+
const value = labelList.find((entry) => entry.label === 'endpointName');
|
|
212
|
+
if (value && value.value === endpointName)
|
|
213
|
+
return child;
|
|
214
|
+
}
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Retrieves a child endpoint name.
|
|
219
|
+
*
|
|
220
|
+
* @param {Endpoint} child - The child endpoint to retrieve the name.
|
|
221
|
+
* @returns {string | undefined} The child endpoint name, or undefined if not found.
|
|
222
|
+
*/
|
|
223
|
+
getChildEndpointName(child) {
|
|
224
|
+
// Find the endpoint name (l1...)
|
|
225
|
+
const labelList = child.getClusterServer(FixedLabelCluster)?.getLabelListAttribute();
|
|
226
|
+
if (!labelList)
|
|
227
|
+
return undefined;
|
|
228
|
+
const endpointNameLabel = labelList.find((entry) => entry.label === 'endpointName');
|
|
229
|
+
if (endpointNameLabel)
|
|
230
|
+
return endpointNameLabel.value;
|
|
231
|
+
return undefined;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Sets the endpoint name for a child endpoint.
|
|
235
|
+
*
|
|
236
|
+
* @param {Endpoint} child - The child endpoint.
|
|
237
|
+
* @param {string} endpointName - The name of the endpoint.
|
|
238
|
+
*/
|
|
239
|
+
setChildEndpointName(child, endpointName) {
|
|
240
|
+
child.addFixedLabel('endpointName', endpointName);
|
|
241
|
+
}
|
|
165
242
|
/**
|
|
166
243
|
* Serializes the Matterbridge device into a serialized object.
|
|
167
244
|
*
|
|
@@ -174,7 +251,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
174
251
|
serialNumber: this.serialNumber,
|
|
175
252
|
deviceName: this.deviceName,
|
|
176
253
|
uniqueId: this.uniqueId,
|
|
177
|
-
|
|
254
|
+
deviceTypes: this.getDeviceTypes(),
|
|
178
255
|
endpoint: this.number,
|
|
179
256
|
endpointName: this.name,
|
|
180
257
|
clusterServersId: [],
|
|
@@ -626,17 +703,17 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
626
703
|
dataModelRevision: 1,
|
|
627
704
|
location: 'XX',
|
|
628
705
|
vendorId: VendorId(vendorId),
|
|
629
|
-
vendorName: vendorName,
|
|
706
|
+
vendorName: vendorName.slice(0, 32),
|
|
630
707
|
productId: productId,
|
|
631
|
-
productName: productName,
|
|
632
|
-
productLabel: deviceName,
|
|
633
|
-
nodeLabel: deviceName,
|
|
634
|
-
serialNumber,
|
|
708
|
+
productName: productName.slice(0, 32),
|
|
709
|
+
productLabel: deviceName.slice(0, 64),
|
|
710
|
+
nodeLabel: deviceName.slice(0, 32),
|
|
711
|
+
serialNumber: serialNumber.slice(0, 32),
|
|
635
712
|
uniqueId: this.createUniqueId(deviceName, serialNumber, vendorName, productName),
|
|
636
713
|
softwareVersion,
|
|
637
|
-
softwareVersionString,
|
|
714
|
+
softwareVersionString: softwareVersionString.slice(0, 64),
|
|
638
715
|
hardwareVersion,
|
|
639
|
-
hardwareVersionString,
|
|
716
|
+
hardwareVersionString: hardwareVersionString.slice(0, 64),
|
|
640
717
|
reachable: true,
|
|
641
718
|
capabilityMinima: { caseSessionsPerFabric: 3, subscriptionsPerFabric: 3 },
|
|
642
719
|
}, {}, {
|
|
@@ -686,16 +763,16 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
686
763
|
getDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
687
764
|
return ClusterServer(BridgedDeviceBasicInformationCluster, {
|
|
688
765
|
vendorId: vendorId !== undefined ? VendorId(vendorId) : undefined, // 4874
|
|
689
|
-
vendorName: vendorName,
|
|
690
|
-
productName: productName,
|
|
691
|
-
productLabel: deviceName,
|
|
692
|
-
nodeLabel: deviceName,
|
|
693
|
-
serialNumber,
|
|
766
|
+
vendorName: vendorName.slice(0, 32),
|
|
767
|
+
productName: productName.slice(0, 32),
|
|
768
|
+
productLabel: deviceName.slice(0, 64),
|
|
769
|
+
nodeLabel: deviceName.slice(0, 32),
|
|
770
|
+
serialNumber: serialNumber.slice(0, 32),
|
|
694
771
|
uniqueId: this.createUniqueId(deviceName, serialNumber, vendorName, productName),
|
|
695
772
|
softwareVersion,
|
|
696
|
-
softwareVersionString,
|
|
773
|
+
softwareVersionString: softwareVersionString.slice(0, 64),
|
|
697
774
|
hardwareVersion,
|
|
698
|
-
hardwareVersionString,
|
|
775
|
+
hardwareVersionString: hardwareVersionString.slice(0, 64),
|
|
699
776
|
reachable: true,
|
|
700
777
|
}, {}, {
|
|
701
778
|
reachableChanged: true,
|
|
@@ -1040,7 +1117,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1040
1117
|
});
|
|
1041
1118
|
}
|
|
1042
1119
|
// eslint-disable-next-line no-console
|
|
1043
|
-
console.log(`Set WindowCovering initial currentPositionLiftPercent100ths and targetPositionLiftPercent100ths to ${position} and operationalStatus to Stopped.`);
|
|
1120
|
+
// console.log(`Set WindowCovering initial currentPositionLiftPercent100ths and targetPositionLiftPercent100ths to ${position} and operationalStatus to Stopped.`);
|
|
1044
1121
|
}
|
|
1045
1122
|
}
|
|
1046
1123
|
/**
|
|
@@ -1061,7 +1138,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1061
1138
|
});
|
|
1062
1139
|
}
|
|
1063
1140
|
// eslint-disable-next-line no-console
|
|
1064
|
-
console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${current}, targetPositionLiftPercent100ths: ${target} and operationalStatus: ${status}.`);
|
|
1141
|
+
// console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${current}, targetPositionLiftPercent100ths: ${target} and operationalStatus: ${status}.`);
|
|
1065
1142
|
}
|
|
1066
1143
|
/**
|
|
1067
1144
|
* Sets the status of the window covering.
|
|
@@ -1073,7 +1150,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1073
1150
|
return;
|
|
1074
1151
|
windowCovering.setOperationalStatusAttribute({ global: status, lift: status, tilt: 0 });
|
|
1075
1152
|
// eslint-disable-next-line no-console
|
|
1076
|
-
console.log(`Set WindowCovering operationalStatus: ${status}`);
|
|
1153
|
+
// console.log(`Set WindowCovering operationalStatus: ${status}`);
|
|
1077
1154
|
}
|
|
1078
1155
|
/**
|
|
1079
1156
|
* Retrieves the status of the window covering.
|
|
@@ -1085,7 +1162,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1085
1162
|
return undefined;
|
|
1086
1163
|
const status = windowCovering.getOperationalStatusAttribute();
|
|
1087
1164
|
// eslint-disable-next-line no-console
|
|
1088
|
-
console.log(`Get WindowCovering operationalStatus: ${status.global}`);
|
|
1165
|
+
// console.log(`Get WindowCovering operationalStatus: ${status.global}`);
|
|
1089
1166
|
return status.global;
|
|
1090
1167
|
}
|
|
1091
1168
|
/**
|
|
@@ -1100,7 +1177,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1100
1177
|
windowCovering.setCurrentPositionLiftPercent100thsAttribute(position);
|
|
1101
1178
|
windowCovering.setTargetPositionLiftPercent100thsAttribute(position);
|
|
1102
1179
|
// eslint-disable-next-line no-console
|
|
1103
|
-
console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${position} and targetPositionLiftPercent100ths: ${position}.`);
|
|
1180
|
+
// console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${position} and targetPositionLiftPercent100ths: ${position}.`);
|
|
1104
1181
|
}
|
|
1105
1182
|
/**
|
|
1106
1183
|
* Get a default door lock cluster server.
|