@matter/node 0.16.8-alpha.0-20260123-dff2cae52 → 0.16.8-alpha.0-20260127-65e1b40e2
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/behavior/system/commissioning/CommissioningClient.d.ts +1 -0
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +29 -0
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js +3 -3
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/software-update/OtaAnnouncements.d.ts.map +1 -1
- package/dist/cjs/behavior/system/software-update/OtaAnnouncements.js +10 -8
- package/dist/cjs/behavior/system/software-update/OtaAnnouncements.js.map +1 -1
- package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -1
- package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js +1 -6
- package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
- package/dist/cjs/node/client/ClientNodeInteraction.d.ts +4 -1
- package/dist/cjs/node/client/ClientNodeInteraction.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientNodeInteraction.js +4 -1
- package/dist/cjs/node/client/ClientNodeInteraction.js.map +1 -1
- package/dist/cjs/node/client/NodePeerAddressStore.d.ts +0 -1
- package/dist/cjs/node/client/NodePeerAddressStore.d.ts.map +1 -1
- package/dist/cjs/node/client/NodePeerAddressStore.js +0 -2
- package/dist/cjs/node/client/NodePeerAddressStore.js.map +1 -1
- package/dist/cjs/node/server/InteractionServer.d.ts +2 -2
- package/dist/cjs/node/server/InteractionServer.d.ts.map +1 -1
- package/dist/cjs/node/server/InteractionServer.js +130 -78
- package/dist/cjs/node/server/InteractionServer.js.map +1 -1
- package/dist/cjs/node/server/OnlineServerInteraction.d.ts +10 -2
- package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
- package/dist/cjs/node/server/OnlineServerInteraction.js +9 -1
- package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
- package/dist/cjs/storage/client/RemoteWriter.d.ts.map +1 -1
- package/dist/cjs/storage/client/RemoteWriter.js +1 -2
- package/dist/cjs/storage/client/RemoteWriter.js.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +1 -0
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js +29 -0
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js +3 -3
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/software-update/OtaAnnouncements.d.ts.map +1 -1
- package/dist/esm/behavior/system/software-update/OtaAnnouncements.js +11 -9
- package/dist/esm/behavior/system/software-update/OtaAnnouncements.js.map +1 -1
- package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -1
- package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js +2 -15
- package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
- package/dist/esm/node/client/ClientNodeInteraction.d.ts +4 -1
- package/dist/esm/node/client/ClientNodeInteraction.d.ts.map +1 -1
- package/dist/esm/node/client/ClientNodeInteraction.js +4 -1
- package/dist/esm/node/client/ClientNodeInteraction.js.map +1 -1
- package/dist/esm/node/client/NodePeerAddressStore.d.ts +0 -1
- package/dist/esm/node/client/NodePeerAddressStore.d.ts.map +1 -1
- package/dist/esm/node/client/NodePeerAddressStore.js +0 -2
- package/dist/esm/node/client/NodePeerAddressStore.js.map +1 -1
- package/dist/esm/node/server/InteractionServer.d.ts +2 -2
- package/dist/esm/node/server/InteractionServer.d.ts.map +1 -1
- package/dist/esm/node/server/InteractionServer.js +130 -78
- package/dist/esm/node/server/InteractionServer.js.map +1 -1
- package/dist/esm/node/server/OnlineServerInteraction.d.ts +10 -2
- package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
- package/dist/esm/node/server/OnlineServerInteraction.js +9 -1
- package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
- package/dist/esm/storage/client/RemoteWriter.d.ts.map +1 -1
- package/dist/esm/storage/client/RemoteWriter.js +1 -2
- package/dist/esm/storage/client/RemoteWriter.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/system/commissioning/CommissioningClient.ts +35 -0
- package/src/behavior/system/network/ClientNetworkRuntime.ts +3 -3
- package/src/behavior/system/software-update/OtaAnnouncements.ts +12 -9
- package/src/behavior/system/subscriptions/SubscriptionsServer.ts +4 -17
- package/src/node/client/ClientNodeInteraction.ts +4 -1
- package/src/node/client/NodePeerAddressStore.ts +0 -2
- package/src/node/server/InteractionServer.ts +197 -92
- package/src/node/server/OnlineServerInteraction.ts +13 -2
- package/src/storage/client/RemoteWriter.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnlineServerInteraction.d.ts","sourceRoot":"","sources":["../../../../src/node/server/OnlineServerInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EACH,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,UAAU,EAEV,SAAS,EACT,eAAe,EACf,KAAK,EACL,WAAW,EACd,MAAM,WAAW,CAAC;AAEnB,qBAAa,uBAAwB,YAAW,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;;gBAGxE,IAAI,EAAE,YAAY;IAIvB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,UAAU;IAW3E,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe;
|
|
1
|
+
{"version":3,"file":"OnlineServerInteraction.d.ts","sourceRoot":"","sources":["../../../../src/node/server/OnlineServerInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EACH,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EAEV,SAAS,EACT,eAAe,EACf,KAAK,EACL,WAAW,EACd,MAAM,WAAW,CAAC;AAEnB,qBAAa,uBAAwB,YAAW,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;;gBAGxE,IAAI,EAAE,YAAY;IAIvB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,UAAU;IAW3E,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe;IAIrF;;;OAGG;IACG,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IAI7F;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,YAAY;CAapF"}
|
|
@@ -21,9 +21,17 @@ class OnlineServerInteraction {
|
|
|
21
21
|
subscribe(_request, _context) {
|
|
22
22
|
throw new NotImplementedError("subscribe not implemented");
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Process write requests and return results.
|
|
26
|
+
* The caller is responsible for messaging/chunking and list state tracking.
|
|
27
|
+
*/
|
|
24
28
|
async write(request, context) {
|
|
25
29
|
return RemoteActorContext(context).act((session) => this.#interaction.write(request, session));
|
|
26
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Process invoke requests and yield results.
|
|
33
|
+
* The caller is responsible for messaging/chunking.
|
|
34
|
+
*/
|
|
27
35
|
async *invoke(request, context) {
|
|
28
36
|
const session = RemoteActorContext({ ...context, command: true }).open();
|
|
29
37
|
try {
|
|
@@ -33,7 +41,7 @@ class OnlineServerInteraction {
|
|
|
33
41
|
} catch (error) {
|
|
34
42
|
await session.reject(error);
|
|
35
43
|
}
|
|
36
|
-
|
|
44
|
+
await session.resolve(void 0);
|
|
37
45
|
}
|
|
38
46
|
}
|
|
39
47
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/server/OnlineServerInteraction.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC;AAAA,
|
|
4
|
+
"mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC;AAAA,EAOI;AAAA,OAKG;AAEA,MAAM,wBAA4E;AAAA,EAC5E;AAAA,EAET,YAAY,MAAoB;AAC5B,SAAK,eAAe,IAAI,kBAAkB,IAAI;AAAA,EAClD;AAAA,EAEA,OAAO,KAAK,SAAe,SAAiD;AACxE,UAAM,UAAU,mBAAmB,OAAO,EAAE,cAAc;AAC1D,QAAI;AACA,uBAAiB,UAAU,KAAK,aAAa,KAAK,SAAS,OAAO,GAAG;AACjE,cAAM;AAAA,MACV;AAAA,IACJ,UAAE;AACE,cAAQ,OAAO,OAAO,EAAE;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,UAAU,UAAqB,UAAuD;AAClF,UAAM,IAAI,oBAAoB,2BAA2B;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,MAAuB,SAAY,SAAqD;AAC1F,WAAO,mBAAmB,OAAO,EAAE,IAAI,aAAW,KAAK,aAAa,MAAM,SAAS,OAAO,CAAC;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,OAAO,SAAiB,SAAmD;AAC9E,UAAM,UAAU,mBAAmB,EAAE,GAAG,SAAS,SAAS,KAAK,CAAC,EAAE,KAAK;AAEvE,QAAI;AACA,uBAAiB,SAAS,KAAK,aAAa,OAAO,SAAS,OAAO,GAAG;AAClE,cAAM;AAAA,MACV;AAAA,IACJ,SAAS,OAAO;AACZ,YAAM,QAAQ,OAAO,KAAK;AAAA,IAC9B;AAEA,UAAM,QAAQ,QAAQ,MAAS;AAAA,EACnC;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteWriter.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/RemoteWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGrE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"RemoteWriter.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/RemoteWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGrE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,GAAG,YAAY,CAkCvF;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,qBAAqB;QAClC,MAAM,EAAE,cAAc,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;KACtB;IAED,UAAiB,OAAQ,SAAQ,KAAK,CAAC,qBAAqB,CAAC;KAAG;CACnE"}
|
|
@@ -34,8 +34,7 @@ function RemoteWriter(node, structure) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
const write = Write(...attrWrites);
|
|
37
|
-
|
|
38
|
-
WriteResult.assertSuccess(response);
|
|
37
|
+
WriteResult.assertSuccess(await node.interaction.write(write));
|
|
39
38
|
};
|
|
40
39
|
}
|
|
41
40
|
function attrsFor(cluster) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/storage/client/RemoteWriter.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAG9B,SAAS,OAAO,mBAA6B;AAc7C,MAAM,YAAY,oBAAI,QAA4D;AAE3E,SAAS,aAAa,MAAkB,WAA0C;AACrF,SAAO,eAAe,YAAY,SAA+B;AAC7D,UAAM,aAAa,MAAuB;AAC1C,eAAW,EAAE,QAAQ,YAAY,OAAO,KAAK,SAAS;AAClD,YAAM,UAAU,UAAU,WAAW,QAAQ,OAAO,SAAS,UAAU,CAAc;AACrF,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,cAAc,+CAA+C,UAAU,EAAE;AAAA,MACvF;AACA,YAAM,QAAQ,SAAS,OAAO;AAE9B,iBAAW,MAAM,QAAQ;AACrB,cAAM,OAAO,MAAM,EAAE;AACrB,YAAI,SAAS,QAAW;AACpB,cAAI,GAAG,WAAW,IAAI,GAAG;AACrB;AAAA,UACJ;AAEA,gBAAM,IAAI,cAAc,kCAAkC,EAAE,QAAQ,UAAU,EAAE;AAAA,QACpF;AAEA,mBAAW;AAAA,UACP,MAAM,UAAU;AAAA,YACZ,UAAU;AAAA,YACV;AAAA,YACA,YAAY,CAAC,MAAM,EAAE,CAAC;AAAA,YACtB,OAAO,OAAO,EAAE;AAAA,UACpB,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,QAAQ,MAAM,GAAG,UAAU;AACjC,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAG9B,SAAS,OAAO,mBAA6B;AAc7C,MAAM,YAAY,oBAAI,QAA4D;AAE3E,SAAS,aAAa,MAAkB,WAA0C;AACrF,SAAO,eAAe,YAAY,SAA+B;AAC7D,UAAM,aAAa,MAAuB;AAC1C,eAAW,EAAE,QAAQ,YAAY,OAAO,KAAK,SAAS;AAClD,YAAM,UAAU,UAAU,WAAW,QAAQ,OAAO,SAAS,UAAU,CAAc;AACrF,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,cAAc,+CAA+C,UAAU,EAAE;AAAA,MACvF;AACA,YAAM,QAAQ,SAAS,OAAO;AAE9B,iBAAW,MAAM,QAAQ;AACrB,cAAM,OAAO,MAAM,EAAE;AACrB,YAAI,SAAS,QAAW;AACpB,cAAI,GAAG,WAAW,IAAI,GAAG;AACrB;AAAA,UACJ;AAEA,gBAAM,IAAI,cAAc,kCAAkC,EAAE,QAAQ,UAAU,EAAE;AAAA,QACpF;AAEA,mBAAW;AAAA,UACP,MAAM,UAAU;AAAA,YACZ,UAAU;AAAA,YACV;AAAA,YACA,YAAY,CAAC,MAAM,EAAE,CAAC;AAAA,YACtB,OAAO,OAAO,EAAE;AAAA,UACpB,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,QAAQ,MAAM,GAAG,UAAU;AACjC,gBAAY,cAAc,MAAM,KAAK,YAAY,MAAM,KAAK,CAAC;AAAA,EACjE;AACJ;AAYA,SAAS,SAAS,SAAsB;AACpC,MAAI,QAAQ,UAAU,IAAI,OAAO;AACjC,MAAI,OAAO;AACP,WAAO;AAAA,EACX;AACA,UAAQ,OAAO,YAAY,OAAO,OAAO,QAAQ,UAAU,EAAE,IAAI,UAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACzF,YAAU,IAAI,SAAS,KAAK;AAC5B,SAAO;AACX;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/node",
|
|
3
|
-
"version": "0.16.8-alpha.0-
|
|
3
|
+
"version": "0.16.8-alpha.0-20260127-65e1b40e2",
|
|
4
4
|
"description": "API for building Matter nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -42,14 +42,14 @@
|
|
|
42
42
|
"#*": "./src/*"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@matter/general": "0.16.8-alpha.0-
|
|
46
|
-
"@matter/model": "0.16.8-alpha.0-
|
|
47
|
-
"@matter/types": "0.16.8-alpha.0-
|
|
48
|
-
"@matter/protocol": "0.16.8-alpha.0-
|
|
45
|
+
"@matter/general": "0.16.8-alpha.0-20260127-65e1b40e2",
|
|
46
|
+
"@matter/model": "0.16.8-alpha.0-20260127-65e1b40e2",
|
|
47
|
+
"@matter/types": "0.16.8-alpha.0-20260127-65e1b40e2",
|
|
48
|
+
"@matter/protocol": "0.16.8-alpha.0-20260127-65e1b40e2"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@matter/tools": "0.16.8-alpha.0-
|
|
52
|
-
"@matter/testing": "0.16.8-alpha.0-
|
|
51
|
+
"@matter/tools": "0.16.8-alpha.0-20260127-65e1b40e2",
|
|
52
|
+
"@matter/testing": "0.16.8-alpha.0-20260127-65e1b40e2"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"dist/**/*",
|
|
@@ -105,6 +105,7 @@ export class CommissioningClient extends Behavior {
|
|
|
105
105
|
this.reactTo(node.lifecycle.partsReady, this.#initializeNode);
|
|
106
106
|
this.reactTo(node.lifecycle.online, this.#nodeOnline);
|
|
107
107
|
this.reactTo(this.events.peerAddress$Changed, this.#peerAddressChanged);
|
|
108
|
+
this.reactTo(this.events.addresses$Changed, this.#operationalAddressesChanged);
|
|
108
109
|
}
|
|
109
110
|
|
|
110
111
|
#nodeOnline() {
|
|
@@ -309,6 +310,37 @@ export class CommissioningClient extends Behavior {
|
|
|
309
310
|
endpoint.lifecycle.initialized.emit(this.state.peerAddress !== undefined);
|
|
310
311
|
}
|
|
311
312
|
|
|
313
|
+
#operationalAddressesChanged(newAddresses: ServerAddress[] | undefined, oldAddresses: ServerAddress[] | undefined) {
|
|
314
|
+
// Log when addresses change
|
|
315
|
+
if (newAddresses === undefined) {
|
|
316
|
+
logger.info("Operational address for", Diagnostic.strong(PeerAddress(this.state.peerAddress)), "cleared");
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
const newAddressesStr = newAddresses?.map(a => ServerAddress.urlFor(a)).join(", ");
|
|
321
|
+
if (oldAddresses === undefined) {
|
|
322
|
+
logger.info(
|
|
323
|
+
"Operational address for",
|
|
324
|
+
Diagnostic.strong(PeerAddress(this.state.peerAddress)),
|
|
325
|
+
"set to",
|
|
326
|
+
Diagnostic.weak(newAddressesStr),
|
|
327
|
+
);
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const oldAddressesStr = oldAddresses.map(a => ServerAddress.urlFor(a)).join(", ");
|
|
332
|
+
if (oldAddressesStr !== newAddressesStr) {
|
|
333
|
+
logger.info(
|
|
334
|
+
"Operational address changed for",
|
|
335
|
+
Diagnostic.strong(PeerAddress(this.state.peerAddress)),
|
|
336
|
+
"from",
|
|
337
|
+
Diagnostic.weak(oldAddressesStr),
|
|
338
|
+
"to",
|
|
339
|
+
Diagnostic.weak(newAddressesStr),
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
312
344
|
#updateAddresses(addr: ProtocolPeerAddress) {
|
|
313
345
|
const node = this.endpoint as ClientNode;
|
|
314
346
|
if (!node.env.has(PeerSet)) {
|
|
@@ -533,6 +565,9 @@ export namespace CommissioningClient {
|
|
|
533
565
|
peerAddress$Changed = new Observable<
|
|
534
566
|
[value: ProtocolPeerAddress | undefined, oldValue: ProtocolPeerAddress | undefined]
|
|
535
567
|
>();
|
|
568
|
+
addresses$Changed = new Observable<
|
|
569
|
+
[value: ServerAddress[] | undefined, oldValue: ServerAddress[] | undefined]
|
|
570
|
+
>();
|
|
536
571
|
}
|
|
537
572
|
|
|
538
573
|
/**
|
|
@@ -96,7 +96,7 @@ export class ClientNetworkRuntime extends NetworkRuntime {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
const address = PeerAddress(commissioningState.peerAddress);
|
|
99
|
-
if (!address || session.peerAddress
|
|
99
|
+
if (!address || !PeerAddress.is(session.peerAddress, address)) {
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -109,11 +109,11 @@ export class ClientNetworkRuntime extends NetworkRuntime {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
const address = PeerAddress(commissioningState.peerAddress);
|
|
112
|
-
if (session.peerAddress
|
|
112
|
+
if (!PeerAddress.is(session.peerAddress, address)) {
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
if (address && sessions.find(({ peerAddress }) => peerAddress
|
|
116
|
+
if (address && sessions.find(({ peerAddress }) => PeerAddress.is(peerAddress, address))) {
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -14,7 +14,7 @@ import { Duration, Hours, isDeepEqual, Logger, MatterError, Millis, Minutes, Sec
|
|
|
14
14
|
import type { ClientNode } from "#node/ClientNode.js";
|
|
15
15
|
import { Node } from "#node/Node.js";
|
|
16
16
|
import type { ServerNode } from "#node/ServerNode.js";
|
|
17
|
-
import { Fabric, PeerAddress, Write } from "#protocol";
|
|
17
|
+
import { Fabric, PeerAddress, Write, WriteResult } from "#protocol";
|
|
18
18
|
import { EndpointNumber, FabricIndex, NodeId, VendorId } from "#types";
|
|
19
19
|
|
|
20
20
|
const logger = new Logger("OTAAnnouncements");
|
|
@@ -170,16 +170,19 @@ export class OtaAnnouncements {
|
|
|
170
170
|
) {
|
|
171
171
|
try {
|
|
172
172
|
// Fabric scoped attribute, so we just overwrite our value
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
Write
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
173
|
+
WriteResult.assertSuccess(
|
|
174
|
+
await peer.interaction.write(
|
|
175
|
+
Write(
|
|
176
|
+
Write.Attribute({
|
|
177
|
+
endpoint: otaEndpoint.number,
|
|
178
|
+
cluster: OtaSoftwareUpdateRequestor.Complete,
|
|
179
|
+
attributes: ["defaultOtaProviders"],
|
|
180
|
+
value: [consideredOtaProviderRecord],
|
|
181
|
+
}),
|
|
182
|
+
),
|
|
181
183
|
),
|
|
182
184
|
);
|
|
185
|
+
|
|
183
186
|
logger.debug(
|
|
184
187
|
`${existingOtaProviderRecord === undefined ? "Added" : "Updated"} default OTA provider for`,
|
|
185
188
|
peerAddress,
|
|
@@ -4,19 +4,11 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds
|
|
7
|
+
import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds } from "#general";
|
|
8
8
|
import { DatatypeModel, FieldElement } from "#model";
|
|
9
9
|
import { InteractionServer, PeerSubscription } from "#node/server/InteractionServer.js";
|
|
10
10
|
import { ServerSubscription } from "#node/server/ServerSubscription.js";
|
|
11
|
-
import {
|
|
12
|
-
NodeDiscoveryType,
|
|
13
|
-
PeerAddress,
|
|
14
|
-
PeerAddressSet,
|
|
15
|
-
PeerSet,
|
|
16
|
-
SessionClosedError,
|
|
17
|
-
SessionManager,
|
|
18
|
-
Subscription,
|
|
19
|
-
} from "#protocol";
|
|
11
|
+
import { NodeDiscoveryType, PeerAddress, PeerAddressSet, PeerSet, SessionManager, Subscription } from "#protocol";
|
|
20
12
|
import { StatusCode, StatusResponseError } from "#types";
|
|
21
13
|
import { Behavior } from "../../Behavior.js";
|
|
22
14
|
import { SessionsBehavior } from "../sessions/SessionsBehavior.js";
|
|
@@ -150,13 +142,8 @@ export class SubscriptionsBehavior extends Behavior {
|
|
|
150
142
|
const { fabricIndex, nodeId } = peerAddress;
|
|
151
143
|
|
|
152
144
|
// TODO Remove when we store peer addresses also for operational nodes
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
operationalAddress = isIpNetworkChannel(session.channel) ? session.channel.networkAddress : undefined;
|
|
156
|
-
} catch (error) {
|
|
157
|
-
// Can happen in edge cases, so better catch it and proceed without operational address
|
|
158
|
-
SessionClosedError.accept(error);
|
|
159
|
-
}
|
|
145
|
+
const operationalAddress =
|
|
146
|
+
!session.isClosed && isIpNetworkChannel(session.channel) ? session.channel.networkAddress : undefined;
|
|
160
147
|
const peerSubscription: PeerSubscription = {
|
|
161
148
|
subscriptionId: id,
|
|
162
149
|
peerAddress: { fabricIndex, nodeId },
|
|
@@ -128,7 +128,10 @@ export class ClientNodeInteraction implements Interactable<ActionContext> {
|
|
|
128
128
|
|
|
129
129
|
/**
|
|
130
130
|
* Invoke a command remotely on the node.
|
|
131
|
-
* The returned command response is returned as response chunks
|
|
131
|
+
* The returned command response is returned as response chunks (attr-status).
|
|
132
|
+
*
|
|
133
|
+
* When the number of commands exceeds the peer's MaxPathsPerInvoke limit (or 1 for older nodes),
|
|
134
|
+
* commands are split across multiple parallel exchanges automatically by ClientInteraction.
|
|
132
135
|
*/
|
|
133
136
|
async *invoke(request: ClientInvoke, context?: ActionContext): DecodedInvokeResult {
|
|
134
137
|
// For commands, we always ignore the queue because the user is responsible for managing that themselves
|