@matter-server/dashboard 0.7.0-alpha.0-20260512-b404bea → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/client/client-context.d.ts +3 -0
- package/dist/esm/client/client-context.d.ts.map +1 -1
- package/dist/esm/client/client-context.js +3 -1
- package/dist/esm/client/client-context.js.map +1 -1
- package/dist/esm/client/models/descriptions.js +45 -45
- package/dist/esm/components/avsum-ptz-strip.d.ts +41 -0
- package/dist/esm/components/avsum-ptz-strip.d.ts.map +1 -0
- package/dist/esm/components/avsum-ptz-strip.js +379 -0
- package/dist/esm/components/avsum-ptz-strip.js.map +6 -0
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +1 -1
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.d.ts +2 -2
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.js +1 -2
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts +1 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js +12 -3
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.d.ts +1 -2
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.js +1 -2
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts +0 -2
- package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/settings/log-level-dialog.js +2 -8
- package/dist/esm/components/dialogs/settings/log-level-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/settings/log-level-section.d.ts +2 -1
- package/dist/esm/components/dialogs/settings/log-level-section.d.ts.map +1 -1
- package/dist/esm/components/dialogs/settings/log-level-section.js +10 -2
- package/dist/esm/components/dialogs/settings/log-level-section.js.map +1 -1
- package/dist/esm/components/dialogs/settings/settings-dialog.d.ts +1 -0
- package/dist/esm/components/dialogs/settings/settings-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/settings/settings-dialog.js +8 -2
- package/dist/esm/components/dialogs/settings/settings-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/settings/show-log-level-dialog.d.ts +1 -2
- package/dist/esm/components/dialogs/settings/show-log-level-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/settings/show-log-level-dialog.js +1 -2
- package/dist/esm/components/dialogs/settings/show-log-level-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/settings/show-settings-dialog.d.ts +1 -2
- package/dist/esm/components/dialogs/settings/show-settings-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/settings/show-settings-dialog.js +1 -2
- package/dist/esm/components/dialogs/settings/show-settings-dialog.js.map +1 -1
- package/dist/esm/components/webrtc-stream-view.d.ts +97 -0
- package/dist/esm/components/webrtc-stream-view.d.ts.map +1 -0
- package/dist/esm/components/webrtc-stream-view.js +878 -0
- package/dist/esm/components/webrtc-stream-view.js.map +6 -0
- package/dist/esm/pages/camera-overlay.d.ts +63 -0
- package/dist/esm/pages/camera-overlay.d.ts.map +1 -0
- package/dist/esm/pages/camera-overlay.js +546 -0
- package/dist/esm/pages/camera-overlay.js.map +6 -0
- package/dist/esm/pages/cluster-commands/base-cluster-commands.d.ts +1 -0
- package/dist/esm/pages/cluster-commands/base-cluster-commands.d.ts.map +1 -1
- package/dist/esm/pages/cluster-commands/base-cluster-commands.js +11 -1
- package/dist/esm/pages/cluster-commands/base-cluster-commands.js.map +1 -1
- package/dist/esm/pages/cluster-commands/clusters/avsum-commands.d.ts +38 -0
- package/dist/esm/pages/cluster-commands/clusters/avsum-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/avsum-commands.js +534 -0
- package/dist/esm/pages/cluster-commands/clusters/avsum-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/clusters/chime-commands.d.ts +32 -0
- package/dist/esm/pages/cluster-commands/clusters/chime-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/chime-commands.js +261 -0
- package/dist/esm/pages/cluster-commands/clusters/chime-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/index.d.ts +2 -0
- package/dist/esm/pages/cluster-commands/index.d.ts.map +1 -1
- package/dist/esm/pages/cluster-commands/index.js +2 -0
- package/dist/esm/pages/cluster-commands/index.js.map +1 -1
- package/dist/esm/pages/components/header.d.ts +1 -0
- package/dist/esm/pages/components/header.d.ts.map +1 -1
- package/dist/esm/pages/components/header.js +10 -3
- package/dist/esm/pages/components/header.js.map +1 -1
- package/dist/esm/pages/components/node-details.d.ts +3 -0
- package/dist/esm/pages/components/node-details.d.ts.map +1 -1
- package/dist/esm/pages/components/node-details.js +34 -4
- package/dist/esm/pages/components/node-details.js.map +1 -1
- package/dist/esm/pages/components/server-details.d.ts +1 -0
- package/dist/esm/pages/components/server-details.d.ts.map +1 -1
- package/dist/esm/pages/components/server-details.js +11 -2
- package/dist/esm/pages/components/server-details.js.map +1 -1
- package/dist/esm/pages/matter-cluster-view.d.ts +1 -0
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +15 -8
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/esm/pages/matter-dashboard-app.d.ts +3 -1
- package/dist/esm/pages/matter-dashboard-app.d.ts.map +1 -1
- package/dist/esm/pages/matter-dashboard-app.js +12 -16
- package/dist/esm/pages/matter-dashboard-app.js.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.d.ts +2 -1
- package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.js +17 -3
- package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
- package/dist/esm/pages/matter-network-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-network-view.js +5 -1
- package/dist/esm/pages/matter-network-view.js.map +1 -1
- package/dist/esm/pages/matter-node-view.d.ts +1 -0
- package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-node-view.js +15 -7
- package/dist/esm/pages/matter-node-view.js.map +1 -1
- package/dist/esm/pages/matter-server-view.d.ts +1 -0
- package/dist/esm/pages/matter-server-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-server-view.js +13 -2
- package/dist/esm/pages/matter-server-view.js.map +1 -1
- package/dist/esm/pages/network/network-details.d.ts.map +1 -1
- package/dist/esm/pages/network/network-details.js +0 -3
- package/dist/esm/pages/network/network-details.js.map +1 -1
- package/dist/esm/pages/network/update-connections-dialog.d.ts +1 -0
- package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -1
- package/dist/esm/pages/network/update-connections-dialog.js +7 -1
- package/dist/esm/pages/network/update-connections-dialog.js.map +1 -1
- package/dist/esm/util/attribute-shapes.d.ts +11 -0
- package/dist/esm/util/attribute-shapes.d.ts.map +1 -0
- package/dist/esm/util/attribute-shapes.js +37 -0
- package/dist/esm/util/attribute-shapes.js.map +6 -0
- package/dist/esm/util/avsum.d.ts +69 -0
- package/dist/esm/util/avsum.d.ts.map +1 -0
- package/dist/esm/util/avsum.js +150 -0
- package/dist/esm/util/avsum.js.map +6 -0
- package/dist/esm/util/chime.d.ts +20 -0
- package/dist/esm/util/chime.d.ts.map +1 -0
- package/dist/esm/util/chime.js +60 -0
- package/dist/esm/util/chime.js.map +6 -0
- package/dist/web/js/{attribute-write-dialog-DzMWN_T3.js → attribute-write-dialog-DLRP2hlx.js} +1 -1
- package/dist/web/js/{command-invoke-dialog-BhAOXzjX.js → command-invoke-dialog-BcCfT1sn.js} +1 -1
- package/dist/web/js/{commission-node-dialog-DF87YIqR.js → commission-node-dialog-BfldkUxD.js} +16 -8
- package/dist/web/js/{commission-node-existing-DLcWvJTL.js → commission-node-existing-omW-An0J.js} +2 -2
- package/dist/web/js/{commission-node-thread-m2fqED-2.js → commission-node-thread-BZpJIxlI.js} +2 -2
- package/dist/web/js/{commission-node-wifi-PCsot-CX.js → commission-node-wifi-HA2pYTW2.js} +2 -2
- package/dist/web/js/{dialog-box-DiqYXM8c.js → dialog-box-BjDID9j4.js} +1 -1
- package/dist/web/js/{fire_event-BnpND_gK.js → fire_event-CChLgSiV.js} +1 -1
- package/dist/web/js/main.js +39 -1
- package/dist/web/js/{matter-dashboard-app-BZOhBELR.js → matter-dashboard-app-XUWBcruM.js} +8265 -2035
- package/dist/web/js/{node-binding-dialog-B3lVN-FU.js → node-binding-dialog-_yHtf7WP.js} +2 -2
- package/dist/web/js/settings-dialog-BFPfOSOI.js +607 -0
- package/package.json +4 -4
- package/src/client/client-context.ts +1 -0
- package/src/client/models/descriptions.ts +45 -45
- package/src/components/avsum-ptz-strip.ts +388 -0
- package/src/components/dialogs/binding/node-binding-dialog.ts +1 -1
- package/src/components/dialogs/binding/show-node-binding-dialog.ts +2 -3
- package/src/components/dialogs/commission-node-dialog/commission-node-dialog.ts +10 -4
- package/src/components/dialogs/commission-node-dialog/show-commission-node-dialog.ts +1 -4
- package/src/components/dialogs/settings/log-level-dialog.ts +2 -9
- package/src/components/dialogs/settings/log-level-section.ts +11 -4
- package/src/components/dialogs/settings/settings-dialog.ts +8 -3
- package/src/components/dialogs/settings/show-log-level-dialog.ts +1 -4
- package/src/components/dialogs/settings/show-settings-dialog.ts +1 -4
- package/src/components/webrtc-stream-view.ts +999 -0
- package/src/pages/camera-overlay.ts +562 -0
- package/src/pages/cluster-commands/base-cluster-commands.ts +7 -1
- package/src/pages/cluster-commands/clusters/avsum-commands.ts +562 -0
- package/src/pages/cluster-commands/clusters/chime-commands.ts +272 -0
- package/src/pages/cluster-commands/index.ts +2 -0
- package/src/pages/components/header.ts +7 -3
- package/src/pages/components/node-details.ts +33 -3
- package/src/pages/components/server-details.ts +8 -2
- package/src/pages/matter-cluster-view.ts +13 -9
- package/src/pages/matter-dashboard-app.ts +11 -16
- package/src/pages/matter-endpoint-view.ts +13 -5
- package/src/pages/matter-network-view.ts +3 -1
- package/src/pages/matter-node-view.ts +9 -7
- package/src/pages/matter-server-view.ts +7 -2
- package/src/pages/network/network-details.ts +0 -3
- package/src/pages/network/update-connections-dialog.ts +6 -1
- package/src/util/attribute-shapes.ts +34 -0
- package/src/util/avsum.ts +212 -0
- package/src/util/chime.ts +82 -0
- package/dist/esm/util/clone_class.d.ts +0 -7
- package/dist/esm/util/clone_class.d.ts.map +0 -1
- package/dist/esm/util/clone_class.js +0 -10
- package/dist/esm/util/clone_class.js.map +0 -6
- package/dist/web/js/settings-dialog-D75IAPKe.js +0 -4039
- package/src/util/clone_class.ts +0 -7
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { asObject, pickNumber, pickString } from "./attribute-shapes.js";
|
|
7
|
+
const AVSUM_CLUSTER_ID = 1362;
|
|
8
|
+
const ATTR_MPTZ_POSITION = 0;
|
|
9
|
+
const ATTR_MAX_PRESETS = 1;
|
|
10
|
+
const ATTR_MPTZ_PRESETS = 2;
|
|
11
|
+
const ATTR_DPTZ_STREAMS = 3;
|
|
12
|
+
const ATTR_ZOOM_MAX = 4;
|
|
13
|
+
const ATTR_TILT_MIN = 5;
|
|
14
|
+
const ATTR_TILT_MAX = 6;
|
|
15
|
+
const ATTR_PAN_MIN = 7;
|
|
16
|
+
const ATTR_PAN_MAX = 8;
|
|
17
|
+
const ATTR_MOVEMENT_STATE = 9;
|
|
18
|
+
const ATTR_FEATURE_MAP = 65532;
|
|
19
|
+
const AVSUM_FEAT_DPTZ = 1 << 0;
|
|
20
|
+
const AVSUM_FEAT_MPAN = 1 << 1;
|
|
21
|
+
const AVSUM_FEAT_MTILT = 1 << 2;
|
|
22
|
+
const AVSUM_FEAT_MZOOM = 1 << 3;
|
|
23
|
+
const AVSUM_FEAT_MPRESETS = 1 << 4;
|
|
24
|
+
function readAttr(node, endpoint, attrId) {
|
|
25
|
+
return node.attributes[`${endpoint}/${AVSUM_CLUSTER_ID}/${attrId}`];
|
|
26
|
+
}
|
|
27
|
+
function readFeatures(node, endpoint) {
|
|
28
|
+
const fm = readAttr(node, endpoint, ATTR_FEATURE_MAP);
|
|
29
|
+
const bits = typeof fm === "number" ? fm : 0;
|
|
30
|
+
return {
|
|
31
|
+
dptz: (bits & AVSUM_FEAT_DPTZ) !== 0,
|
|
32
|
+
mPan: (bits & AVSUM_FEAT_MPAN) !== 0,
|
|
33
|
+
mTilt: (bits & AVSUM_FEAT_MTILT) !== 0,
|
|
34
|
+
mZoom: (bits & AVSUM_FEAT_MZOOM) !== 0,
|
|
35
|
+
mPresets: (bits & AVSUM_FEAT_MPRESETS) !== 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function pickFieldNumber(obj, named, tagId) {
|
|
39
|
+
return pickNumber(obj, named) ?? pickNumber(obj, tagId);
|
|
40
|
+
}
|
|
41
|
+
function readPosition(node, endpoint) {
|
|
42
|
+
const obj = asObject(readAttr(node, endpoint, ATTR_MPTZ_POSITION));
|
|
43
|
+
if (!obj) return { pan: null, tilt: null, zoom: null };
|
|
44
|
+
return {
|
|
45
|
+
pan: pickFieldNumber(obj, "pan", "0"),
|
|
46
|
+
tilt: pickFieldNumber(obj, "tilt", "1"),
|
|
47
|
+
zoom: pickFieldNumber(obj, "zoom", "2")
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function readRanges(node, endpoint) {
|
|
51
|
+
const v = (id) => {
|
|
52
|
+
const x = readAttr(node, endpoint, id);
|
|
53
|
+
return typeof x === "number" ? x : null;
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
panMin: v(ATTR_PAN_MIN),
|
|
57
|
+
panMax: v(ATTR_PAN_MAX),
|
|
58
|
+
tiltMin: v(ATTR_TILT_MIN),
|
|
59
|
+
tiltMax: v(ATTR_TILT_MAX),
|
|
60
|
+
zoomMax: v(ATTR_ZOOM_MAX)
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function readMovementState(node, endpoint) {
|
|
64
|
+
const v = readAttr(node, endpoint, ATTR_MOVEMENT_STATE);
|
|
65
|
+
if (v === 0) return "idle";
|
|
66
|
+
if (v === 1) return "moving";
|
|
67
|
+
return "unknown";
|
|
68
|
+
}
|
|
69
|
+
function readPresets(node, endpoint) {
|
|
70
|
+
const max = readAttr(node, endpoint, ATTR_MAX_PRESETS);
|
|
71
|
+
const raw = readAttr(node, endpoint, ATTR_MPTZ_PRESETS);
|
|
72
|
+
const items = new Array();
|
|
73
|
+
if (Array.isArray(raw)) {
|
|
74
|
+
for (const item of raw) {
|
|
75
|
+
const obj = asObject(item);
|
|
76
|
+
if (!obj) continue;
|
|
77
|
+
const presetId = pickFieldNumber(obj, "presetId", "0");
|
|
78
|
+
const name = pickString(obj, "name") ?? pickString(obj, "1");
|
|
79
|
+
const settings = asObject(obj["settings"] ?? obj["2"]);
|
|
80
|
+
if (presetId === null || name === null) continue;
|
|
81
|
+
items.push({
|
|
82
|
+
presetId,
|
|
83
|
+
name,
|
|
84
|
+
settings: {
|
|
85
|
+
pan: settings ? pickFieldNumber(settings, "pan", "0") : null,
|
|
86
|
+
tilt: settings ? pickFieldNumber(settings, "tilt", "1") : null,
|
|
87
|
+
zoom: settings ? pickFieldNumber(settings, "zoom", "2") : null
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return { items, max: typeof max === "number" ? max : 0 };
|
|
93
|
+
}
|
|
94
|
+
function readDptzStreams(node, endpoint) {
|
|
95
|
+
const raw = readAttr(node, endpoint, ATTR_DPTZ_STREAMS);
|
|
96
|
+
if (!Array.isArray(raw)) return [];
|
|
97
|
+
const out = new Array();
|
|
98
|
+
for (const item of raw) {
|
|
99
|
+
const obj = asObject(item);
|
|
100
|
+
if (!obj) continue;
|
|
101
|
+
const id = pickFieldNumber(obj, "videoStreamId", "0");
|
|
102
|
+
if (id !== null) out.push({ videoStreamId: id });
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
}
|
|
106
|
+
async function relativeMove(client, nodeId, endpoint, delta) {
|
|
107
|
+
await client.deviceCommand(nodeId, endpoint, AVSUM_CLUSTER_ID, "MPTZRelativeMove", delta);
|
|
108
|
+
}
|
|
109
|
+
async function moveToPreset(client, nodeId, endpoint, presetId) {
|
|
110
|
+
await client.deviceCommand(nodeId, endpoint, AVSUM_CLUSTER_ID, "MPTZMoveToPreset", { presetID: presetId });
|
|
111
|
+
}
|
|
112
|
+
async function savePreset(client, nodeId, endpoint, name, presetId) {
|
|
113
|
+
const payload = { name };
|
|
114
|
+
if (presetId !== void 0) payload.presetID = presetId;
|
|
115
|
+
await client.deviceCommand(nodeId, endpoint, AVSUM_CLUSTER_ID, "MPTZSavePreset", payload);
|
|
116
|
+
}
|
|
117
|
+
async function removePreset(client, nodeId, endpoint, presetId) {
|
|
118
|
+
await client.deviceCommand(nodeId, endpoint, AVSUM_CLUSTER_ID, "MPTZRemovePreset", { presetID: presetId });
|
|
119
|
+
}
|
|
120
|
+
async function dptzRelativeMove(client, nodeId, endpoint, streamId, delta) {
|
|
121
|
+
await client.deviceCommand(nodeId, endpoint, AVSUM_CLUSTER_ID, "DPTZRelativeMove", {
|
|
122
|
+
videoStreamID: streamId,
|
|
123
|
+
...delta
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function hasAvsumOnEndpoint(node, endpoint) {
|
|
127
|
+
const prefix = `${endpoint}/${AVSUM_CLUSTER_ID}/`;
|
|
128
|
+
return Object.keys(node.attributes).some((k) => k.startsWith(prefix));
|
|
129
|
+
}
|
|
130
|
+
export {
|
|
131
|
+
AVSUM_CLUSTER_ID,
|
|
132
|
+
AVSUM_FEAT_DPTZ,
|
|
133
|
+
AVSUM_FEAT_MPAN,
|
|
134
|
+
AVSUM_FEAT_MPRESETS,
|
|
135
|
+
AVSUM_FEAT_MTILT,
|
|
136
|
+
AVSUM_FEAT_MZOOM,
|
|
137
|
+
dptzRelativeMove,
|
|
138
|
+
hasAvsumOnEndpoint,
|
|
139
|
+
moveToPreset,
|
|
140
|
+
readDptzStreams,
|
|
141
|
+
readFeatures,
|
|
142
|
+
readMovementState,
|
|
143
|
+
readPosition,
|
|
144
|
+
readPresets,
|
|
145
|
+
readRanges,
|
|
146
|
+
relativeMove,
|
|
147
|
+
removePreset,
|
|
148
|
+
savePreset
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=avsum.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/avsum.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { MatterClient, MatterNode } from "@matter-server/ws-client";
|
|
7
|
+
/** Chime cluster (spec 1.5.1 §11.8). */
|
|
8
|
+
export declare const CHIME_CLUSTER_ID = 1366;
|
|
9
|
+
export interface ChimeSound {
|
|
10
|
+
chimeId: number;
|
|
11
|
+
name: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function readSounds(node: MatterNode, endpoint: number): ChimeSound[];
|
|
14
|
+
export declare function readSelected(node: MatterNode, endpoint: number): number | null;
|
|
15
|
+
export declare function readEnabled(node: MatterNode, endpoint: number): boolean;
|
|
16
|
+
export declare function readRevision(node: MatterNode, endpoint: number): number;
|
|
17
|
+
export declare function setEnabled(client: MatterClient, nodeId: number | bigint, endpoint: number, enabled: boolean): Promise<void>;
|
|
18
|
+
export declare function setSelected(client: MatterClient, nodeId: number | bigint, endpoint: number, chimeId: number): Promise<void>;
|
|
19
|
+
export declare function play(client: MatterClient, nodeId: number | bigint, endpoint: number, chimeId?: number): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=chime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chime.d.ts","sourceRoot":"","sources":["../../../src/util/chime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGzE,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAOrC,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAY3E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAsB,UAAU,CAC5B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,IAAI,CACtB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { asObject, pickNumber, pickString } from "./attribute-shapes.js";
|
|
7
|
+
const CHIME_CLUSTER_ID = 1366;
|
|
8
|
+
const ATTR_INSTALLED_SOUNDS = 0;
|
|
9
|
+
const ATTR_SELECTED_CHIME = 1;
|
|
10
|
+
const ATTR_ENABLED = 2;
|
|
11
|
+
const ATTR_CLUSTER_REVISION = 65533;
|
|
12
|
+
function readAttr(node, endpoint, attrId) {
|
|
13
|
+
return node.attributes[`${endpoint}/${CHIME_CLUSTER_ID}/${attrId}`];
|
|
14
|
+
}
|
|
15
|
+
function readSounds(node, endpoint) {
|
|
16
|
+
const raw = readAttr(node, endpoint, ATTR_INSTALLED_SOUNDS);
|
|
17
|
+
if (!Array.isArray(raw)) return [];
|
|
18
|
+
const out = new Array();
|
|
19
|
+
for (const item of raw) {
|
|
20
|
+
const obj = asObject(item);
|
|
21
|
+
if (!obj) continue;
|
|
22
|
+
const id = pickNumber(obj, "chimeId") ?? pickNumber(obj, "0");
|
|
23
|
+
const name = pickString(obj, "name") ?? pickString(obj, "1");
|
|
24
|
+
if (id !== null && name !== null) out.push({ chimeId: id, name });
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
function readSelected(node, endpoint) {
|
|
29
|
+
const v = readAttr(node, endpoint, ATTR_SELECTED_CHIME);
|
|
30
|
+
return typeof v === "number" ? v : null;
|
|
31
|
+
}
|
|
32
|
+
function readEnabled(node, endpoint) {
|
|
33
|
+
const v = readAttr(node, endpoint, ATTR_ENABLED);
|
|
34
|
+
return v === true;
|
|
35
|
+
}
|
|
36
|
+
function readRevision(node, endpoint) {
|
|
37
|
+
const v = readAttr(node, endpoint, ATTR_CLUSTER_REVISION);
|
|
38
|
+
return typeof v === "number" ? v : 1;
|
|
39
|
+
}
|
|
40
|
+
async function setEnabled(client, nodeId, endpoint, enabled) {
|
|
41
|
+
await client.writeAttribute(nodeId, `${endpoint}/${CHIME_CLUSTER_ID}/${ATTR_ENABLED}`, enabled);
|
|
42
|
+
}
|
|
43
|
+
async function setSelected(client, nodeId, endpoint, chimeId) {
|
|
44
|
+
await client.writeAttribute(nodeId, `${endpoint}/${CHIME_CLUSTER_ID}/${ATTR_SELECTED_CHIME}`, chimeId);
|
|
45
|
+
}
|
|
46
|
+
async function play(client, nodeId, endpoint, chimeId) {
|
|
47
|
+
const payload = chimeId !== void 0 ? { chimeID: chimeId } : {};
|
|
48
|
+
await client.deviceCommand(nodeId, endpoint, CHIME_CLUSTER_ID, "PlayChimeSound", payload);
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
CHIME_CLUSTER_ID,
|
|
52
|
+
play,
|
|
53
|
+
readEnabled,
|
|
54
|
+
readRevision,
|
|
55
|
+
readSelected,
|
|
56
|
+
readSounds,
|
|
57
|
+
setEnabled,
|
|
58
|
+
setSelected
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chime.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/chime.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,UAAU,YAAY,kBAAkB;AAG1C,MAAM,mBAAmB;AAEhC,MAAM,wBAAwB;AAC9B,MAAM,sBAAsB;AAC5B,MAAM,eAAe;AACrB,MAAM,wBAAwB;AAO9B,SAAS,SAAS,MAAkB,UAAkB,QAAyB;AAC3E,SAAO,KAAK,WAAW,GAAG,QAAQ,IAAI,gBAAgB,IAAI,MAAM,EAAE;AACtE;AAEO,SAAS,WAAW,MAAkB,UAAgC;AACzE,QAAM,MAAM,SAAS,MAAM,UAAU,qBAAqB;AAC1D,MAAI,CAAC,MAAM,QAAQ,GAAG,EAAG,QAAO,CAAC;AACjC,QAAM,MAAM,IAAI,MAAkB;AAClC,aAAW,QAAQ,KAAK;AACpB,UAAM,MAAM,SAAS,IAAI;AACzB,QAAI,CAAC,IAAK;AACV,UAAM,KAAK,WAAW,KAAK,SAAS,KAAK,WAAW,KAAK,GAAG;AAC5D,UAAM,OAAO,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,GAAG;AAC3D,QAAI,OAAO,QAAQ,SAAS,KAAM,KAAI,KAAK,EAAE,SAAS,IAAI,KAAK,CAAC;AAAA,EACpE;AACA,SAAO;AACX;AAEO,SAAS,aAAa,MAAkB,UAAiC;AAC5E,QAAM,IAAI,SAAS,MAAM,UAAU,mBAAmB;AACtD,SAAO,OAAO,MAAM,WAAW,IAAI;AACvC;AAEO,SAAS,YAAY,MAAkB,UAA2B;AACrE,QAAM,IAAI,SAAS,MAAM,UAAU,YAAY;AAC/C,SAAO,MAAM;AACjB;AAEO,SAAS,aAAa,MAAkB,UAA0B;AACrE,QAAM,IAAI,SAAS,MAAM,UAAU,qBAAqB;AACxD,SAAO,OAAO,MAAM,WAAW,IAAI;AACvC;AAEA,eAAsB,WAClB,QACA,QACA,UACA,SACa;AACb,QAAM,OAAO,eAAe,QAAQ,GAAG,QAAQ,IAAI,gBAAgB,IAAI,YAAY,IAAI,OAAO;AAClG;AAEA,eAAsB,YAClB,QACA,QACA,UACA,SACa;AACb,QAAM,OAAO,eAAe,QAAQ,GAAG,QAAQ,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,OAAO;AACzG;AAEA,eAAsB,KAClB,QACA,QACA,UACA,SACa;AACb,QAAM,UAAU,YAAY,SAAY,EAAE,SAAS,QAAQ,IAAI,CAAC;AAChE,QAAM,OAAO,cAAc,QAAQ,UAAU,kBAAkB,kBAAkB,OAAO;AAC5F;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/web/js/{attribute-write-dialog-DzMWN_T3.js → attribute-write-dialog-DLRP2hlx.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as
|
|
1
|
+
import { i, q as n, r, e, j as i$1, A, g as formatHex, b, h as handleAsync, v as t } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
2
|
import { t as toBigIntAwareJson } from './main.js';
|
|
3
3
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
4
4
|
import { p as parseJsonPayload } from './parse-json-payload-DU9TWKdu.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as
|
|
1
|
+
import { i, q as n, r, e, j as i$1, A, g as formatHex, b, h as handleAsync, v as t } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
2
|
import { t as toBigIntAwareJson } from './main.js';
|
|
3
3
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
4
4
|
import { p as parseJsonPayload, i as isPlainObject } from './parse-json-payload-DU9TWKdu.js';
|
package/dist/web/js/{commission-node-dialog-DF87YIqR.js → commission-node-dialog-BfldkUxD.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { r, c, a as clientContext, w as tickContext, v as t, j as i, b } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
@@ -11,6 +11,10 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
11
11
|
return result;
|
|
12
12
|
};
|
|
13
13
|
let ComissionNodeDialog = class extends i {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this._tick = 0;
|
|
17
|
+
}
|
|
14
18
|
render() {
|
|
15
19
|
return b`
|
|
16
20
|
<md-dialog open @cancel=${preventDefault} @closed=${this._handleClosed}>
|
|
@@ -48,18 +52,18 @@ let ComissionNodeDialog = class extends i {
|
|
|
48
52
|
if (!this.client.serverInfo.bluetooth_enabled) {
|
|
49
53
|
return;
|
|
50
54
|
}
|
|
51
|
-
import('./commission-node-wifi-
|
|
55
|
+
import('./commission-node-wifi-HA2pYTW2.js');
|
|
52
56
|
this._mode = "wifi";
|
|
53
57
|
}
|
|
54
58
|
_commissionThread() {
|
|
55
59
|
if (!this.client.serverInfo.bluetooth_enabled) {
|
|
56
60
|
return;
|
|
57
61
|
}
|
|
58
|
-
import('./commission-node-thread-
|
|
62
|
+
import('./commission-node-thread-BZpJIxlI.js');
|
|
59
63
|
this._mode = "thread";
|
|
60
64
|
}
|
|
61
65
|
_commissionExisting() {
|
|
62
|
-
import('./commission-node-existing-
|
|
66
|
+
import('./commission-node-existing-omW-An0J.js');
|
|
63
67
|
this._mode = "existing";
|
|
64
68
|
}
|
|
65
69
|
_nodeCommissioned(ev) {
|
|
@@ -67,10 +71,10 @@ let ComissionNodeDialog = class extends i {
|
|
|
67
71
|
this._close();
|
|
68
72
|
}
|
|
69
73
|
_requestSettings() {
|
|
70
|
-
import('./matter-dashboard-app-
|
|
74
|
+
import('./matter-dashboard-app-XUWBcruM.js').then(function (n) { return n.u; }).then(({
|
|
71
75
|
showSettingsDialog
|
|
72
76
|
}) => {
|
|
73
|
-
showSettingsDialog(
|
|
77
|
+
showSettingsDialog("network-credentials");
|
|
74
78
|
});
|
|
75
79
|
this._close();
|
|
76
80
|
}
|
|
@@ -81,9 +85,13 @@ let ComissionNodeDialog = class extends i {
|
|
|
81
85
|
this.parentNode.removeChild(this);
|
|
82
86
|
}
|
|
83
87
|
};
|
|
84
|
-
__decorateClass([
|
|
85
|
-
|
|
88
|
+
__decorateClass([c({
|
|
89
|
+
context: clientContext
|
|
86
90
|
})], ComissionNodeDialog.prototype, "client", 2);
|
|
91
|
+
__decorateClass([c({
|
|
92
|
+
context: tickContext,
|
|
93
|
+
subscribe: true
|
|
94
|
+
})], ComissionNodeDialog.prototype, "_tick", 2);
|
|
87
95
|
__decorateClass([r()], ComissionNodeDialog.prototype, "_mode", 2);
|
|
88
96
|
ComissionNodeDialog = __decorateClass([t("commission-node-dialog")], ComissionNodeDialog);
|
|
89
97
|
|
package/dist/web/js/{commission-node-existing-DLcWvJTL.js → commission-node-existing-omW-An0J.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, c, a as clientContext, q as n, e, v as t, j as i, A, h as handleAsync, b, s as showAlertDialog } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-CChLgSiV.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
package/dist/web/js/{commission-node-thread-m2fqED-2.js → commission-node-thread-BZpJIxlI.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { i, c, a as clientContext, q as n, r, e, j as i$1, A, h as handleAsync, b, k as mdiAccessPoint, s as showAlertDialog, v as t } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-CChLgSiV.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { i, c, a as clientContext, q as n, r, e, j as i$1, A, h as handleAsync, b, o as mdiWifi, s as showAlertDialog, v as t } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-CChLgSiV.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { p as mixinDelegatesAria, j as i, _ as __decorate, q as n, A, d as e, b, i as i$1, v as t } from './matter-dashboard-app-XUWBcruM.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @license
|
package/dist/web/js/main.js
CHANGED
|
@@ -311,6 +311,8 @@ class MatterClient {
|
|
|
311
311
|
// Start with random offset for defense-in-depth and easier debugging across sessions
|
|
312
312
|
msgId = Math.floor(Math.random() * 2147483647);
|
|
313
313
|
eventListeners = {};
|
|
314
|
+
webrtcCallbackListeners = [];
|
|
315
|
+
nodeEventListeners = [];
|
|
314
316
|
get serverInfo() {
|
|
315
317
|
return this.connection.serverInfo;
|
|
316
318
|
}
|
|
@@ -323,6 +325,22 @@ class MatterClient {
|
|
|
323
325
|
this.eventListeners[event] = this.eventListeners[event].filter(l => l !== listener);
|
|
324
326
|
};
|
|
325
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Subscribe to webrtc_callback events with the typed payload.
|
|
330
|
+
* Returns an unsubscribe function.
|
|
331
|
+
*/
|
|
332
|
+
addWebRtcCallbackListener(listener) {
|
|
333
|
+
this.webrtcCallbackListeners.push(listener);
|
|
334
|
+
return () => {
|
|
335
|
+
this.webrtcCallbackListeners = this.webrtcCallbackListeners.filter(l => l !== listener);
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
addNodeEventListener(listener) {
|
|
339
|
+
this.nodeEventListeners.push(listener);
|
|
340
|
+
return () => {
|
|
341
|
+
this.nodeEventListeners = this.nodeEventListeners.filter(l => l !== listener);
|
|
342
|
+
};
|
|
343
|
+
}
|
|
326
344
|
async commissionWithCode(code, networkOnly = true, timeout) {
|
|
327
345
|
const data = await this.sendCommand("commission_with_code", 0, {
|
|
328
346
|
code,
|
|
@@ -445,6 +463,14 @@ class MatterClient {
|
|
|
445
463
|
response_type: null
|
|
446
464
|
}, timeout);
|
|
447
465
|
}
|
|
466
|
+
async sendWebRtcProviderCommand(nodeId, endpointId, commandName, payload, timeout) {
|
|
467
|
+
return await this.sendCommand("send_webrtc_provider_command", 0, {
|
|
468
|
+
node_id: nodeId,
|
|
469
|
+
endpoint_id: endpointId,
|
|
470
|
+
command_name: commandName,
|
|
471
|
+
payload
|
|
472
|
+
}, timeout);
|
|
473
|
+
}
|
|
448
474
|
async getNodes(onlyAvailable = false, timeout) {
|
|
449
475
|
const data = await this.sendCommand("get_nodes", 0, {
|
|
450
476
|
only_available: onlyAvailable
|
|
@@ -672,6 +698,18 @@ class MatterClient {
|
|
|
672
698
|
this.disconnect();
|
|
673
699
|
return;
|
|
674
700
|
}
|
|
701
|
+
if (event.event === "webrtc_callback") {
|
|
702
|
+
for (const listener of this.webrtcCallbackListeners) {
|
|
703
|
+
listener(event.data);
|
|
704
|
+
}
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
if (event.event === "node_event") {
|
|
708
|
+
for (const listener of this.nodeEventListeners) {
|
|
709
|
+
listener(event.data);
|
|
710
|
+
}
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
675
713
|
}
|
|
676
714
|
fireEvent(event) {
|
|
677
715
|
const listeners = this.eventListeners[event];
|
|
@@ -763,7 +801,7 @@ const ThemeService = new ThemeServiceImpl();
|
|
|
763
801
|
* SPDX-License-Identifier: Apache-2.0
|
|
764
802
|
*/
|
|
765
803
|
async function main() {
|
|
766
|
-
import('./matter-dashboard-app-
|
|
804
|
+
import('./matter-dashboard-app-XUWBcruM.js').then(function (n) { return n.m; });
|
|
767
805
|
let url = "";
|
|
768
806
|
const isProductionServer = window.__MATTERJS_PRODUCTION_MODE__ === true || location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
769
807
|
if (!isProductionServer) {
|