homebridge-flume 3.1.3 → 3.1.5-beta.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
@@ -6,6 +6,14 @@ Would you like to see Homebridge Flume in your language? Please consider [gettin
6
6
 
7
7
  All notable changes to homebridge-flume will be documented in this file.
8
8
 
9
+ # 3.1.4 (2025-07-16)
10
+
11
+ ### Fixed
12
+ - Incorrectly logging an error when there are no notifications
13
+
14
+ ### Changed
15
+ - Updated developer dependencies
16
+
9
17
  ## 3.1.3 (2025-07-14)
10
18
 
11
19
  ### Added
package/README.md CHANGED
@@ -57,6 +57,7 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
57
57
  - `password` - (Required) Flume password
58
58
  - `clientId`/`clientSecret` - (Required) Flume Client ID, found at [https://portal.flumetech.com](https://portal.flumetech.com)
59
59
  - `refreshInterval` - (Required) number of minutes between updates; must be `1` or more
60
+ - `useNotifications` - (Optional) if true, unread usage alerts will cause leak detection notifications
60
61
  - `units` - (Required) the type of units to use for custom characteristics
61
62
  - `disableDeviceLogging` - (Optional) if true, then accessory status changes will not be logged
62
63
  - `verbose` - (Optional) if true, there will be additional logging for debugging purposes
@@ -43,6 +43,11 @@
43
43
  "minimum": 1,
44
44
  "required": true
45
45
  },
46
+ "useNotifications": {
47
+ "type": "boolean",
48
+ "title": "${config.title.useNotifications}",
49
+ "description": "${config.description.useNotifications}"
50
+ },
46
51
  "units": {
47
52
  "type": "string",
48
53
  "title": "${config.title.units}",
@@ -87,6 +92,7 @@
87
92
  "clientId",
88
93
  "clientSecret",
89
94
  "refreshInterval",
95
+ "useNotifications",
90
96
  "units",
91
97
  "disableDeviceLogging",
92
98
  "verbose",
@@ -1,11 +1,12 @@
1
- import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig } from 'homebridge';
1
+ import { API, DynamicPlatformPlugin, Logger, PlatformAccessory } from 'homebridge';
2
+ import { FlumeConfig } from '../model/types.js';
2
3
  export declare class FlumePlatform implements DynamicPlatformPlugin {
3
4
  readonly log: Logger;
4
- readonly config: PlatformConfig;
5
+ readonly config: FlumeConfig;
5
6
  readonly api: API;
6
7
  private flumeAPI;
7
8
  private readonly accessories;
8
- constructor(log: Logger, config: PlatformConfig, api: API);
9
+ constructor(log: Logger, config: FlumeConfig, api: API);
9
10
  private didFinishLaunching;
10
11
  private shutdown;
11
12
  private initializeAccessory;
@@ -29,7 +29,7 @@ export class FlumePlatform {
29
29
  this.log.error(strings.errors.badConfig, PROJECT_HOMEPAGE);
30
30
  return;
31
31
  }
32
- 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.api.user.persistPath(), this.log, this.config.verbose);
32
+ this.flumeAPI = await FlumeAPI.connect(this.config, this.api.user.persistPath(), this.log);
33
33
  const keepDevices = new Set();
34
34
  const excludeDevices = new Set(this.config.excludeDevices ?? []);
35
35
  const devices = this.flumeAPI.devices.filter((device) => !excludeDevices.has(device.id));
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,aAAa;IAOb;IACA;IACA;IAPH,QAAQ,GAAoB,IAAI,CAAC;IAExB,WAAW,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEzE,YACW,GAAW,EACX,MAAsB,EACtB,GAAQ;QAFR,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAK;QAGjB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,iDAAiD,EACjD,UAAU,EAAE,EACZ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,EACf,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAC3B,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAE9B,IACE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACrB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACrB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACrB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;YACzB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAC5B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,EACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAC3B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,CAAC,OAAO,CACpB,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEO,mBAAmB,CAAC,MAAc;QAExC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEjE,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YAEf,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACxE,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YAEpC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAExC,CAAC;aAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACzC,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC;QACvD,IAAI,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC9F,CAAC;IAED,kBAAkB,CAAC,SAA4B;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAEO,eAAe,CAAC,SAA4B;QAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxG,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,4 @@
21
21
  </br><button type="button" class="btn btn-primary" id="introContinue" i18n="continue", i18n_replace="arrow"></button>
22
22
  </div>
23
23
 
24
- <script src="ui.js?v=3.1.3"></script>
24
+ <script src="ui.js?v=3.1.5-beta.0"></script>
package/dist/i18n/de.d.ts CHANGED
@@ -1,4 +1,70 @@
1
1
  declare const de: {
2
+ config: {
3
+ continue: string;
4
+ needed: string;
5
+ support: string;
6
+ thankYou: string;
7
+ description: {
8
+ clientSecret: string;
9
+ disableDeviceLogging: string;
10
+ excludeDevices: string;
11
+ refreshInterval: string;
12
+ units: string;
13
+ useNotifications: string;
14
+ verbose: string;
15
+ };
16
+ enumNames: {
17
+ gallons: string;
18
+ liters: string;
19
+ cubicFeet: string;
20
+ cubicMeters: string;
21
+ };
22
+ title: {
23
+ clientId: string;
24
+ clientSecret: string;
25
+ deviceId: string;
26
+ disableDeviceLogging: string;
27
+ excludeDevices: string;
28
+ password: string;
29
+ refreshInterval: string;
30
+ units: string;
31
+ useNotifications: string;
32
+ username: string;
33
+ verbose: string;
34
+ };
35
+ };
36
+ customChar: {
37
+ lastMonth: string;
38
+ monthUsage: string;
39
+ todayUsage: string;
40
+ };
41
+ errors: {
42
+ badConfig: string;
43
+ httpRetry: string;
44
+ noDataReceived: string;
45
+ noDevices: string;
46
+ noRefreshToken: string;
47
+ };
48
+ general: {
49
+ brand: string;
50
+ redacted: string;
51
+ };
52
+ startup: {
53
+ complete: string;
54
+ newDevice: string;
55
+ removeDevice: string;
56
+ restoringDevice: string;
57
+ welcome: string[];
58
+ };
59
+ status: {
60
+ batteryLow: string;
61
+ batteryNormal: string;
62
+ connectionFault: string;
63
+ connectionNormal: string;
64
+ leakDetected: string;
65
+ leakNotDetected: string;
66
+ };
67
+ } & {
2
68
  config: {
3
69
  continue: string;
4
70
  needed: string;
package/dist/i18n/de.js CHANGED
@@ -1,4 +1,6 @@
1
- const de = {
1
+ import merge from 'lodash.merge';
2
+ import en from './en.js';
3
+ const overrides = {
2
4
  config: {
3
5
  continue: 'Continue %s',
4
6
  needed: 'Sie benötigen Ihren Benutzernamen, Ihr Passwort und Ihre Client-ID/Geheimnis von %s',
@@ -67,5 +69,6 @@ const de = {
67
69
  leakNotDetected: 'Keine Lecks festgestellt',
68
70
  },
69
71
  };
72
+ const de = merge({}, en, overrides);
70
73
  export default de;
71
74
  //# sourceMappingURL=de.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG;IAET,MAAM,EAAE;QAEN,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,qFAAqF;QAC7F,OAAO,EAAE,mDAAmD;QAC5D,QAAQ,EAAE,6CAA6C;QAEvD,WAAW,EAAE;YACX,YAAY,EAAE,0FAA0F;YACxG,oBAAoB,EAAE,mEAAmE;YACzF,cAAc,EAAE,0EAA0E;YAC1F,eAAe,EAAE,0EAA0E;YAC3F,KAAK,EAAE,wEAAwE;YAC/E,OAAO,EAAE,8CAA8C;SACxD;QAED,SAAS,EAAE;YACT,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,YAAY;SAC1B;QAED,KAAK,EAAE;YACL,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,iBAAiB;YAC/B,QAAQ,EAAE,WAAW;YACrB,oBAAoB,EAAE,oCAAoC;YAC1D,cAAc,EAAE,qBAAqB;YACrC,QAAQ,EAAE,gBAAgB;YAC1B,eAAe,EAAE,0BAA0B;YAC3C,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,SAAS;SACnB;KACF;IAED,UAAU,EAAE;QACV,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,cAAc;QAC1B,UAAU,EAAE,OAAO;KACpB;IAED,MAAM,EAAE;QACN,SAAS,EAAE,gHAAgH;QAC3H,SAAS,EAAE,2DAA2D;QACtE,cAAc,EAAE,uCAAuC;QACvD,SAAS,EAAE,gDAAgD;QAC3D,cAAc,EAAE,0FAA0F;KAC3G;IAED,OAAO,EAAE;QACP,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,mBAAmB;KAC9B;IAED,OAAO,EAAE;QACP,QAAQ,EAAE,8BAA8B;QACxC,SAAS,EAAE,yBAAyB;QACpC,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,yBAAyB;QAC1C,OAAO,EAAE;YACP,8GAA8G;YAC9G,2EAA2E;YAC3E,qFAAqF;SACtF;KACF;IAED,MAAM,EAAE;QACN,UAAU,EAAE,4BAA4B;QACxC,aAAa,EAAE,qBAAqB;QACpC,eAAe,EAAE,2BAA2B;QAC5C,gBAAgB,EAAE,8BAA8B;QAChD,YAAY,EAAE,eAAe;QAC7B,eAAe,EAAE,0BAA0B;KAC5C;CACF,CAAC;AAEF,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,SAAS,GAAG;IAEhB,MAAM,EAAE;QAEN,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,qFAAqF;QAC7F,OAAO,EAAE,mDAAmD;QAC5D,QAAQ,EAAE,6CAA6C;QAEvD,WAAW,EAAE;YACX,YAAY,EAAE,0FAA0F;YACxG,oBAAoB,EAAE,mEAAmE;YACzF,cAAc,EAAE,0EAA0E;YAC1F,eAAe,EAAE,0EAA0E;YAC3F,KAAK,EAAE,wEAAwE;YAC/E,OAAO,EAAE,8CAA8C;SACxD;QAED,SAAS,EAAE;YACT,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,YAAY;SAC1B;QAED,KAAK,EAAE;YACL,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,iBAAiB;YAC/B,QAAQ,EAAE,WAAW;YACrB,oBAAoB,EAAE,oCAAoC;YAC1D,cAAc,EAAE,qBAAqB;YACrC,QAAQ,EAAE,gBAAgB;YAC1B,eAAe,EAAE,0BAA0B;YAC3C,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,SAAS;SACnB;KACF;IAED,UAAU,EAAE;QACV,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,cAAc;QAC1B,UAAU,EAAE,OAAO;KACpB;IAED,MAAM,EAAE;QACN,SAAS,EAAE,gHAAgH;QAC3H,SAAS,EAAE,2DAA2D;QACtE,cAAc,EAAE,uCAAuC;QACvD,SAAS,EAAE,gDAAgD;QAC3D,cAAc,EAAE,0FAA0F;KAC3G;IAED,OAAO,EAAE;QACP,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,mBAAmB;KAC9B;IAED,OAAO,EAAE;QACP,QAAQ,EAAE,8BAA8B;QACxC,SAAS,EAAE,yBAAyB;QACpC,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,yBAAyB;QAC1C,OAAO,EAAE;YACP,8GAA8G;YAC9G,2EAA2E;YAC3E,qFAAqF;SACtF;KACF;IAED,MAAM,EAAE;QACN,UAAU,EAAE,4BAA4B;QACxC,aAAa,EAAE,qBAAqB;QACpC,eAAe,EAAE,2BAA2B;QAC5C,gBAAgB,EAAE,8BAA8B;QAChD,YAAY,EAAE,eAAe;QAC7B,eAAe,EAAE,0BAA0B;KAC5C;CACF,CAAC;AAEF,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AAEpC,eAAe,EAAE,CAAC"}
package/dist/i18n/en.d.ts CHANGED
@@ -10,6 +10,7 @@ declare const en: {
10
10
  excludeDevices: string;
11
11
  refreshInterval: string;
12
12
  units: string;
13
+ useNotifications: string;
13
14
  verbose: string;
14
15
  };
15
16
  enumNames: {
@@ -27,6 +28,7 @@ declare const en: {
27
28
  password: string;
28
29
  refreshInterval: string;
29
30
  units: string;
31
+ useNotifications: string;
30
32
  username: string;
31
33
  verbose: string;
32
34
  };
package/dist/i18n/en.js CHANGED
@@ -10,6 +10,7 @@ const en = {
10
10
  excludeDevices: 'Look for "Adding new device: [Device ID]" in the logs',
11
11
  refreshInterval: 'Number of minutes between requests to Flume for leak information',
12
12
  units: 'Volume units to use for custom characteristics',
13
+ useNotifications: 'If true, an unread usage alert notification will be considered a leak',
13
14
  verbose: 'Enable additional debug logging',
14
15
  },
15
16
  enumNames: {
@@ -27,6 +28,7 @@ const en = {
27
28
  password: 'Flume Password',
28
29
  refreshInterval: 'Refresh Interval',
29
30
  units: 'Units',
31
+ useNotifications: 'Include Usage Alerts',
30
32
  username: 'Flume Username',
31
33
  verbose: 'Verbose',
32
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG;IAET,MAAM,EAAE;QAEN,QAAQ,EAAE,aAAa,EAAE,kBAAkB;QAC3C,MAAM,EAAE,qEAAqE,EAAE,MAAM;QACrF,OAAO,EAAE,sCAAsC,EAAE,MAAM;QACvD,QAAQ,EAAE,2CAA2C;QAErD,WAAW,EAAE;YACX,YAAY,EAAE,qFAAqF;YACnG,oBAAoB,EAAE,2DAA2D;YACjF,cAAc,EAAE,uDAAuD;YACvE,eAAe,EAAE,kEAAkE;YACnF,KAAK,EAAE,gDAAgD;YACvD,OAAO,EAAE,iCAAiC;SAC3C;QAED,SAAS,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,cAAc;SAC5B;QAED,KAAK,EAAE;YACL,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,eAAe;YAC7B,QAAQ,EAAE,WAAW;YACrB,oBAAoB,EAAE,wBAAwB;YAC9C,cAAc,EAAE,iBAAiB;YACjC,QAAQ,EAAE,gBAAgB;YAC1B,eAAe,EAAE,kBAAkB;YACnC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,SAAS;SACnB;KACF;IAED,UAAU,EAAE;QACV,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,OAAO;KACpB;IAED,MAAM,EAAE;QACN,SAAS,EAAE,6FAA6F;QACxG,SAAS,EAAE,yCAAyC,EAAE,SAAS;QAC/D,cAAc,EAAE,oCAAoC;QACpD,SAAS,EAAE,uCAAuC;QAClD,cAAc,EAAE,oEAAoE;KACrF;IAED,OAAO,EAAE;QACP,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,kBAAkB;KAC7B;IAED,OAAO,EAAE;QACP,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,mBAAmB;QACpC,OAAO,EAAE;YACP,4GAA4G;YAC5G,8EAA8E;YAC9E,4EAA4E;YAC5E,qHAAqH;SACtH;KACF;IAED,MAAM,EAAE;QACN,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,mBAAmB;QAClC,eAAe,EAAE,wBAAwB;QACzC,gBAAgB,EAAE,qBAAqB;QACvC,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,mBAAmB;KACrC;CACF,CAAC;AAEF,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG;IAET,MAAM,EAAE;QAEN,QAAQ,EAAE,aAAa,EAAE,kBAAkB;QAC3C,MAAM,EAAE,qEAAqE,EAAE,MAAM;QACrF,OAAO,EAAE,sCAAsC,EAAE,MAAM;QACvD,QAAQ,EAAE,2CAA2C;QAErD,WAAW,EAAE;YACX,YAAY,EAAE,qFAAqF;YACnG,oBAAoB,EAAE,2DAA2D;YACjF,cAAc,EAAE,uDAAuD;YACvE,eAAe,EAAE,kEAAkE;YACnF,KAAK,EAAE,gDAAgD;YACvD,gBAAgB,EAAE,uEAAuE;YACzF,OAAO,EAAE,iCAAiC;SAC3C;QAED,SAAS,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,cAAc;SAC5B;QAED,KAAK,EAAE;YACL,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,eAAe;YAC7B,QAAQ,EAAE,WAAW;YACrB,oBAAoB,EAAE,wBAAwB;YAC9C,cAAc,EAAE,iBAAiB;YACjC,QAAQ,EAAE,gBAAgB;YAC1B,eAAe,EAAE,kBAAkB;YACnC,KAAK,EAAE,OAAO;YACd,gBAAgB,EAAE,sBAAsB;YACxC,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,SAAS;SACnB;KACF;IAED,UAAU,EAAE;QACV,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,OAAO;KACpB;IAED,MAAM,EAAE;QACN,SAAS,EAAE,6FAA6F;QACxG,SAAS,EAAE,yCAAyC,EAAE,SAAS;QAC/D,cAAc,EAAE,oCAAoC;QACpD,SAAS,EAAE,uCAAuC;QAClD,cAAc,EAAE,oEAAoE;KACrF;IAED,OAAO,EAAE;QACP,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,kBAAkB;KAC7B;IAED,OAAO,EAAE;QACP,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,mBAAmB;QACpC,OAAO,EAAE;YACP,4GAA4G;YAC5G,8EAA8E;YAC9E,4EAA4E;YAC5E,qHAAqH;SACtH;KACF;IAED,MAAM,EAAE;QACN,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,mBAAmB;QAClC,eAAe,EAAE,wBAAwB;QACzC,gBAAgB,EAAE,qBAAqB;QACvC,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,mBAAmB;KACrC;CACF,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -19,6 +19,7 @@ declare const translations: {
19
19
  excludeDevices: string;
20
20
  refreshInterval: string;
21
21
  units: string;
22
+ useNotifications: string;
22
23
  verbose: string;
23
24
  };
24
25
  enumNames: {
@@ -36,6 +37,7 @@ declare const translations: {
36
37
  password: string;
37
38
  refreshInterval: string;
38
39
  units: string;
40
+ useNotifications: string;
39
41
  username: string;
40
42
  verbose: string;
41
43
  };
@@ -10,6 +10,7 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
10
10
  excludeDevices: string;
11
11
  refreshInterval: string;
12
12
  units: string;
13
+ useNotifications: string;
13
14
  verbose: string;
14
15
  };
15
16
  enumNames: {
@@ -27,6 +28,7 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
27
28
  password: string;
28
29
  refreshInterval: string;
29
30
  units: string;
31
+ useNotifications: string;
30
32
  username: string;
31
33
  verbose: string;
32
34
  };
@@ -2,15 +2,9 @@ import { Logger } from 'homebridge';
2
2
  import { Device } from './device.js';
3
3
  import * as Types from './types.js';
4
4
  export declare class FlumeAPI {
5
- private readonly username;
6
- private readonly password;
7
- private readonly clientId;
8
- private readonly clientSecret;
9
- private readonly refreshInterval;
10
- private readonly units;
5
+ private readonly config;
11
6
  private persistPath;
12
7
  private readonly log;
13
- private readonly verbose;
14
8
  private _auth?;
15
9
  readonly locationNames: Map<string, string>;
16
10
  private readonly _devices;
@@ -18,7 +12,7 @@ export declare class FlumeAPI {
18
12
  private syncTimer;
19
13
  private lastFullRefresh;
20
14
  private constructor();
21
- static connect(username: string, password: string, clientId: string, clientSecret: string, refreshInterval: number, units: Types.VolumeUnits, persistPath: string, log: Logger, verbose: boolean): Promise<FlumeAPI>;
15
+ static connect(config: Types.FlumeConfig, persistPath: string, log: Logger): Promise<FlumeAPI>;
22
16
  get devices(): Device[];
23
17
  teardown(): void;
24
18
  private do;
@@ -33,7 +27,7 @@ export declare class FlumeAPI {
33
27
  private getUnreadNotifications;
34
28
  private getDevices;
35
29
  private getDeviceData;
36
- getLeakData(deviceId: string): Promise<Types.LeakData | null>;
30
+ private getLeakData;
37
31
  private getUsageData;
38
32
  private synchronizeData;
39
33
  private logHTTP;
package/dist/model/api.js CHANGED
@@ -28,40 +28,29 @@ const HTTP_RETRY_CODES = [
28
28
  const FULL_REFRESH_INTERVAL = 15 * MINUTE;
29
29
  const RETRY_INTERVALS = [1, 2, 5, 10, 15, 30, 60];
30
30
  export class FlumeAPI {
31
- username;
32
- password;
33
- clientId;
34
- clientSecret;
35
- refreshInterval;
36
- units;
31
+ config;
37
32
  persistPath;
38
33
  log;
39
- verbose;
40
34
  _auth;
41
35
  locationNames = new Map();
42
36
  _devices = new Map();
43
37
  retryIndex = 0;
44
38
  syncTimer = null;
45
39
  lastFullRefresh = 0;
46
- constructor(username, password, clientId, clientSecret, refreshInterval, units, persistPath, log, verbose) {
47
- this.username = username;
48
- this.password = password;
49
- this.clientId = clientId;
50
- this.clientSecret = clientSecret;
51
- this.refreshInterval = refreshInterval;
52
- this.units = units;
40
+ constructor(config, persistPath, log) {
41
+ this.config = config;
53
42
  this.persistPath = persistPath;
54
43
  this.log = log;
55
- this.verbose = verbose;
56
44
  }
57
- static async connect(username, password, clientId, clientSecret, refreshInterval, units, persistPath, log, verbose) {
58
- const api = new FlumeAPI(username, password, clientId, clientSecret, refreshInterval, units, persistPath, log, verbose);
59
- api._auth = await Auth.load(persistPath, clientId);
45
+ static async connect(config, persistPath, log) {
46
+ const api = new FlumeAPI(config, persistPath, log);
47
+ api._auth = await Auth.load(persistPath, config.clientId);
60
48
  let shouldContinue = true;
61
49
  if (!api.auth) {
62
50
  shouldContinue = await api.authenticate();
63
51
  }
64
52
  if (shouldContinue) {
53
+ await api.refreshAuthIfNecessary();
65
54
  await api.getLocations();
66
55
  await api.getDevices();
67
56
  await api.synchronizeData();
@@ -100,8 +89,8 @@ export class FlumeAPI {
100
89
  else {
101
90
  res = await axios.get(url, config);
102
91
  }
103
- if (!res.data || !res.data.data || !res.data.data[0]) {
104
- this.logHTTP("debug" /* LogLevel.DEBUG */, caller, JSON.stringify(res.data));
92
+ if (!res.data || !res.data.data || (!shouldReturnArray && !res.data.data[0])) {
93
+ this.logIfVerbose(caller, JSON.stringify(res.data));
105
94
  throw new Error(strings.errors.noDataReceived);
106
95
  }
107
96
  const returnValue = shouldReturnArray ? res.data.data : res.data.data[0];
@@ -130,7 +119,7 @@ export class FlumeAPI {
130
119
  this.logHTTP("warn" /* LogLevel.WARN */, caller, err.message);
131
120
  return null;
132
121
  }
133
- this.log.warn(strings.errors.httpRetry, RETRY_INTERVALS[this.retryIndex]);
122
+ this.logHTTP("warn" /* LogLevel.WARN */, caller, strings.errors.httpRetry, RETRY_INTERVALS[this.retryIndex]);
134
123
  await new Promise(resolve => setTimeout(resolve, RETRY_INTERVALS[this.retryIndex] * MINUTE));
135
124
  this.retryIndex += 1;
136
125
  return await retry();
@@ -141,16 +130,16 @@ export class FlumeAPI {
141
130
  async saveTokenData(tokenData) {
142
131
  this._auth = new Auth(tokenData);
143
132
  if (this._auth) {
144
- await this._auth.save(this.persistPath, this.clientId);
133
+ await this._auth.save(this.persistPath, this.config.clientId);
145
134
  }
146
135
  }
147
136
  async authenticate() {
148
137
  const data = {
149
138
  grant_type: 'password',
150
- client_id: this.clientId,
151
- client_secret: this.clientSecret,
152
- username: this.username,
153
- password: this.password,
139
+ client_id: this.config.clientId,
140
+ client_secret: this.config.clientSecret,
141
+ username: this.config.username,
142
+ password: this.config.password,
154
143
  };
155
144
  const tokenData = await this.do(this.authenticate.name, data, false, true, URL_AUTH);
156
145
  if (!tokenData) {
@@ -161,18 +150,18 @@ export class FlumeAPI {
161
150
  }
162
151
  async authRefresh() {
163
152
  if (!this.auth?.refresh) {
164
- this.logHTTP("debug" /* LogLevel.DEBUG */, this.authRefresh.name, strings.errors.noRefreshToken);
153
+ this.logIfVerbose(this.authRefresh.name, strings.errors.noRefreshToken);
165
154
  return await this.authenticate();
166
155
  }
167
156
  const data = {
168
157
  grant_type: 'refresh_token',
169
- client_id: this.clientId,
170
- client_secret: this.clientSecret,
158
+ client_id: this.config.clientId,
159
+ client_secret: this.config.clientSecret,
171
160
  refresh_token: this.auth.refresh,
172
161
  };
173
162
  const tokenData = await this.do(this.authRefresh.name, data, false, true, URL_AUTH);
174
163
  if (!tokenData) {
175
- return false;
164
+ return await this.authenticate();
176
165
  }
177
166
  await this.saveTokenData(tokenData);
178
167
  return true;
@@ -185,12 +174,12 @@ export class FlumeAPI {
185
174
  startSyncTimer() {
186
175
  this.teardown();
187
176
  // Note the Flume API has a limit of 120 requests per hour
188
- this.syncTimer = setInterval(() => {
189
- this.synchronizeData();
190
- }, MINUTE * this.refreshInterval);
177
+ this.syncTimer = setInterval(async () => {
178
+ await this.refreshAuthIfNecessary();
179
+ await this.synchronizeData();
180
+ }, MINUTE * this.config.refreshInterval);
191
181
  }
192
182
  async getLocations() {
193
- await this.refreshAuthIfNecessary();
194
183
  const locationDatum = await this.do(this.getLocations.name, null, true, true, URL_GET_LOCATIONS, this.auth?.userId);
195
184
  if (!locationDatum) {
196
185
  return false;
@@ -201,7 +190,6 @@ export class FlumeAPI {
201
190
  return true;
202
191
  }
203
192
  async getUnreadNotifications(deviceId) {
204
- await this.refreshAuthIfNecessary();
205
193
  const notificationDatum = await this.do(this.getUnreadNotifications.name, null, true, true, URL_GET_NOTIFICATIONS, this.auth?.userId, deviceId);
206
194
  if (!notificationDatum) {
207
195
  return null;
@@ -215,7 +203,6 @@ export class FlumeAPI {
215
203
  return response;
216
204
  }
217
205
  async getDevices() {
218
- await this.refreshAuthIfNecessary();
219
206
  const deviceDatum = await this.do(this.getDevices.name, null, true, true, URL_GET_DEVICES, this.auth?.userId);
220
207
  if (!deviceDatum) {
221
208
  return false;
@@ -257,14 +244,14 @@ export class FlumeAPI {
257
244
  bucket: 'DAY',
258
245
  since_datetime: startOfToday,
259
246
  operation: 'SUM',
260
- units: this.units,
247
+ units: this.config.units ?? Types.VolumeUnits.GALLONS,
261
248
  },
262
249
  {
263
250
  request_id: 'month',
264
251
  bucket: 'MON',
265
252
  since_datetime: startOfCurrMonth,
266
253
  operation: 'SUM',
267
- units: this.units,
254
+ units: this.config.units ?? Types.VolumeUnits.GALLONS,
268
255
  },
269
256
  {
270
257
  request_id: 'lastMonth',
@@ -272,7 +259,7 @@ export class FlumeAPI {
272
259
  since_datetime: startOfLastMonth,
273
260
  until_datetime: startOfCurrMonth,
274
261
  operation: 'SUM',
275
- units: this.units,
262
+ units: this.config.units ?? Types.VolumeUnits.GALLONS,
276
263
  },
277
264
  ],
278
265
  };
@@ -283,25 +270,30 @@ export class FlumeAPI {
283
270
  return usageData;
284
271
  }
285
272
  async synchronizeData() {
286
- await this.refreshAuthIfNecessary();
287
273
  for (const device of this._devices.values()) {
288
274
  const id = device.id;
275
+ let deviceData = null;
289
276
  let usageData = null;
290
277
  if (Date.now() - this.lastFullRefresh > FULL_REFRESH_INTERVAL) {
278
+ deviceData = await this.getDeviceData(id);
291
279
  usageData = await this.getUsageData(id);
292
280
  this.lastFullRefresh = Date.now();
293
281
  }
294
- const unreadNotifications = await this.getUnreadNotifications(id);
295
- device.update(unreadNotifications, usageData);
282
+ const leakData = await this.getLeakData(id);
283
+ let unreadNotifications = null;
284
+ if (this.config.useNotifications) {
285
+ unreadNotifications = await this.getUnreadNotifications(id);
286
+ }
287
+ device.update(leakData, unreadNotifications, deviceData, usageData);
296
288
  }
297
289
  ;
298
290
  }
299
- logHTTP(level, caller, message) {
300
- this.log.log(level, '[HTTP %s()] %s', caller, message);
291
+ logHTTP(level, caller, message, ...parameters) {
292
+ this.log.log(level, '[HTTP %s()] %s', caller, message, ...parameters);
301
293
  }
302
294
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
295
  logIfVerbose(caller, data) {
304
- if (!this.verbose) {
296
+ if (!this.config.verbose) {
305
297
  return;
306
298
  }
307
299
  let message = JSON.stringify(data);
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { DeviceData, NotificationType, UsageData } from './types.js';
1
+ import { DeviceData, LeakData, NotificationType, UsageData } from './types.js';
2
2
  export declare class Device {
3
3
  readonly id: string;
4
4
  readonly locationId: string;
@@ -12,5 +12,5 @@ export declare class Device {
12
12
  private _onUpdateCallback;
13
13
  constructor(data: DeviceData);
14
14
  setOnUpdateCallback(callback: (serialNumber: string) => void): void;
15
- update(unreadNotifications: Set<NotificationType> | null, usageData: UsageData | null): void;
15
+ update(leakData: LeakData | null, unreadNotifications: Set<NotificationType> | null, deviceData: DeviceData | null, usageData: UsageData | null): void;
16
16
  }
@@ -21,11 +21,16 @@ export class Device {
21
21
  setOnUpdateCallback(callback) {
22
22
  this._onUpdateCallback = callback;
23
23
  }
24
- update(unreadNotifications, usageData) {
25
- if (unreadNotifications) {
26
- this.isBatteryLow = unreadNotifications.has(NotificationType.BATTERY);
27
- this.isDisconnected = unreadNotifications.has(NotificationType.HEARTBEAT);
28
- this.isLeakDetected = unreadNotifications.has(NotificationType.USAGE_ALERT) || unreadNotifications.has(NotificationType.BUDGET);
24
+ update(leakData, unreadNotifications, deviceData, usageData) {
25
+ if (leakData) {
26
+ this.isLeakDetected = leakData.active;
27
+ if (unreadNotifications) {
28
+ this.isLeakDetected = unreadNotifications.has(NotificationType.USAGE_ALERT);
29
+ }
30
+ }
31
+ if (deviceData) {
32
+ this.isBatteryLow = deviceData.battery_level === BATTERY_LEVEL_LOW;
33
+ this.isDisconnected = !deviceData.connected;
29
34
  }
30
35
  if (usageData) {
31
36
  this.usageToday = usageData.today[0]?.value || 0;
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/model/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAErE,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAM,OAAO,MAAM;IAER,EAAE,CAAS;IACX,UAAU,CAAS;IACnB,WAAW,CAAS;IAE7B,YAAY,CAAU;IACtB,cAAc,CAAU;IAExB,cAAc,GAAY,KAAK,CAAC;IAEhC,UAAU,GAAW,CAAC,CAAC;IACvB,UAAU,GAAW,CAAC,CAAC;IACvB,cAAc,GAAW,CAAC,CAAC;IAEnB,iBAAiB,GAAkC,IAAI,CAAC;IAEhE,YAAY,IAAgB;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,KAAK,iBAAiB,CAAC;IAC/D,CAAC;IAED,mBAAmB,CAAC,QAAwC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,mBAAiD,EAAE,SAA2B;QAEnF,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClI,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/model/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAE/E,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAM,OAAO,MAAM;IAER,EAAE,CAAS;IACX,UAAU,CAAS;IACnB,WAAW,CAAS;IAE7B,YAAY,CAAU;IACtB,cAAc,CAAU;IAExB,cAAc,GAAY,KAAK,CAAC;IAEhC,UAAU,GAAW,CAAC,CAAC;IACvB,UAAU,GAAW,CAAC,CAAC;IACvB,cAAc,GAAW,CAAC,CAAC;IAEnB,iBAAiB,GAAkC,IAAI,CAAC;IAEhE,YAAY,IAAgB;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,KAAK,iBAAiB,CAAC;IAC/D,CAAC;IAED,mBAAmB,CAAC,QAAwC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,QAAyB,EAAE,mBAAiD,EAAE,UAA6B,EAAE,SAA2B;QAE7I,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEtC,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,KAAK,iBAAiB,CAAC;YACnE,IAAI,CAAC,cAAc,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9C,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { AxiosResponse } from 'axios';
2
+ import { PlatformConfig } from 'homebridge';
2
3
  export declare const SENSITIVE_KEYS: string[];
3
4
  export declare enum VolumeUnits {
4
5
  GALLONS = "GALLONS",
@@ -16,6 +17,18 @@ export declare enum NotificationType {
16
17
  export interface FlumeResponse<T> extends AxiosResponse {
17
18
  data: T[];
18
19
  }
20
+ export type FlumeConfig = PlatformConfig & {
21
+ username: string;
22
+ password: string;
23
+ clientId: string;
24
+ clientSecret: string;
25
+ refreshInterval: number;
26
+ useNotifications: boolean;
27
+ units?: VolumeUnits;
28
+ excludeDevices?: string[];
29
+ disableDeviceLogging: boolean;
30
+ verbose: boolean;
31
+ };
19
32
  export type TokenData = {
20
33
  token_type: string;
21
34
  access_token: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;AAEtH,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,wCAAyB,CAAA;IACzB,4CAA6B,CAAA;AAC/B,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,qEAAe,CAAA;IACf,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,iEAAa,CAAA;IACb,8DAAY,CAAA;AACd,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;AAEtH,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,wCAAyB,CAAA;IACzB,4CAA6B,CAAA;AAC/B,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,qEAAe,CAAA;IACf,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,iEAAa,CAAA;IACb,8DAAY,CAAA;AACd,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B"}
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.3",
5
+ "version": "3.1.5-beta.0",
6
6
  "author": {
7
7
  "name": "mpatfield"
8
8
  },