@matter-server/dashboard 0.3.3 → 0.3.5-alpha.0-20260203-66f5d74
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/README.md +76 -0
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +44 -17
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
- package/dist/esm/entrypoint/main.js +1 -1
- package/dist/esm/entrypoint/main.js.map +1 -1
- package/dist/esm/pages/components/node-details.js +1 -1
- package/dist/esm/pages/components/node-details.js.map +1 -1
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +9 -4
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.js +8 -2
- package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
- package/dist/esm/pages/matter-network-view.d.ts +5 -0
- package/dist/esm/pages/matter-network-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-network-view.js +96 -13
- package/dist/esm/pages/matter-network-view.js.map +1 -1
- package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-node-view.js +17 -3
- package/dist/esm/pages/matter-node-view.js.map +1 -1
- package/dist/esm/pages/network/base-network-graph.d.ts +34 -0
- package/dist/esm/pages/network/base-network-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/base-network-graph.js +116 -25
- package/dist/esm/pages/network/base-network-graph.js.map +1 -1
- package/dist/esm/pages/network/device-icons.js +1 -1
- package/dist/esm/pages/network/network-details.d.ts +31 -1
- package/dist/esm/pages/network/network-details.d.ts.map +1 -1
- package/dist/esm/pages/network/network-details.js +233 -15
- package/dist/esm/pages/network/network-details.js.map +1 -1
- package/dist/esm/pages/network/network-types.d.ts +6 -0
- package/dist/esm/pages/network/network-types.d.ts.map +1 -1
- package/dist/esm/pages/network/network-utils.d.ts +26 -0
- package/dist/esm/pages/network/network-utils.d.ts.map +1 -1
- package/dist/esm/pages/network/network-utils.js +71 -3
- package/dist/esm/pages/network/network-utils.js.map +1 -1
- package/dist/esm/pages/network/thread-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/thread-graph.js +5 -2
- package/dist/esm/pages/network/thread-graph.js.map +1 -1
- package/dist/esm/pages/network/update-connections-dialog.d.ts +55 -0
- package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -0
- package/dist/esm/pages/network/update-connections-dialog.js +284 -0
- package/dist/esm/pages/network/update-connections-dialog.js.map +6 -0
- package/dist/esm/pages/network/wifi-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/wifi-graph.js +5 -3
- package/dist/esm/pages/network/wifi-graph.js.map +1 -1
- package/dist/esm/util/format_hex.d.ts +18 -0
- package/dist/esm/util/format_hex.d.ts.map +1 -1
- package/dist/esm/util/format_hex.js +21 -1
- package/dist/esm/util/format_hex.js.map +1 -1
- package/dist/esm/util/matter-status.d.ts +49 -0
- package/dist/esm/util/matter-status.d.ts.map +1 -0
- package/dist/esm/util/matter-status.js +110 -0
- package/dist/esm/util/matter-status.js.map +6 -0
- package/dist/web/js/{commission-node-dialog-B1_khzZb.js → commission-node-dialog-DBugVQOl.js} +5 -5
- package/dist/web/js/{commission-node-existing-RpdajrwF.js → commission-node-existing-ts2MN2bQ.js} +2 -2
- package/dist/web/js/{commission-node-thread-5f2itkTG.js → commission-node-thread-CixfNuM3.js} +2 -2
- package/dist/web/js/{commission-node-wifi-DZ_pWqsa.js → commission-node-wifi-CWC30EYn.js} +2 -2
- package/dist/web/js/{dialog-box-DEUxM4B1.js → dialog-box-SeMuFiWx.js} +2 -2
- package/dist/web/js/{fire_event-BczBMT8E.js → fire_event-B63oGTcK.js} +1 -1
- package/dist/web/js/{log-level-dialog-Cr3PfX1X.js → log-level-dialog-J0gFiLLM.js} +2 -2
- package/dist/web/js/main.js +2 -2
- package/dist/web/js/{matter-dashboard-app-BuCe_Jxf.js → matter-dashboard-app-D7YWrgXj.js} +2041 -246
- package/dist/web/js/{node-binding-dialog-DMiHNDLA.js → node-binding-dialog-DSBwIJcQ.js} +147 -19
- package/dist/web/js/prevent_default-D-ohDGsN.js +8 -0
- package/package.json +4 -4
- package/src/components/dialogs/binding/node-binding-dialog.ts +45 -21
- package/src/entrypoint/main.ts +2 -0
- package/src/pages/components/node-details.ts +1 -1
- package/src/pages/matter-cluster-view.ts +11 -4
- package/src/pages/matter-endpoint-view.ts +10 -3
- package/src/pages/matter-network-view.ts +102 -13
- package/src/pages/matter-node-view.ts +19 -4
- package/src/pages/network/base-network-graph.ts +147 -33
- package/src/pages/network/device-icons.ts +1 -1
- package/src/pages/network/network-details.ts +281 -16
- package/src/pages/network/network-types.ts +6 -0
- package/src/pages/network/network-utils.ts +109 -0
- package/src/pages/network/thread-graph.ts +7 -1
- package/src/pages/network/update-connections-dialog.ts +327 -0
- package/src/pages/network/wifi-graph.ts +4 -3
- package/src/util/format_hex.ts +39 -0
- package/src/util/matter-status.ts +165 -0
- package/dist/web/js/prevent_default-D4FX_PIh.js +0 -774
package/README.md
CHANGED
|
@@ -25,3 +25,79 @@ You can also set the theme via URL query parameter:
|
|
|
25
25
|
- `?theme=system` - Switch to system auto-detect
|
|
26
26
|
|
|
27
27
|
The query parameter will override and save the preference to localStorage.
|
|
28
|
+
|
|
29
|
+
## Network Visualization
|
|
30
|
+
|
|
31
|
+
The Network page displays a visual graph of your Matter network topology, showing Thread and WiFi connections between devices.
|
|
32
|
+
|
|
33
|
+
### Understanding Node Colors
|
|
34
|
+
|
|
35
|
+
Node colors indicate device status:
|
|
36
|
+
|
|
37
|
+
- **Grey**: Online device (commissioned to this fabric)
|
|
38
|
+
- **Blue**: Currently selected node
|
|
39
|
+
- **Red**: Offline device (not responding)
|
|
40
|
+
- **Orange**: Unknown/external device (not commissioned to this fabric, detected in neighbor tables)
|
|
41
|
+
|
|
42
|
+
### Understanding Connection Lines
|
|
43
|
+
|
|
44
|
+
Connection lines represent the communication links between devices:
|
|
45
|
+
|
|
46
|
+
- **Solid lines**: Connections to online devices
|
|
47
|
+
- **Dashed lines**: Connections to offline or unknown devices (based on last known data)
|
|
48
|
+
- **Line colors** indicate signal quality:
|
|
49
|
+
- **Green**: Strong signal (RSSI > -60 dBm or LQI > 200)
|
|
50
|
+
- **Yellow/Orange**: Medium signal (RSSI > -75 dBm or LQI > 100)
|
|
51
|
+
- **Red**: Weak signal
|
|
52
|
+
|
|
53
|
+
### Thread Network Details
|
|
54
|
+
|
|
55
|
+
When you click on a Thread device, the details panel shows network information:
|
|
56
|
+
|
|
57
|
+
- **Thread Role**: The device's role in the Thread network (Router, End Device, etc.)
|
|
58
|
+
- **Direct neighbors**: Number of devices in the neighbor table (direct RF neighbors)
|
|
59
|
+
- **Routable destinations**: Number of destinations in the route table (routers only)
|
|
60
|
+
|
|
61
|
+
#### Connection Details
|
|
62
|
+
|
|
63
|
+
Each connection shows:
|
|
64
|
+
|
|
65
|
+
- **LQI (Link Quality Indicator)**: 0-255, higher is better. Derived from RF signal quality.
|
|
66
|
+
- **RSSI (Received Signal Strength)**: In dBm, closer to 0 is stronger (e.g., -50 dBm is better than -80 dBm).
|
|
67
|
+
- **Bidir (Bidirectional LQI)**: Average of inbound and outbound LQI from the route table. Only available for router connections.
|
|
68
|
+
- **Cost (Path Cost)**: Number of hops to reach the destination. 1 = direct link, higher = multi-hop route.
|
|
69
|
+
|
|
70
|
+
#### Data Sources
|
|
71
|
+
|
|
72
|
+
Thread devices maintain two tables:
|
|
73
|
+
|
|
74
|
+
1. **Neighbor Table** (0/53/7): Direct RF neighbors visible to the device. All Thread devices have this.
|
|
75
|
+
2. **Route Table** (0/53/8): Routing paths to other nodes. Only routers maintain this table.
|
|
76
|
+
|
|
77
|
+
The visualization combines both tables directly from the devices to provide the most complete picture of your network.
|
|
78
|
+
|
|
79
|
+
### Update Connections
|
|
80
|
+
|
|
81
|
+
Click the refresh button in the device details panel to update network data:
|
|
82
|
+
|
|
83
|
+
- **Online devices**: Refreshes neighbor and route tables from the selected device
|
|
84
|
+
- **Include neighbors**: Optionally refresh data from connected online neighbors too
|
|
85
|
+
- **Offline devices**: Updates data from online neighbors that can see the offline device
|
|
86
|
+
|
|
87
|
+
This is useful when network topology changes or when you want the latest signal quality readings.
|
|
88
|
+
|
|
89
|
+
### Unknown Devices
|
|
90
|
+
|
|
91
|
+
Devices that appear in neighbor tables but are not commissioned to your fabric are shown as "Unknown" with an orange icon. These could be:
|
|
92
|
+
|
|
93
|
+
- Devices commissioned to a different fabric (e.g., Home Assistant's Thread Border Router)
|
|
94
|
+
- Border routers from other Thread networks
|
|
95
|
+
- Thread devices in pairing mode
|
|
96
|
+
|
|
97
|
+
Unknown devices show as "Router (external)" or "End Device (external)" based on their radio behavior (rxOnWhenIdle). Since they're not commissioned to this fabric, we cannot query their actual Thread role (Leader, Router, etc.).
|
|
98
|
+
|
|
99
|
+
### Limitations
|
|
100
|
+
|
|
101
|
+
**Thread roles for external devices**: The Thread role (Leader, Router, End Device) can only be determined for devices commissioned to this fabric. External devices like Home Assistant's Thread Border Router will show as "Router (external)" even if they are the current Thread Leader. This is a fundamental Matter limitation - we cannot query attributes from devices on other fabrics.
|
|
102
|
+
|
|
103
|
+
**Leader role is dynamic**: In Thread networks, the Leader role can change via leader election. Any router can potentially become the Leader, so this status may change over time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-binding-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6CAA6C,CAAC;AAErD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAqC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"node-binding-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6CAA6C,CAAC;AAErD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAqC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAgBrD,qBACa,iBAAkB,SAAQ,UAAU;IAGtC,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGzB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;YAQP,oBAAoB;IAclC,0EAA0E;IAC1E,OAAO,CAAC,iBAAiB;YAKX,oBAAoB;IAgBlC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;YAId,kBAAkB;IAgBhC,OAAO,CAAC,0BAA0B;YAKpB,cAAc;IA8B5B,kFAAkF;IAClF,OAAO,CAAC,eAAe;IASvB,6FAA6F;IAC7F,OAAO,CAAC,oBAAoB;YAcd,YAAY;IAyBpB,iBAAiB;IA2EvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,QAAQ;cAcG,MAAM;IAqFzB,OAAgB,MAAM,0BAsCpB;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ"}
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
} from "../acl/model.js";
|
|
30
30
|
import { consume } from "@lit/context";
|
|
31
31
|
import { clientContext } from "../../../client/client-context.js";
|
|
32
|
+
import { analyzeBatchResults } from "../../../util/matter-status.js";
|
|
32
33
|
let NodeBindingDialog = class extends LitElement {
|
|
33
34
|
fetchBindingEntry() {
|
|
34
35
|
const bindings_raw = this.node.attributes[this.endpoint + "/30/0"];
|
|
@@ -97,14 +98,21 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
97
98
|
const entries = rawEntries ? Object.values(rawEntries).map((v) => AccessControlEntryDataTransformer.transform(v)) : [];
|
|
98
99
|
entries.push(entry);
|
|
99
100
|
const apiEntries = entries.map((e) => this.toAccessControlEntry(e));
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
const results = await this.client.setACLEntry(targetNodeId, apiEntries);
|
|
102
|
+
const batchResult = analyzeBatchResults(results);
|
|
103
|
+
if (batchResult.outcome !== "all_success") {
|
|
104
|
+
console.error(`Set ACL entry: ${batchResult.message}`);
|
|
103
105
|
}
|
|
104
|
-
return
|
|
106
|
+
return batchResult;
|
|
105
107
|
} catch (err) {
|
|
106
|
-
console.error("
|
|
107
|
-
return
|
|
108
|
+
console.error("Add ACL error:", err);
|
|
109
|
+
return {
|
|
110
|
+
outcome: "all_failed",
|
|
111
|
+
successCount: 0,
|
|
112
|
+
failureCount: 1,
|
|
113
|
+
errorCounts: { 1: 1 },
|
|
114
|
+
message: `Exception: ${err instanceof Error ? err.message : String(err)}`
|
|
115
|
+
};
|
|
108
116
|
}
|
|
109
117
|
}
|
|
110
118
|
/** Convert local BindingEntryStruct to API BindingTarget (without fabricIndex) */
|
|
@@ -134,14 +142,21 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
134
142
|
bindings.push(bindingEntry);
|
|
135
143
|
try {
|
|
136
144
|
const apiBindings = bindings.map((b) => this.toBindingTarget(b));
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
145
|
+
const results = await this.client.setNodeBinding(this.getNodeIdAsNumber(), endpoint, apiBindings);
|
|
146
|
+
const batchResult = analyzeBatchResults(results);
|
|
147
|
+
if (batchResult.outcome !== "all_success") {
|
|
148
|
+
console.error(`Set binding: ${batchResult.message}`);
|
|
140
149
|
}
|
|
141
|
-
return
|
|
150
|
+
return batchResult;
|
|
142
151
|
} catch (err) {
|
|
143
|
-
console.
|
|
144
|
-
return
|
|
152
|
+
console.error("Add bindings error:", err);
|
|
153
|
+
return {
|
|
154
|
+
outcome: "all_failed",
|
|
155
|
+
successCount: 0,
|
|
156
|
+
failureCount: 1,
|
|
157
|
+
errorCounts: { 1: 1 },
|
|
158
|
+
message: `Exception: ${err instanceof Error ? err.message : String(err)}`
|
|
159
|
+
};
|
|
145
160
|
}
|
|
146
161
|
}
|
|
147
162
|
async addBindingHandler() {
|
|
@@ -175,11 +190,16 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
175
190
|
fabricIndex: 0
|
|
176
191
|
// Placeholder - server will use correct fabric index
|
|
177
192
|
};
|
|
178
|
-
const
|
|
179
|
-
if (
|
|
180
|
-
alert(
|
|
193
|
+
const aclResult = await this.add_target_acl(targetNodeId, acl_entry);
|
|
194
|
+
if (aclResult.outcome === "all_failed") {
|
|
195
|
+
alert(`Failed to add ACL entry:
|
|
196
|
+
${aclResult.message}`);
|
|
181
197
|
return;
|
|
182
198
|
}
|
|
199
|
+
if (aclResult.outcome === "partial") {
|
|
200
|
+
alert(`ACL entry partially failed:
|
|
201
|
+
${aclResult.message}`);
|
|
202
|
+
}
|
|
183
203
|
const endpoint = this.endpoint;
|
|
184
204
|
const bindingEntry = {
|
|
185
205
|
node: targetNodeId,
|
|
@@ -189,12 +209,19 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
189
209
|
fabricIndex: void 0
|
|
190
210
|
// Server will use correct fabric index
|
|
191
211
|
};
|
|
192
|
-
const
|
|
193
|
-
if (
|
|
212
|
+
const bindingResult = await this.add_bindings(endpoint, bindingEntry);
|
|
213
|
+
if (bindingResult.outcome === "all_success") {
|
|
194
214
|
this._targetNodeId.value = "";
|
|
195
215
|
this._targetEndpoint.value = "";
|
|
196
216
|
this._targetCluster.value = "";
|
|
197
217
|
this.requestUpdate();
|
|
218
|
+
} else if (bindingResult.outcome === "partial") {
|
|
219
|
+
alert(`Binding partially failed:
|
|
220
|
+
${bindingResult.message}`);
|
|
221
|
+
this.requestUpdate();
|
|
222
|
+
} else {
|
|
223
|
+
alert(`Failed to add binding:
|
|
224
|
+
${bindingResult.message}`);
|
|
198
225
|
}
|
|
199
226
|
}
|
|
200
227
|
_close() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AAEP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,OAAO;AAGP,SAAS,KAAK,MAAM,YAAY,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,mCAAkE;AAE3E;AAAA,EACI;AAAA,OAGG;AAEP,SAAS,eAAe;AACxB,SAAS,qBAAqB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -8,7 +8,7 @@ import "../util/theme-service.js";
|
|
|
8
8
|
async function main() {
|
|
9
9
|
import("../pages/matter-dashboard-app.js");
|
|
10
10
|
let url = "";
|
|
11
|
-
const isProductionServer = location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
11
|
+
const isProductionServer = window.__MATTERJS_PRODUCTION_MODE__ === true || location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
12
12
|
if (!isProductionServer) {
|
|
13
13
|
let storageUrl = localStorage.getItem("matterURL");
|
|
14
14
|
if (!storageUrl) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/entrypoint/main.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B,OAAO;AAEP,eAAe,OAAO;AAClB,SAAO,kCAAkC;AAEzC,MAAI,MAAM;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B,OAAO;AAEP,eAAe,OAAO;AAClB,SAAO,kCAAkC;AAEzC,MAAI,MAAM;AAIV,QAAM,qBACD,OAAiE,iCAAiC,QACnG,SAAS,OAAO,SAAS,OAAO,KAChC,SAAS,KAAK,SAAS,gBAAgB,KACvC,SAAS,KAAK,SAAS,eAAe;AAE1C,MAAI,CAAC,oBAAoB;AAErB,QAAI,aAAa,aAAa,QAAQ,WAAW;AACjD,QAAI,CAAC,YAAY;AACb,YAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,YAAM,eAAe,UAAU,IAAI,KAAK;AACxC,mBAAa;AAAA,QACT;AAAA,QACA,gBAAgB;AAAA,MACpB;AACA,UAAI,CAAC,YAAY;AACb,cAAM,+BAA+B;AACrC;AAAA,MACJ;AACA,UAAI,cAAc;AAEd,gBAAQ,UAAU,CAAC,GAAG,IAAI,OAAO,SAAS,QAAQ;AAAA,MACtD;AACA,mBAAa,QAAQ,aAAa,UAAU;AAAA,IAChD;AACA,UAAM;AAAA,EACV,OAAO;AAGH,QAAI,UAAU,OAAO,SAAS,SAAS,OAAO,SAAS;AACvD,QAAI,QAAQ,SAAS,GAAG,GAAG;AACvB,gBAAU,QAAQ,MAAM,GAAG,EAAE;AAAA,IACjC;AACA,UAAM,QAAQ,QAAQ,QAAQ,IAAI,IAAI;AACtC,YAAQ,IAAI,8CAA8C,GAAG,EAAE;AAAA,EACnE;AAEA,QAAM,SAAS,IAAI,aAAa,GAAG;AACnC,SAAO,eAAe;AAEtB,QAAM,YAAY,SAAS,cAAc,sBAAsB;AAC/D,YAAU,SAAS;AACnB,WAAS,KAAK,OAAO,SAAS;AAClC;AAEA,KAAK;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -69,7 +69,7 @@ let NodeDetails = class extends LitElement {
|
|
|
69
69
|
<md-list>
|
|
70
70
|
<md-list-item>
|
|
71
71
|
<div slot="headline">
|
|
72
|
-
<b
|
|
72
|
+
<b>${this.node.nodeLabel || "Node Info"}</b>
|
|
73
73
|
${this.node.available ? nothing : html`<span class="status">OFFLINE</span>`}
|
|
74
74
|
</div>
|
|
75
75
|
</md-list-item>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/pages/components/node-details.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,mBAAmB,SAAS,iBAAiB,aAAa,iBAAiB;AAEpF,SAAS,eAAe;AAExB,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAE/C,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,6BAA6B;AACtC,OAAO;AACP,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAG/B,MAAM,sBAA8C;AAAA,EAChD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACP;AAEA,SAAS,oBAAoBA,QAAe,UAA2B;AACnE,QAAM,QAAQ,oBAAoBA,MAAK,KAAK,YAAYA,MAAK;AAE7D,MAAIA,WAAU,KAAK,aAAa,QAAW;AACvC,WAAO,GAAG,KAAK,KAAK,QAAQ;AAAA,EAChC;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,MAAgC;AACxD,QAAM,kBAAkB,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,IAAI,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,QAAM,iBAAkC,oBAAI,IAAI;AAChD,kBAAgB,QAAQ,gBAAc;AAClC,2BAAuB,MAAM,UAAU,EAAE,QAAQ,gBAAc;AAC3D,qBAAe,IAAI,UAAU;AAAA,IACjC,CAAC;AAAA,EACL,CAAC;AACD,SAAO,MAAM,KAAK,cAAc;AACpC;AAGO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC;AAAA;AAMH,SAAQ,mBAA4B;AAAA;AAAA,EAMjB,SAAS;AACxB,QAAI,CAAC,KAAK,KAAM,QAAO;AAEvB,UAAM,WAAW,KAAK,KAAK,WAAW,KAAK,WAAW,OAAO;AAE7D,WAAO;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["state"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-cluster-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-cluster-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"matter-cluster-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-cluster-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAgB,YAAY,EAAE,UAAU,EAAqB,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAK5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAM1C,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ;AA+BD,cACM,iBAAkB,SAAQ,UAAU;IAC/B,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAIlB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM;YAyED,mBAAmB;IAQjC,OAAO,CAAC,sBAAsB;IAkBrB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBxD,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAwCpB;CACL"}
|
|
@@ -18,8 +18,8 @@ import "@material/web/divider/divider";
|
|
|
18
18
|
import "@material/web/iconbutton/icon-button";
|
|
19
19
|
import "@material/web/list/list";
|
|
20
20
|
import "@material/web/list/list-item";
|
|
21
|
-
import { toBigIntAwareJson } from "@matter-server/ws-client";
|
|
22
|
-
import {
|
|
21
|
+
import { isTestNodeId, toBigIntAwareJson } from "@matter-server/ws-client";
|
|
22
|
+
import { css, html, LitElement } from "lit";
|
|
23
23
|
import { customElement, property } from "lit/decorators.js";
|
|
24
24
|
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
25
25
|
import { clusters } from "../client/models/descriptions.js";
|
|
@@ -27,7 +27,7 @@ import { showAlertDialog } from "../components/dialog-box/show-dialog-box.js";
|
|
|
27
27
|
import "../components/ha-svg-icon";
|
|
28
28
|
import "../pages/components/node-details";
|
|
29
29
|
import { bindingContext } from "./components/context.js";
|
|
30
|
-
import { formatHex } from "../util/format_hex.js";
|
|
30
|
+
import { formatHex, formatNodeAddress, getEffectiveFabricIndex } from "../util/format_hex.js";
|
|
31
31
|
import { getClusterCommandsTag } from "./cluster-commands/index.js";
|
|
32
32
|
const GLOBAL_ATTRIBUTE_MIN = 65520;
|
|
33
33
|
const GLOBAL_ATTRIBUTE_MAX = 65535;
|
|
@@ -55,9 +55,14 @@ let MatterClusterView = class extends LitElement {
|
|
|
55
55
|
<button @click=${this._goBack}>Back</button>
|
|
56
56
|
`;
|
|
57
57
|
}
|
|
58
|
+
const fabricIndex = getEffectiveFabricIndex(
|
|
59
|
+
this.client.serverInfo.fabric_index,
|
|
60
|
+
isTestNodeId(this.node.node_id)
|
|
61
|
+
);
|
|
62
|
+
const nodeHex = formatNodeAddress(fabricIndex, this.node.node_id);
|
|
58
63
|
return html`
|
|
59
64
|
<dashboard-header
|
|
60
|
-
.title=${`Node ${this.node.node_id} | Endpoint ${this.endpoint} | Cluster ${this.cluster}`}
|
|
65
|
+
.title=${`Node ${this.node.node_id} ${nodeHex} | Endpoint ${this.endpoint} | Cluster ${this.cluster}`}
|
|
61
66
|
.backButton=${`#node/${this.node.node_id}/${this.endpoint}`}
|
|
62
67
|
.client=${this.client}
|
|
63
68
|
></dashboard-header>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/pages/matter-cluster-view.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,cAAwC,yBAAyB;AAC1E,SAAS,KAAK,MAAM,kBAAkB;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,OAAO;AACP,OAAO;AACP,SAAS,sBAAsB;AAE/B,SAAS,WAAW,mBAAmB,+BAA+B;AACtE,SAAS,6BAA6B;AAStC,MAAM,uBAAuB;AAC7B,MAAM,uBAAuB;AAE7B,SAAS,kBAAkB,IAAqB;AAC5C,SAAO,MAAM,wBAAwB,MAAM;AAC/C;AAEA,SAAS,kBAAkB,YAAoC,UAAkB,SAAiB;AAE9F,SAAO,OAAO,KAAK,UAAU,EACxB,OAAO,SAAO,IAAI,WAAW,GAAG,QAAQ,IAAI,OAAO,GAAG,CAAC,EACvD,IAAI,SAAO;AACR,UAAM,eAAe,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;AAC7C,WAAO,EAAE,KAAK,cAAc,OAAO,WAAW,GAAG,EAAE;AAAA,EACvD,CAAC,EACA,KAAK,CAAC,GAAG,MAAM;AACZ,UAAM,YAAY,kBAAkB,EAAE,GAAG;AACzC,UAAM,YAAY,kBAAkB,EAAE,GAAG;AAGzC,QAAI,cAAc,WAAW;AACzB,aAAO,YAAY,IAAI;AAAA,IAC3B;AAEA,WAAO,EAAE,MAAM,EAAE;AAAA,EACrB,CAAC;AACT;AAGA,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAa9B,SAAS;AACd,QAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,UAAa,KAAK,WAAW,QAAW;AACvE,aAAO;AAAA;AAAA,iCAEc,KAAK,OAAO;AAAA;AAAA,IAErC;AAGA,UAAM,cAAc;AAAA,MAChB,KAAK,OAAO,WAAW;AAAA,MACvB,aAAa,KAAK,KAAK,OAAO;AAAA,IAClC;AACA,UAAM,UAAU,kBAAkB,aAAa,KAAK,KAAK,OAAO;AAEhE,WAAO;AAAA;AAAA,yBAEU,QAAQ,KAAK,KAAK,OAAO,IAAI,OAAO,iBAAiB,KAAK,QAAQ,gBAAgB,KAAK,OAAO,EAAE;AAAA,8BAC3F,SAAS,KAAK,KAAK,OAAO,IAAI,KAAK,QAAQ,EAAE;AAAA,0BACjD,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,sCAKC,KAAK,IAAI,YAAY,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA,cAIxD,KAAK,uBAAuB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iDAQM,SAAS,KAAK,OAAO,GAAG,SAAS,wBAAwB;AAAA,2CAC/D,KAAK,QAAQ;AAAA;AAAA;AAAA,gEAGQ,KAAK,OAAO,KAAK,UAAU,KAAK,OAAO,CAAC;AAAA;AAAA;AAAA,sBAGlF,kBAAkB,KAAK,KAAK,YAAY,KAAK,UAAU,KAAK,OAAO,EAAE;AAAA,MACnE,CAAC,WAAW,UAAU;AAAA,kDACI,QAAQ,MAAM,IAAI,kBAAkB,EAAE;AAAA;AAAA,sCAElD,SAAS,KAAK,OAAQ,GAAG,WAAW,UAAU,GAAG,GAAG,SACtD,0BAA0B;AAAA;AAAA;AAAA,mDAGX,UAAU,GAAG,KAAK,UAAU,UAAU,GAAG,CAAC;AAAA,sCACvD,SAAS,KAAK,OAAQ,GAAG,WAAW,UAAU,GAAG,GAAG,QAAQ,SAAS;AAAA;AAAA;AAAA,sCAGrE,kBAAkB,UAAU,KAAK,EAAE,SAAS,KACxC;AAAA,uDACa,MAAM;AACX,aAAK,oBAAoB,UAAU,KAAK;AAAA,MAC5C,CAAC;AAAA;AAAA;AAAA,uDAIL,aAAa,kBAAkB,UAAU,KAAK,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA,IAI9E,CAAC;AAAA;AAAA;AAAA;AAAA,EAIjB;AAAA,EAEA,MAAc,oBAAoB,OAAY;AAC1C,oBAAgB;AAAA,MACZ,OAAO;AAAA,MACP,MAAM,kBAAkB,KAAK;AAAA,MAC7B,aAAa;AAAA,IACjB,CAAC;AAAA,EACL;AAAA,EAEQ,yBAAyB;AAC7B,QAAI,KAAK,YAAY,OAAW,QAAO;AACvC,QAAI,CAAC,KAAK,MAAM,UAAW,QAAO;AAElC,UAAM,UAAU,sBAAsB,KAAK,OAAO;AAClD,QAAI,CAAC,QAAS,QAAO;AAGrB,UAAM,gBAAgB,IAAI,OAAO,MAAM,OAAO;AAC9C,UAAM,UAAU,WAAW,aAAa;AAExC,WAAO;AAAA;AAAA,uDAEwC,OAAO;AAAA;AAAA;AAAA,EAG1D;AAAA,EAES,QAAQ,mBAAyC;AACtD,UAAM,QAAQ,iBAAiB;AAG/B,UAAM,YAAY,KAAK,YAAY,eAAe,4BAA4B;AAC9E,QAAI,WAAW;AACX,YAAM,kBAAkB,UAAU;AAClC,UAAI,mBAAmB,KAAK,QAAQ,KAAK,QAAQ;AAC7C,wBAAgB,SAAS,KAAK;AAC9B,wBAAgB,OAAO,KAAK;AAC5B,wBAAgB,WAAW,KAAK;AAChC,wBAAgB,UAAU,KAAK;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,UAAU;AACd,YAAQ,KAAK;AAAA,EACjB;AA2CJ;AA7KM,kBAoIc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhIlB;AAAA,EADN,SAAS;AAAA,GAHR,kBAIK;AAIA;AAAA,EAFN,QAAQ,EAAE,SAAS,eAAe,CAAC;AAAA,EACnC,SAAS;AAAA,GAPR,kBAQK;AAGA;AAAA,EADN,SAAS;AAAA,GAVR,kBAWK;AAXL,oBAAN;AAAA,EADC,cAAc,qBAAqB;AAAA,GAC9B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-endpoint-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-endpoint-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"matter-endpoint-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-endpoint-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAgB,MAAM,0BAA0B,CAAC;AAElF,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,UAAU,EAA0B,MAAM,kCAAkC,CAAC;AACtF,OAAO,2BAA2B,CAAC;AAGnC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,sBAAsB,EAAE,kBAAkB,CAAC;KAC9C;CACJ;AAcD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAOvF;AAED,cACM,kBAAmB,SAAQ,UAAU;IAChC,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM;IA8Df,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAoCpB;CACL"}
|
|
@@ -17,13 +17,14 @@ import "@material/web/divider/divider";
|
|
|
17
17
|
import "@material/web/iconbutton/icon-button";
|
|
18
18
|
import "@material/web/list/list";
|
|
19
19
|
import "@material/web/list/list-item";
|
|
20
|
+
import { isTestNodeId } from "@matter-server/ws-client";
|
|
20
21
|
import { mdiChevronRight } from "@mdi/js";
|
|
21
22
|
import { LitElement, css, html } from "lit";
|
|
22
23
|
import { customElement, property } from "lit/decorators.js";
|
|
23
24
|
import { guard } from "lit/directives/guard.js";
|
|
24
25
|
import { clusters, device_types } from "../client/models/descriptions.js";
|
|
25
26
|
import "../components/ha-svg-icon";
|
|
26
|
-
import { formatHex } from "../util/format_hex.js";
|
|
27
|
+
import { formatHex, formatNodeAddress, getEffectiveFabricIndex } from "../util/format_hex.js";
|
|
27
28
|
function getUniqueClusters(node, endpoint) {
|
|
28
29
|
return Array.from(
|
|
29
30
|
new Set(
|
|
@@ -49,9 +50,14 @@ let MatterEndpointView = class extends LitElement {
|
|
|
49
50
|
<button @click=${this._goBack}>Back</button>
|
|
50
51
|
`;
|
|
51
52
|
}
|
|
53
|
+
const fabricIndex = getEffectiveFabricIndex(
|
|
54
|
+
this.client.serverInfo.fabric_index,
|
|
55
|
+
isTestNodeId(this.node.node_id)
|
|
56
|
+
);
|
|
57
|
+
const nodeHex = formatNodeAddress(fabricIndex, this.node.node_id);
|
|
52
58
|
return html`
|
|
53
59
|
<dashboard-header
|
|
54
|
-
.title=${`Node ${this.node.node_id} | Endpoint ${this.endpoint}`}
|
|
60
|
+
.title=${`Node ${this.node.node_id} ${nodeHex} | Endpoint ${this.endpoint}`}
|
|
55
61
|
.backButton=${`#node/${this.node.node_id}`}
|
|
56
62
|
.client=${this.client}
|
|
57
63
|
></dashboard-header>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/pages/matter-endpoint-view.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAmC,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,aAAa;AACtB,SAAqB,UAAU,oBAAoB;AACnD,OAAO;AACP,SAAS,WAAW,mBAAmB,+BAA+B;AAQtE,SAAS,kBAAkB,MAAkB,UAAkB;AAC3D,SAAO,MAAM;AAAA,IACT,IAAI;AAAA,MACA,OAAO,KAAK,KAAK,UAAU,EACtB,OAAO,SAAO,IAAI,WAAW,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC,EACvD,IAAI,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAAA,IAC7C;AAAA,EACJ,EAAE,KAAK,CAAC,GAAG,MAAM;AACb,WAAO,IAAI;AAAA,EACf,CAAC;AACL;AAEO,SAAS,uBAAuB,MAAkB,UAAgC;AACrF,QAAM,YAAY,KAAK,WAAW,GAAG,QAAQ,OAAO;AACpD,MAAI,CAAC,UAAW,QAAO,CAAC;AACxB,SAAO,UAAU,IAAI,cAAY;AAC7B,UAAM,KAAK,SAAS,GAAG,KAAK,SAAS,YAAY;AACjD,WAAO,aAAa,EAAE,KAAK,EAAE,IAAI,MAAM,IAAI,OAAO,wBAAwB,EAAE,KAAK,UAAU,CAAC,EAAE;AAAA,EAClG,CAAC;AACL;AAGA,IAAM,qBAAN,cAAiC,WAAW;AAAA,EAS/B,SAAS;AACd,QAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,QAAW;AAC1C,aAAO;AAAA;AAAA,iCAEc,KAAK,OAAO;AAAA;AAAA,IAErC;AAGA,UAAM,cAAc;AAAA,MAChB,KAAK,OAAO,WAAW;AAAA,MACvB,aAAa,KAAK,KAAK,OAAO;AAAA,IAClC;AACA,UAAM,UAAU,kBAAkB,aAAa,KAAK,KAAK,OAAO;AAEhE,WAAO;AAAA;AAAA,yBAEU,QAAQ,KAAK,KAAK,OAAO,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;AAAA,8BAC/D,SAAS,KAAK,KAAK,OAAO,EAAE;AAAA,0BAChC,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,sCAKC,KAAK,IAAI,YAAY,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sDAQhB,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,8BAIrC,uBAAuB,KAAK,MAAM,KAAK,QAAQ,EAC5C,IAAI,gBAAc;AACf,aAAO,WAAW;AAAA,IACtB,CAAC,EACA,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,sBAGtB;AAAA,MAAM,CAAC,KAAK,MAAM,WAAW,MAAM;AAAA,MAAG,MACpC,kBAAkB,KAAK,MAAO,KAAK,QAAS,EAAE,IAAI,aAAW;AACzD,eAAO;AAAA;AAAA;AAAA,2CAGQ,SAAS,KAAK,KAAM,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,EAAE;AAAA;AAAA,2DAEzC,SAAS,OAAO,GAAG,SAAS,wBAAwB;AAAA,4EACnC,OAAO,KAAK,UAAU,OAAO,CAAC;AAAA,oEACtC,eAAe;AAAA;AAAA;AAAA,MAG3D,CAAC;AAAA,IACL,CAAC;AAAA;AAAA;AAAA;AAAA,EAIjB;AAAA,EAEQ,UAAU;AACd,YAAQ,KAAK;AAAA,EACjB;AAuCJ;AAhHM,mBA2Ec,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvElB;AAAA,EADN,SAAS;AAAA,GAHR,mBAIK;AAGA;AAAA,EADN,SAAS;AAAA,GANR,mBAOK;AAPL,qBAAN;AAAA,EADC,cAAc,sBAAsB;AAAA,GAC/B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -28,6 +28,7 @@ declare class MatterNetworkView extends LitElement {
|
|
|
28
28
|
hasThreadDevices?: boolean;
|
|
29
29
|
hasWifiDevices?: boolean;
|
|
30
30
|
private _selectedNodeId;
|
|
31
|
+
private _physicsEnabled;
|
|
31
32
|
private _initialSelectionApplied;
|
|
32
33
|
private _selectRetryTimer?;
|
|
33
34
|
private _threadGraph?;
|
|
@@ -43,6 +44,10 @@ declare class MatterNetworkView extends LitElement {
|
|
|
43
44
|
private _handleDetailsClose;
|
|
44
45
|
private _handleSelectNode;
|
|
45
46
|
private _handleFitToScreen;
|
|
47
|
+
private _handleZoomIn;
|
|
48
|
+
private _handleZoomOut;
|
|
49
|
+
private _handleTogglePhysics;
|
|
50
|
+
private _handlePhysicsChanged;
|
|
46
51
|
private _renderThreadView;
|
|
47
52
|
private _renderWifiView;
|
|
48
53
|
render(): import("lit-html").TemplateResult<1>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-network-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-network-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,wBAAwB,CAAC;AAChC,OAAO,2BAA2B,CAAC;AACnC,OAAO,wBAAwB,CAAC;AAEhC,OAAO,sBAAsB,CAAC;AAG9B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ;AAED,cACM,iBAAkB,SAAQ,UAAU;IAC/B,MAAM,EAAG,YAAY,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAM;IAGvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAY;IAEjD,gFAAgF;IAEzE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,cAAc,CAAC,EAAE,OAAO,CAAC;IAGhC,OAAO,CAAC,eAAe,CAAgC;
|
|
1
|
+
{"version":3,"file":"matter-network-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-network-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,wBAAwB,CAAC;AAChC,OAAO,2BAA2B,CAAC;AACnC,OAAO,wBAAwB,CAAC;AAEhC,OAAO,sBAAsB,CAAC;AAG9B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ;AAED,cACM,iBAAkB,SAAQ,UAAU;IAC/B,MAAM,EAAG,YAAY,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAM;IAGvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAY;IAEjD,gFAAgF;IAEzE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,cAAc,CAAC,EAAE,OAAO,CAAC;IAGhC,OAAO,CAAC,eAAe,CAAgC;IAGvD,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,iBAAiB,CAAC,CAAgC;IAG1D,OAAO,CAAC,YAAY,CAAC,CAAc;IAGnC,OAAO,CAAC,UAAU,CAAC,CAAY;IAEtB,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQzD,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAWtD,oBAAoB,IAAI,IAAI;IAOrC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,eAAe;IAiCd,MAAM;IAmCf,OAAgB,MAAM,0BAmJpB;CACL"}
|
|
@@ -13,7 +13,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
13
13
|
* Copyright 2025-2026 Open Home Foundation
|
|
14
14
|
* SPDX-License-Identifier: Apache-2.0
|
|
15
15
|
*/
|
|
16
|
-
import { mdiFitToScreen } from "@mdi/js";
|
|
16
|
+
import { mdiFitToScreen, mdiMagnifyMinus, mdiMagnifyPlus, mdiPause, mdiPlay } from "@mdi/js";
|
|
17
17
|
import { css, html, LitElement } from "lit";
|
|
18
18
|
import { customElement, property, query, state } from "lit/decorators.js";
|
|
19
19
|
import "../components/ha-svg-icon";
|
|
@@ -30,6 +30,7 @@ let MatterNetworkView = class extends LitElement {
|
|
|
30
30
|
this.networkType = "thread";
|
|
31
31
|
this.initialSelectedNodeId = null;
|
|
32
32
|
this._selectedNodeId = null;
|
|
33
|
+
this._physicsEnabled = true;
|
|
33
34
|
this._initialSelectionApplied = false;
|
|
34
35
|
}
|
|
35
36
|
willUpdate(changedProperties) {
|
|
@@ -84,16 +85,60 @@ let MatterNetworkView = class extends LitElement {
|
|
|
84
85
|
this._wifiGraph?.fit();
|
|
85
86
|
}
|
|
86
87
|
}
|
|
88
|
+
_handleZoomIn() {
|
|
89
|
+
if (this.networkType === "thread") {
|
|
90
|
+
this._threadGraph?.zoomIn();
|
|
91
|
+
} else {
|
|
92
|
+
this._wifiGraph?.zoomIn();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
_handleZoomOut() {
|
|
96
|
+
if (this.networkType === "thread") {
|
|
97
|
+
this._threadGraph?.zoomOut();
|
|
98
|
+
} else {
|
|
99
|
+
this._wifiGraph?.zoomOut();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
_handleTogglePhysics() {
|
|
103
|
+
const newState = !this._physicsEnabled;
|
|
104
|
+
this._physicsEnabled = newState;
|
|
105
|
+
this._threadGraph?.setPhysicsEnabled(newState);
|
|
106
|
+
this._wifiGraph?.setPhysicsEnabled(newState);
|
|
107
|
+
}
|
|
108
|
+
_handlePhysicsChanged(event) {
|
|
109
|
+
this._physicsEnabled = event.detail.enabled;
|
|
110
|
+
this._threadGraph?.setPhysicsEnabled(event.detail.enabled);
|
|
111
|
+
this._wifiGraph?.setPhysicsEnabled(event.detail.enabled);
|
|
112
|
+
}
|
|
87
113
|
_renderThreadView() {
|
|
88
114
|
return html`
|
|
89
115
|
<div class="graph-section">
|
|
90
116
|
<div class="graph-header">
|
|
91
117
|
<h2>Thread Network Mesh</h2>
|
|
92
|
-
<
|
|
93
|
-
<
|
|
94
|
-
|
|
118
|
+
<div class="graph-controls">
|
|
119
|
+
<button class="control-button" @click=${this._handleZoomIn} title="Zoom in">
|
|
120
|
+
<ha-svg-icon .path=${mdiMagnifyPlus}></ha-svg-icon>
|
|
121
|
+
</button>
|
|
122
|
+
<button class="control-button" @click=${this._handleZoomOut} title="Zoom out">
|
|
123
|
+
<ha-svg-icon .path=${mdiMagnifyMinus}></ha-svg-icon>
|
|
124
|
+
</button>
|
|
125
|
+
<button class="control-button" @click=${this._handleFitToScreen} title="Fit to screen">
|
|
126
|
+
<ha-svg-icon .path=${mdiFitToScreen}></ha-svg-icon>
|
|
127
|
+
</button>
|
|
128
|
+
<button
|
|
129
|
+
class="control-button ${this._physicsEnabled ? "" : "active"}"
|
|
130
|
+
@click=${this._handleTogglePhysics}
|
|
131
|
+
title="${this._physicsEnabled ? "Freeze layout" : "Unfreeze layout"}"
|
|
132
|
+
>
|
|
133
|
+
<ha-svg-icon .path=${this._physicsEnabled ? mdiPause : mdiPlay}></ha-svg-icon>
|
|
134
|
+
</button>
|
|
135
|
+
</div>
|
|
95
136
|
</div>
|
|
96
|
-
<thread-graph
|
|
137
|
+
<thread-graph
|
|
138
|
+
.nodes=${this.nodes}
|
|
139
|
+
@node-selected=${this._handleNodeSelected}
|
|
140
|
+
@physics-changed=${this._handlePhysicsChanged}
|
|
141
|
+
></thread-graph>
|
|
97
142
|
</div>
|
|
98
143
|
`;
|
|
99
144
|
}
|
|
@@ -102,11 +147,30 @@ let MatterNetworkView = class extends LitElement {
|
|
|
102
147
|
<div class="graph-section">
|
|
103
148
|
<div class="graph-header">
|
|
104
149
|
<h2>WiFi Network</h2>
|
|
105
|
-
<
|
|
106
|
-
<
|
|
107
|
-
|
|
150
|
+
<div class="graph-controls">
|
|
151
|
+
<button class="control-button" @click=${this._handleZoomIn} title="Zoom in">
|
|
152
|
+
<ha-svg-icon .path=${mdiMagnifyPlus}></ha-svg-icon>
|
|
153
|
+
</button>
|
|
154
|
+
<button class="control-button" @click=${this._handleZoomOut} title="Zoom out">
|
|
155
|
+
<ha-svg-icon .path=${mdiMagnifyMinus}></ha-svg-icon>
|
|
156
|
+
</button>
|
|
157
|
+
<button class="control-button" @click=${this._handleFitToScreen} title="Fit to screen">
|
|
158
|
+
<ha-svg-icon .path=${mdiFitToScreen}></ha-svg-icon>
|
|
159
|
+
</button>
|
|
160
|
+
<button
|
|
161
|
+
class="control-button ${this._physicsEnabled ? "" : "active"}"
|
|
162
|
+
@click=${this._handleTogglePhysics}
|
|
163
|
+
title="${this._physicsEnabled ? "Freeze layout" : "Unfreeze layout"}"
|
|
164
|
+
>
|
|
165
|
+
<ha-svg-icon .path=${this._physicsEnabled ? mdiPause : mdiPlay}></ha-svg-icon>
|
|
166
|
+
</button>
|
|
167
|
+
</div>
|
|
108
168
|
</div>
|
|
109
|
-
<wifi-graph
|
|
169
|
+
<wifi-graph
|
|
170
|
+
.nodes=${this.nodes}
|
|
171
|
+
@node-selected=${this._handleNodeSelected}
|
|
172
|
+
@physics-changed=${this._handlePhysicsChanged}
|
|
173
|
+
></wifi-graph>
|
|
110
174
|
</div>
|
|
111
175
|
`;
|
|
112
176
|
}
|
|
@@ -199,7 +263,12 @@ MatterNetworkView.styles = css`
|
|
|
199
263
|
color: var(--md-sys-color-on-background, #333);
|
|
200
264
|
}
|
|
201
265
|
|
|
202
|
-
.
|
|
266
|
+
.graph-controls {
|
|
267
|
+
display: flex;
|
|
268
|
+
gap: 4px;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.control-button {
|
|
203
272
|
background: none;
|
|
204
273
|
border: 1px solid var(--md-sys-color-outline-variant, #ccc);
|
|
205
274
|
border-radius: 4px;
|
|
@@ -208,17 +277,28 @@ MatterNetworkView.styles = css`
|
|
|
208
277
|
display: flex;
|
|
209
278
|
align-items: center;
|
|
210
279
|
justify-content: center;
|
|
211
|
-
transition:
|
|
280
|
+
transition:
|
|
281
|
+
background-color 0.2s,
|
|
282
|
+
border-color 0.2s;
|
|
212
283
|
}
|
|
213
284
|
|
|
214
|
-
.
|
|
285
|
+
.control-button:hover {
|
|
215
286
|
background-color: var(--md-sys-color-surface-container-high, #e8e8e8);
|
|
216
287
|
}
|
|
217
288
|
|
|
218
|
-
.
|
|
289
|
+
.control-button.active {
|
|
290
|
+
background-color: var(--md-sys-color-primary-container, #e8def8);
|
|
291
|
+
border-color: var(--md-sys-color-primary, #6750a4);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.control-button ha-svg-icon {
|
|
219
295
|
--icon-primary-color: var(--md-sys-color-on-surface-variant, #666);
|
|
220
296
|
}
|
|
221
297
|
|
|
298
|
+
.control-button.active ha-svg-icon {
|
|
299
|
+
--icon-primary-color: var(--md-sys-color-on-primary-container, #21005d);
|
|
300
|
+
}
|
|
301
|
+
|
|
222
302
|
.graph-section thread-graph,
|
|
223
303
|
.graph-section wifi-graph {
|
|
224
304
|
flex: 1 1 0;
|
|
@@ -297,6 +377,9 @@ __decorateClass([
|
|
|
297
377
|
__decorateClass([
|
|
298
378
|
state()
|
|
299
379
|
], MatterNetworkView.prototype, "_selectedNodeId", 2);
|
|
380
|
+
__decorateClass([
|
|
381
|
+
state()
|
|
382
|
+
], MatterNetworkView.prototype, "_physicsEnabled", 2);
|
|
300
383
|
__decorateClass([
|
|
301
384
|
query("thread-graph")
|
|
302
385
|
], MatterNetworkView.prototype, "_threadGraph", 2);
|