homebridge-plugin-klares4 2.1.2 → 2.1.3-rc.2
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/platform/matter-device-mapper.d.ts +0 -1
- package/dist/platform/matter-device-mapper.d.ts.map +1 -1
- package/dist/platform/matter-device-mapper.js +66 -103
- package/dist/platform/matter-device-mapper.js.map +1 -1
- package/dist/platform/matter-name-sanitizer.d.ts +38 -0
- package/dist/platform/matter-name-sanitizer.d.ts.map +1 -0
- package/dist/platform/matter-name-sanitizer.js +75 -0
- package/dist/platform/matter-name-sanitizer.js.map +1 -0
- package/dist/platform/matter-thermostat-mapper.d.ts +30 -0
- package/dist/platform/matter-thermostat-mapper.d.ts.map +1 -1
- package/dist/platform/matter-thermostat-mapper.js +53 -1
- package/dist/platform/matter-thermostat-mapper.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,7 +17,6 @@ interface MapperDeps {
|
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Fallback mapping: register a thermostat as a Matter TemperatureSensor.
|
|
20
|
-
* Used only when the regular Thermostat registration fails upstream (matter.js bug).
|
|
21
20
|
* HAP continues to expose the full Thermostat — Matter loses write control but keeps read.
|
|
22
21
|
*/
|
|
23
22
|
export declare function mapThermostatAsTemperatureSensor(device: KseniaThermostat, deps: MapperDeps): MatterAccessory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-device-mapper.d.ts","sourceRoot":"","sources":["../../src/platform/matter-device-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAER,YAAY,EAKZ,gBAAgB,EAEnB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"matter-device-mapper.d.ts","sourceRoot":"","sources":["../../src/platform/matter-device-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAER,YAAY,EAKZ,gBAAgB,EAEnB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACH,0BAA0B,EAAE,0BAA0B,EAIzD,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,0BAA0B,IAAI,cAAc,EAAE,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAGD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAOrF;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,UAAU,UAAU;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,OAAO,YAAY,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAC;IACrD,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAoJD;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,CAO5G;AAwCD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS,CAmB3G"}
|
|
@@ -10,6 +10,8 @@ const plugin_version_1 = require("../plugin-version");
|
|
|
10
10
|
const matter_thermostat_mapper_1 = require("./matter-thermostat-mapper");
|
|
11
11
|
Object.defineProperty(exports, "buildThermostatMatterState", { enumerable: true, get: function () { return matter_thermostat_mapper_1.buildThermostatMatterState; } });
|
|
12
12
|
Object.defineProperty(exports, "toCentidegrees", { enumerable: true, get: function () { return matter_thermostat_mapper_1.toMatterTemperatureCelsius; } });
|
|
13
|
+
const matter_name_sanitizer_1 = require("./matter-name-sanitizer");
|
|
14
|
+
const matterNameRegistry = new matter_name_sanitizer_1.MatterNameRegistry();
|
|
13
15
|
function clampCentidegrees(val) {
|
|
14
16
|
return (0, matter_thermostat_mapper_1.clampMatterTemperature)(val, matter_thermostat_mapper_1.TEMP_ABS_MIN_CENTI, matter_thermostat_mapper_1.TEMP_ABS_MAX_CENTI);
|
|
15
17
|
}
|
|
@@ -39,10 +41,13 @@ function scheduleMomentaryAutoOff(uuid, deps) {
|
|
|
39
41
|
});
|
|
40
42
|
}, delay);
|
|
41
43
|
}
|
|
42
|
-
function baseFields(device) {
|
|
44
|
+
function baseFields(device, log) {
|
|
45
|
+
const sanitized = matterNameRegistry.resolve(device.id, (0, matter_name_sanitizer_1.sanitizeMatterAccessoryName)(device.name, device.id));
|
|
46
|
+
if (log && sanitized !== device.name)
|
|
47
|
+
log.debug(`[Matter] Accessory name sanitized: "${device.name}" -> "${sanitized}"`);
|
|
43
48
|
return {
|
|
44
49
|
UUID: device.id,
|
|
45
|
-
displayName:
|
|
50
|
+
displayName: sanitized,
|
|
46
51
|
serialNumber: device.id,
|
|
47
52
|
manufacturer: 'Ksenia',
|
|
48
53
|
model: `Lares4 ${device.type}`,
|
|
@@ -82,7 +87,7 @@ function mapLight(device, deps) {
|
|
|
82
87
|
};
|
|
83
88
|
}
|
|
84
89
|
return {
|
|
85
|
-
...baseFields(device),
|
|
90
|
+
...baseFields(device, deps.log),
|
|
86
91
|
deviceType: isDimmable
|
|
87
92
|
? api.matter.deviceTypes.DimmableLight
|
|
88
93
|
: api.matter.deviceTypes.OnOffLight,
|
|
@@ -96,7 +101,7 @@ function mapCover(device, deps) {
|
|
|
96
101
|
// Lares4: 0=closed, 100=open. Matter: 0=open (0%), 10000=closed (100%).
|
|
97
102
|
const matterPos = Math.round((100 - pos) * 100);
|
|
98
103
|
return {
|
|
99
|
-
...baseFields(device),
|
|
104
|
+
...baseFields(device, deps.log),
|
|
100
105
|
deviceType: api.matter.deviceTypes.WindowCovering,
|
|
101
106
|
clusters: {
|
|
102
107
|
windowCovering: {
|
|
@@ -116,10 +121,12 @@ function mapCover(device, deps) {
|
|
|
116
121
|
};
|
|
117
122
|
}
|
|
118
123
|
function mapThermostat(device, deps) {
|
|
119
|
-
const { api, getWsClient } = deps;
|
|
124
|
+
const { api, log, getWsClient } = deps;
|
|
120
125
|
const { base, schemaInvariants } = (0, matter_thermostat_mapper_1.buildThermostatMatterState)(device);
|
|
126
|
+
const supportsCooling = (0, matter_thermostat_mapper_1.thermostatSupportsCooling)(device);
|
|
127
|
+
const echoGuard = new matter_thermostat_mapper_1.ThermostatEchoGuard();
|
|
121
128
|
return {
|
|
122
|
-
...baseFields(device),
|
|
129
|
+
...baseFields(device, log),
|
|
123
130
|
deviceType: api.matter.deviceTypes.Thermostat,
|
|
124
131
|
clusters: {
|
|
125
132
|
thermostat: { ...base, ...schemaInvariants },
|
|
@@ -128,8 +135,37 @@ function mapThermostat(device, deps) {
|
|
|
128
135
|
thermostat: {
|
|
129
136
|
setpointRaiseLower: async (args) => {
|
|
130
137
|
const delta = args.amount / 10;
|
|
131
|
-
const
|
|
132
|
-
|
|
138
|
+
const raw = (device.targetTemperature ?? 21) + delta;
|
|
139
|
+
const { value } = (0, matter_thermostat_mapper_1.normalizeMatterSetpointC)(raw * 100, matter_thermostat_mapper_1.DEFAULT_MIN_HEAT_C, matter_thermostat_mapper_1.DEFAULT_MAX_HEAT_C);
|
|
140
|
+
echoGuard.record('heat', Math.round(value * 100));
|
|
141
|
+
await getWsClient()?.setThermostatTemperature(device.id, value);
|
|
142
|
+
},
|
|
143
|
+
occupiedHeatingSetpointChange: async (args) => {
|
|
144
|
+
if (echoGuard.isEcho('heat', args.occupiedHeatingSetpoint))
|
|
145
|
+
return;
|
|
146
|
+
const { value } = (0, matter_thermostat_mapper_1.normalizeMatterSetpointC)(args.occupiedHeatingSetpoint, matter_thermostat_mapper_1.DEFAULT_MIN_HEAT_C, matter_thermostat_mapper_1.DEFAULT_MAX_HEAT_C);
|
|
147
|
+
echoGuard.record('heat', args.occupiedHeatingSetpoint);
|
|
148
|
+
await getWsClient()?.setThermostatTemperature(device.id, value);
|
|
149
|
+
},
|
|
150
|
+
occupiedCoolingSetpointChange: async (args) => {
|
|
151
|
+
if (!supportsCooling) {
|
|
152
|
+
log.warn(`[Matter] ${device.name}: cooling setpoint change ignored (device does not support cooling)`);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (echoGuard.isEcho('cool', args.occupiedCoolingSetpoint))
|
|
156
|
+
return;
|
|
157
|
+
const { value } = (0, matter_thermostat_mapper_1.normalizeMatterSetpointC)(args.occupiedCoolingSetpoint, matter_thermostat_mapper_1.DEFAULT_MIN_COOL_C, matter_thermostat_mapper_1.DEFAULT_MAX_COOL_C);
|
|
158
|
+
echoGuard.record('cool', args.occupiedCoolingSetpoint);
|
|
159
|
+
await getWsClient()?.setThermostatTemperature(device.id, value);
|
|
160
|
+
},
|
|
161
|
+
systemModeChange: async (args) => {
|
|
162
|
+
const klares4Mode = (0, matter_thermostat_mapper_1.matterSystemModeToKlares4Mode)(args.systemMode, supportsCooling);
|
|
163
|
+
if (klares4Mode === null) {
|
|
164
|
+
log.warn(`[Matter] ${device.name}: unsupported Matter systemMode ${args.systemMode} ignored`);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
log.debug(`[Matter] ${device.name} systemMode ${args.systemMode} -> ${klares4Mode}`);
|
|
168
|
+
await getWsClient()?.setThermostatMode(device.id, klares4Mode);
|
|
133
169
|
},
|
|
134
170
|
},
|
|
135
171
|
},
|
|
@@ -137,121 +173,48 @@ function mapThermostat(device, deps) {
|
|
|
137
173
|
}
|
|
138
174
|
/**
|
|
139
175
|
* Fallback mapping: register a thermostat as a Matter TemperatureSensor.
|
|
140
|
-
* Used only when the regular Thermostat registration fails upstream (matter.js bug).
|
|
141
176
|
* HAP continues to expose the full Thermostat — Matter loses write control but keeps read.
|
|
142
177
|
*/
|
|
143
178
|
function mapThermostatAsTemperatureSensor(device, deps) {
|
|
144
|
-
const { api } = deps;
|
|
145
179
|
const currentC = device.currentTemperature ?? 21;
|
|
146
180
|
return {
|
|
147
|
-
...baseFields(device),
|
|
148
|
-
deviceType: api.matter.deviceTypes.TemperatureSensor,
|
|
149
|
-
clusters: {
|
|
150
|
-
temperatureMeasurement: {
|
|
151
|
-
measuredValue: clampCentidegrees((0, matter_thermostat_mapper_1.toMatterTemperatureCelsius)(currentC)),
|
|
152
|
-
},
|
|
153
|
-
},
|
|
181
|
+
...baseFields(device, deps.log),
|
|
182
|
+
deviceType: deps.api.matter.deviceTypes.TemperatureSensor,
|
|
183
|
+
clusters: { temperatureMeasurement: { measuredValue: clampCentidegrees((0, matter_thermostat_mapper_1.toMatterTemperatureCelsius)(currentC)) } },
|
|
154
184
|
};
|
|
155
185
|
}
|
|
156
186
|
function mapSensor(device, deps) {
|
|
157
187
|
const { api } = deps;
|
|
188
|
+
const bf = baseFields(device, deps.log);
|
|
158
189
|
const val = device.status.value;
|
|
159
190
|
switch (device.status.sensorType) {
|
|
160
|
-
case 'temperature':
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
measuredValue: clampCentidegrees((0, matter_thermostat_mapper_1.toMatterTemperatureCelsius)(val)),
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
case 'humidity':
|
|
171
|
-
return {
|
|
172
|
-
...baseFields(device),
|
|
173
|
-
deviceType: api.matter.deviceTypes.HumiditySensor,
|
|
174
|
-
clusters: {
|
|
175
|
-
relativeHumidityMeasurement: {
|
|
176
|
-
measuredValue: Math.round(Math.max(0, Math.min(100, val)) * 100),
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
};
|
|
180
|
-
case 'light':
|
|
181
|
-
return {
|
|
182
|
-
...baseFields(device),
|
|
183
|
-
deviceType: api.matter.deviceTypes.LightSensor,
|
|
184
|
-
clusters: {
|
|
185
|
-
illuminanceMeasurement: { measuredValue: luxToMatterIlluminance(val) },
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
case 'motion':
|
|
189
|
-
return {
|
|
190
|
-
...baseFields(device),
|
|
191
|
-
deviceType: api.matter.deviceTypes.MotionSensor,
|
|
192
|
-
clusters: {
|
|
193
|
-
occupancySensing: { occupancy: { occupied: val > 0 } },
|
|
194
|
-
},
|
|
195
|
-
};
|
|
196
|
-
case 'contact':
|
|
197
|
-
return {
|
|
198
|
-
...baseFields(device),
|
|
199
|
-
deviceType: api.matter.deviceTypes.ContactSensor,
|
|
200
|
-
clusters: {
|
|
201
|
-
booleanState: { stateValue: val === 0 },
|
|
202
|
-
},
|
|
203
|
-
};
|
|
204
|
-
default:
|
|
205
|
-
return undefined;
|
|
191
|
+
case 'temperature': return { ...bf, deviceType: api.matter.deviceTypes.TemperatureSensor, clusters: { temperatureMeasurement: { measuredValue: clampCentidegrees((0, matter_thermostat_mapper_1.toMatterTemperatureCelsius)(val)) } } };
|
|
192
|
+
case 'humidity': return { ...bf, deviceType: api.matter.deviceTypes.HumiditySensor, clusters: { relativeHumidityMeasurement: { measuredValue: Math.round(Math.max(0, Math.min(100, val)) * 100) } } };
|
|
193
|
+
case 'light': return { ...bf, deviceType: api.matter.deviceTypes.LightSensor, clusters: { illuminanceMeasurement: { measuredValue: luxToMatterIlluminance(val) } } };
|
|
194
|
+
case 'motion': return { ...bf, deviceType: api.matter.deviceTypes.MotionSensor, clusters: { occupancySensing: { occupancy: { occupied: val > 0 } } } };
|
|
195
|
+
case 'contact': return { ...bf, deviceType: api.matter.deviceTypes.ContactSensor, clusters: { booleanState: { stateValue: val === 0 } } };
|
|
196
|
+
default: return undefined;
|
|
206
197
|
}
|
|
207
198
|
}
|
|
208
199
|
function mapZone(device, deps) {
|
|
209
|
-
|
|
210
|
-
return {
|
|
211
|
-
...baseFields(device),
|
|
212
|
-
deviceType: api.matter.deviceTypes.ContactSensor,
|
|
213
|
-
clusters: {
|
|
214
|
-
booleanState: { stateValue: !device.status.open },
|
|
215
|
-
},
|
|
216
|
-
};
|
|
200
|
+
return { ...baseFields(device, deps.log), deviceType: deps.api.matter.deviceTypes.ContactSensor, clusters: { booleanState: { stateValue: !device.status.open } } };
|
|
217
201
|
}
|
|
218
|
-
function
|
|
219
|
-
const { api, getWsClient } = deps;
|
|
202
|
+
function mapMomentarySwitch(device, trigger, deps) {
|
|
220
203
|
return {
|
|
221
|
-
...baseFields(device),
|
|
222
|
-
deviceType: api.matter.deviceTypes.OnOffSwitch,
|
|
223
|
-
clusters: {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
handlers: {
|
|
227
|
-
onOff: {
|
|
228
|
-
on: async () => {
|
|
229
|
-
await getWsClient()?.triggerScenario(device.id);
|
|
230
|
-
scheduleMomentaryAutoOff(device.id, deps);
|
|
231
|
-
},
|
|
204
|
+
...baseFields(device, deps.log),
|
|
205
|
+
deviceType: deps.api.matter.deviceTypes.OnOffSwitch,
|
|
206
|
+
clusters: { onOff: { onOff: false } },
|
|
207
|
+
handlers: { onOff: {
|
|
208
|
+
on: async () => { await trigger(); scheduleMomentaryAutoOff(device.id, deps); },
|
|
232
209
|
off: async () => { },
|
|
233
|
-
},
|
|
234
|
-
},
|
|
210
|
+
} },
|
|
235
211
|
};
|
|
236
212
|
}
|
|
213
|
+
function mapScenario(device, deps) {
|
|
214
|
+
return mapMomentarySwitch(device, async () => { await deps.getWsClient()?.triggerScenario(device.id); }, deps);
|
|
215
|
+
}
|
|
237
216
|
function mapGate(device, deps) {
|
|
238
|
-
|
|
239
|
-
return {
|
|
240
|
-
...baseFields(device),
|
|
241
|
-
deviceType: api.matter.deviceTypes.OnOffSwitch,
|
|
242
|
-
clusters: {
|
|
243
|
-
onOff: { onOff: false },
|
|
244
|
-
},
|
|
245
|
-
handlers: {
|
|
246
|
-
onOff: {
|
|
247
|
-
on: async () => {
|
|
248
|
-
await getWsClient()?.toggleGate(device.id);
|
|
249
|
-
scheduleMomentaryAutoOff(device.id, deps);
|
|
250
|
-
},
|
|
251
|
-
off: async () => { },
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
|
-
};
|
|
217
|
+
return mapMomentarySwitch(device, async () => { await deps.getWsClient()?.toggleGate(device.id); }, deps);
|
|
255
218
|
}
|
|
256
219
|
function deviceToMatterAccessory(device, deps) {
|
|
257
220
|
if (!deps.api.matter) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-device-mapper.js","sourceRoot":"","sources":["../../src/platform/matter-device-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"matter-device-mapper.js","sourceRoot":"","sources":["../../src/platform/matter-device-mapper.ts"],"names":[],"mappings":";;;AA2BA,8CAEC;AAGD,wDAOC;AAID,wDAGC;AAgKD,4EAOC;AAwCD,0DAmBC;AApQD,sDAAmD;AAEnD,yEAKoC;AAO3B,2GAXL,qDAA0B,OAWK;AADI,+FAVP,qDAA0B,OAUL;AALrD,mEAA0F;AAE1F,MAAM,kBAAkB,GAAG,IAAI,0CAAkB,EAAE,CAAC;AAKpD,SAAgB,iBAAiB,CAAC,GAAW;IACzC,OAAO,IAAA,iDAAsB,EAAC,GAAG,EAAE,6CAAkB,EAAE,6CAAkB,CAAC,CAAC;AAC/E,CAAC;AAED,iGAAiG;AACjG,SAAgB,sBAAsB,CAAC,IAAsC;IACzE,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,CAAK,OAAO,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,+EAA+E;AAC/E,SAAgB,sBAAsB,CAAC,GAAW;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAUD,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,SAAS,wBAAwB,CAAC,IAAY,EAAE,IAAgB;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,IAAI,6BAA6B,CAAC;IACvE,UAAU,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACjE,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1H,CAAC,CAAC,CAAC;IACX,CAAC,EAAE,KAAK,CAAC,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CACf,MAAoB,EACpB,GAAiC;IAEjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,mDAA2B,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,IAAI,GAAG,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,uCAAuC,MAAM,CAAC,IAAI,SAAS,SAAS,GAAG,CAAC,CAAC;IACzH,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,MAAM,CAAC,EAAE;QACvB,YAAY,EAAE,QAAQ;QACtB,KAAK,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE;QAC9B,gBAAgB,EAAE,+BAAc;QAChC,OAAO,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,MAAmB,EAAE,IAAgB;IACnD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,0GAA0G;IAC1G,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAgC,UAAU;QACpD,CAAC,CAAC;YACE,KAAK,EAAE,EAAE,KAAK,EAAE;YAChB,YAAY,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;SAC7D;QACD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAgC;QAC1C,KAAK,EAAE;YACH,EAAE,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACtE,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3E;KACJ,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACb,QAAQ,CAAC,YAAY,GAAG;YACpB,WAAW,EAAE,KAAK,EAAE,IAAuB,EAAE,EAAE;gBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjD,MAAM,WAAW,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;YACD,oBAAoB,EAAE,KAAK,EAAE,IAAuB,EAAE,EAAE;gBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjD,MAAM,WAAW,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;SACJ,CAAC;IACN,CAAC;IAED,OAAO;QACH,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QAC/B,UAAU,EAAE,UAAU;YAClB,CAAC,CAAC,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,aAAa;YACvC,CAAC,CAAC,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,UAAU;QACxC,QAAQ;QACR,QAAQ;KACX,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,MAAmB,EAAE,IAAgB;IACnD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;IACzC,wEAAwE;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAEhD,OAAO;QACH,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QAC/B,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,cAAc;QAClD,QAAQ,EAAE;YACN,cAAc,EAAE;gBACZ,gCAAgC,EAAE,SAAS;gBAC3C,+BAA+B,EAAE,SAAS;gBAC1C,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;aAC/D;SACJ;QACD,QAAQ,EAAE;YACN,cAAc,EAAE;gBACZ,kBAAkB,EAAE,KAAK,EAAE,IAAwC,EAAE,EAAE;oBACnE,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC;oBACtE,MAAM,WAAW,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACzD,CAAC;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,MAAwB,EAAE,IAAgB;IAC7D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAA,qDAA0B,EAAC,MAAM,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,IAAA,oDAAyB,EAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,8CAAmB,EAAE,CAAC;IAE5C,OAAO;QACH,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;QAC1B,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,UAAU;QAC9C,QAAQ,EAAE;YACN,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,EAA6B;SAC1E;QACD,QAAQ,EAAE;YACN,UAAU,EAAE;gBACR,kBAAkB,EAAE,KAAK,EAAE,IAAsC,EAAE,EAAE;oBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;oBACrD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,mDAAwB,EAAC,GAAG,GAAG,GAAG,EAAE,6CAAkB,EAAE,6CAAkB,CAAC,CAAC;oBAC9F,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;oBAClD,MAAM,WAAW,EAAE,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;gBACD,6BAA6B,EAAE,KAAK,EAAE,IAAyC,EAAE,EAAE;oBAC/E,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC;wBAAE,OAAO;oBACnE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,mDAAwB,EAAC,IAAI,CAAC,uBAAuB,EAAE,6CAAkB,EAAE,6CAAkB,CAAC,CAAC;oBACjH,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBACvD,MAAM,WAAW,EAAE,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;gBACD,6BAA6B,EAAE,KAAK,EAAE,IAAyC,EAAE,EAAE;oBAC/E,IAAI,CAAC,eAAe,EAAE,CAAC;wBAAC,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,qEAAqE,CAAC,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACzI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC;wBAAE,OAAO;oBACnE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,mDAAwB,EAAC,IAAI,CAAC,uBAAuB,EAAE,6CAAkB,EAAE,6CAAkB,CAAC,CAAC;oBACjH,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBACvD,MAAM,WAAW,EAAE,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;gBACD,gBAAgB,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;oBACrD,MAAM,WAAW,GAAG,IAAA,wDAA6B,EAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;oBACpF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;wBAAC,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,mCAAmC,IAAI,CAAC,UAAU,UAAU,CAAC,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACpI,GAAG,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,eAAe,IAAI,CAAC,UAAU,OAAO,WAAW,EAAE,CAAC,CAAC;oBACrF,MAAM,WAAW,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gBACnE,CAAC;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAgB,gCAAgC,CAAC,MAAwB,EAAE,IAAgB;IACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC;IACjD,OAAO;QACH,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,iBAAiB;QAC1D,QAAQ,EAAE,EAAE,sBAAsB,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAA,qDAA0B,EAAC,QAAQ,CAAC,CAAC,EAAE,EAAE;KACnH,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,MAAoB,EAAE,IAAgB;IACrD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAChC,QAAQ,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,aAAa,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,sBAAsB,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAA,qDAA0B,EAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACzM,KAAK,UAAU,CAAC,CAAI,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,cAAc,EAAK,QAAQ,EAAE,EAAE,2BAA2B,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC7M,KAAK,OAAO,CAAC,CAAO,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,WAAW,EAAQ,QAAQ,EAAE,EAAE,sBAAsB,EAAE,EAAE,aAAa,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAClL,KAAK,QAAQ,CAAC,CAAM,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,YAAY,EAAO,QAAQ,EAAE,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAClK,KAAK,SAAS,CAAC,CAAK,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,aAAa,EAAM,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACnJ,OAAO,CAAC,CAAY,OAAO,SAAS,CAAC;IACzC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,MAAkB,EAAE,IAAgB;IACjD,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AACxK,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB,EAAE,OAA4B,EAAE,IAAgB;IAC5F,OAAO;QACH,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,WAAW;QACpD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,QAAQ,EAAE,EAAE,KAAK,EAAE;gBACf,EAAE,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/E,GAAG,EAAE,KAAK,IAAI,EAAE,GAAmC,CAAC;aACvD,EAAE;KACN,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB,EAAE,IAAgB;IACzD,OAAO,kBAAkB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,OAAO,CAAC,MAAkB,EAAE,IAAgB;IACjD,OAAO,kBAAkB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9G,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAAoB,EAAE,IAAgB;IAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO,CAAC,CAAM,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,KAAK,OAAO,CAAC,CAAM,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,KAAK,YAAY,CAAC,CAAC,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtD,KAAK,QAAQ,CAAC,CAAK,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClD,KAAK,MAAM,CAAC,CAAO,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,KAAK,UAAU,CAAC,CAAG,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpD,KAAK,MAAM,CAAC,CAAO,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,CAAC,CAAW,OAAO,SAAS,CAAC;QACxC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA8B,MAAuB,CAAC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjI,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter-only accessory name sanitisation.
|
|
3
|
+
*
|
|
4
|
+
* Normalises display names for Matter / Homebridge 2 controllers without
|
|
5
|
+
* touching HAP names, UUIDs, or the original klares4 device names.
|
|
6
|
+
*
|
|
7
|
+
* Pure functions + a stateful collision registry (one instance per registry object).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Sanitise a device name for use as a Matter accessory `displayName`.
|
|
11
|
+
*
|
|
12
|
+
* Rules (applied in order):
|
|
13
|
+
* 1. Replace `+` with ` e `.
|
|
14
|
+
* 2. Remove parentheses / brackets but keep their content.
|
|
15
|
+
* 3. Normalise typographic apostrophes / single quotes to nothing.
|
|
16
|
+
* 4. Replace slashes, backslashes and other shell-like special chars with space.
|
|
17
|
+
* 5. Collapse multiple whitespace to a single space.
|
|
18
|
+
* 6. Trim leading/trailing whitespace.
|
|
19
|
+
* 7. Truncate to MAX_NAME_LENGTH characters (trim again after truncation).
|
|
20
|
+
* 8. If the result is empty, use `fallback` (default 'Device').
|
|
21
|
+
*/
|
|
22
|
+
export declare function sanitizeMatterAccessoryName(name: string, fallback?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Tracks sanitised names per registry instance so that two devices whose names
|
|
25
|
+
* normalise to the same string receive distinct suffixes.
|
|
26
|
+
*
|
|
27
|
+
* Instantiate once per plugin boot (module-level in matter-device-mapper).
|
|
28
|
+
* For tests, instantiate a fresh registry per test to avoid cross-test pollution.
|
|
29
|
+
*/
|
|
30
|
+
export declare class MatterNameRegistry {
|
|
31
|
+
private readonly nameToUuid;
|
|
32
|
+
/**
|
|
33
|
+
* Return `sanitized` if it has not been used yet (or was used by the same uuid).
|
|
34
|
+
* Otherwise append a stable 4-char hex suffix derived from the uuid.
|
|
35
|
+
*/
|
|
36
|
+
resolve(uuid: string, sanitized: string): string;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=matter-name-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matter-name-sanitizer.d.ts","sourceRoot":"","sources":["../../src/platform/matter-name-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,MAAM,CAkBrF;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAExD;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAcnD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Matter-only accessory name sanitisation.
|
|
4
|
+
*
|
|
5
|
+
* Normalises display names for Matter / Homebridge 2 controllers without
|
|
6
|
+
* touching HAP names, UUIDs, or the original klares4 device names.
|
|
7
|
+
*
|
|
8
|
+
* Pure functions + a stateful collision registry (one instance per registry object).
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.MatterNameRegistry = void 0;
|
|
12
|
+
exports.sanitizeMatterAccessoryName = sanitizeMatterAccessoryName;
|
|
13
|
+
const MAX_NAME_LENGTH = 64;
|
|
14
|
+
/**
|
|
15
|
+
* Sanitise a device name for use as a Matter accessory `displayName`.
|
|
16
|
+
*
|
|
17
|
+
* Rules (applied in order):
|
|
18
|
+
* 1. Replace `+` with ` e `.
|
|
19
|
+
* 2. Remove parentheses / brackets but keep their content.
|
|
20
|
+
* 3. Normalise typographic apostrophes / single quotes to nothing.
|
|
21
|
+
* 4. Replace slashes, backslashes and other shell-like special chars with space.
|
|
22
|
+
* 5. Collapse multiple whitespace to a single space.
|
|
23
|
+
* 6. Trim leading/trailing whitespace.
|
|
24
|
+
* 7. Truncate to MAX_NAME_LENGTH characters (trim again after truncation).
|
|
25
|
+
* 8. If the result is empty, use `fallback` (default 'Device').
|
|
26
|
+
*/
|
|
27
|
+
function sanitizeMatterAccessoryName(name, fallback = 'Device') {
|
|
28
|
+
if (!name || typeof name !== 'string')
|
|
29
|
+
return fallback || 'Device';
|
|
30
|
+
let s = name;
|
|
31
|
+
s = s.replace(/\+/g, ' e ');
|
|
32
|
+
s = s.replace(/[()[\]]/g, ' ');
|
|
33
|
+
// Typographic apostrophes, right/left single quotes
|
|
34
|
+
s = s.replace(/[\u2018\u2019\u201a\u201b']/g, '');
|
|
35
|
+
// Slash, backslash, pipe and similar structural chars → space
|
|
36
|
+
s = s.replace(/[/\\|<>{}*?!@#$%^&=~`]/g, ' ');
|
|
37
|
+
s = s.replace(/\s+/g, ' ');
|
|
38
|
+
s = s.trim();
|
|
39
|
+
if (s.length > MAX_NAME_LENGTH) {
|
|
40
|
+
s = s.slice(0, MAX_NAME_LENGTH).trim();
|
|
41
|
+
}
|
|
42
|
+
return s || (fallback.trim() || 'Device');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Tracks sanitised names per registry instance so that two devices whose names
|
|
46
|
+
* normalise to the same string receive distinct suffixes.
|
|
47
|
+
*
|
|
48
|
+
* Instantiate once per plugin boot (module-level in matter-device-mapper).
|
|
49
|
+
* For tests, instantiate a fresh registry per test to avoid cross-test pollution.
|
|
50
|
+
*/
|
|
51
|
+
class MatterNameRegistry {
|
|
52
|
+
constructor() {
|
|
53
|
+
this.nameToUuid = new Map();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Return `sanitized` if it has not been used yet (or was used by the same uuid).
|
|
57
|
+
* Otherwise append a stable 4-char hex suffix derived from the uuid.
|
|
58
|
+
*/
|
|
59
|
+
resolve(uuid, sanitized) {
|
|
60
|
+
const existing = this.nameToUuid.get(sanitized);
|
|
61
|
+
if (!existing || existing === uuid) {
|
|
62
|
+
this.nameToUuid.set(sanitized, uuid);
|
|
63
|
+
return sanitized;
|
|
64
|
+
}
|
|
65
|
+
// Collision: derive a stable suffix from the last 4 chars of the uuid.
|
|
66
|
+
const suffix = uuid.replace(/-/g, '').slice(-4);
|
|
67
|
+
const candidate = sanitized.length + 5 <= MAX_NAME_LENGTH
|
|
68
|
+
? `${sanitized} ${suffix}`
|
|
69
|
+
: `${sanitized.slice(0, MAX_NAME_LENGTH - 5).trim()} ${suffix}`;
|
|
70
|
+
this.nameToUuid.set(candidate, uuid);
|
|
71
|
+
return candidate;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.MatterNameRegistry = MatterNameRegistry;
|
|
75
|
+
//# sourceMappingURL=matter-name-sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matter-name-sanitizer.js","sourceRoot":"","sources":["../../src/platform/matter-name-sanitizer.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAiBH,kEAkBC;AAjCD,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;;;;;;;;;;GAYG;AACH,SAAgB,2BAA2B,CAAC,IAAY,EAAE,QAAQ,GAAG,QAAQ;IACzE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,IAAI,QAAQ,CAAC;IAEnE,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/B,oDAAoD;IACpD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IAClD,8DAA8D;IAC9D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAEb,IAAI,CAAC,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAC7B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAa,kBAAkB;IAA/B;QACqB,eAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAoB5D,CAAC;IAlBG;;;OAGG;IACH,OAAO,CAAC,IAAY,EAAE,SAAiB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe;YACrD,CAAC,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE;YAC1B,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AArBD,gDAqBC"}
|
|
@@ -47,6 +47,20 @@ export declare function domainModeToMatterSystemMode(mode: DomainThermostatMode
|
|
|
47
47
|
* Tracking: https://github.com/project-chip/matter.js/issues (search "presetTypes")
|
|
48
48
|
*/
|
|
49
49
|
export declare function getThermostatPresetWorkaroundAttributes(): Record<string, unknown>;
|
|
50
|
+
/**
|
|
51
|
+
* Map a Matter SystemMode value (Matter spec §4.3.7.32) back to a klares4 domain mode.
|
|
52
|
+
* Returns null for modes the device does not support (e.g. Cool/Auto on a heating-only
|
|
53
|
+
* thermostat) so callers can log a warning and skip the command instead of crashing.
|
|
54
|
+
*/
|
|
55
|
+
export declare function matterSystemModeToKlares4Mode(matterMode: number, supportsCooling: boolean): DomainThermostatMode | null;
|
|
56
|
+
/**
|
|
57
|
+
* Convert a Matter setpoint (centidegrees) to °C, clamped to [minC, maxC].
|
|
58
|
+
* Returns the (possibly clamped) value and a flag indicating whether clamping occurred.
|
|
59
|
+
*/
|
|
60
|
+
export declare function normalizeMatterSetpointC(centidegrees: number, minC: number, maxC: number): {
|
|
61
|
+
value: number;
|
|
62
|
+
clamped: boolean;
|
|
63
|
+
};
|
|
50
64
|
/**
|
|
51
65
|
* Decide whether a Lares4 thermostat should expose Matter cooling.
|
|
52
66
|
* The Lares4 system itself does not expose this metadata in the WS payload,
|
|
@@ -74,4 +88,20 @@ export interface ThermostatMatterState {
|
|
|
74
88
|
* @param device Lares4 thermostat device
|
|
75
89
|
*/
|
|
76
90
|
export declare function buildThermostatMatterState(device: KseniaThermostat): ThermostatMatterState;
|
|
91
|
+
/**
|
|
92
|
+
* Prevents feedback loops when Matter attribute-change handlers send commands to
|
|
93
|
+
* Lares4, which then echoes the change back as a state update: the plugin pushes
|
|
94
|
+
* the update via `api.matter.updateAccessoryState`, which writes the Matter attribute,
|
|
95
|
+
* which re-fires the handler — an infinite loop.
|
|
96
|
+
*
|
|
97
|
+
* Usage: call `record(key, centi)` immediately before sending a command; the handler
|
|
98
|
+
* checks `isEcho(key, centi)` first and returns early if the invocation is an echo.
|
|
99
|
+
*/
|
|
100
|
+
export declare class ThermostatEchoGuard {
|
|
101
|
+
private readonly sent;
|
|
102
|
+
private readonly ttlMs;
|
|
103
|
+
constructor(ttlMs?: number);
|
|
104
|
+
record(key: string, centi: number): void;
|
|
105
|
+
isEcho(key: string, centi: number): boolean;
|
|
106
|
+
}
|
|
77
107
|
//# sourceMappingURL=matter-thermostat-mapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-thermostat-mapper.d.ts","sourceRoot":"","sources":["../../src/platform/matter-thermostat-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMjD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAGjD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAGlC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAI,GAAG,MAAM,CAIhF;AAED,8CAA8C;AAC9C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrG;AAYD,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAO3F;AAMD;;;;;;;;;GASG;AACH,wBAAgB,uCAAuC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWjF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAO3E;AAMD,MAAM,WAAW,qBAAqB;IAClC,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,oGAAoG;IACpG,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAqE1F"}
|
|
1
|
+
{"version":3,"file":"matter-thermostat-mapper.d.ts","sourceRoot":"","sources":["../../src/platform/matter-thermostat-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMjD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAGjD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAGlC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAI,GAAG,MAAM,CAIhF;AAED,8CAA8C;AAC9C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrG;AAYD,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAO3F;AAMD;;;;;;;;;GASG;AACH,wBAAgB,uCAAuC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWjF;AAMD;;;;GAIG;AACH,wBAAgB,6BAA6B,CACzC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,GACzB,oBAAoB,GAAG,IAAI,CAQ7B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAIrC;AAMD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAO3E;AAMD,MAAM,WAAW,qBAAqB;IAClC,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,oGAAoG;IACpG,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAqE1F;AAMD;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsD;IAC3E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBACnB,KAAK,SAAO;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IACxC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAI9C"}
|
|
@@ -9,12 +9,14 @@
|
|
|
9
9
|
* Pure functions only — no side effects, no I/O — to keep the unit tests trivial.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PRESET_SCENARIO_OCCUPIED = exports.SYSTEM_MODE_HEAT = exports.SYSTEM_MODE_COOL = exports.SYSTEM_MODE_AUTO = exports.SYSTEM_MODE_OFF = exports.CONTROL_SEQ_COOLING_AND_HEATING = exports.CONTROL_SEQ_HEATING_ONLY = exports.TEMP_ABS_MAX_CENTI = exports.TEMP_ABS_MIN_CENTI = exports.DEFAULT_LOCAL_TEMPERATURE_C = exports.DEFAULT_COOLING_SETPOINT_C = exports.DEFAULT_HEATING_SETPOINT_C = exports.DEFAULT_DEADBAND_C = exports.DEFAULT_MAX_COOL_C = exports.DEFAULT_MIN_COOL_C = exports.DEFAULT_MAX_HEAT_C = exports.DEFAULT_MIN_HEAT_C = void 0;
|
|
12
|
+
exports.ThermostatEchoGuard = exports.PRESET_SCENARIO_OCCUPIED = exports.SYSTEM_MODE_HEAT = exports.SYSTEM_MODE_COOL = exports.SYSTEM_MODE_AUTO = exports.SYSTEM_MODE_OFF = exports.CONTROL_SEQ_COOLING_AND_HEATING = exports.CONTROL_SEQ_HEATING_ONLY = exports.TEMP_ABS_MAX_CENTI = exports.TEMP_ABS_MIN_CENTI = exports.DEFAULT_LOCAL_TEMPERATURE_C = exports.DEFAULT_COOLING_SETPOINT_C = exports.DEFAULT_HEATING_SETPOINT_C = exports.DEFAULT_DEADBAND_C = exports.DEFAULT_MAX_COOL_C = exports.DEFAULT_MIN_COOL_C = exports.DEFAULT_MAX_HEAT_C = exports.DEFAULT_MIN_HEAT_C = void 0;
|
|
13
13
|
exports.toMatterTemperatureCelsius = toMatterTemperatureCelsius;
|
|
14
14
|
exports.fromMatterTemperatureCelsius = fromMatterTemperatureCelsius;
|
|
15
15
|
exports.clampMatterTemperature = clampMatterTemperature;
|
|
16
16
|
exports.domainModeToMatterSystemMode = domainModeToMatterSystemMode;
|
|
17
17
|
exports.getThermostatPresetWorkaroundAttributes = getThermostatPresetWorkaroundAttributes;
|
|
18
|
+
exports.matterSystemModeToKlares4Mode = matterSystemModeToKlares4Mode;
|
|
19
|
+
exports.normalizeMatterSetpointC = normalizeMatterSetpointC;
|
|
18
20
|
exports.thermostatSupportsCooling = thermostatSupportsCooling;
|
|
19
21
|
exports.buildThermostatMatterState = buildThermostatMatterState;
|
|
20
22
|
// ---------------------------------------------------------------------------
|
|
@@ -104,6 +106,32 @@ function getThermostatPresetWorkaroundAttributes() {
|
|
|
104
106
|
};
|
|
105
107
|
}
|
|
106
108
|
// ---------------------------------------------------------------------------
|
|
109
|
+
// Handler helpers — used by mapThermostat command handlers
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
/**
|
|
112
|
+
* Map a Matter SystemMode value (Matter spec §4.3.7.32) back to a klares4 domain mode.
|
|
113
|
+
* Returns null for modes the device does not support (e.g. Cool/Auto on a heating-only
|
|
114
|
+
* thermostat) so callers can log a warning and skip the command instead of crashing.
|
|
115
|
+
*/
|
|
116
|
+
function matterSystemModeToKlares4Mode(matterMode, supportsCooling) {
|
|
117
|
+
switch (matterMode) {
|
|
118
|
+
case exports.SYSTEM_MODE_OFF: return 'off';
|
|
119
|
+
case exports.SYSTEM_MODE_HEAT: return 'heat';
|
|
120
|
+
case exports.SYSTEM_MODE_COOL: return supportsCooling ? 'cool' : null;
|
|
121
|
+
case exports.SYSTEM_MODE_AUTO: return supportsCooling ? 'auto' : null;
|
|
122
|
+
default: return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Convert a Matter setpoint (centidegrees) to °C, clamped to [minC, maxC].
|
|
127
|
+
* Returns the (possibly clamped) value and a flag indicating whether clamping occurred.
|
|
128
|
+
*/
|
|
129
|
+
function normalizeMatterSetpointC(centidegrees, minC, maxC) {
|
|
130
|
+
const raw = fromMatterTemperatureCelsius(centidegrees);
|
|
131
|
+
const value = Math.max(minC, Math.min(maxC, raw));
|
|
132
|
+
return { value, clamped: value !== raw };
|
|
133
|
+
}
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
107
135
|
// Capability detection (heuristic — Lares4 zone names follow Italian conventions)
|
|
108
136
|
// ---------------------------------------------------------------------------
|
|
109
137
|
/**
|
|
@@ -189,4 +217,28 @@ function buildThermostatMatterState(device) {
|
|
|
189
217
|
};
|
|
190
218
|
return { base, schemaInvariants };
|
|
191
219
|
}
|
|
220
|
+
// ---------------------------------------------------------------------------
|
|
221
|
+
// Echo-suppression guard for Matter attribute-change handlers
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
/**
|
|
224
|
+
* Prevents feedback loops when Matter attribute-change handlers send commands to
|
|
225
|
+
* Lares4, which then echoes the change back as a state update: the plugin pushes
|
|
226
|
+
* the update via `api.matter.updateAccessoryState`, which writes the Matter attribute,
|
|
227
|
+
* which re-fires the handler — an infinite loop.
|
|
228
|
+
*
|
|
229
|
+
* Usage: call `record(key, centi)` immediately before sending a command; the handler
|
|
230
|
+
* checks `isEcho(key, centi)` first and returns early if the invocation is an echo.
|
|
231
|
+
*/
|
|
232
|
+
class ThermostatEchoGuard {
|
|
233
|
+
constructor(ttlMs = 8000) {
|
|
234
|
+
this.sent = new Map();
|
|
235
|
+
this.ttlMs = ttlMs;
|
|
236
|
+
}
|
|
237
|
+
record(key, centi) { this.sent.set(key, { centi, time: Date.now() }); }
|
|
238
|
+
isEcho(key, centi) {
|
|
239
|
+
const s = this.sent.get(key);
|
|
240
|
+
return !!s && s.centi === centi && (Date.now() - s.time) < this.ttlMs;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
exports.ThermostatEchoGuard = ThermostatEchoGuard;
|
|
192
244
|
//# sourceMappingURL=matter-thermostat-mapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-thermostat-mapper.js","sourceRoot":"","sources":["../../src/platform/matter-thermostat-mapper.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA0CH,gEAIC;AAGD,oEAEC;AAGD,wDAGC;AAcD,oEAOC;AAgBD,0FAWC;AAeD,8DAOC;AAuBD,gEAqEC;
|
|
1
|
+
{"version":3,"file":"matter-thermostat-mapper.js","sourceRoot":"","sources":["../../src/platform/matter-thermostat-mapper.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA0CH,gEAIC;AAGD,oEAEC;AAGD,wDAGC;AAcD,oEAOC;AAgBD,0FAWC;AAWD,sEAWC;AAMD,4DAQC;AAeD,8DAOC;AAuBD,gEAqEC;AA3PD,8EAA8E;AAC9E,mFAAmF;AACnF,8EAA8E;AAEjE,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AACxB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AACxB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AACxB,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAChC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAChC,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,iEAAiE;AACpD,QAAA,kBAAkB,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa;AAC1C,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAE,aAAa;AAEvD,yDAAyD;AAC5C,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAC7B,QAAA,+BAA+B,GAAG,CAAC,CAAC;AAEjD,yCAAyC;AAC5B,QAAA,eAAe,GAAG,CAAC,CAAC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,6CAA6C;AAChC,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAE1C,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;GAGG;AACH,SAAgB,0BAA0B,CAAC,KAAc,EAAE,SAAS,GAAG,CAAC;IACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,8CAA8C;AAC9C,SAAgB,4BAA4B,CAAC,KAAa;IACtD,OAAO,KAAK,GAAG,GAAG,CAAC;AACvB,CAAC;AAED,+EAA+E;AAC/E,SAAgB,sBAAsB,CAAC,UAAkB,EAAE,QAAgB,EAAE,QAAgB;IACzF,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC;IACxE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAQD,SAAgB,4BAA4B,CAAC,IAAsC;IAC/E,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,OAAO,wBAAgB,CAAC;QACrC,KAAK,MAAM,CAAC,CAAC,OAAO,wBAAgB,CAAC;QACrC,KAAK,MAAM,CAAC,CAAC,OAAO,wBAAgB,CAAC;QACrC,OAAO,CAAC,CAAK,OAAO,uBAAe,CAAC;IACxC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,SAAgB,uCAAuC;IACnD,OAAO;QACH,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE;YACT;gBACI,cAAc,EAAE,gCAAwB;gBACxC,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;aACjE;SACJ;KACJ,CAAC;AACN,CAAC;AAED,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E;;;;GAIG;AACH,SAAgB,6BAA6B,CACzC,UAAkB,EAClB,eAAwB;IAExB,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,uBAAe,CAAC,CAAE,OAAO,KAAK,CAAC;QACpC,KAAK,wBAAgB,CAAC,CAAC,OAAO,MAAM,CAAC;QACrC,KAAK,wBAAgB,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,KAAK,wBAAgB,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,OAAO,CAAC,CAAe,OAAO,IAAI,CAAC;IACvC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACpC,YAAoB,EACpB,IAAY,EACZ,IAAY;IAEZ,MAAM,GAAG,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,GAAG,EAAE,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,kFAAkF;AAClF,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CAAC,MAAwB;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;WAC/B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;WAC/B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;WAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;WACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAaD;;;;;;;;;GASG;AACH,SAAgB,0BAA0B,CAAC,MAAwB;IAC/D,yFAAyF;IACzF,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,mCAA2B,CAAC;IAClG,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,kCAA0B,CAAC;IAEpG,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,0BAAkB,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,0BAAkB,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,0BAAkB,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,0BAAkB,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,0BAAkB,GAAG,GAAG,CAAC,CAAC;IAE3D,MAAM,cAAc,GAAG,sBAAsB,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAAkB,EAAE,0BAAkB,CAAC,CAAC;IAC9H,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,0BAA0B,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAE5H,oGAAoG;IACpG,uFAAuF;IACvF,MAAM,kBAAkB,GAAG,sBAAsB,CAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kCAA0B,GAAG,GAAG,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC,EAC5F,YAAY,EACZ,YAAY,CACf,CAAC;IAEF,8EAA8E;IAC9E,mFAAmF;IACnF,MAAM,4BAA4B,GAAG,CAAC,kBAAkB,GAAG,oBAAoB,GAAG,aAAa,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,GAAG,aAAa,CAAC;QAC5D,CAAC,CAAC,oBAAoB,CAAC;IAE3B,MAAM,eAAe,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,eAAe;QACnC,CAAC,CAAC,uCAA+B;QACjC,CAAC,CAAC,gCAAwB,CAAC;IAE/B,kFAAkF;IAClF,mFAAmF;IACnF,oFAAoF;IACpF,mEAAmE;IAEnE,MAAM,UAAU,GAAG,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7D,gFAAgF;IAChF,0DAA0D;IAC1D,MAAM,mBAAmB,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,KAAK,wBAAgB,IAAI,UAAU,KAAK,wBAAgB,CAAC,CAAC;QAClH,CAAC,CAAC,wBAAgB;QAClB,CAAC,CAAC,UAAU,CAAC;IAEjB,MAAM,IAAI,GAA4B;QAClC,gBAAgB,EAAE,cAAc;QAChC,uBAAuB,EAAE,4BAA4B;QACrD,uBAAuB,EAAE,kBAAkB;QAC3C,yBAAyB,EAAE,4BAA4B;QACvD,yBAAyB,EAAE,kBAAkB;QAC7C,UAAU,EAAE,mBAAmB;KAClC,CAAC;IAEF,MAAM,gBAAgB,GAA4B;QAC9C,uBAAuB,EAAE,YAAY;QACrC,uBAAuB,EAAE,YAAY;QACrC,oBAAoB,EAAE,YAAY;QAClC,oBAAoB,EAAE,YAAY;QAClC,uBAAuB,EAAE,YAAY;QACrC,uBAAuB,EAAE,YAAY;QACrC,oBAAoB,EAAE,YAAY;QAClC,oBAAoB,EAAE,YAAY;QAClC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,0BAAkB,GAAG,EAAE,CAAC,EAAE,wBAAwB;QAClF,0BAA0B,EAAE,eAAe;QAC3C,GAAG,uCAAuC,EAAE;KAC/C,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAa,mBAAmB;IAG5B,YAAY,KAAK,GAAG,IAAI;QAFP,SAAI,GAAG,IAAI,GAAG,EAA2C,CAAC;QAE/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAAC,CAAC;IACjD,MAAM,CAAC,GAAW,EAAE,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,CAAC,GAAW,EAAE,KAAa;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1E,CAAC;CACJ;AATD,kDASC"}
|
package/package.json
CHANGED