matterbridge-dynalite 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +12 -0
- package/apps/frontend/build/app.css +147 -0
- package/apps/frontend/build/app.js +410 -0
- package/apps/frontend/build/index.html +24 -0
- package/dist/bridge.d.ts +32 -0
- package/dist/bridge.js +67 -0
- package/dist/bridge.js.map +1 -1
- package/dist/dynet.js +2 -1
- package/dist/dynet.js.map +1 -1
- package/dist/platform.d.ts +8 -0
- package/dist/platform.js +42 -0
- package/dist/platform.js.map +1 -1
- package/dist/probe.d.ts +27 -0
- package/dist/probe.js +68 -0
- package/dist/probe.js.map +1 -0
- package/matterbridge-dynalite.schema.json +3 -3
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.1 — 2026-11-08
|
|
4
|
+
|
|
5
|
+
- Heard on the bus: an area the bus told only presets of is asked of the gateway once whether it has a temperature, so heating areas are offered as thermostats rather than lights. Until it has answered, both are offered.
|
|
6
|
+
- Matterbridge's own dialog: the password is masked (its form did not take the field's widget inside a list), and the Gateways section points to the plugin's own settings page.
|
|
7
|
+
|
|
8
|
+
## 0.2.0 — 2026-11-08
|
|
9
|
+
|
|
10
|
+
- A settings page of the plugin's own, opened with the globe button by the plugin in Matterbridge's list (in a large dialog, full screen on a phone, or a tab of its own):
|
|
11
|
+
- gateways, areas and channels laid out compactly, each area on one row, with only the fields its type uses;
|
|
12
|
+
- "Test connection" tries the gateway's web pages and its DyNet port before saving, and says when a port connects but has no routes;
|
|
13
|
+
- "Heard on the bus" lists every area the bus has told of since start, with its channels, presets or temperature, to add with a click.
|
|
14
|
+
- Setpoints read "setpoint changed to" when changed at the thermostat, and "setpoint" when only told.
|
|
15
|
+
|
|
3
16
|
## 0.1.2 — 2026-10-15
|
|
4
17
|
|
|
5
18
|
- Described as "Matterbridge Signify Dynalite plugin", like the other plugins in Matterbridge's list (it is also the log prefix).
|
package/README.md
CHANGED
|
@@ -50,6 +50,18 @@ Restart Matterbridge, open the plugin's settings and add your gateway(s).
|
|
|
50
50
|
|
|
51
51
|
## Configuration
|
|
52
52
|
|
|
53
|
+
### The settings page
|
|
54
|
+
|
|
55
|
+
The plugin has a settings page of its own: the globe button by the plugin in Matterbridge's plugin list opens it (double-click it for a tab of its own). There you can:
|
|
56
|
+
|
|
57
|
+
- add gateways, areas and channels, each area on one row with only the fields its type uses;
|
|
58
|
+
- **Test connection**: the gateway's web pages and its DyNet port are tried before you save, and a port that connects but carries nothing is pointed out (it needs routes in the gateway);
|
|
59
|
+
- see what is **heard on the bus**: every area since the plugin started, with its channels, presets or temperature, added with one click.
|
|
60
|
+
|
|
61
|
+
Saved settings take effect when Matterbridge restarts. Matterbridge's own configuration dialog edits the same settings.
|
|
62
|
+
|
|
63
|
+
### The settings file
|
|
64
|
+
|
|
53
65
|
Everything is set in the plugin's settings in the Matterbridge frontend, and saved as `matterbridge-dynalite.config.json`:
|
|
54
66
|
|
|
55
67
|
```json
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/* Matterbridge's own colours when the page is shown in its dialog (app.js copies
|
|
2
|
+
them from the parent page); these when it is opened on its own. */
|
|
3
|
+
:root {
|
|
4
|
+
--primary-color: #2196f3;
|
|
5
|
+
--main-bg-color: #26292d;
|
|
6
|
+
--div-bg-color: #1b1d21;
|
|
7
|
+
--main-text-color: #fff;
|
|
8
|
+
--div-border-color: color-mix(in srgb, var(--main-text-color) 18%, transparent);
|
|
9
|
+
--main-grey-color: #9a9a9a;
|
|
10
|
+
--ok: #22c55e;
|
|
11
|
+
--bad: #ef4444;
|
|
12
|
+
--warn: #f59e0b;
|
|
13
|
+
color-scheme: dark;
|
|
14
|
+
}
|
|
15
|
+
@media (prefers-color-scheme: light) {
|
|
16
|
+
:root:not([data-from-parent]) {
|
|
17
|
+
--main-bg-color: #f0f0f0;
|
|
18
|
+
--div-bg-color: #fff;
|
|
19
|
+
--main-text-color: #212121;
|
|
20
|
+
--main-grey-color: #616161;
|
|
21
|
+
color-scheme: light;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
* { box-sizing: border-box; }
|
|
26
|
+
html, body { margin: 0; }
|
|
27
|
+
body {
|
|
28
|
+
background: var(--div-bg-color);
|
|
29
|
+
color: var(--main-text-color);
|
|
30
|
+
font: 14px/1.45 Roboto, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
31
|
+
padding: 16px 16px 84px;
|
|
32
|
+
}
|
|
33
|
+
h1 { font-size: 20px; margin: 0; }
|
|
34
|
+
h2 { font-size: 16px; margin: 0; }
|
|
35
|
+
h3 { font-size: 13px; margin: 0; text-transform: uppercase; letter-spacing: 0.04em; color: var(--main-grey-color); }
|
|
36
|
+
p { margin: 4px 0 0; }
|
|
37
|
+
.muted { color: var(--main-grey-color); font-size: 13px; }
|
|
38
|
+
.top { margin-bottom: 16px; }
|
|
39
|
+
|
|
40
|
+
.card {
|
|
41
|
+
border: 1px solid var(--div-border-color);
|
|
42
|
+
border-radius: 10px;
|
|
43
|
+
padding: 16px;
|
|
44
|
+
margin-bottom: 16px;
|
|
45
|
+
background: color-mix(in srgb, var(--main-bg-color) 35%, var(--div-bg-color));
|
|
46
|
+
}
|
|
47
|
+
.card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
|
|
48
|
+
.card-head h2 { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
49
|
+
|
|
50
|
+
.grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
|
|
51
|
+
label.field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--main-grey-color); min-width: 0; }
|
|
52
|
+
label.check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
|
|
53
|
+
.hint { font-size: 12px; color: var(--main-grey-color); }
|
|
54
|
+
|
|
55
|
+
input, select {
|
|
56
|
+
font: inherit;
|
|
57
|
+
color: var(--main-text-color);
|
|
58
|
+
background: var(--div-bg-color);
|
|
59
|
+
border: 1px solid var(--div-border-color);
|
|
60
|
+
border-radius: 6px;
|
|
61
|
+
padding: 7px 9px;
|
|
62
|
+
min-width: 0;
|
|
63
|
+
width: 100%;
|
|
64
|
+
}
|
|
65
|
+
input[type="checkbox"] { width: auto; accent-color: var(--primary-color); }
|
|
66
|
+
input:focus, select:focus { outline: 2px solid color-mix(in srgb, var(--primary-color) 60%, transparent); outline-offset: 0; }
|
|
67
|
+
input.num { width: 5.5em; }
|
|
68
|
+
|
|
69
|
+
button {
|
|
70
|
+
font: inherit;
|
|
71
|
+
font-size: 13px;
|
|
72
|
+
border-radius: 6px;
|
|
73
|
+
padding: 7px 12px;
|
|
74
|
+
border: 1px solid var(--div-border-color);
|
|
75
|
+
background: transparent;
|
|
76
|
+
color: var(--main-text-color);
|
|
77
|
+
cursor: pointer;
|
|
78
|
+
white-space: nowrap;
|
|
79
|
+
}
|
|
80
|
+
button:hover:not(:disabled) { border-color: var(--primary-color); }
|
|
81
|
+
button:disabled { opacity: 0.45; cursor: default; }
|
|
82
|
+
button.primary { background: var(--primary-color); border-color: var(--primary-color); color: #fff; font-weight: 600; }
|
|
83
|
+
button.danger:hover:not(:disabled) { border-color: var(--bad); color: var(--bad); }
|
|
84
|
+
button.small { padding: 3px 8px; font-size: 12px; }
|
|
85
|
+
button.icon { padding: 3px 8px; line-height: 1; }
|
|
86
|
+
|
|
87
|
+
details { margin-top: 12px; }
|
|
88
|
+
summary { cursor: pointer; color: var(--main-grey-color); font-size: 13px; }
|
|
89
|
+
details[open] summary { margin-bottom: 10px; }
|
|
90
|
+
|
|
91
|
+
.section { margin-top: 18px; }
|
|
92
|
+
.section-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
|
|
93
|
+
.section-head h3 { flex: 1; }
|
|
94
|
+
|
|
95
|
+
/* Areas: one row each; on a narrow screen the row folds. */
|
|
96
|
+
.area {
|
|
97
|
+
display: grid;
|
|
98
|
+
grid-template-columns: 5.5em minmax(8em, 1fr) 8.5em minmax(14em, 2fr) auto;
|
|
99
|
+
gap: 8px;
|
|
100
|
+
align-items: start;
|
|
101
|
+
padding: 10px 0;
|
|
102
|
+
border-top: 1px solid var(--div-border-color);
|
|
103
|
+
}
|
|
104
|
+
.area .what { display: flex; flex-direction: column; gap: 6px; }
|
|
105
|
+
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
106
|
+
.chip {
|
|
107
|
+
display: inline-flex; align-items: center; gap: 6px;
|
|
108
|
+
border: 1px solid var(--div-border-color); border-radius: 999px;
|
|
109
|
+
padding: 2px 4px 2px 10px; font-size: 12px; background: var(--div-bg-color);
|
|
110
|
+
}
|
|
111
|
+
.chip input:not([type="checkbox"]) { border: none; padding: 2px 0; background: transparent; width: 9em; font-size: 12px; }
|
|
112
|
+
.chip .check { font-size: 12px; color: var(--main-grey-color); gap: 4px; }
|
|
113
|
+
.chip .no { color: var(--main-grey-color); font-variant-numeric: tabular-nums; }
|
|
114
|
+
.chip button { border: none; padding: 0 6px; }
|
|
115
|
+
.inline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; }
|
|
116
|
+
.inline input.num { padding: 4px 6px; }
|
|
117
|
+
|
|
118
|
+
.result { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
|
|
119
|
+
.ok { color: var(--ok); }
|
|
120
|
+
.bad { color: var(--bad); }
|
|
121
|
+
.warn { color: var(--warn); }
|
|
122
|
+
|
|
123
|
+
.seen { display: flex; flex-direction: column; }
|
|
124
|
+
.seen-row { display: grid; grid-template-columns: 5.5em 1fr auto; gap: 8px; align-items: center; padding: 6px 0; border-top: 1px solid var(--div-border-color); font-size: 13px; }
|
|
125
|
+
.seen-row .acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
|
|
126
|
+
.tag { font-size: 11px; border-radius: 4px; padding: 1px 6px; border: 1px solid var(--div-border-color); color: var(--main-grey-color); }
|
|
127
|
+
|
|
128
|
+
.problems { border-left: 3px solid var(--warn); padding: 6px 10px; margin-bottom: 16px; font-size: 13px; }
|
|
129
|
+
.problems li { margin: 2px 0; }
|
|
130
|
+
|
|
131
|
+
.bar {
|
|
132
|
+
position: fixed; left: 0; right: 0; bottom: 0;
|
|
133
|
+
display: flex; align-items: center; gap: 10px;
|
|
134
|
+
padding: 12px 16px;
|
|
135
|
+
background: var(--div-bg-color);
|
|
136
|
+
border-top: 1px solid var(--div-border-color);
|
|
137
|
+
}
|
|
138
|
+
.bar #status { flex: 1; min-width: 0; }
|
|
139
|
+
|
|
140
|
+
@media (max-width: 720px) {
|
|
141
|
+
.area { grid-template-columns: 5em 1fr auto; }
|
|
142
|
+
.area .type { grid-column: 1 / 3; }
|
|
143
|
+
.area .what { grid-column: 1 / -1; }
|
|
144
|
+
.area .del { grid-row: 1; grid-column: 3; }
|
|
145
|
+
.seen-row { grid-template-columns: 4.5em 1fr; }
|
|
146
|
+
.seen-row .acts { grid-column: 1 / -1; justify-content: flex-start; }
|
|
147
|
+
}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
// The plugin's own settings page: served by Matterbridge at
|
|
2
|
+
// /plugins/matterbridge-dynalite/ and shown in its dialog (or a tab of its own).
|
|
3
|
+
// It reads and saves the gateways through the plugin's API (platform.onFetch),
|
|
4
|
+
// tries a gateway's settings before they are saved, and offers the areas and
|
|
5
|
+
// channels heard on the bus, to add with a click. Plain JavaScript, no build.
|
|
6
|
+
|
|
7
|
+
const api = (path, init) =>
|
|
8
|
+
fetch(`api/${path}`, { headers: { 'Content-Type': 'application/json' }, ...init }).then(async (r) => {
|
|
9
|
+
if (!r.ok) throw new Error((await r.json().catch(() => ({}))).error ?? `${r.status} ${r.statusText}`);
|
|
10
|
+
return r.json();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
let gateways = [];
|
|
14
|
+
let saved = '[]';
|
|
15
|
+
let seen = [];
|
|
16
|
+
const tests = new Map(); // gateway index → result, or 'busy'
|
|
17
|
+
const openMore = new Set(); // gateways whose "More gateway settings" is open
|
|
18
|
+
|
|
19
|
+
// -- look: Matterbridge's colours when inside its dialog -----------------------
|
|
20
|
+
|
|
21
|
+
function takeParentColours() {
|
|
22
|
+
try {
|
|
23
|
+
const parent = window.parent !== window ? window.parent.document : null;
|
|
24
|
+
if (!parent) return;
|
|
25
|
+
const css = getComputedStyle(parent.body);
|
|
26
|
+
// Not its border colour: in its dark theme that is the background's own.
|
|
27
|
+
const names = ['--primary-color', '--main-bg-color', '--div-bg-color', '--main-text-color', '--main-grey-color'];
|
|
28
|
+
let any = false;
|
|
29
|
+
for (const n of names) {
|
|
30
|
+
const v = css.getPropertyValue(n).trim();
|
|
31
|
+
if (v) {
|
|
32
|
+
document.documentElement.style.setProperty(n, v);
|
|
33
|
+
any = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (any) document.documentElement.setAttribute('data-from-parent', '');
|
|
37
|
+
} catch {
|
|
38
|
+
// another origin: keep our own colours
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// -- small DOM helpers ------------------------------------------------------------
|
|
43
|
+
|
|
44
|
+
function h(tag, attrs = {}, ...children) {
|
|
45
|
+
const el = document.createElement(tag);
|
|
46
|
+
for (const [k, v] of Object.entries(attrs)) {
|
|
47
|
+
if (v === undefined || v === null || v === false) continue;
|
|
48
|
+
if (k.startsWith('on')) el.addEventListener(k.slice(2), v);
|
|
49
|
+
else if (k === 'value') el.value = v;
|
|
50
|
+
else if (k === 'checked') el.checked = v;
|
|
51
|
+
else el.setAttribute(k, v === true ? '' : v);
|
|
52
|
+
}
|
|
53
|
+
for (const c of children.flat()) if (c !== null && c !== undefined && c !== false) el.append(c);
|
|
54
|
+
return el;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const num = (v) => (v === '' || v === null || v === undefined || Number.isNaN(Number(v)) ? undefined : Number(v));
|
|
58
|
+
|
|
59
|
+
function field(label, input, hint) {
|
|
60
|
+
return h('label', { class: 'field' }, label, input, hint ? h('span', { class: 'hint' }, hint) : null);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function text(obj, key, attrs = {}) {
|
|
64
|
+
return h('input', { value: obj[key] ?? '', ...attrs, oninput: (e) => set(obj, key, e.target.value.trim() || undefined) });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function number(obj, key, attrs = {}) {
|
|
68
|
+
return h('input', { type: 'number', inputmode: 'numeric', value: obj[key] ?? '', ...attrs, oninput: (e) => set(obj, key, num(e.target.value)) });
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function check(obj, key, label, fallback = false) {
|
|
72
|
+
return h('label', { class: 'check' }, h('input', { type: 'checkbox', checked: obj[key] ?? fallback, onchange: (e) => set(obj, key, e.target.checked) }), label);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function set(obj, key, value) {
|
|
76
|
+
if (value === undefined) delete obj[key];
|
|
77
|
+
else obj[key] = value;
|
|
78
|
+
changed();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// -- state ------------------------------------------------------------------------
|
|
82
|
+
|
|
83
|
+
function changed() {
|
|
84
|
+
const dirty = JSON.stringify(gateways) !== saved;
|
|
85
|
+
document.getElementById('save').disabled = !dirty;
|
|
86
|
+
status(dirty ? 'Unsaved changes.' : '');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function status(message, cls = 'muted') {
|
|
90
|
+
const el = document.getElementById('status');
|
|
91
|
+
el.textContent = message;
|
|
92
|
+
el.className = cls;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async function load() {
|
|
96
|
+
const { gateways: g, problems } = await api('config');
|
|
97
|
+
gateways = JSON.parse(JSON.stringify(g ?? []));
|
|
98
|
+
saved = JSON.stringify(gateways);
|
|
99
|
+
render(problems ?? []);
|
|
100
|
+
changed();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function save() {
|
|
104
|
+
const button = document.getElementById('save');
|
|
105
|
+
button.disabled = true;
|
|
106
|
+
status('Saving …');
|
|
107
|
+
try {
|
|
108
|
+
const { saved: ok, problems } = await api('config', { method: 'PUT', body: JSON.stringify({ gateways }) });
|
|
109
|
+
if (!ok) throw new Error((problems ?? []).join(' '));
|
|
110
|
+
saved = JSON.stringify(gateways);
|
|
111
|
+
render(problems ?? []);
|
|
112
|
+
status('Saved. Restart Matterbridge to apply the new settings.', 'ok');
|
|
113
|
+
} catch (err) {
|
|
114
|
+
status(`Not saved: ${err.message}`, 'bad');
|
|
115
|
+
button.disabled = false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
async function refreshSeen() {
|
|
120
|
+
try {
|
|
121
|
+
seen = await api('seen');
|
|
122
|
+
} catch {
|
|
123
|
+
seen = [];
|
|
124
|
+
}
|
|
125
|
+
for (const [i, gw] of gateways.entries()) {
|
|
126
|
+
const box = document.getElementById(`seen-${i}`);
|
|
127
|
+
if (box) box.replaceWith(seenPanel(gw, i));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// -- rendering --------------------------------------------------------------------
|
|
132
|
+
|
|
133
|
+
function render(problems = []) {
|
|
134
|
+
const app = document.getElementById('app');
|
|
135
|
+
const parts = [
|
|
136
|
+
problems.length ? h('ul', { class: 'problems' }, problems.map((p) => h('li', {}, p))) : null,
|
|
137
|
+
gateways.length
|
|
138
|
+
? gateways.map((gw, i) => gatewayCard(gw, i))
|
|
139
|
+
: h('div', { class: 'card' }, h('h2', {}, 'No gateway yet'), h('p', { class: 'muted' }, 'Add your Dynalite Ethernet gateway (PDEG, DDNG and similar) to begin.')),
|
|
140
|
+
];
|
|
141
|
+
app.replaceChildren(...parts.flat().filter(Boolean));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function gatewayCard(gw, i) {
|
|
145
|
+
gw.areas ??= [];
|
|
146
|
+
const result = tests.get(i);
|
|
147
|
+
return h(
|
|
148
|
+
'section',
|
|
149
|
+
{ class: 'card' },
|
|
150
|
+
h(
|
|
151
|
+
'div',
|
|
152
|
+
{ class: 'card-head' },
|
|
153
|
+
h('h2', {}, gw.name || `Gateway ${i + 1}`),
|
|
154
|
+
h('button', { type: 'button', onclick: () => test(i), disabled: result === 'busy' || !gw.host }, result === 'busy' ? 'Testing …' : 'Test connection'),
|
|
155
|
+
h('button', {
|
|
156
|
+
type: 'button',
|
|
157
|
+
class: 'danger',
|
|
158
|
+
onclick: () => {
|
|
159
|
+
if (!confirm(`Remove gateway ${gw.name || i + 1} and its areas?`)) return;
|
|
160
|
+
gateways.splice(i, 1);
|
|
161
|
+
tests.clear();
|
|
162
|
+
render();
|
|
163
|
+
changed();
|
|
164
|
+
},
|
|
165
|
+
}, 'Remove'),
|
|
166
|
+
),
|
|
167
|
+
h(
|
|
168
|
+
'div',
|
|
169
|
+
{ class: 'grid' },
|
|
170
|
+
field('Name', text(gw, 'name', { placeholder: 'Home', required: true }), 'Part of every device\'s identity: keep it once set.'),
|
|
171
|
+
field('Address', text(gw, 'host', { placeholder: '192.168.1.50', required: true }), 'The gateway\'s web pages: an IP or host name.'),
|
|
172
|
+
field('DyNet TCP port', number(gw, 'dynetPort', { min: 1, max: 65535, placeholder: 'e.g. 50000' }), 'For live updates. Empty: polled only.'),
|
|
173
|
+
),
|
|
174
|
+
result && result !== 'busy' ? testResult(result) : null,
|
|
175
|
+
h(
|
|
176
|
+
'details',
|
|
177
|
+
{ open: openMore.has(i), ontoggle: (e) => (e.target.open ? openMore.add(i) : openMore.delete(i)) },
|
|
178
|
+
h('summary', {}, 'More gateway settings'),
|
|
179
|
+
h(
|
|
180
|
+
'div',
|
|
181
|
+
{ class: 'grid' },
|
|
182
|
+
field('Read every area every … minutes', number(gw, 'pollMinutes', { min: 1, max: 1440, placeholder: gw.dynetPort ? '60' : '5' }), 'A check with live updates; the only source without.'),
|
|
183
|
+
field('Fade for commands, seconds', number(gw, 'fadeSeconds', { min: 0, max: 600, step: 0.1, placeholder: '2' })),
|
|
184
|
+
field('Username', text(gw, 'username', { autocomplete: 'off' }), 'Only if the gateway asks for one.'),
|
|
185
|
+
field('Password', h('input', { type: 'password', value: gw.password ?? '', autocomplete: 'new-password', oninput: (e) => set(gw, 'password', e.target.value || undefined) })),
|
|
186
|
+
),
|
|
187
|
+
h('div', { class: 'inline', style: 'margin-top:10px' }, check(gw, 'https', 'HTTPS'), check(gw, 'allowSelfSigned', 'Accept its self-signed certificate')),
|
|
188
|
+
),
|
|
189
|
+
areasSection(gw, i),
|
|
190
|
+
seenPanel(gw, i),
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function testResult(r) {
|
|
195
|
+
const line = (label, x) => h('div', { class: x.ok ? 'ok' : 'bad' }, `${x.ok ? '✓' : '✗'} ${label}: ${x.message}`);
|
|
196
|
+
return h('div', { class: 'result' }, line('Web pages', r.http), r.dynet ? line('DyNet port', r.dynet) : h('div', { class: 'muted' }, 'No DyNet port set: live updates are off.'));
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
async function test(i) {
|
|
200
|
+
tests.set(i, 'busy');
|
|
201
|
+
render();
|
|
202
|
+
try {
|
|
203
|
+
tests.set(i, await api('test', { method: 'POST', body: JSON.stringify(gateways[i]) }));
|
|
204
|
+
} catch (err) {
|
|
205
|
+
tests.set(i, { http: { ok: false, message: err.message } });
|
|
206
|
+
}
|
|
207
|
+
render();
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function areasSection(gw, gi) {
|
|
211
|
+
const sorted = [...gw.areas].sort((a, b) => (a.area ?? 1e9) - (b.area ?? 1e9));
|
|
212
|
+
return h(
|
|
213
|
+
'div',
|
|
214
|
+
{ class: 'section' },
|
|
215
|
+
h(
|
|
216
|
+
'div',
|
|
217
|
+
{ class: 'section-head' },
|
|
218
|
+
h('h3', {}, `Areas (${gw.areas.length})`),
|
|
219
|
+
h('button', { type: 'button', class: 'small', onclick: () => addArea(gw, { type: 'light' }) }, '+ Light'),
|
|
220
|
+
h('button', { type: 'button', class: 'small', onclick: () => addArea(gw, { type: 'thermostat' }) }, '+ Thermostat'),
|
|
221
|
+
),
|
|
222
|
+
gw.areas.length ? sorted.map((a) => areaRow(gw, a)) : h('p', { class: 'muted' }, 'None yet. Add one, or pick from what the bus has said below.'),
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function addArea(gw, area) {
|
|
227
|
+
gw.areas.push(area);
|
|
228
|
+
render();
|
|
229
|
+
changed();
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function areaRow(gw, a) {
|
|
233
|
+
a.type ??= 'light';
|
|
234
|
+
const what =
|
|
235
|
+
a.type === 'thermostat'
|
|
236
|
+
? h(
|
|
237
|
+
'div',
|
|
238
|
+
{ class: 'what' },
|
|
239
|
+
h('div', { class: 'inline' }, 'Setpoints from', number(a, 'minSetpoint', { class: 'num', step: 0.5, placeholder: '5' }), 'to', number(a, 'maxSetpoint', { class: 'num', step: 0.5, placeholder: '30' }), '°C'),
|
|
240
|
+
)
|
|
241
|
+
: lightDetails(a);
|
|
242
|
+
return h(
|
|
243
|
+
'div',
|
|
244
|
+
{ class: 'area' },
|
|
245
|
+
field('Area', number(a, 'area', { min: 1, max: 65535, required: true })),
|
|
246
|
+
field('Name', text(a, 'name', { placeholder: 'Kitchen', required: true })),
|
|
247
|
+
h(
|
|
248
|
+
'div',
|
|
249
|
+
{ class: 'type' },
|
|
250
|
+
field(
|
|
251
|
+
'Type',
|
|
252
|
+
h(
|
|
253
|
+
'select',
|
|
254
|
+
{
|
|
255
|
+
onchange: (e) => {
|
|
256
|
+
a.type = e.target.value;
|
|
257
|
+
render();
|
|
258
|
+
changed();
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
h('option', { value: 'light', selected: a.type !== 'thermostat' }, 'Light'),
|
|
262
|
+
h('option', { value: 'thermostat', selected: a.type === 'thermostat' }, 'Thermostat'),
|
|
263
|
+
),
|
|
264
|
+
),
|
|
265
|
+
),
|
|
266
|
+
what,
|
|
267
|
+
h('button', {
|
|
268
|
+
type: 'button',
|
|
269
|
+
class: 'icon danger del',
|
|
270
|
+
title: 'Remove the area',
|
|
271
|
+
'aria-label': 'Remove the area',
|
|
272
|
+
onclick: () => {
|
|
273
|
+
gw.areas.splice(gw.areas.indexOf(a), 1);
|
|
274
|
+
render();
|
|
275
|
+
changed();
|
|
276
|
+
},
|
|
277
|
+
}, '✕'),
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function lightDetails(a) {
|
|
282
|
+
a.channels ??= [];
|
|
283
|
+
const add = h('input', { class: 'num', type: 'number', min: 1, max: 255, placeholder: 'ch' });
|
|
284
|
+
const addChannel = () => {
|
|
285
|
+
const c = num(add.value);
|
|
286
|
+
if (!c || a.channels.some((x) => x.channel === c)) return;
|
|
287
|
+
a.channels.push({ channel: c });
|
|
288
|
+
a.channels.sort((x, y) => x.channel - y.channel);
|
|
289
|
+
render();
|
|
290
|
+
changed();
|
|
291
|
+
};
|
|
292
|
+
add.addEventListener('keydown', (e) => e.key === 'Enter' && addChannel());
|
|
293
|
+
return h(
|
|
294
|
+
'div',
|
|
295
|
+
{ class: 'what' },
|
|
296
|
+
a.channels.length
|
|
297
|
+
? h(
|
|
298
|
+
'div',
|
|
299
|
+
{ class: 'chips' },
|
|
300
|
+
a.channels.map((c) =>
|
|
301
|
+
h(
|
|
302
|
+
'span',
|
|
303
|
+
{ class: 'chip' },
|
|
304
|
+
h('span', { class: 'no' }, `ch ${c.channel}`),
|
|
305
|
+
h('input', { value: c.name ?? '', placeholder: `${a.name || 'Area'} ${c.channel}`, 'aria-label': `Name of channel ${c.channel}`, oninput: (e) => set(c, 'name', e.target.value.trim() || undefined) }),
|
|
306
|
+
h('label', { class: 'check', title: 'Off for a relay that only switches' }, h('input', { type: 'checkbox', checked: c.dimmable !== false, onchange: (e) => set(c, 'dimmable', e.target.checked ? undefined : false) }), 'dim'),
|
|
307
|
+
h('button', {
|
|
308
|
+
type: 'button',
|
|
309
|
+
title: `Remove channel ${c.channel}`,
|
|
310
|
+
onclick: () => {
|
|
311
|
+
a.channels.splice(a.channels.indexOf(c), 1);
|
|
312
|
+
render();
|
|
313
|
+
changed();
|
|
314
|
+
},
|
|
315
|
+
}, '✕'),
|
|
316
|
+
),
|
|
317
|
+
),
|
|
318
|
+
)
|
|
319
|
+
: h(
|
|
320
|
+
'div',
|
|
321
|
+
{ class: 'inline' },
|
|
322
|
+
'One light, switched by presets: on',
|
|
323
|
+
number(a, 'onPreset', { class: 'num', min: 1, placeholder: '1' }),
|
|
324
|
+
'off',
|
|
325
|
+
number(a, 'offPreset', { class: 'num', min: 1, placeholder: '4' }),
|
|
326
|
+
),
|
|
327
|
+
h('div', { class: 'inline' }, add, h('button', { type: 'button', class: 'small', onclick: addChannel }, '+ Channel'), h('span', { class: 'hint' }, a.channels.length ? 'Each channel is its own light.' : 'Or add channels: each its own light.')),
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
function seenPanel(gw, gi) {
|
|
332
|
+
const mine = seen.find((s) => s.gateway === gw.name);
|
|
333
|
+
const box = h('div', { class: 'section', id: `seen-${gi}` });
|
|
334
|
+
const head = h('div', { class: 'section-head' }, h('h3', {}, 'Heard on the bus'));
|
|
335
|
+
if (!mine) {
|
|
336
|
+
box.append(head, h('p', { class: 'muted' }, gw.dynetPort ? 'Nothing yet. Save and restart with a DyNet port set, then use a panel or a scene: what the bus says shows here.' : 'Set a DyNet port to see the areas and channels the bus talks about.'));
|
|
337
|
+
return box;
|
|
338
|
+
}
|
|
339
|
+
if (mine.live !== 'connected') head.append(h('span', { class: 'warn' }, mine.live === 'off' ? 'live updates off' : 'not connected'));
|
|
340
|
+
box.append(head);
|
|
341
|
+
if (!mine.areas.length) {
|
|
342
|
+
box.append(h('p', { class: 'muted' }, 'Nothing heard yet. Press a panel or choose a scene.'));
|
|
343
|
+
return box;
|
|
344
|
+
}
|
|
345
|
+
const rows = mine.areas.map((s) => {
|
|
346
|
+
const known = gw.areas.find((a) => a.area === s.area);
|
|
347
|
+
const bits = [
|
|
348
|
+
!s.thermostat && !s.channels.length && !s.checked ? 'asking the gateway …' : null,
|
|
349
|
+
s.thermostat ? `thermostat${s.temperature !== undefined ? `, ${s.temperature.toFixed(1)} °C` : ''}` : null,
|
|
350
|
+
s.channels.length ? `channels ${s.channels.join(', ')}` : null,
|
|
351
|
+
s.presets.length ? `presets ${s.presets.join(', ')}` : null,
|
|
352
|
+
].filter(Boolean);
|
|
353
|
+
const acts = known
|
|
354
|
+
? [h('span', { class: 'tag' }, 'added'), ...addMissingChannels(known, s)]
|
|
355
|
+
: [
|
|
356
|
+
// Presets only, and the gateway not asked yet: heating areas tell presets too, so either.
|
|
357
|
+
s.thermostat || (!s.channels.length && !s.checked)
|
|
358
|
+
? h('button', { type: 'button', class: 'small', onclick: () => addArea(gw, { area: s.area, name: `Area ${s.area}`, type: 'thermostat' }) }, 'Add as thermostat')
|
|
359
|
+
: null,
|
|
360
|
+
// A thermostat that told no channel is no light.
|
|
361
|
+
s.thermostat && !s.channels.length
|
|
362
|
+
? null
|
|
363
|
+
: h('button', {
|
|
364
|
+
type: 'button',
|
|
365
|
+
class: 'small',
|
|
366
|
+
onclick: () => addArea(gw, { area: s.area, name: `Area ${s.area}`, type: 'light', channels: s.channels.map((channel) => ({ channel })) }),
|
|
367
|
+
}, s.channels.length ? `Add as light (${s.channels.length} ch)` : 'Add as light'),
|
|
368
|
+
];
|
|
369
|
+
return h('div', { class: 'seen-row' }, h('strong', {}, `Area ${s.area}`), h('span', { class: 'muted' }, bits.join(' · ') || `${s.count} packet(s)`), h('div', { class: 'acts' }, acts));
|
|
370
|
+
});
|
|
371
|
+
box.append(h('div', { class: 'seen' }, rows));
|
|
372
|
+
return box;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
function addMissingChannels(area, s) {
|
|
376
|
+
if (area.type !== 'light') return [];
|
|
377
|
+
const have = new Set((area.channels ?? []).map((c) => c.channel));
|
|
378
|
+
const missing = s.channels.filter((c) => !have.has(c));
|
|
379
|
+
if (!missing.length) return [];
|
|
380
|
+
return [
|
|
381
|
+
h('button', {
|
|
382
|
+
type: 'button',
|
|
383
|
+
class: 'small',
|
|
384
|
+
onclick: () => {
|
|
385
|
+
area.channels = [...(area.channels ?? []), ...missing.map((channel) => ({ channel }))].sort((x, y) => x.channel - y.channel);
|
|
386
|
+
render();
|
|
387
|
+
changed();
|
|
388
|
+
},
|
|
389
|
+
}, `+ ch ${missing.join(', ')}`),
|
|
390
|
+
];
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
// -- start ------------------------------------------------------------------------
|
|
394
|
+
|
|
395
|
+
takeParentColours();
|
|
396
|
+
document.getElementById('save').addEventListener('click', save);
|
|
397
|
+
document.getElementById('add-gateway').addEventListener('click', () => {
|
|
398
|
+
gateways.push({ name: gateways.length ? `Gateway ${gateways.length + 1}` : 'Home', host: '', areas: [] });
|
|
399
|
+
render();
|
|
400
|
+
changed();
|
|
401
|
+
});
|
|
402
|
+
window.addEventListener('beforeunload', (e) => {
|
|
403
|
+
if (JSON.stringify(gateways) !== saved) e.preventDefault();
|
|
404
|
+
});
|
|
405
|
+
load()
|
|
406
|
+
.then(refreshSeen)
|
|
407
|
+
.catch((err) => {
|
|
408
|
+
document.getElementById('app').replaceChildren(h('p', { class: 'bad' }, `Could not read the settings: ${err.message}. Is the plugin running?`));
|
|
409
|
+
});
|
|
410
|
+
setInterval(refreshSeen, 5000);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Signify Dynalite settings</title>
|
|
7
|
+
<link rel="stylesheet" href="app.css" />
|
|
8
|
+
<script type="module" src="app.js"></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<header class="top">
|
|
12
|
+
<div>
|
|
13
|
+
<h1>Signify Dynalite</h1>
|
|
14
|
+
<p class="muted">Gateways, areas and channels for Matterbridge. Saved settings take effect when Matterbridge restarts.</p>
|
|
15
|
+
</div>
|
|
16
|
+
</header>
|
|
17
|
+
<main id="app"><p class="muted">Loading …</p></main>
|
|
18
|
+
<footer class="bar">
|
|
19
|
+
<span id="status" role="status" class="muted"></span>
|
|
20
|
+
<button id="add-gateway" class="ghost" type="button">Add gateway</button>
|
|
21
|
+
<button id="save" class="primary" type="button" disabled>Save</button>
|
|
22
|
+
</footer>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|
package/dist/bridge.d.ts
CHANGED
|
@@ -32,6 +32,26 @@ export interface Logger {
|
|
|
32
32
|
debug(message: string): void;
|
|
33
33
|
}
|
|
34
34
|
export type DeviceKind = 'dimmable' | 'onoff' | 'thermostat';
|
|
35
|
+
/** What the bus has said about one area since the plugin started: to find areas and channels to add. */
|
|
36
|
+
export interface SeenArea {
|
|
37
|
+
area: number;
|
|
38
|
+
/** Channels a level was set or told for. */
|
|
39
|
+
channels: number[];
|
|
40
|
+
/** Presets chosen or told. */
|
|
41
|
+
presets: number[];
|
|
42
|
+
/** A temperature or setpoint was told, or the gateway gave one when asked: a thermostat. */
|
|
43
|
+
thermostat: boolean;
|
|
44
|
+
/** The gateway was asked whether it has a temperature (for an area the bus told only presets of). */
|
|
45
|
+
checked: boolean;
|
|
46
|
+
/** The last temperature told, °C. */
|
|
47
|
+
temperature?: number;
|
|
48
|
+
/** Set up in this plugin already (as what). */
|
|
49
|
+
configured?: 'light' | 'thermostat';
|
|
50
|
+
/** When last heard (ISO). */
|
|
51
|
+
last: string;
|
|
52
|
+
/** Packets heard. */
|
|
53
|
+
count: number;
|
|
54
|
+
}
|
|
35
55
|
export interface Device {
|
|
36
56
|
id: string;
|
|
37
57
|
kind: DeviceKind;
|
|
@@ -57,6 +77,9 @@ export declare class GatewayBridge {
|
|
|
57
77
|
/** The level a channel light was last on at, to go back to when switched on. */
|
|
58
78
|
private readonly lastLevel;
|
|
59
79
|
private readonly reads;
|
|
80
|
+
private readonly seen;
|
|
81
|
+
/** Areas whose temperature the gateway was asked for, and the answer (undefined: none). */
|
|
82
|
+
private readonly asked;
|
|
60
83
|
private pollTimer?;
|
|
61
84
|
private live?;
|
|
62
85
|
private stopped;
|
|
@@ -69,6 +92,15 @@ export declare class GatewayBridge {
|
|
|
69
92
|
start(): Promise<void>;
|
|
70
93
|
stop(): void;
|
|
71
94
|
handleEvent(event: DynetEvent): void;
|
|
95
|
+
/** Every area the bus has said something about since start, newest first. */
|
|
96
|
+
seenAreas(): SeenArea[];
|
|
97
|
+
/**
|
|
98
|
+
* Heating areas tell their presets on the bus as lights do, and a temperature
|
|
99
|
+
* only now and then: the gateway is asked, once per area, whether the areas
|
|
100
|
+
* the bus told only presets of have one. Settles when every ask has an answer.
|
|
101
|
+
*/
|
|
102
|
+
identify(): Promise<void>;
|
|
103
|
+
private note;
|
|
72
104
|
/** Read one area again after *fadeSeconds* (plus a little); a newer change puts it off. */
|
|
73
105
|
readArea(area: number, fadeSeconds?: number): void;
|
|
74
106
|
refreshAll(): Promise<void>;
|
package/dist/bridge.js
CHANGED
|
@@ -23,6 +23,9 @@ export class GatewayBridge {
|
|
|
23
23
|
/** The level a channel light was last on at, to go back to when switched on. */
|
|
24
24
|
lastLevel = new Map();
|
|
25
25
|
reads = new Map();
|
|
26
|
+
seen = new Map();
|
|
27
|
+
/** Areas whose temperature the gateway was asked for, and the answer (undefined: none). */
|
|
28
|
+
asked = new Map();
|
|
26
29
|
pollTimer;
|
|
27
30
|
live;
|
|
28
31
|
stopped = false;
|
|
@@ -97,6 +100,7 @@ export class GatewayBridge {
|
|
|
97
100
|
handleEvent(event) {
|
|
98
101
|
if (!('area' in event) || event.area === undefined)
|
|
99
102
|
return;
|
|
103
|
+
this.note(event.area, event);
|
|
100
104
|
const devices = this.byArea.get(event.area);
|
|
101
105
|
if (!devices)
|
|
102
106
|
return; // not an area this bridge shows
|
|
@@ -140,6 +144,69 @@ export class GatewayBridge {
|
|
|
140
144
|
return; // questions, the time, what is not known: nothing to show
|
|
141
145
|
}
|
|
142
146
|
}
|
|
147
|
+
/** Every area the bus has said something about since start, newest first. */
|
|
148
|
+
seenAreas() {
|
|
149
|
+
return [...this.seen.entries()]
|
|
150
|
+
.map(([area, s]) => {
|
|
151
|
+
const config = this.gateway.areas.find((a) => a.area === area);
|
|
152
|
+
return {
|
|
153
|
+
area,
|
|
154
|
+
channels: [...s.channels].sort((a, b) => a - b),
|
|
155
|
+
presets: [...s.presets].sort((a, b) => a - b),
|
|
156
|
+
thermostat: s.thermostat,
|
|
157
|
+
checked: this.asked.has(area),
|
|
158
|
+
...(s.temperature !== undefined ? { temperature: s.temperature } : {}),
|
|
159
|
+
...(config ? { configured: config.type } : {}),
|
|
160
|
+
last: s.last.toISOString(),
|
|
161
|
+
count: s.count,
|
|
162
|
+
};
|
|
163
|
+
})
|
|
164
|
+
.sort((a, b) => a.area - b.area);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Heating areas tell their presets on the bus as lights do, and a temperature
|
|
168
|
+
* only now and then: the gateway is asked, once per area, whether the areas
|
|
169
|
+
* the bus told only presets of have one. Settles when every ask has an answer.
|
|
170
|
+
*/
|
|
171
|
+
async identify() {
|
|
172
|
+
const open = [...this.seen.entries()].filter(([area, s]) => !s.thermostat && s.channels.size === 0 && !this.asked.has(area) && !this.gateway.areas.some((a) => a.area === area));
|
|
173
|
+
for (const [area, s] of open) {
|
|
174
|
+
this.asked.set(area, undefined);
|
|
175
|
+
try {
|
|
176
|
+
const t = await this.api.getTemperature(area);
|
|
177
|
+
this.asked.set(area, t);
|
|
178
|
+
if (t !== undefined) {
|
|
179
|
+
s.thermostat = true;
|
|
180
|
+
s.temperature ??= t;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
// No answer: taken for no thermostat, and not asked again, to keep the gateway free for commands.
|
|
185
|
+
this.log.debug(`${this.gateway.name}: area ${area}: ${err.message}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
note(area, event) {
|
|
190
|
+
let s = this.seen.get(area);
|
|
191
|
+
if (!s) {
|
|
192
|
+
s = { channels: new Set(), presets: new Set(), thermostat: false, last: new Date(), count: 0 };
|
|
193
|
+
this.seen.set(area, s);
|
|
194
|
+
}
|
|
195
|
+
s.last = new Date();
|
|
196
|
+
s.count++;
|
|
197
|
+
if (event.kind === 'channel' && event.channel !== undefined)
|
|
198
|
+
s.channels.add(event.channel);
|
|
199
|
+
if (event.kind === 'request' && event.asks === 'level' && event.channel !== undefined)
|
|
200
|
+
s.channels.add(event.channel);
|
|
201
|
+
if (event.kind === 'preset' && event.channel === undefined)
|
|
202
|
+
s.presets.add(event.preset);
|
|
203
|
+
if (event.kind === 'temperature') {
|
|
204
|
+
s.thermostat = true;
|
|
205
|
+
s.temperature = event.temperature;
|
|
206
|
+
}
|
|
207
|
+
if (event.kind === 'setpoint')
|
|
208
|
+
s.thermostat = true;
|
|
209
|
+
}
|
|
143
210
|
// -- reading -----------------------------------------------------------------
|
|
144
211
|
/** Read one area again after *fadeSeconds* (plus a little); a newer change puts it off. */
|
|
145
212
|
readArea(area, fadeSeconds = 0) {
|
package/dist/bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAa,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAqCtC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B,MAAM,QAAQ,GAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AAElG,MAAM,OAAO,aAAa;IAYb;IACQ;IACA;IACA;IACA;IAfV,OAAO,GAAa,EAAE,CAAC;IACf,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjC,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtD,gFAAgF;IAC/D,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,SAAS,CAAkB;IAC3B,IAAI,CAAa;IACjB,OAAO,GAAG,KAAK,CAAC;IAExB,YACW,OAAgB,EACR,GAAe,EACf,IAAgB,EAChB,MAAc,QAAQ,EACtB,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE;QAJtE,YAAO,GAAP,OAAO,CAAS;QACR,QAAG,GAAH,GAAG,CAAY;QACf,SAAI,GAAJ,IAAI,CAAY;QAChB,QAAG,GAAH,GAAG,CAAmB;QACtB,WAAM,GAAN,MAAM,CAAwD;QAE/E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3H,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC;wBACR,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;wBAChD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;wBACvC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC;gBACxB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,4CAA4C;gBAC7E,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC5E,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,gBAAgB,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACxH,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,+EAA+E;IAE/E,WAAW,CAAC,KAAiB;QAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,gCAAgC;QAEtD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,aAAa;gBAChB,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;wBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACrH,OAAO;YACT,KAAK,UAAU;gBACb,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;wBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/G,OAAO;YACT,KAAK,QAAQ;gBACX,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACnH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBACD,+EAA+E;gBAC/E,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC;oBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3G,OAAO;YACT,KAAK,KAAK;gBACR,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;wBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3F,OAAO;YACT,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3H,oGAAoG;gBACpG,KAAK,MAAM,CAAC,IAAI,GAAG;oBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7B,OAAO;YACT;gBACE,OAAO,CAAC,0DAA0D;QACtE,CAAC;IACH,CAAC;IAED,+EAA+E;IAE/E,2FAA2F;IAC3F,QAAQ,CAAC,IAAY,EAAE,WAAW,GAAG,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,IAAI,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC;gBACT,KAAK,KAAM,GAAa,CAAC,OAAO,CAAC;gBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,gGAAgG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,0BAA0B,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,CAAS,EAAE,KAAa;QACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,+EAA+E;IAE/E,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACjH,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,OAAe,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM;QAChE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7H,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,OAAe;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;QAC9H,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IACzC,CAAC;IAED,2GAA2G;IACnG,YAAY,CAAC,CAAS,EAAE,MAAc;QAC5C,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,CAAC;IAEO,MAAM,CAAC,EAAU,EAAE,IAA4B;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/dynet.js
CHANGED
|
@@ -297,7 +297,8 @@ export function describe(event) {
|
|
|
297
297
|
case 'temperature':
|
|
298
298
|
return `${where}: ${event.temperature.toFixed(2)} °C`;
|
|
299
299
|
case 'setpoint':
|
|
300
|
-
|
|
300
|
+
// 0x56 as it is changed at the thermostat; 0x57 as it is told.
|
|
301
|
+
return `${where}: setpoint${event.packet[2] === 0x56 ? ' changed to' : ''} ${event.setpoint.toFixed(2)} °C`;
|
|
301
302
|
}
|
|
302
303
|
}
|
|
303
304
|
/** The "who are you?" a gateway asks of all devices about every three seconds (DyNet2 0x82): too frequent to log. */
|
package/dist/dynet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynet.js","sourceRoot":"","sources":["../src/dynet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dynet.js","sourceRoot":"","sources":["../src/dynet.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -23,6 +23,14 @@ export declare class DynalitePlatform extends MatterbridgeDynamicPlatform {
|
|
|
23
23
|
constructor(matterbridge: PlatformMatterbridge, log: AnsiLogger, config: PlatformConfig);
|
|
24
24
|
onStart(reason?: string): Promise<void>;
|
|
25
25
|
onConfigure(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* The settings page's API, at /plugins/matterbridge-dynalite/api/<path>:
|
|
28
|
+
* GET config the gateways as set, and what is wrong with them
|
|
29
|
+
* PUT config save new gateways ({ gateways }); a restart applies them
|
|
30
|
+
* GET seen per gateway, every area the bus has told of since start
|
|
31
|
+
* POST test try a gateway's address and DyNet port before saving
|
|
32
|
+
*/
|
|
33
|
+
onFetch(method: string, path?: string, _query?: Record<string, unknown>, body?: unknown): Promise<unknown>;
|
|
26
34
|
onShutdown(reason?: string): Promise<void>;
|
|
27
35
|
private createEndpoint;
|
|
28
36
|
private showLight;
|
package/dist/platform.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import { dimmableLight, MatterbridgeDynamicPlatform, MatterbridgeEndpoint, onOffLight, thermostat as thermostatDeviceType, } from 'matterbridge';
|
|
11
11
|
import { GatewayBridge } from './bridge.js';
|
|
12
12
|
import { readConfig } from './config.js';
|
|
13
|
+
import { probe } from './probe.js';
|
|
13
14
|
import { GatewayHttp } from './gateway.js';
|
|
14
15
|
/** Matter levels run 1–254; DynaDash and the gateway speak percent. */
|
|
15
16
|
export function percentToLevel(percent) {
|
|
@@ -89,6 +90,47 @@ export class DynalitePlatform extends MatterbridgeDynamicPlatform {
|
|
|
89
90
|
bridge.start().catch((err) => this.log.error(`${bridge.gateway.name}: ${err.message}`));
|
|
90
91
|
}
|
|
91
92
|
}
|
|
93
|
+
// -- the plugin's own page (apps/frontend) -----------------------------------
|
|
94
|
+
/**
|
|
95
|
+
* The settings page's API, at /plugins/matterbridge-dynalite/api/<path>:
|
|
96
|
+
* GET config the gateways as set, and what is wrong with them
|
|
97
|
+
* PUT config save new gateways ({ gateways }); a restart applies them
|
|
98
|
+
* GET seen per gateway, every area the bus has told of since start
|
|
99
|
+
* POST test try a gateway's address and DyNet port before saving
|
|
100
|
+
*/
|
|
101
|
+
async onFetch(method, path, _query, body) {
|
|
102
|
+
if (path === 'config' && method === 'GET') {
|
|
103
|
+
return { gateways: this.config.gateways ?? [], problems: readConfig(this.config).problems };
|
|
104
|
+
}
|
|
105
|
+
if (path === 'config' && method === 'PUT') {
|
|
106
|
+
const gateways = body?.gateways;
|
|
107
|
+
if (!Array.isArray(gateways))
|
|
108
|
+
return { saved: false, problems: ['No gateways sent.'] };
|
|
109
|
+
const next = { ...this.config, gateways: gateways };
|
|
110
|
+
this.saveConfig(next);
|
|
111
|
+
if (typeof this.wssSendRestartRequired === 'function')
|
|
112
|
+
this.wssSendRestartRequired();
|
|
113
|
+
this.log.info(`Settings saved from the plugin's page (${gateways.length} gateway(s)); restart to apply them`);
|
|
114
|
+
return { saved: true, problems: readConfig(next).problems };
|
|
115
|
+
}
|
|
116
|
+
if (path === 'seen' && method === 'GET') {
|
|
117
|
+
// Not waited for: what the gateway answers shows at the page's next look.
|
|
118
|
+
for (const b of this.bridges)
|
|
119
|
+
void b.identify();
|
|
120
|
+
return this.bridges.map((b) => ({
|
|
121
|
+
gateway: b.gateway.name,
|
|
122
|
+
live: b.gateway.dynetPort ? (b.liveConnected ? 'connected' : 'not connected') : 'off',
|
|
123
|
+
areas: b.seenAreas(),
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
if (path === 'test' && method === 'POST') {
|
|
127
|
+
const s = body;
|
|
128
|
+
if (!s?.host)
|
|
129
|
+
return { http: { ok: false, message: 'No address.' } };
|
|
130
|
+
return probe(s);
|
|
131
|
+
}
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
92
134
|
async onShutdown(reason) {
|
|
93
135
|
for (const bridge of this.bridges)
|
|
94
136
|
bridge.stop();
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/probe.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trying a gateway's settings before they are saved: does its web server
|
|
3
|
+
* answer, does its DyNet port take a connection, and does anything come on it?
|
|
4
|
+
* A port that connects but stays silent is one the gateway routes nothing to.
|
|
5
|
+
*/
|
|
6
|
+
export interface ProbeSettings {
|
|
7
|
+
host: string;
|
|
8
|
+
https?: boolean;
|
|
9
|
+
allowSelfSigned?: boolean;
|
|
10
|
+
username?: string;
|
|
11
|
+
password?: string;
|
|
12
|
+
dynetPort?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ProbeResult {
|
|
15
|
+
http: {
|
|
16
|
+
ok: boolean;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
dynet?: {
|
|
20
|
+
ok: boolean;
|
|
21
|
+
message: string;
|
|
22
|
+
bytes: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** How long the DyNet port is listened to: a gateway asks "who are you?" about every three seconds. */
|
|
26
|
+
export declare const LISTEN_MS = 4000;
|
|
27
|
+
export declare function probe(s: ProbeSettings, listenMs?: number): Promise<ProbeResult>;
|
package/dist/probe.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trying a gateway's settings before they are saved: does its web server
|
|
3
|
+
* answer, does its DyNet port take a connection, and does anything come on it?
|
|
4
|
+
* A port that connects but stays silent is one the gateway routes nothing to.
|
|
5
|
+
*/
|
|
6
|
+
import net from 'node:net';
|
|
7
|
+
import { GatewayHttp, GatewayTimeoutError, GatewayUnreachableError } from './gateway.js';
|
|
8
|
+
/** How long the DyNet port is listened to: a gateway asks "who are you?" about every three seconds. */
|
|
9
|
+
export const LISTEN_MS = 4000;
|
|
10
|
+
export async function probe(s, listenMs = LISTEN_MS) {
|
|
11
|
+
const result = { http: await probeHttp(s) };
|
|
12
|
+
if (s.dynetPort)
|
|
13
|
+
result.dynet = await probeDynet(s.host.replace(/:\d+$/, ''), s.dynetPort, listenMs);
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
async function probeHttp(s) {
|
|
17
|
+
const api = new GatewayHttp({
|
|
18
|
+
host: s.host,
|
|
19
|
+
https: s.https,
|
|
20
|
+
allowSelfSigned: s.allowSelfSigned,
|
|
21
|
+
username: s.username,
|
|
22
|
+
password: s.password,
|
|
23
|
+
timeoutMs: 4000,
|
|
24
|
+
});
|
|
25
|
+
try {
|
|
26
|
+
await api.getPreset(1);
|
|
27
|
+
return { ok: true, message: 'The gateway answers.' };
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
const port = /:(\d+)$/.exec(s.host)?.[1];
|
|
31
|
+
const hint = port && !['80', '443'].includes(port) ? ` Is ${port} its web server? Its web pages are usually on 80.` : '';
|
|
32
|
+
if (err instanceof GatewayUnreachableError)
|
|
33
|
+
return { ok: false, message: `Cannot reach it: ${err.message}.${hint}` };
|
|
34
|
+
if (err instanceof GatewayTimeoutError)
|
|
35
|
+
return { ok: false, message: `No answer in time.${hint}` };
|
|
36
|
+
return { ok: false, message: `${err.message}${hint}` };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function probeDynet(host, port, listenMs) {
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
let bytes = 0;
|
|
42
|
+
let connected = false;
|
|
43
|
+
const socket = net.connect({ host, port });
|
|
44
|
+
const done = (r) => {
|
|
45
|
+
clearTimeout(timer);
|
|
46
|
+
socket.destroy();
|
|
47
|
+
resolve(r);
|
|
48
|
+
};
|
|
49
|
+
const timer = setTimeout(() => {
|
|
50
|
+
if (!connected)
|
|
51
|
+
done({ ok: false, message: `No connection to port ${port} in time.`, bytes });
|
|
52
|
+
}, 4000);
|
|
53
|
+
socket.on('connect', () => {
|
|
54
|
+
connected = true;
|
|
55
|
+
clearTimeout(timer);
|
|
56
|
+
setTimeout(() => done(bytes > 0
|
|
57
|
+
? { ok: true, message: `Port ${port} connects and the gateway sends on it.`, bytes }
|
|
58
|
+
: {
|
|
59
|
+
ok: false,
|
|
60
|
+
message: `Port ${port} connects, but nothing came on it in ${listenMs / 1000} s. In the gateway's routing, route Comm Port 1 (the bus), Internal Messages and the Web Socket port to it.`,
|
|
61
|
+
bytes,
|
|
62
|
+
}), listenMs);
|
|
63
|
+
});
|
|
64
|
+
socket.on('data', (d) => (bytes += d.length));
|
|
65
|
+
socket.on('error', (err) => done({ ok: false, message: `Port ${port}: ${err.message}`, bytes }));
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"title": "Matterbridge Dynalite plugin",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Signify Dynalite lights and heating, straight from the Ethernet gateway.",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
6
|
"name": { "title": "Plugin Name", "type": "string", "readOnly": true, "ui:widget": "hidden" },
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"version": { "title": "Plugin Version", "type": "string", "readOnly": true, "ui:widget": "hidden" },
|
|
9
9
|
"gateways": {
|
|
10
10
|
"title": "Gateways",
|
|
11
|
-
"description": "One entry per Dynalite Ethernet gateway (PDEG, DDNG and similar).",
|
|
11
|
+
"description": "One entry per Dynalite Ethernet gateway (PDEG, DDNG and similar). Easier: the plugin's own settings page, opened with the globe button by the plugin in the list, tests the gateway and lists the areas and channels heard on the bus, to add with a click.",
|
|
12
12
|
"type": "array",
|
|
13
13
|
"items": {
|
|
14
14
|
"type": "object",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"default": false
|
|
33
33
|
},
|
|
34
34
|
"username": { "title": "Username", "description": "Only if the gateway asks for HTTP authentication.", "type": "string" },
|
|
35
|
-
"password": { "title": "Password", "type": "string", "ui:widget": "password" },
|
|
35
|
+
"password": { "title": "Password", "type": "string", "format": "password", "ui:widget": "password" },
|
|
36
36
|
"dynetPort": {
|
|
37
37
|
"title": "DyNet TCP port (live updates)",
|
|
38
38
|
"description": "A TCP server port set up on the gateway (connection Trunk, DyNet 1 or DyNet2), e.g. 50000. Changes made anywhere — wall panels, timers, other apps — then show at once. Leave empty to rely on polling. If another program already uses that port, give this plugin a port of its own.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-dynalite",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Matterbridge Signify Dynalite plugin",
|
|
5
5
|
"author": "https://github.com/jonaskul",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"types": "dist/module.d.ts",
|
|
10
10
|
"files": [
|
|
11
11
|
"dist",
|
|
12
|
+
"apps/frontend/build",
|
|
12
13
|
"matterbridge-dynalite.schema.json",
|
|
13
14
|
"matterbridge-dynalite.config.json",
|
|
14
15
|
"README.md",
|