@lv426/homebridge-systemair-enhanced 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.1.0
4
+
5
+ ### Changed
6
+
7
+ - **Refresh and Fireplace are their timers.** A timer turns its mode on and off, sets how long it lasts and counts down, so the separate Refresh and Fireplace switches are gone by default, and the timers are named after their modes ("Ventilation Refresh"). Scenes and automations that used the Refresh switch need the Refresh timer instead. To keep the switches, tick them under **Modes to show as switches** in the settings.
8
+
9
+ ### New
10
+
11
+ - The README explains using **Fireplace** while cooking under a hood that vents outside, and naming it "Cooking".
12
+
13
+ ## 2.0.1
14
+
15
+ ### Fixed
16
+
17
+ - **Every tile read "Ventilation" in the Home app.** Since iOS 16 the Home app shows a tile's own name only from its ConfiguredName, which the plugin now sets on each one: "Ventilation Refresh", "Ventilation Fan" and so on. A name you give a tile in the Home app is kept across restarts.
18
+
3
19
  ## 2.0.0
4
20
 
5
21
  A rewrite: faster, a switch for every mode, timers, and the fan's real level.
package/README.md CHANGED
@@ -25,8 +25,8 @@ It talks to the unit's **SAVE Connect** module the same way the module's own web
25
25
  | Tile | What it does |
26
26
  | --- | --- |
27
27
  | **Fan** | Shows the level the fans really run at, Auto included. Drag it to run them manually at Low, Normal or High; drag it to the top to start Refresh; switch it back to Auto, or off. |
28
- | **Auto, Visitors, Refresh, Fireplace, Away, Holiday** | A switch per mode, for scenes and automations. Only one is on at a time. Turning the one that's on off goes back to what it interrupted: Auto, or the manual level you had. |
29
- | **Refresh timer, Fireplace timer** | Set how long the mode lasts (the tile's Duration), turn it on, and watch it count down. |
28
+ | **Auto, Visitors, Away, Holiday** | A switch per mode, for scenes and automations. Only one mode is on at a time. Turning the one that's on off goes back to what it interrupted: Auto, or the manual level you had. |
29
+ | **Refresh, Fireplace** | Timers (they look like a water tap in the Home app): set how long the mode lasts in the tile's settings (Duration), turn it on, and watch it count down. Off ends it early. |
30
30
  | **Thermostat** | The temperature in the house and the setpoint (12–30 °C). |
31
31
  | **Eco Mode** | The unit's ECO mode. |
32
32
  | **Humidity** | Relative humidity of the extract air. |
@@ -64,6 +64,10 @@ How long each mode lasts is the unit's own setting: the timer tiles change it fo
64
64
 
65
65
  *Cooker hood* and *Vacuum cleaner* modes are started by switches wired to the unit, so HomeKit can't start them.
66
66
 
67
+ ### Cooking with a hood that vents outside
68
+
69
+ A hood that blows air out of the house leaves it in underpressure, pulling air in through every gap. **Fireplace** is the mode for that: it pushes air in harder than it pulls it out (supply at Maximum and extract at Minimum, set on the unit). Name it after what you use it for in the plugin's settings (`"modeNames": { "fireplace": "Cooking" }`) and turn **Cooking** on when you start cooking. No mode switches the extract fan fully off; Minimum is as low as the unit goes.
70
+
67
71
  ## Install
68
72
 
69
73
  Search for **Systemair Ventilator** under **Plugins** in Homebridge's web interface and install it, or:
@@ -94,9 +98,9 @@ Fill them in under the plugin's **Settings** in Homebridge's web interface, or a
94
98
  | --- | --- | --- |
95
99
  | `name` | Each tile is named after it: "Ventilation Fan", "Ventilation Refresh". | `Ventilation` |
96
100
  | `ip` | The SAVE Connect module's address. | — |
97
- | `modeSwitches` | The modes shown as switches: `auto`, `crowded`, `refresh`, `fireplace`, `away`, `holiday`. | all six |
98
- | `timers` | The modes with a timer tile: `refresh`, `fireplace`. | both |
99
- | `modeNames` | Your own names, for example `{ "refresh": "Air out" }`. | Crowded is `Visitors`; the rest as on the unit |
101
+ | `modeSwitches` | The modes shown as switches: `auto`, `crowded`, `refresh`, `fireplace`, `away`, `holiday`. | the four without a timer |
102
+ | `timers` | The modes shown as a timer: `refresh`, `fireplace`. | both |
103
+ | `modeNames` | Your own names, for example `{ "fireplace": "Cooking" }`. | Crowded is `Visitors`; the rest as on the unit |
100
104
  | `eco` | Show the ECO mode switch. | `true` |
101
105
  | `outdoorTemperature` | Show the outdoor temperature. | `true` |
102
106
  | `filter` | Show the filter. | `true` |
@@ -28,10 +28,10 @@
28
28
  },
29
29
  "modeSwitches": {
30
30
  "title": "Modes to show as switches",
31
- "description": "For scenes and automations. Only one is on at a time; turning the one that's on off goes back to Auto.",
31
+ "description": "For scenes and automations. Only one is on at a time; turning the one that's on off goes back to what it interrupted. Refresh and Fireplace have their timers, so they don't need a switch too.",
32
32
  "type": "array",
33
33
  "uniqueItems": true,
34
- "default": ["auto", "crowded", "refresh", "fireplace", "away", "holiday"],
34
+ "default": ["auto", "crowded", "away", "holiday"],
35
35
  "items": {
36
36
  "type": "string",
37
37
  "enum": ["auto", "crowded", "refresh", "fireplace", "away", "holiday"],
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "timers": {
42
42
  "title": "Modes with a timer",
43
- "description": "A timer tile sets how long the mode lasts (the Home app's Duration, up to an hour) and counts down while it runs.",
43
+ "description": "A timer tile turns its mode on and off, sets how long it lasts (the Home app's Duration, up to an hour) and counts down while it runs.",
44
44
  "type": "array",
45
45
  "uniqueItems": true,
46
46
  "default": ["refresh", "fireplace"],
@@ -57,7 +57,7 @@
57
57
  "auto": { "title": "Auto", "type": "string", "placeholder": "Auto" },
58
58
  "crowded": { "title": "Crowded", "type": "string", "placeholder": "Visitors" },
59
59
  "refresh": { "title": "Refresh", "type": "string", "placeholder": "Refresh" },
60
- "fireplace": { "title": "Fireplace", "type": "string", "placeholder": "Fireplace" },
60
+ "fireplace": { "title": "Fireplace", "type": "string", "placeholder": "Fireplace (for example, Cooking)" },
61
61
  "away": { "title": "Away", "type": "string", "placeholder": "Away" },
62
62
  "holiday": { "title": "Holiday", "type": "string", "placeholder": "Holiday" }
63
63
  }
package/dist/config.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TIMER_MAX_SECONDS = exports.DEFAULT_MODE_NAMES = exports.DEFAULT_TIMERS = exports.DEFAULT_MODE_SWITCHES = void 0;
3
+ exports.TIMER_MAX_SECONDS = exports.DEFAULT_MODE_NAMES = exports.DEFAULT_TIMERS = exports.SWITCHABLE_MODES = void 0;
4
4
  exports.readConfig = readConfig;
5
5
  const modes_js_1 = require("./modes.js");
6
- exports.DEFAULT_MODE_SWITCHES = [
6
+ /** Every mode a switch can show (Manual is the fan's own speed). */
7
+ exports.SWITCHABLE_MODES = [
7
8
  'auto',
8
9
  'crowded',
9
10
  'refresh',
@@ -33,12 +34,13 @@ function readConfig(raw) {
33
34
  const names = isRecord(config.modeNames) ? config.modeNames : {};
34
35
  const settable = modes_js_1.SETTABLE_MODES.map((mode) => mode.id).filter((id) => id !== 'manual');
35
36
  const timed = modes_js_1.MODES.filter((mode) => mode.duration?.unit === 'minutes').map((mode) => mode.id);
37
+ const timers = modeList(config.timers, timed, exports.DEFAULT_TIMERS);
36
38
  return {
37
39
  name: typeof config.name === 'string' && config.name.trim() ? config.name.trim() : 'Ventilation',
38
40
  ip,
39
41
  pollSeconds: Number.isFinite(poll) && poll >= MIN_POLL_SECONDS ? poll : 10,
40
- modeSwitches: modeList(config.modeSwitches, settable, exports.DEFAULT_MODE_SWITCHES),
41
- timers: modeList(config.timers, timed, exports.DEFAULT_TIMERS),
42
+ modeSwitches: modeList(config.modeSwitches, settable, exports.SWITCHABLE_MODES.filter((id) => !timers.includes(id))),
43
+ timers,
42
44
  modeNames: {
43
45
  ...exports.DEFAULT_MODE_NAMES,
44
46
  ...Object.fromEntries(modes_js_1.MODES.flatMap((mode) => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/names.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TileNames = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ /**
9
+ * The names you give the tiles in the Home app (their ConfiguredName), kept in a small file in
10
+ * Homebridge's storage so a restart doesn't put the plugin's names back. Without a file (tests),
11
+ * they're kept only while the plugin runs.
12
+ */
13
+ class TileNames {
14
+ accessory;
15
+ file;
16
+ names = {};
17
+ constructor(
18
+ /** Which accessory's names: one file can hold several ventilators'. */
19
+ accessory, file) {
20
+ this.accessory = accessory;
21
+ this.file = file;
22
+ if (!file)
23
+ return;
24
+ try {
25
+ const all = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
26
+ const own = all && typeof all === 'object' ? all[accessory] : undefined;
27
+ if (own && typeof own === 'object')
28
+ this.names = Object.fromEntries(Object.entries(own).filter((entry) => typeof entry[1] === 'string'));
29
+ }
30
+ catch {
31
+ // No file yet, or one this plugin can't read: start from the plugin's names.
32
+ }
33
+ }
34
+ get(tile) {
35
+ return this.names[tile];
36
+ }
37
+ set(tile, name) {
38
+ this.names[tile] = name;
39
+ if (!this.file)
40
+ return;
41
+ let all = {};
42
+ try {
43
+ const read = JSON.parse(node_fs_1.default.readFileSync(this.file, 'utf8'));
44
+ if (read && typeof read === 'object')
45
+ all = read;
46
+ }
47
+ catch {
48
+ // Nothing to keep from before.
49
+ }
50
+ all[this.accessory] = this.names;
51
+ node_fs_1.default.writeFileSync(this.file, `${JSON.stringify(all, null, 2)}\n`);
52
+ }
53
+ }
54
+ exports.TileNames = TileNames;
55
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AAEzB;;;;GAIG;AACH;IAKqB,SAAS;IACT,IAAI;IALf,KAAK,GAA2B,EAAE,CAAC;IAE3C;IACE,uEAAuE;IACtD,SAAiB,EACjB,IAAa;yBADb,SAAS;oBACT,IAAI;QAErB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAA+B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrG,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC/F,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,6EAA6E;QAC/E,CAAC;IACH,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,IAAY;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,IAAI,GAAG,GAA4B,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACrE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,GAAG,GAAG,IAA+B,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,iBAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.SystemairVentilator = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
4
8
  const config_js_1 = require("./config.js");
9
+ const names_js_1 = require("./names.js");
5
10
  const modes_js_1 = require("./modes.js");
6
11
  const registers_js_1 = require("./registers.js");
7
12
  const saveConnect_js_1 = require("./saveConnect.js");
@@ -25,6 +30,7 @@ class SystemairVentilator {
25
30
  client;
26
31
  services = [];
27
32
  readers = [];
33
+ names;
28
34
  state;
29
35
  /** The mode a timed one interrupted, to go back to when it's turned off. */
30
36
  steady = { mode: 'auto', manualLevel: (0, registers_js_1.fanLevel)('low').value };
@@ -37,6 +43,7 @@ class SystemairVentilator {
37
43
  this.api = api;
38
44
  this.config = (0, config_js_1.readConfig)(rawConfig);
39
45
  this.client = options.client ?? new saveConnect_js_1.SaveConnect({ host: this.config.ip });
46
+ this.names = new names_js_1.TileNames(this.config.name, options.namesFile ?? namesFileIn(api));
40
47
  this.build();
41
48
  if (options.autoPoll !== false) {
42
49
  void this.poll();
@@ -114,6 +121,22 @@ class SystemairVentilator {
114
121
  clearTimeout(this.readBack);
115
122
  this.readBack = setTimeout(() => void this.poll(), READ_BACK_MS);
116
123
  }
124
+ /**
125
+ * Adds a tile, named in the Home app: since iOS 16 the Home app shows a tile's own name only
126
+ * from its ConfiguredName, and every other tile as the accessory ("Ventilation"). A name you
127
+ * give it there is kept.
128
+ */
129
+ add(service) {
130
+ const { Characteristic: C } = this.hap;
131
+ const tile = `${service.UUID}:${service.subtype ?? ''}`;
132
+ if (!service.testCharacteristic(C.ConfiguredName))
133
+ service.addCharacteristic(C.ConfiguredName);
134
+ service
135
+ .getCharacteristic(C.ConfiguredName)
136
+ .updateValue(this.names.get(tile) ?? service.displayName)
137
+ .onSet((value) => this.names.set(tile, String(value)));
138
+ this.services.push(service);
139
+ }
117
140
  /** Shows a change at once, before the unit is read back. */
118
141
  assume(change) {
119
142
  if (!this.state)
@@ -151,16 +174,16 @@ class SystemairVentilator {
151
174
  await this.send((0, state_js_1.ecoWrite)(on), on ? 'ECO mode on' : 'ECO mode off');
152
175
  this.assume({ eco: on });
153
176
  });
154
- this.services.push(eco);
177
+ this.add(eco);
155
178
  }
156
179
  const humidity = new S.HumiditySensor(`${name} Humidity`);
157
180
  this.show(humidity, C.CurrentRelativeHumidity, (state) => clamp(state.humidity, 0, 100));
158
- this.services.push(humidity);
181
+ this.add(humidity);
159
182
  if (this.config.outdoorTemperature) {
160
183
  const outdoor = new S.TemperatureSensor(`${name} Outdoor`, 'outdoor');
161
184
  outdoor.getCharacteristic(C.CurrentTemperature).setProps({ minValue: -50, maxValue: 60 });
162
185
  this.show(outdoor, C.CurrentTemperature, (state) => state.outdoorTemperature);
163
- this.services.push(outdoor);
186
+ this.add(outdoor);
164
187
  }
165
188
  if (this.config.filter) {
166
189
  const filter = new S.FilterMaintenance(`${name} Filter`);
@@ -168,7 +191,7 @@ class SystemairVentilator {
168
191
  this.show(filter, C.FilterChangeIndication, (state) => (0, state_js_1.filterLifePercent)(state) <= 0
169
192
  ? C.FilterChangeIndication.CHANGE_FILTER
170
193
  : C.FilterChangeIndication.FILTER_OK);
171
- this.services.push(filter);
194
+ this.add(filter);
172
195
  }
173
196
  }
174
197
  buildFan(name) {
@@ -202,7 +225,7 @@ class SystemairVentilator {
202
225
  this.assume({ mode: 'manual' });
203
226
  }
204
227
  });
205
- this.services.push(fan);
228
+ this.add(fan);
206
229
  }
207
230
  async stopFans(state) {
208
231
  if (!state.manualStopAllowed) {
@@ -272,7 +295,7 @@ class SystemairVentilator {
272
295
  setTimeout(() => this.push(), 0);
273
296
  }
274
297
  });
275
- this.services.push(service);
298
+ this.add(service);
276
299
  }
277
300
  }
278
301
  /**
@@ -286,7 +309,12 @@ class SystemairVentilator {
286
309
  const duration = mode.duration;
287
310
  if (!duration)
288
311
  continue;
289
- const service = new S.Valve(`${name} ${this.modeName(id)} timer`, `timer-${id}`);
312
+ // Named after its mode, as it's what turns the mode on ("Ventilation Refresh"), unless the
313
+ // mode has a switch too.
314
+ const timerName = this.config.modeSwitches.includes(id)
315
+ ? `${name} ${this.modeName(id)} timer`
316
+ : `${name} ${this.modeName(id)}`;
317
+ const service = new S.Valve(timerName, `timer-${id}`);
290
318
  const running = (state) => state.mode === id;
291
319
  service.setCharacteristic(C.ValveType, C.ValveType.GENERIC_VALVE);
292
320
  this.show(service, C.Active, (state) => (running(state) ? C.Active.ACTIVE : C.Active.INACTIVE));
@@ -316,7 +344,7 @@ class SystemairVentilator {
316
344
  await this.send((0, state_js_1.durationWrite)(mode, minutes), `${this.modeName(id)} lasts ${minutes} ${duration.unit}`);
317
345
  this.assume({ durations: { ...state.durations, [id]: minutes } });
318
346
  });
319
- this.services.push(service);
347
+ this.add(service);
320
348
  }
321
349
  }
322
350
  durationWords(mode, state) {
@@ -355,10 +383,19 @@ class SystemairVentilator {
355
383
  this.assume({ mode: 'auto' });
356
384
  }
357
385
  });
358
- this.services.push(thermostat);
386
+ this.add(thermostat);
359
387
  }
360
388
  }
361
389
  exports.SystemairVentilator = SystemairVentilator;
390
+ /** The names file in Homebridge's storage, when there is one (not in tests). */
391
+ function namesFileIn(api) {
392
+ try {
393
+ return node_path_1.default.join(api.user.storagePath(), 'systemair-ventilator-names.json');
394
+ }
395
+ catch {
396
+ return undefined;
397
+ }
398
+ }
362
399
  function levelName(value) {
363
400
  return registers_js_1.FAN_LEVELS.find((level) => level.value === value)?.name ?? `level ${value}`;
364
401
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ventilator.js","sourceRoot":"","sources":["../src/ventilator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ventilator.js","sourceRoot":"","sources":["../src/ventilator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lv426/homebridge-systemair-enhanced",
3
3
  "displayName": "Systemair Ventilator",
4
- "version": "2.0.0",
4
+ "version": "2.1.0",
5
5
  "description": "Systemair SAVE ventilation in HomeKit through SAVE Connect: modes for scenes (Refresh, Fireplace, Crowded, Away, Holiday) with their durations, the fan's real speed, temperature, humidity and the filter.",
6
6
  "main": "dist/index.js",
7
7
  "type": "commonjs",