homebridge-flume 3.1.0 → 3.1.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 CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to homebridge-flume will be documented in this file.
4
4
 
5
+ ## 3.1.1 (2025-06-02)
6
+
7
+ ### Added
8
+
9
+ - Fetch device name from Flume locations api
10
+
11
+ ### Changed
12
+
13
+ - Updated dependencies
14
+
5
15
  ## 3.1.0 (2025-05-28)
6
16
 
7
17
  ### Added
@@ -26,7 +36,7 @@ All notable changes to homebridge-flume will be documented in this file.
26
36
 
27
37
  ### Changed
28
38
 
29
- While there are no new features, this release is a major rewrite to cleanup and modernize a lot of very old code. This will make it much easier to maintain and improve this plugin going forward.
39
+ - While there are no new features, this release is a major rewrite to cleanup and modernize a lot of very old code. This will make it much easier to maintain and improve this plugin going forward.
30
40
 
31
41
  ## 3.0.4 (2025-05-19)
32
42
 
@@ -1,5 +1,4 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig } from 'homebridge';
2
- import { Device } from '../model/device.js';
3
2
  export declare const PLATFORM_ALIAS = "Flume";
4
3
  export declare class FlumePlatform implements DynamicPlatformPlugin {
5
4
  readonly log: Logger;
@@ -9,10 +8,10 @@ export declare class FlumePlatform implements DynamicPlatformPlugin {
9
8
  private flumeAPI;
10
9
  private readonly accessories;
11
10
  constructor(log: Logger, config: PlatformConfig, api: API);
12
- didFinishLaunching(): Promise<void>;
13
- shutdown(): void;
14
- initializeDevice(device: Device): void;
15
- configureAccessory(accessory: PlatformAccessory): void;
16
- removeAccessory(accessory: PlatformAccessory): void;
17
11
  get packageVersion(): string;
12
+ private didFinishLaunching;
13
+ private shutdown;
14
+ private initializeAccessory;
15
+ configureAccessory(accessory: PlatformAccessory): void;
16
+ private removeAccessory;
18
17
  }
@@ -25,6 +25,17 @@ export class FlumePlatform {
25
25
  this.api.on('didFinishLaunching', () => this.didFinishLaunching());
26
26
  this.api.on('shutdown', () => this.shutdown());
27
27
  }
28
+ get packageVersion() {
29
+ try {
30
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
31
+ const packageJSONPath = path.join(__dirname, '../../package.json');
32
+ const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, { encoding: 'utf8' }));
33
+ return packageJSON.version;
34
+ }
35
+ catch (error) {
36
+ return '0.0.0';
37
+ }
38
+ }
28
39
  async didFinishLaunching() {
29
40
  if (!this.config.username ||
30
41
  !this.config.password ||
@@ -35,6 +46,7 @@ export class FlumePlatform {
35
46
  return;
36
47
  }
37
48
  this.flumeAPI = await FlumeAPI.connect(this.config.username, this.config.password, this.config.clientId, this.config.clientSecret, this.config.refreshInterval, this.config.units ?? VolumeUnits.GALLONS, this.storagePath, this.log, this.config.verbose);
49
+ const keepDevices = new Set();
38
50
  const excludeDevices = new Set(this.config.excludeDevices ?? []);
39
51
  const devices = this.flumeAPI.devices.filter((device) => !excludeDevices.has(device.id));
40
52
  if (devices.length === 0) {
@@ -44,12 +56,12 @@ export class FlumePlatform {
44
56
  return;
45
57
  }
46
58
  devices.forEach((device) => {
47
- this.initializeDevice(device);
59
+ keepDevices.add(device.id);
60
+ this.initializeAccessory(device);
48
61
  });
49
62
  // Remove any stale accessories that don't appear in the device list
50
63
  this.accessories.forEach((accessory) => {
51
- const findID = accessory.context.deviceId;
52
- if (!devices.find((test) => findID === test.id)) {
64
+ if (!keepDevices.has(accessory.context.deviceId)) {
53
65
  this.removeAccessory(accessory);
54
66
  }
55
67
  });
@@ -59,39 +71,33 @@ export class FlumePlatform {
59
71
  shutdown() {
60
72
  this.flumeAPI?.teardown();
61
73
  }
62
- initializeDevice(device) {
74
+ initializeAccessory(device) {
63
75
  const uuid = this.api.hap.uuid.generate(device.id);
76
+ const name = this.flumeAPI?.locationNames.get(device.locationId);
64
77
  let accessory = this.accessories.get(uuid);
65
78
  if (!accessory) {
66
- this.log.info(strings.newDevice, device.id);
79
+ this.log.info(strings.newDevice, name ?? device.id);
67
80
  accessory = new this.api.platformAccessory(strings.brand, uuid);
68
81
  accessory.context.deviceId = device.id;
82
+ accessory.context.deviceName = name;
69
83
  this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_ALIAS, [accessory]);
70
84
  this.accessories.set(uuid, accessory);
71
85
  }
72
- const name = this.flumeAPI?.locationNames.get(device.locationId);
86
+ else if (!accessory.context.deviceName) {
87
+ accessory.context.deviceName = name;
88
+ this.api.updatePlatformAccessories([accessory]);
89
+ }
73
90
  const units = this.config.units ?? VolumeUnits.GALLONS;
74
91
  new FlumeAccessory(this, accessory, device, name, units, this.config.disableDeviceLogging);
75
92
  }
76
93
  configureAccessory(accessory) {
77
- this.log.info(strings.restoringDevice, accessory.context.deviceId);
94
+ this.log.info(strings.restoringDevice, accessory.context.deviceName ?? accessory.context.deviceId);
78
95
  this.accessories.set(accessory.UUID, accessory);
79
96
  }
80
97
  removeAccessory(accessory) {
81
- this.log.info(strings.removeDevice, accessory.context.deviceId);
98
+ this.log.info(strings.removeDevice, accessory.context.deviceName ?? accessory.context.deviceId);
82
99
  this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_ALIAS, [accessory]);
83
100
  this.accessories.delete(accessory.UUID);
84
101
  }
85
- get packageVersion() {
86
- try {
87
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
88
- const packageJSONPath = path.join(__dirname, '../../package.json');
89
- const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, { encoding: 'utf8' }));
90
- return packageJSON.version;
91
- }
92
- catch (error) {
93
- return '0.0.0';
94
- }
95
- }
96
102
  }
97
103
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
package/dist/lang/en.js CHANGED
@@ -10,7 +10,7 @@ const langEn = {
10
10
  welcomeMessages: [
11
11
  'Please ★ this plugin on GitHub if you\'re finding it useful! https://github.com/mpatfield/homebridge-flume',
12
12
  'Would you like to sponsor this plugin? https://github.com/sponsors/mpatfield',
13
- 'This plugin currently has a 4★ rating on HOOBS! https://bit.ly/hb-flume-review',
13
+ 'This plugin currently has a 4★ rating on HOOBS! https://plugins.hoobs.org/plugin/homebridge-flume',
14
14
  'Want to see this plugin in your own language? Please create a ticket! https://github.com/mpatfield/homebridge-flume/issues',
15
15
  ],
16
16
  // Errors
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IAEb,UAAU;IACV,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,kBAAkB;IAE5B,UAAU;IACV,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,YAAY,EAAE,kBAAkB;IAChC,eAAe,EAAE,mBAAmB;IACpC,eAAe,EAAE;QACf,4GAA4G;QAC5G,8EAA8E;QAC9E,gFAAgF;QAChF,4HAA4H;KAC7H;IAED,SAAS;IACT,SAAS,EAAE,2IAA2I;IACtJ,cAAc,EAAE,oCAAoC;IACpD,SAAS,EAAE,uCAAuC;IAClD,cAAc,EAAE,oEAAoE;IACpF,SAAS,EAAE,yCAAyC;IAEpD,SAAS;IACT,UAAU,EAAE,gBAAgB;IAC5B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,wBAAwB;IACzC,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,mBAAmB;IAEpC,wBAAwB;IACxB,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,QAAQ;IAC/B,wBAAwB,EAAE,YAAY;IACtC,0BAA0B,EAAE,cAAc;IAC1C,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,OAAO;CACpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IAEb,UAAU;IACV,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,kBAAkB;IAE5B,UAAU;IACV,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,YAAY,EAAE,kBAAkB;IAChC,eAAe,EAAE,mBAAmB;IACpC,eAAe,EAAE;QACf,4GAA4G;QAC5G,8EAA8E;QAC9E,mGAAmG;QACnG,4HAA4H;KAC7H;IAED,SAAS;IACT,SAAS,EAAE,2IAA2I;IACtJ,cAAc,EAAE,oCAAoC;IACpD,SAAS,EAAE,uCAAuC;IAClD,cAAc,EAAE,oEAAoE;IACpF,SAAS,EAAE,yCAAyC;IAEpD,SAAS;IACT,UAAU,EAAE,gBAAgB;IAC5B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,wBAAwB;IACzC,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,mBAAmB;IAEpC,wBAAwB;IACxB,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,QAAQ;IAC/B,wBAAwB,EAAE,YAAY;IACtC,0BAA0B,EAAE,cAAc;IAC1C,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,OAAO;CACpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -12,7 +12,6 @@ export declare class FlumeAPI {
12
12
  private readonly log;
13
13
  private readonly verbose;
14
14
  private _auth?;
15
- private userId?;
16
15
  readonly locationNames: Map<string, string>;
17
16
  private readonly _devices;
18
17
  private retryIndex;
package/dist/model/api.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import axios, { isAxiosError } from 'axios';
2
- import { jwtDecode } from 'jwt-decode';
3
2
  import { Auth } from './auth.js';
4
3
  import { Device } from './device.js';
5
4
  import * as Types from './types.js';
@@ -35,7 +34,6 @@ export class FlumeAPI {
35
34
  log;
36
35
  verbose;
37
36
  _auth;
38
- userId;
39
37
  locationNames = new Map();
40
38
  _devices = new Map();
41
39
  retryIndex = 0;
@@ -140,7 +138,6 @@ export class FlumeAPI {
140
138
  this._auth = value;
141
139
  if (this._auth) {
142
140
  this._auth.save(this.storagePath, this.clientId);
143
- this.userId = jwtDecode(this._auth.token).user_id;
144
141
  }
145
142
  }
146
143
  async authenticate() {
@@ -190,7 +187,7 @@ export class FlumeAPI {
190
187
  }
191
188
  async getLocations() {
192
189
  await this.refreshAuthIfNecessary();
193
- const locationDatum = await this.do(this.getLocations.name, null, true, true, URL_GET_LOCATIONS, this.userId);
190
+ const locationDatum = await this.do(this.getLocations.name, null, true, true, URL_GET_LOCATIONS, this.auth?.userId);
194
191
  if (!locationDatum) {
195
192
  return false;
196
193
  }
@@ -201,7 +198,7 @@ export class FlumeAPI {
201
198
  }
202
199
  async getDevices() {
203
200
  await this.refreshAuthIfNecessary();
204
- const deviceDatum = await this.do(this.getDevices.name, null, true, true, URL_GET_DEVICES, this.userId);
201
+ const deviceDatum = await this.do(this.getDevices.name, null, true, true, URL_GET_DEVICES, this.auth?.userId);
205
202
  if (!deviceDatum) {
206
203
  return false;
207
204
  }
@@ -214,14 +211,14 @@ export class FlumeAPI {
214
211
  return true;
215
212
  }
216
213
  async getDeviceData(deviceId) {
217
- const deviceData = await this.do(this.getDeviceData.name, null, false, false, URL_GET_DEVICE, this.userId, deviceId);
214
+ const deviceData = await this.do(this.getDeviceData.name, null, false, false, URL_GET_DEVICE, this.auth?.userId, deviceId);
218
215
  if (!deviceData) {
219
216
  return null;
220
217
  }
221
218
  return deviceData;
222
219
  }
223
220
  async getLeakData(deviceId) {
224
- const leakData = await this.do(this.getLeakData.name, null, false, false, URL_LEAK_INFO, this.userId, deviceId);
221
+ const leakData = await this.do(this.getLeakData.name, null, false, false, URL_LEAK_INFO, this.auth?.userId, deviceId);
225
222
  if (!leakData) {
226
223
  return null;
227
224
  }
@@ -261,7 +258,7 @@ export class FlumeAPI {
261
258
  },
262
259
  ],
263
260
  };
264
- const usageData = await this.do(this.getUsageData.name, data, false, false, URL_WATER_USAGE, this.userId, deviceId);
261
+ const usageData = await this.do(this.getUsageData.name, data, false, false, URL_WATER_USAGE, this.auth?.userId, deviceId);
265
262
  if (!usageData) {
266
263
  return null;
267
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/model/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/model/api.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import { TokenData } from './types.js';
2
2
  export declare class Auth {
3
3
  private readonly data;
4
4
  private readonly created;
5
+ private _userId;
5
6
  constructor(data: TokenData, created?: number);
6
7
  get token(): string;
8
+ get userId(): string | undefined;
7
9
  get refresh(): string;
8
10
  get expiry(): number;
9
11
  private static digest;
@@ -1,10 +1,12 @@
1
1
  import crypto from 'crypto';
2
2
  import { safeSetItem, safeGetItem } from '../tools/storage.js';
3
3
  import { DAY, SECOND } from '../tools/time.js';
4
+ import { jwtDecode } from 'jwt-decode';
4
5
  const STORAGE_AUTH_KEY = 'auth';
5
6
  export class Auth {
6
7
  data;
7
8
  created;
9
+ _userId;
8
10
  constructor(data, created = Date.now()) {
9
11
  this.data = data;
10
12
  this.created = created;
@@ -12,6 +14,12 @@ export class Auth {
12
14
  get token() {
13
15
  return this.data.access_token;
14
16
  }
17
+ get userId() {
18
+ if (!this._userId) {
19
+ this._userId = jwtDecode(this.token).user_id;
20
+ }
21
+ return this._userId;
22
+ }
15
23
  get refresh() {
16
24
  return this.data.refresh_token;
17
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/model/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/model/auth.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-flume",
3
3
  "alias": "Flume",
4
4
  "displayName": "Flume",
5
- "version": "3.1.0",
5
+ "version": "3.1.1",
6
6
  "author": {
7
7
  "name": "mpatfield"
8
8
  },
@@ -1,10 +0,0 @@
1
- {
2
- "files.eol": "\n",
3
- "editor.codeActionsOnSave": {
4
- "source.fixAll.eslint": "explicit"
5
- },
6
- "editor.rulers": [
7
- 140
8
- ],
9
- "eslint.enable": true
10
- }
package/eslint.config.js DELETED
@@ -1,46 +0,0 @@
1
- import eslint from '@eslint/js';
2
- import tseslint from 'typescript-eslint';
3
-
4
- export default tseslint.config(
5
- {
6
- ignores: ['dist/**', '**/*.js'],
7
- },
8
- {
9
- files: ['**/*.js'],
10
- rules: {},
11
- languageOptions: {},
12
- linterOptions: {
13
- noInlineConfig: false,
14
- },
15
- processor: null,
16
- },
17
- {
18
- files: ['**/*.ts'],
19
- rules: {
20
- 'quotes': ['error', 'single'],
21
- 'indent': ['error', 2, { 'SwitchCase': 0 }],
22
- 'linebreak-style': ['error', 'unix'],
23
- 'semi': ['error', 'always'],
24
- 'comma-dangle': ['error', 'always-multiline'],
25
- 'dot-notation': 'error',
26
- 'eqeqeq': ['error', 'smart'],
27
- 'curly': ['error', 'all'],
28
- 'brace-style': ['error'],
29
- 'prefer-arrow-callback': 'warn',
30
- 'max-len': ['warn', 160],
31
- 'object-curly-spacing': ['error', 'always'],
32
- 'no-use-before-define': 'off',
33
- '@typescript-eslint/no-use-before-define': ['error', { 'classes': false, 'enums': false }],
34
- '@typescript-eslint/no-unused-vars': ['error', { 'caughtErrors': 'none' }],
35
- },
36
- },
37
- {
38
- files: ['**/*.ts'],
39
- languageOptions: {
40
- ecmaVersion: 2022,
41
- sourceType: 'module',
42
- },
43
- },
44
- eslint.configs.recommended,
45
- ...tseslint.configs.recommended,
46
- );
@@ -1,167 +0,0 @@
1
- import { Characteristic, Formats, HAP, LogLevel, Perms, PlatformAccessory, Service } from 'homebridge';
2
-
3
- import { FlumePlatform } from './platform.js';
4
-
5
- import strings from '../lang/en.js';
6
- import { Device } from '../model/device.js';
7
- import { VolumeUnits } from '../model/types.js';
8
-
9
- class CustomCharacteristic {
10
- constructor(readonly uuid: string, readonly name: string) {
11
- }
12
- }
13
-
14
- const TODAY_USAGE = new CustomCharacteristic('f25cc272-83cb-46a7-915a-259fa17364ed', strings.todayUsage);
15
- const MONTH_USAGE = new CustomCharacteristic('580e224d-edf2-4c23-af79-cdbebfc509c5', strings.monthUsage);
16
- const LAST_MONTH_USAGE = new CustomCharacteristic('69129d54-bdb8-46a1-a93b-f7e8d16d32a8', strings.lastMonth);
17
-
18
- export class FlumeAccessory {
19
- private readonly HAP: HAP;
20
- private readonly Characteristic: typeof Characteristic;
21
- private readonly Service: typeof Service;
22
-
23
- private readonly leakService: Service;
24
-
25
- private isLeakDetected: boolean = false;
26
- private isBatteryLow: boolean = false;
27
- private isDisconnected: boolean = true;
28
-
29
- private readonly charLeakDetected: typeof Characteristic.LeakDetected;
30
- private readonly charStatusLowBattery: typeof Characteristic.StatusLowBattery;
31
- private readonly charStatusFault: typeof Characteristic.StatusFault;
32
-
33
- private readonly todayUsageChar: Characteristic;
34
- private readonly monthUsageChar: Characteristic;
35
- private readonly lastMonthUsageChar: Characteristic;
36
-
37
- constructor(
38
- private readonly platform: FlumePlatform,
39
- private readonly accessory: PlatformAccessory,
40
- private readonly device: Device,
41
- name: string | null | undefined,
42
- private readonly units: VolumeUnits,
43
- private readonly disableLogging: boolean,
44
- ) {
45
-
46
- this.HAP = platform.api.hap;
47
- this.Characteristic = this.HAP.Characteristic;
48
- this.Service = this.HAP.Service;
49
-
50
- accessory.getService(this.Service.AccessoryInformation)!
51
- .setCharacteristic(this.Characteristic.Name, name ?? strings.brand)
52
- .setCharacteristic(this.Characteristic.ConfiguredName, name ?? strings.brand)
53
- .setCharacteristic(this.Characteristic.Manufacturer, strings.brand)
54
- .setCharacteristic(this.Characteristic.SerialNumber, device.id)
55
- .setCharacteristic(this.Characteristic.Model, device.productName)
56
- .setCharacteristic(this.Characteristic.FirmwareRevision, platform.packageVersion);
57
-
58
- this.charLeakDetected = this.Characteristic.LeakDetected;
59
- this.charStatusLowBattery = this.Characteristic.StatusLowBattery;
60
- this.charStatusFault = this.Characteristic.StatusFault;
61
-
62
- this.leakService = this.accessory.getService(this.HAP.Service.LeakSensor)
63
- || this.accessory.addService(this.HAP.Service.LeakSensor);
64
-
65
- this.isLeakDetected = this.leakService.getCharacteristic(this.charLeakDetected).value === this.charLeakDetected.LEAK_DETECTED;
66
- this.isBatteryLow = this.leakService.getCharacteristic(this.charStatusLowBattery).value === this.charStatusLowBattery.BATTERY_LEVEL_LOW;
67
- this.isDisconnected = this.leakService.getCharacteristic(this.charStatusFault).value === this.charStatusFault.GENERAL_FAULT;
68
-
69
- this.clearCustomCharacteristics();
70
-
71
- this.todayUsageChar = this.attachCustomCharacteristic(TODAY_USAGE);
72
- this.monthUsageChar = this.attachCustomCharacteristic(MONTH_USAGE);
73
- this.lastMonthUsageChar = this.attachCustomCharacteristic(LAST_MONTH_USAGE);
74
-
75
- device.setOnUpdateCallback(this.handleUpdate.bind(this));
76
-
77
- this.updateCharacteristics();
78
- }
79
-
80
- private handleUpdate(id: string): void {
81
- if (id === this.device.id) {
82
- this.updateCharacteristics();
83
- }
84
- }
85
-
86
- private updateCharacteristics(): void {
87
-
88
- if (this.device.isLeakDetected !== this.isLeakDetected) {
89
- this.isLeakDetected = this.device.isLeakDetected;
90
- const value = this.isLeakDetected ? this.charLeakDetected.LEAK_DETECTED : this.charLeakDetected.LEAK_NOT_DETECTED;
91
- this.leakService.updateCharacteristic(this.charLeakDetected, value);
92
- this.logState(this.isLeakDetected ? LogLevel.ERROR : LogLevel.INFO, this.isLeakDetected ? strings.leakDetected : strings.leakNotDetected);
93
- }
94
-
95
- if (this.device.isBatteryLow !== this.isBatteryLow) {
96
- this.isBatteryLow = this.device.isBatteryLow;
97
- const value = this.isBatteryLow ? this.charStatusLowBattery.BATTERY_LEVEL_LOW : this.charStatusLowBattery.BATTERY_LEVEL_NORMAL;
98
- this.leakService.updateCharacteristic(this.charStatusLowBattery, value);
99
- this.logState(this.isBatteryLow ? LogLevel.WARN : LogLevel.INFO, this.isBatteryLow ? strings.batteryLow : strings.batteryNormal);
100
- }
101
-
102
- if (this.device.isDisconnected !== this.isDisconnected) {
103
- this.isDisconnected = this.device.isDisconnected;
104
- const value = this.isDisconnected ? this.charStatusFault.GENERAL_FAULT : this.charStatusFault.NO_FAULT;
105
- this.leakService.updateCharacteristic(this.charStatusFault, value);
106
- this.logState(this.isDisconnected ? LogLevel.WARN : LogLevel.INFO, this.isDisconnected ? strings.connectionFault : strings.connectionNormal);
107
- }
108
-
109
- this.todayUsageChar.updateValue(this.device.usageToday);
110
- this.monthUsageChar.updateValue(this.device.usageMonth);
111
- this.lastMonthUsageChar.updateValue(this.device.usageLastMonth);
112
- }
113
-
114
- private stringForUnits(): string {
115
- switch(this.units) {
116
- case VolumeUnits.GALLONS: return strings.customCharUnitsGallons;
117
- case VolumeUnits.LITERS: return strings.customCharUnitsLiters;
118
- case VolumeUnits.CUBIC_FEET: return strings.customCharUnitsCubicFeet;
119
- case VolumeUnits.CUBIC_METERS: return strings.customCharUnitsCubicMeters;
120
- }
121
- }
122
-
123
- private clearCustomCharacteristics() {
124
-
125
- const allowedUUIDs = new Set([
126
- this.charLeakDetected.UUID,
127
- this.charStatusLowBattery.UUID,
128
- this.charStatusFault.UUID,
129
- ]);
130
-
131
- const charsToRemove = this.leakService.characteristics.filter(char => !allowedUUIDs.has(char.UUID));
132
- charsToRemove.forEach(char => {
133
- this.leakService.removeCharacteristic(char);
134
- });
135
- }
136
-
137
- private attachCustomCharacteristic(char: CustomCharacteristic): Characteristic {
138
- let result: Characteristic;
139
-
140
- if (this.leakService.testCharacteristic(char.name)) {
141
- result = this.leakService.getCharacteristic(char.name)!;
142
- } else {
143
-
144
- const unitsString = this.stringForUnits();
145
- const customCharacteristic = class TodayUsage extends this.Characteristic {
146
- constructor() {
147
- super(char.name, char.uuid, {
148
- format: Formats.UINT32,
149
- perms: [ Perms.PAIRED_READ, Perms.NOTIFY ],
150
- unit: unitsString,
151
- });
152
- this.value = this.getDefaultValue();
153
- }
154
- };
155
- result = this.leakService.addCharacteristic(customCharacteristic);
156
- result.UUID = char.uuid;
157
- }
158
-
159
- return result;
160
- }
161
-
162
- private logState(level: LogLevel, message: string) {
163
- if (!this.disableLogging) {
164
- this.platform.log.log(level, '[%s] %s', this.device.id, message);
165
- }
166
- }
167
- }
@@ -1,10 +0,0 @@
1
- import type { API } from 'homebridge';
2
-
3
- import { FlumePlatform, PLATFORM_ALIAS } from './platform.js';
4
-
5
- /**
6
- * This method registers the platform with Homebridge
7
- */
8
- export default (api: API) => {
9
- api.registerPlatform(PLATFORM_ALIAS, FlumePlatform);
10
- };