hoffmation-base 2.5.0 → 2.6.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/lib/index.js CHANGED
@@ -49,6 +49,10 @@ class HoffmationBase {
49
49
  server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Telegram settings detected --> initializing`);
50
50
  server_1.TelegramService.initialize(server_1.SettingsService.settings.telegram);
51
51
  }
52
+ if (server_1.SettingsService.settings.tibber) {
53
+ server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Tibber settings detected --> initializing`);
54
+ server_1.TibberService.initialize(server_1.SettingsService.settings.tibber);
55
+ }
52
56
  if (server_1.SettingsService.settings.polly) {
53
57
  server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Amazon Polly settings detected --> initializing`);
54
58
  server_1.PollyService.initialize(server_1.SettingsService.settings.polly);
@@ -17,6 +17,7 @@ import { iHeaterSettings } from './iHeaterSettings';
17
17
  import { iBlueIrisSettings } from './iBlueIrisSettings';
18
18
  import { iRestSettings } from './iRestSettings';
19
19
  import { iEspresenseSettings } from './iEspresenseSettings';
20
+ import { iTibberSettings } from './iTibberSettings';
20
21
  export interface iConfig {
21
22
  asusConfig?: iAsusConfig;
22
23
  blueIris?: iBlueIrisSettings;
@@ -36,6 +37,7 @@ export interface iConfig {
36
37
  roomDefault: iRoomDefaultSettings;
37
38
  sonos?: iSonosSettings;
38
39
  telegram?: iTelegramSettings;
40
+ tibber?: iTibberSettings;
39
41
  timeSettings: iTimeSettings;
40
42
  translationSettings: iTranslationSettings;
41
43
  wattagePrice?: number;
@@ -0,0 +1,4 @@
1
+ export interface iTibberSettings {
2
+ apiKey: string;
3
+ homeId: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -18,5 +18,6 @@ export * from './iWeatherSettings';
18
18
  export * from './iPollySettings';
19
19
  export * from './iPersistenceSettings';
20
20
  export * from './iTelegramSettings';
21
+ export * from './iTibberSettings';
21
22
  export * from './iTimeSettings';
22
23
  export * from './iTimePair';
@@ -34,5 +34,6 @@ __exportStar(require("./iWeatherSettings"), exports);
34
34
  __exportStar(require("./iPollySettings"), exports);
35
35
  __exportStar(require("./iPersistenceSettings"), exports);
36
36
  __exportStar(require("./iTelegramSettings"), exports);
37
+ __exportStar(require("./iTibberSettings"), exports);
37
38
  __exportStar(require("./iTimeSettings"), exports);
38
39
  __exportStar(require("./iTimePair"), exports);
@@ -15,4 +15,5 @@ export * from './HTTPSOptions';
15
15
  export * from './news-service';
16
16
  export * from './settings-service';
17
17
  export * from './ShutterService';
18
+ export * from './tibber-service';
18
19
  export * from './time-callback-service';
@@ -31,4 +31,5 @@ __exportStar(require("./HTTPSOptions"), exports);
31
31
  __exportStar(require("./news-service"), exports);
32
32
  __exportStar(require("./settings-service"), exports);
33
33
  __exportStar(require("./ShutterService"), exports);
34
+ __exportStar(require("./tibber-service"), exports);
34
35
  __exportStar(require("./time-callback-service"), exports);
@@ -0,0 +1,13 @@
1
+ import { iTibberSettings } from '../config';
2
+ import { TibberFeed, TibberQueryBase } from 'tibber-api';
3
+ export declare class TibberService {
4
+ private static _tibberQueryBase;
5
+ static get tibberQueryBase(): TibberQueryBase;
6
+ private static _tibberFeed;
7
+ static get tibberFeed(): TibberFeed;
8
+ private static _settings;
9
+ static get settings(): iTibberSettings | undefined;
10
+ private static _active;
11
+ static get active(): boolean;
12
+ static initialize(settings?: iTibberSettings): void;
13
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TibberService = void 0;
4
+ const tibber_api_1 = require("tibber-api");
5
+ class TibberService {
6
+ static get tibberQueryBase() {
7
+ return this._tibberQueryBase;
8
+ }
9
+ static get tibberFeed() {
10
+ return this._tibberFeed;
11
+ }
12
+ static get settings() {
13
+ return this._settings;
14
+ }
15
+ static get active() {
16
+ return this._active;
17
+ }
18
+ static initialize(settings) {
19
+ const newSettings = settings !== null && settings !== void 0 ? settings : this.settings;
20
+ if (newSettings === undefined) {
21
+ this._active = false;
22
+ return;
23
+ }
24
+ this._settings = newSettings;
25
+ const config = {
26
+ active: true,
27
+ // Endpoint configuration.
28
+ apiEndpoint: {
29
+ apiKey: newSettings.apiKey,
30
+ queryUrl: 'wss://api.tibber.com/v1-beta/gql/subscriptions',
31
+ },
32
+ // Query configuration.
33
+ homeId: newSettings.homeId,
34
+ timestamp: true,
35
+ power: true,
36
+ };
37
+ this._tibberQueryBase = new tibber_api_1.TibberQueryBase(config, 15000);
38
+ // Instantiate TibberFeed.
39
+ this._tibberFeed = new tibber_api_1.TibberFeed(this.tibberQueryBase);
40
+ }
41
+ }
42
+ exports.TibberService = TibberService;
43
+ TibberService._settings = undefined;