@project-chip/matter.js 0.15.4 → 0.15.5
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/dist/cjs/CommissioningController.d.ts +1 -1
- package/dist/cjs/CommissioningController.d.ts.map +1 -1
- package/dist/cjs/CommissioningController.js +9 -18
- package/dist/cjs/CommissioningController.js.map +1 -1
- package/dist/cjs/MatterController.d.ts.map +1 -1
- package/dist/cjs/MatterController.js +2 -2
- package/dist/cjs/MatterController.js.map +1 -1
- package/dist/cjs/device/CachedClientNodeStore.d.ts +4 -3
- package/dist/cjs/device/CachedClientNodeStore.d.ts.map +1 -1
- package/dist/cjs/device/CachedClientNodeStore.js +19 -2
- package/dist/cjs/device/CachedClientNodeStore.js.map +1 -1
- package/dist/cjs/device/Endpoint.d.ts +1 -1
- package/dist/cjs/device/Endpoint.d.ts.map +1 -1
- package/dist/cjs/device/Endpoint.js.map +1 -1
- package/dist/cjs/device/PairedNode.d.ts +52 -28
- package/dist/cjs/device/PairedNode.d.ts.map +1 -1
- package/dist/cjs/device/PairedNode.js +196 -77
- package/dist/cjs/device/PairedNode.js.map +1 -1
- package/dist/esm/CommissioningController.d.ts +1 -1
- package/dist/esm/CommissioningController.d.ts.map +1 -1
- package/dist/esm/CommissioningController.js +9 -18
- package/dist/esm/CommissioningController.js.map +1 -1
- package/dist/esm/MatterController.d.ts.map +1 -1
- package/dist/esm/MatterController.js +2 -3
- package/dist/esm/MatterController.js.map +1 -1
- package/dist/esm/device/CachedClientNodeStore.d.ts +4 -3
- package/dist/esm/device/CachedClientNodeStore.d.ts.map +1 -1
- package/dist/esm/device/CachedClientNodeStore.js +19 -2
- package/dist/esm/device/CachedClientNodeStore.js.map +1 -1
- package/dist/esm/device/Endpoint.d.ts +1 -1
- package/dist/esm/device/Endpoint.d.ts.map +1 -1
- package/dist/esm/device/Endpoint.js.map +1 -1
- package/dist/esm/device/PairedNode.d.ts +52 -28
- package/dist/esm/device/PairedNode.d.ts.map +1 -1
- package/dist/esm/device/PairedNode.js +197 -78
- package/dist/esm/device/PairedNode.js.map +1 -1
- package/package.json +8 -8
- package/src/CommissioningController.ts +10 -18
- package/src/MatterController.ts +3 -4
- package/src/device/CachedClientNodeStore.ts +24 -4
- package/src/device/Endpoint.ts +1 -1
- package/src/device/PairedNode.ts +292 -89
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AdministratorCommissioning, BasicInformation,
|
|
6
|
+
import { AdministratorCommissioning, BasicInformation, Descriptor, OperationalCredentials } from "#clusters";
|
|
7
7
|
import {
|
|
8
8
|
AsyncObservable,
|
|
9
9
|
Construction,
|
|
@@ -70,6 +70,15 @@ var NodeStateInformation = /* @__PURE__ */ ((NodeStateInformation2) => {
|
|
|
70
70
|
})(NodeStateInformation || {});
|
|
71
71
|
class NodeNotConnectedError extends MatterError {
|
|
72
72
|
}
|
|
73
|
+
function areNumberListsSame(list1, list2) {
|
|
74
|
+
const set1 = new Set(list1);
|
|
75
|
+
const set2 = new Set(list2);
|
|
76
|
+
if (set1.size !== set2.size) return false;
|
|
77
|
+
for (const entry of set1.values()) {
|
|
78
|
+
if (!set2.has(entry)) return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
73
82
|
class PairedNode {
|
|
74
83
|
constructor(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, crypto, storedAttributeData) {
|
|
75
84
|
this.nodeId = nodeId;
|
|
@@ -163,31 +172,23 @@ class PairedNode {
|
|
|
163
172
|
#reconnectFunc;
|
|
164
173
|
#currentSubscriptionIntervalS;
|
|
165
174
|
#crypto;
|
|
175
|
+
/**
|
|
176
|
+
* Endpoint structure change information that are checked when updating structure
|
|
177
|
+
* - null means that the endpoint itself changed, so will be regenerated completely any case
|
|
178
|
+
* - array of ClusterIds means that only these clusters changed and will be updated
|
|
179
|
+
*/
|
|
180
|
+
#registeredEndpointStructureChanges = /* @__PURE__ */ new Map();
|
|
166
181
|
events = {
|
|
167
|
-
/**
|
|
168
|
-
* Emitted when the node is initialized from local data. These data usually are stale, but you can still already
|
|
169
|
-
* use the node to interact with the device. If no local data are available this event will be emitted together
|
|
170
|
-
* with the initializedFromRemote event.
|
|
171
|
-
*/
|
|
172
182
|
initialized: AsyncObservable(),
|
|
173
|
-
/**
|
|
174
|
-
* Emitted when the node is fully initialized from remote and all attributes and events are subscribed.
|
|
175
|
-
* This event can also be awaited if code needs to be blocked until the node is fully initialized.
|
|
176
|
-
*/
|
|
177
183
|
initializedFromRemote: AsyncObservable(),
|
|
178
|
-
/** Emitted when the state of the node changes. */
|
|
179
184
|
stateChanged: Observable(),
|
|
180
|
-
/**
|
|
181
|
-
* Emitted when an attribute value changes. If the oldValue is undefined then no former value was known.
|
|
182
|
-
*/
|
|
183
185
|
attributeChanged: Observable(),
|
|
184
|
-
/** Emitted when an event is triggered. */
|
|
185
186
|
eventTriggered: Observable(),
|
|
186
|
-
/** Emitted when the structure of the node changes (Endpoints got added or also removed). */
|
|
187
187
|
structureChanged: Observable(),
|
|
188
|
-
|
|
188
|
+
nodeEndpointAdded: Observable(),
|
|
189
|
+
nodeEndpointRemoved: Observable(),
|
|
190
|
+
nodeEndpointChanged: Observable(),
|
|
189
191
|
decommissioned: Observable(),
|
|
190
|
-
/** Emitted when a subscription alive trigger is received (max interval trigger or any data update) */
|
|
191
192
|
connectionAlive: Observable()
|
|
192
193
|
};
|
|
193
194
|
static async create(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, crypto, storedAttributeData) {
|
|
@@ -402,7 +403,7 @@ class PairedNode {
|
|
|
402
403
|
})) {
|
|
403
404
|
return;
|
|
404
405
|
}
|
|
405
|
-
await this.#initializeEndpointStructure(storedAttributeData);
|
|
406
|
+
await this.#initializeEndpointStructure(storedAttributeData, false);
|
|
406
407
|
await this.events.initialized.emit(this.#nodeDetails.toStorageData());
|
|
407
408
|
this.#localInitializationDone = true;
|
|
408
409
|
}
|
|
@@ -440,7 +441,7 @@ class PairedNode {
|
|
|
440
441
|
if (attributeReports === void 0) {
|
|
441
442
|
throw new InternalError("No attribute reports received when subscribing to all values!");
|
|
442
443
|
}
|
|
443
|
-
await this.#initializeEndpointStructure(attributeReports
|
|
444
|
+
await this.#initializeEndpointStructure(attributeReports);
|
|
444
445
|
this.#remoteInitializationInProgress = false;
|
|
445
446
|
if (!deviceDetailsUpdated) {
|
|
446
447
|
const rootEndpoint = this.getRootEndpoint();
|
|
@@ -451,7 +452,7 @@ class PairedNode {
|
|
|
451
452
|
this.#currentSubscriptionIntervalS = maxInterval;
|
|
452
453
|
} else {
|
|
453
454
|
const allClusterAttributes = await this.readAllAttributes();
|
|
454
|
-
await this.#initializeEndpointStructure(allClusterAttributes
|
|
455
|
+
await this.#initializeEndpointStructure(allClusterAttributes);
|
|
455
456
|
this.#remoteInitializationInProgress = false;
|
|
456
457
|
}
|
|
457
458
|
if (!this.#remoteInitializationDone) {
|
|
@@ -590,18 +591,21 @@ class PairedNode {
|
|
|
590
591
|
this.#reconnectDelayTimer = void 0;
|
|
591
592
|
this.#setConnectionState(0 /* Connected */);
|
|
592
593
|
}
|
|
594
|
+
if (this.#remoteInitializationDone && this.#registeredEndpointStructureChanges.size > 0 && !this.#updateEndpointStructureTimer.isRunning) {
|
|
595
|
+
logger.info(`Node ${this.nodeId}: Endpoint structure needs to be updated ...`);
|
|
596
|
+
this.#updateEndpointStructureTimer.stop().start();
|
|
597
|
+
}
|
|
593
598
|
this.events.connectionAlive.emit();
|
|
594
599
|
}
|
|
595
600
|
};
|
|
596
601
|
this.#currentSubscriptionHandler = subscriptionHandler;
|
|
597
602
|
const maxKnownEventNumber = this.#interactionClient.maxKnownEventNumber;
|
|
598
|
-
|
|
603
|
+
await this.#interactionClient.getAllAttributes({
|
|
599
604
|
dataVersionFilters: this.#interactionClient.getCachedClusterDataVersions(),
|
|
600
|
-
executeQueued: !!threadConnected
|
|
605
|
+
executeQueued: !!threadConnected,
|
|
601
606
|
// We queue subscriptions for thread devices
|
|
607
|
+
attributeChangeListener: subscriptionHandler.attributeListener
|
|
602
608
|
});
|
|
603
|
-
await this.#interactionClient.processAttributeUpdates(attributeData, subscriptionHandler.attributeListener);
|
|
604
|
-
attributeData.length = 0;
|
|
605
609
|
const initialSubscriptionData = await this.#interactionClient.subscribeAllAttributesAndEvents({
|
|
606
610
|
isUrgent: true,
|
|
607
611
|
minIntervalFloorSeconds,
|
|
@@ -627,30 +631,31 @@ class PairedNode {
|
|
|
627
631
|
enrichCachedAttributeData: true
|
|
628
632
|
});
|
|
629
633
|
}
|
|
630
|
-
#checkAttributesForNeededStructureUpdate(
|
|
631
|
-
|
|
632
|
-
if (clusterId === DescriptorCluster.id) {
|
|
634
|
+
#checkAttributesForNeededStructureUpdate(endpointId, clusterId, attributeId) {
|
|
635
|
+
if (clusterId === Descriptor.Complete.id) {
|
|
633
636
|
switch (attributeId) {
|
|
634
|
-
case
|
|
635
|
-
case
|
|
636
|
-
case
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
}
|
|
641
|
-
if (!structureUpdateNeeded) {
|
|
642
|
-
switch (attributeId) {
|
|
643
|
-
case FeatureMap.id:
|
|
644
|
-
case AttributeList.id:
|
|
645
|
-
case AcceptedCommandList.id:
|
|
646
|
-
case ClusterRevision.id:
|
|
647
|
-
structureUpdateNeeded = true;
|
|
648
|
-
break;
|
|
637
|
+
case Descriptor.Complete.attributes.partsList.id:
|
|
638
|
+
case Descriptor.Complete.attributes.serverList.id:
|
|
639
|
+
case Descriptor.Complete.attributes.clientList.id:
|
|
640
|
+
case Descriptor.Complete.attributes.deviceTypeList.id:
|
|
641
|
+
this.#registeredEndpointStructureChanges.set(endpointId, null);
|
|
642
|
+
return;
|
|
649
643
|
}
|
|
650
644
|
}
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
645
|
+
switch (attributeId) {
|
|
646
|
+
case FeatureMap.id:
|
|
647
|
+
case AttributeList.id:
|
|
648
|
+
case AcceptedCommandList.id:
|
|
649
|
+
case ClusterRevision.id:
|
|
650
|
+
let knownForUpdate = this.#registeredEndpointStructureChanges.get(endpointId);
|
|
651
|
+
if (knownForUpdate !== null) {
|
|
652
|
+
knownForUpdate = knownForUpdate ?? [];
|
|
653
|
+
if (!knownForUpdate.includes(clusterId)) {
|
|
654
|
+
knownForUpdate.push(clusterId);
|
|
655
|
+
this.#registeredEndpointStructureChanges.set(endpointId, knownForUpdate);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
break;
|
|
654
659
|
}
|
|
655
660
|
}
|
|
656
661
|
#checkEventsForNeededStructureUpdate(_endpointId, clusterId, eventId) {
|
|
@@ -678,55 +683,165 @@ class PairedNode {
|
|
|
678
683
|
this.#reconnectDelayTimer.start();
|
|
679
684
|
}
|
|
680
685
|
async #updateEndpointStructure() {
|
|
681
|
-
const allClusterAttributes =
|
|
686
|
+
const allClusterAttributes = this.#interactionClient.getAllCachedClusterData();
|
|
682
687
|
await this.#initializeEndpointStructure(allClusterAttributes, true);
|
|
683
|
-
|
|
684
|
-
|
|
688
|
+
}
|
|
689
|
+
/**
|
|
690
|
+
* Traverse the structure data and collect all data for the given endpointId.
|
|
691
|
+
* Return true if data for the endpoint was found, otherwise false.
|
|
692
|
+
* If data was found it is added to the collectedData map.
|
|
693
|
+
*/
|
|
694
|
+
collectDescriptorData(structure, endpointId, collectedData) {
|
|
695
|
+
if (collectedData.has(endpointId)) {
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
const endpointData = structure[endpointId];
|
|
699
|
+
const descriptorData = endpointData?.[Descriptor.Complete.id];
|
|
700
|
+
if (endpointData === void 0 || descriptorData === void 0) {
|
|
701
|
+
logger.info(`Descriptor data for endpoint ${endpointId} not found in structure! Ignoring endpoint ...`);
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
collectedData.set(endpointId, descriptorData);
|
|
705
|
+
if (descriptorData.partsList.length) {
|
|
706
|
+
for (const partEndpointId of descriptorData.partsList) {
|
|
707
|
+
this.collectDescriptorData(structure, partEndpointId, collectedData);
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
#hasEndpointChanged(device, descriptorData) {
|
|
712
|
+
return !(areNumberListsSame(
|
|
713
|
+
device.getDeviceTypes().map(({ code }) => code),
|
|
714
|
+
descriptorData.deviceTypeList.map(({ deviceType }) => deviceType)
|
|
715
|
+
) && // Check if the cluster clients are the same - they map to the serverList attribute
|
|
716
|
+
areNumberListsSame(
|
|
717
|
+
device.getAllClusterClients().map(({ id }) => id),
|
|
718
|
+
descriptorData.serverList
|
|
719
|
+
) && // Check if the cluster servers are the same - they map to the clientList attribute
|
|
720
|
+
areNumberListsSame(
|
|
721
|
+
device.getAllClusterServers().map(({ id }) => id),
|
|
722
|
+
descriptorData.clientList
|
|
723
|
+
));
|
|
685
724
|
}
|
|
686
725
|
/** Reads all data from the device and create a device object structure out of it. */
|
|
687
|
-
async #initializeEndpointStructure(allClusterAttributes, updateStructure =
|
|
726
|
+
async #initializeEndpointStructure(allClusterAttributes, updateStructure = this.#localInitializationDone || this.#remoteInitializationDone) {
|
|
727
|
+
if (this.#updateEndpointStructureTimer.isRunning) {
|
|
728
|
+
this.#updateEndpointStructureTimer.stop();
|
|
729
|
+
}
|
|
730
|
+
const eventsToEmit = /* @__PURE__ */ new Map();
|
|
731
|
+
const structureUpdateDetails = this.#registeredEndpointStructureChanges;
|
|
732
|
+
this.#registeredEndpointStructureChanges = /* @__PURE__ */ new Map();
|
|
688
733
|
const allData = structureReadAttributeDataToClusterObject(allClusterAttributes);
|
|
734
|
+
const descriptors = /* @__PURE__ */ new Map();
|
|
735
|
+
this.collectDescriptorData(allData, EndpointNumber(0), descriptors);
|
|
689
736
|
if (updateStructure) {
|
|
690
737
|
const endpointsToRemove = new Set(this.#endpoints.keys());
|
|
691
|
-
for (const
|
|
692
|
-
const
|
|
693
|
-
if (
|
|
694
|
-
|
|
695
|
-
|
|
738
|
+
for (const endpointId of descriptors.keys()) {
|
|
739
|
+
const device = this.#endpoints.get(endpointId);
|
|
740
|
+
if (device !== void 0) {
|
|
741
|
+
const hasChanged = structureUpdateDetails.has(endpointId);
|
|
742
|
+
if (!hasChanged || !this.#hasEndpointChanged(device, descriptors.get(endpointId))) {
|
|
743
|
+
logger.debug(
|
|
744
|
+
`Node ${this.nodeId}: Retaining endpoint`,
|
|
745
|
+
endpointId,
|
|
746
|
+
hasChanged ? "(with only structure changes)" : "(unchanged)"
|
|
747
|
+
);
|
|
748
|
+
endpointsToRemove.delete(endpointId);
|
|
749
|
+
if (hasChanged) {
|
|
750
|
+
eventsToEmit.set(endpointId, "nodeEndpointChanged");
|
|
751
|
+
}
|
|
752
|
+
} else {
|
|
753
|
+
logger.debug(`Node ${this.nodeId}: Recreating endpoint`, endpointId);
|
|
754
|
+
eventsToEmit.set(endpointId, "nodeEndpointChanged");
|
|
755
|
+
}
|
|
696
756
|
}
|
|
697
757
|
}
|
|
698
|
-
for (const
|
|
699
|
-
|
|
700
|
-
this.#endpoints.get(endpointId)
|
|
701
|
-
|
|
758
|
+
for (const endpoint of endpointsToRemove.values()) {
|
|
759
|
+
const endpointId = EndpointNumber(endpoint);
|
|
760
|
+
const device = this.#endpoints.get(endpointId);
|
|
761
|
+
if (device !== void 0) {
|
|
762
|
+
if (eventsToEmit.get(endpointId) !== "nodeEndpointChanged") {
|
|
763
|
+
logger.debug(`Node ${this.nodeId}: Removing endpoint`, endpointId);
|
|
764
|
+
eventsToEmit.set(endpointId, "nodeEndpointRemoved");
|
|
765
|
+
}
|
|
766
|
+
device.removeFromStructure();
|
|
767
|
+
this.#endpoints.delete(endpointId);
|
|
768
|
+
}
|
|
702
769
|
}
|
|
703
770
|
} else {
|
|
704
771
|
this.#endpoints.clear();
|
|
705
772
|
}
|
|
706
|
-
const
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
const descriptorData = clusters[DescriptorCluster.id];
|
|
710
|
-
partLists.set(endpointIdNumber, descriptorData.partsList);
|
|
711
|
-
if (this.#endpoints.has(endpointIdNumber)) {
|
|
773
|
+
for (const endpointId of descriptors.keys()) {
|
|
774
|
+
const clusters = allData[endpointId];
|
|
775
|
+
if (this.#endpoints.has(endpointId)) {
|
|
712
776
|
continue;
|
|
713
777
|
}
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
778
|
+
const isRecreation = eventsToEmit.get(endpointId) === "nodeEndpointChanged";
|
|
779
|
+
logger.debug(
|
|
780
|
+
`Node ${this.nodeId}: ${isRecreation ? "Recreating" : "Creating"} endpoint`,
|
|
781
|
+
endpointId,
|
|
782
|
+
Diagnostic.json(clusters)
|
|
718
783
|
);
|
|
784
|
+
this.#endpoints.set(endpointId, this.#createDevice(endpointId, clusters, this.#interactionClient));
|
|
785
|
+
if (!isRecreation) {
|
|
786
|
+
eventsToEmit.set(endpointId, "nodeEndpointAdded");
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
for (const [endpointId, { partsList }] of descriptors.entries()) {
|
|
790
|
+
const endpoint = this.#endpoints.get(endpointId);
|
|
791
|
+
if (endpoint === void 0) {
|
|
792
|
+
continue;
|
|
793
|
+
}
|
|
794
|
+
endpoint.getChildEndpoints().forEach((child) => {
|
|
795
|
+
if (child.number !== void 0 && !partsList.includes(child.number)) {
|
|
796
|
+
endpoint.removeChildEndpoint(child);
|
|
797
|
+
if (!eventsToEmit.has(endpointId)) {
|
|
798
|
+
eventsToEmit.set(endpointId, "nodeEndpointChanged");
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
});
|
|
802
|
+
}
|
|
803
|
+
this.#structureEndpoints(descriptors);
|
|
804
|
+
if (updateStructure && eventsToEmit.size) {
|
|
805
|
+
for (const [endpointId, eventName] of eventsToEmit.entries()) {
|
|
806
|
+
if (eventName !== "nodeEndpointAdded") {
|
|
807
|
+
const clusterServers = descriptors.get(endpointId)?.serverList;
|
|
808
|
+
await this.#interactionClient.cleanupAttributeData(
|
|
809
|
+
endpointId,
|
|
810
|
+
eventName === "nodeEndpointRemoved" ? void 0 : clusterServers
|
|
811
|
+
);
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
const emitChangeEvents = () => {
|
|
815
|
+
for (const [endpointId, eventName] of eventsToEmit.entries()) {
|
|
816
|
+
logger.debug(`Node ${this.nodeId}: Emitting event ${eventName} for endpoint ${endpointId}`);
|
|
817
|
+
this.events[eventName].emit(endpointId);
|
|
818
|
+
}
|
|
819
|
+
this.#options.stateInformationCallback?.(this.nodeId, 4 /* StructureChanged */);
|
|
820
|
+
this.events.structureChanged.emit();
|
|
821
|
+
};
|
|
822
|
+
if (this.#connectionState === 0 /* Connected */) {
|
|
823
|
+
emitChangeEvents();
|
|
824
|
+
} else {
|
|
825
|
+
this.events.stateChanged.once((State) => {
|
|
826
|
+
if (State === 0 /* Connected */) {
|
|
827
|
+
emitChangeEvents();
|
|
828
|
+
}
|
|
829
|
+
});
|
|
830
|
+
}
|
|
719
831
|
}
|
|
720
|
-
this.#structureEndpoints(partLists);
|
|
721
832
|
}
|
|
722
|
-
/**
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
833
|
+
/**
|
|
834
|
+
* Bring the endpoints in a structure based on their partsList attribute. This method only adds endpoints into the
|
|
835
|
+
* right place as children, Cleanup is not happening here
|
|
836
|
+
*/
|
|
837
|
+
#structureEndpoints(descriptors) {
|
|
838
|
+
const partLists = Array.from(descriptors.entries()).map(
|
|
839
|
+
([ep, { partsList }]) => [ep, partsList]
|
|
840
|
+
// else Typescript gets confused
|
|
727
841
|
);
|
|
842
|
+
logger.debug(`Node ${this.nodeId}: Endpoints from PartsLists`, Diagnostic.json(partLists));
|
|
728
843
|
const endpointUsages = {};
|
|
729
|
-
|
|
844
|
+
partLists.forEach(
|
|
730
845
|
([parent, partsList]) => partsList.forEach((endPoint) => {
|
|
731
846
|
if (endPoint === parent) {
|
|
732
847
|
logger.warn(`Node ${this.nodeId}: Endpoint ${endPoint} is referencing itself!`);
|
|
@@ -750,14 +865,18 @@ class PairedNode {
|
|
|
750
865
|
const childEndpointId = EndpointNumber(parseInt(childId));
|
|
751
866
|
const childEndpoint = this.#endpoints.get(childEndpointId);
|
|
752
867
|
const parentEndpoint = this.#endpoints.get(usages[0]);
|
|
868
|
+
const existingChildEndpoint = parentEndpoint?.getChildEndpoint(childEndpointId);
|
|
753
869
|
if (childEndpoint === void 0 || parentEndpoint === void 0) {
|
|
754
870
|
logger.warn(
|
|
755
871
|
`Node ${this.nodeId}: Endpoint ${usages[0]} not found in the data received from the device!`
|
|
756
872
|
);
|
|
757
|
-
} else if (
|
|
873
|
+
} else if (existingChildEndpoint !== childEndpoint) {
|
|
758
874
|
logger.debug(
|
|
759
875
|
`Node ${this.nodeId}: Endpoint structure: Child: ${childEndpointId} -> Parent: ${parentEndpoint.number}`
|
|
760
876
|
);
|
|
877
|
+
if (existingChildEndpoint !== void 0) {
|
|
878
|
+
parentEndpoint.removeChildEndpoint(existingChildEndpoint);
|
|
879
|
+
}
|
|
761
880
|
parentEndpoint.addChildEndpoint(childEndpoint);
|
|
762
881
|
}
|
|
763
882
|
delete endpointUsages[EndpointNumber(parseInt(childId))];
|
|
@@ -779,7 +898,7 @@ class PairedNode {
|
|
|
779
898
|
}
|
|
780
899
|
/** Create a device object from the data read from the device. */
|
|
781
900
|
#createDevice(endpointId, data, interactionClient) {
|
|
782
|
-
const descriptorData = data[
|
|
901
|
+
const descriptorData = data[Descriptor.Complete.id];
|
|
783
902
|
const deviceTypes = descriptorData.deviceTypeList.flatMap(({ deviceType, revision }) => {
|
|
784
903
|
const deviceTypeDefinition = getDeviceTypeDefinitionFromModelByCode(deviceType);
|
|
785
904
|
if (deviceTypeDefinition === void 0) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/device/PairedNode.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["NodeStates", "NodeStateInformation"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@project-chip/matter.js",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.5",
|
|
4
4
|
"description": "Matter protocol in pure js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"#*": "./src/*"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@matter/general": "0.15.
|
|
48
|
-
"@matter/model": "0.15.
|
|
49
|
-
"@matter/node": "0.15.
|
|
50
|
-
"@matter/protocol": "0.15.
|
|
51
|
-
"@matter/types": "0.15.
|
|
47
|
+
"@matter/general": "0.15.5",
|
|
48
|
+
"@matter/model": "0.15.5",
|
|
49
|
+
"@matter/node": "0.15.5",
|
|
50
|
+
"@matter/protocol": "0.15.5",
|
|
51
|
+
"@matter/types": "0.15.5"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@matter/tools": "0.15.
|
|
55
|
-
"@matter/testing": "0.15.
|
|
54
|
+
"@matter/tools": "0.15.5",
|
|
55
|
+
"@matter/testing": "0.15.5"
|
|
56
56
|
},
|
|
57
57
|
"files": [
|
|
58
58
|
"dist/**/*",
|
|
@@ -208,13 +208,10 @@ export class CommissioningController {
|
|
|
208
208
|
};
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
#
|
|
211
|
+
#assertDependencies() {
|
|
212
212
|
if (this.#mdnsScanner === undefined || (this.#storage === undefined && this.#environment === undefined)) {
|
|
213
213
|
throw new ImplementationError("Add the node to the Matter instance before.");
|
|
214
214
|
}
|
|
215
|
-
if (!this.#started) {
|
|
216
|
-
throw new ImplementationError("The node needs to be started before interacting with the controller.");
|
|
217
|
-
}
|
|
218
215
|
return { mdnsScanner: this.#mdnsScanner, storage: this.#storage, environment: this.#environment };
|
|
219
216
|
}
|
|
220
217
|
|
|
@@ -229,7 +226,6 @@ export class CommissioningController {
|
|
|
229
226
|
|
|
230
227
|
/** Internal method to initialize a MatterController instance. */
|
|
231
228
|
async #initializeController() {
|
|
232
|
-
const { mdnsScanner, storage, environment } = this.#assertIsAddedToMatterServer();
|
|
233
229
|
if (this.#controllerInstance !== undefined) {
|
|
234
230
|
return this.#controllerInstance;
|
|
235
231
|
}
|
|
@@ -245,9 +241,8 @@ export class CommissioningController {
|
|
|
245
241
|
rootFabric,
|
|
246
242
|
} = this.#options;
|
|
247
243
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}
|
|
244
|
+
const { mdnsScanner, storage, environment } = this.#assertDependencies();
|
|
245
|
+
|
|
251
246
|
// Initialize the Storage in a compatible way for the legacy API and new style for new API
|
|
252
247
|
// TODO: clean this up when we really implement ControllerNode/ClientNode concepts in new API
|
|
253
248
|
const controllerStore = environment?.has(ControllerStore)
|
|
@@ -300,7 +295,6 @@ export class CommissioningController {
|
|
|
300
295
|
commissioningFlowImpl?: ClassExtends<ControllerCommissioningFlow>;
|
|
301
296
|
},
|
|
302
297
|
) {
|
|
303
|
-
this.#assertIsAddedToMatterServer();
|
|
304
298
|
const controller = this.#assertControllerIsStarted();
|
|
305
299
|
|
|
306
300
|
const { connectNodeAfterCommissioning = true, commissioningFlowImpl } = commissionOptions ?? {};
|
|
@@ -323,7 +317,6 @@ export class CommissioningController {
|
|
|
323
317
|
}
|
|
324
318
|
|
|
325
319
|
connectPaseChannel(nodeOptions: NodeCommissioningOptions) {
|
|
326
|
-
this.#assertIsAddedToMatterServer();
|
|
327
320
|
const controller = this.#assertControllerIsStarted();
|
|
328
321
|
|
|
329
322
|
return controller.connectPaseChannel(nodeOptions);
|
|
@@ -335,7 +328,6 @@ export class CommissioningController {
|
|
|
335
328
|
* process.
|
|
336
329
|
*/
|
|
337
330
|
completeCommissioningForNode(peerNodeId: NodeId, discoveryData?: DiscoveryData) {
|
|
338
|
-
this.#assertIsAddedToMatterServer();
|
|
339
331
|
const controller = this.#assertControllerIsStarted();
|
|
340
332
|
return controller.completeCommissioning(peerNodeId, discoveryData);
|
|
341
333
|
}
|
|
@@ -386,7 +378,7 @@ export class CommissioningController {
|
|
|
386
378
|
}
|
|
387
379
|
|
|
388
380
|
/**
|
|
389
|
-
* Returns the PairedNode instance for a given NodeId. The instance is initialized without auto
|
|
381
|
+
* Returns the PairedNode instance for a given NodeId. The instance is initialized without auto-connect if not yet
|
|
390
382
|
* created.
|
|
391
383
|
*/
|
|
392
384
|
async getNode(nodeId: NodeId, allowUnknownNode = false) {
|
|
@@ -657,7 +649,6 @@ export class CommissioningController {
|
|
|
657
649
|
identifierData: CommissionableDeviceIdentifiers,
|
|
658
650
|
discoveryCapabilities?: TypeFromPartialBitSchema<typeof DiscoveryCapabilitiesBitmap>,
|
|
659
651
|
) {
|
|
660
|
-
this.#assertIsAddedToMatterServer();
|
|
661
652
|
const controller = this.#assertControllerIsStarted();
|
|
662
653
|
controller
|
|
663
654
|
.collectScanners(discoveryCapabilities)
|
|
@@ -675,7 +666,6 @@ export class CommissioningController {
|
|
|
675
666
|
discoveredCallback?: (device: CommissionableDevice) => void,
|
|
676
667
|
timeoutSeconds = 900,
|
|
677
668
|
) {
|
|
678
|
-
this.#assertIsAddedToMatterServer();
|
|
679
669
|
const controller = this.#assertControllerIsStarted();
|
|
680
670
|
return await ControllerDiscovery.discoverCommissionableDevices(
|
|
681
671
|
controller.collectScanners(discoveryCapabilities),
|
|
@@ -690,10 +680,12 @@ export class CommissioningController {
|
|
|
690
680
|
* will remove all commissioning data and paired nodes from the controller.
|
|
691
681
|
*/
|
|
692
682
|
async resetStorage() {
|
|
693
|
-
this.#
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
683
|
+
if (this.#started) {
|
|
684
|
+
throw new ImplementationError(
|
|
685
|
+
"Storage cannot be reset while the controller is operating! Please close the controller first.",
|
|
686
|
+
);
|
|
687
|
+
}
|
|
688
|
+
const { storage, environment } = this.#assertDependencies();
|
|
697
689
|
if (environment !== undefined) {
|
|
698
690
|
const controllerStore = environment.get(ControllerStore);
|
|
699
691
|
await controllerStore.erase();
|