hoffmation-base 0.1.37 → 0.1.38-11

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.
Files changed (102) hide show
  1. package/lib/index.d.ts +2 -1
  2. package/lib/index.js +13 -6
  3. package/lib/models/{actuatorSettings.d.ts → deviceSettings/actuatorSettings.d.ts} +0 -0
  4. package/lib/models/{actuatorSettings.js → deviceSettings/actuatorSettings.js} +0 -0
  5. package/lib/models/{deviceSettings.d.ts → deviceSettings/deviceSettings.d.ts} +0 -0
  6. package/lib/models/{deviceSettings.js → deviceSettings/deviceSettings.js} +0 -0
  7. package/lib/models/{dimmerSettings.d.ts → deviceSettings/dimmerSettings.d.ts} +0 -0
  8. package/lib/models/{dimmerSettings.js → deviceSettings/dimmerSettings.js} +0 -0
  9. package/lib/models/deviceSettings/index.d.ts +5 -0
  10. package/lib/models/deviceSettings/index.js +21 -0
  11. package/lib/models/{ledSettings.d.ts → deviceSettings/ledSettings.d.ts} +0 -0
  12. package/lib/models/{ledSettings.js → deviceSettings/ledSettings.js} +0 -0
  13. package/lib/models/deviceSettings/shutterSettings.d.ts +5 -0
  14. package/lib/models/deviceSettings/shutterSettings.js +12 -0
  15. package/lib/models/excessEnergyConsumerSettings.d.ts +9 -0
  16. package/lib/models/excessEnergyConsumerSettings.js +15 -0
  17. package/lib/models/index.d.ts +2 -3
  18. package/lib/models/index.js +7 -4
  19. package/lib/models/persistence/EnergyCalculation.d.ts +11 -0
  20. package/lib/models/persistence/EnergyCalculation.js +16 -0
  21. package/lib/models/persistence/index.d.ts +1 -0
  22. package/lib/models/persistence/index.js +6 -1
  23. package/lib/models/rooms/RoomBase.js +2 -2
  24. package/lib/models/rooms/RoomSettings/index.js +5 -1
  25. package/lib/models/rooms/index.js +5 -1
  26. package/lib/models/temperaturSettings.d.ts +4 -1
  27. package/lib/models/temperaturSettings.js +15 -4
  28. package/lib/server/config/iConfig.d.ts +7 -0
  29. package/lib/server/config/index.js +5 -1
  30. package/lib/server/devices/DeviceInfo.d.ts +7 -1
  31. package/lib/server/devices/DeviceInfo.js +48 -26
  32. package/lib/server/devices/Heizgruppen.js +3 -2
  33. package/lib/server/devices/deviceType.d.ts +1 -0
  34. package/lib/server/devices/deviceType.js +1 -0
  35. package/lib/server/devices/devices.d.ts +4 -0
  36. package/lib/server/devices/devices.js +14 -0
  37. package/lib/server/devices/groups/index.js +5 -1
  38. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +7 -8
  39. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +13 -16
  40. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +1 -1
  41. package/lib/server/devices/hmIPDevices/hmIpLampe.js +1 -1
  42. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +7 -8
  43. package/lib/server/devices/hmIPDevices/index.js +5 -1
  44. package/lib/server/devices/iEnergyManager.d.ts +12 -0
  45. package/lib/server/devices/iEnergyManager.js +2 -0
  46. package/lib/server/devices/iExcessEnergyConsumer.d.ts +6 -0
  47. package/lib/server/devices/iExcessEnergyConsumer.js +2 -0
  48. package/lib/server/devices/iLamp.d.ts +1 -1
  49. package/lib/server/devices/index.d.ts +4 -1
  50. package/lib/server/devices/index.js +9 -2
  51. package/lib/server/devices/jsObject/index.d.ts +1 -0
  52. package/lib/server/devices/jsObject/index.js +17 -0
  53. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +27 -0
  54. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +100 -0
  55. package/lib/server/devices/models/index.js +5 -1
  56. package/lib/server/devices/zigbee/ZigbeeActuator.d.ts +1 -1
  57. package/lib/server/devices/zigbee/ZigbeeActuator.js +3 -3
  58. package/lib/server/devices/zigbee/index.js +5 -1
  59. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +2 -2
  60. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +7 -3
  61. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +6 -1
  62. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  63. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  64. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  65. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  66. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +0 -3
  67. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +0 -18
  68. package/lib/server/devices/zigbee/zigbeeMotionSensor.js +6 -7
  69. package/lib/server/devices/zigbee/zigbeeShutter.d.ts +8 -0
  70. package/lib/server/devices/zigbee/zigbeeShutter.js +37 -0
  71. package/lib/server/index.js +5 -1
  72. package/lib/server/ioBroker/index.js +5 -1
  73. package/lib/server/ioBroker/ioBroker.main.js +2 -1
  74. package/lib/server/services/Sonos/index.js +5 -1
  75. package/lib/server/services/Sonos/mp3-server.js +5 -1
  76. package/lib/server/services/Sonos/polly-service.js +5 -1
  77. package/lib/server/services/Telegram/index.js +5 -1
  78. package/lib/server/services/Telegram/telegram-Commands.js +13 -0
  79. package/lib/server/services/Translation/index.js +5 -1
  80. package/lib/server/services/api/index.js +5 -1
  81. package/lib/server/services/calendar/index.js +5 -1
  82. package/lib/server/services/calendar/muell-tonne.js +3 -2
  83. package/lib/server/services/dbo/iPersist.d.ts +21 -0
  84. package/lib/server/services/dbo/iPersist.js +2 -0
  85. package/lib/server/services/dbo/index.d.ts +3 -1
  86. package/lib/server/services/dbo/index.js +8 -2
  87. package/lib/server/services/dbo/mongoPersistance.d.ts +37 -0
  88. package/lib/server/services/dbo/{persist.js → mongoPersistance.js} +45 -39
  89. package/lib/server/services/dbo/postgreSqlPersist.d.ts +27 -0
  90. package/lib/server/services/dbo/postgreSqlPersist.js +269 -0
  91. package/lib/server/services/https-service.js +10 -4
  92. package/lib/server/services/index.js +5 -1
  93. package/lib/server/services/log-service/index.js +5 -1
  94. package/lib/server/services/news-service.js +5 -1
  95. package/lib/server/services/room-service/index.js +5 -1
  96. package/lib/server/services/utils/index.js +5 -1
  97. package/lib/server/services/utils/utils.d.ts +2 -0
  98. package/lib/server/services/utils/utils.js +7 -0
  99. package/lib/server/services/weather/index.js +5 -1
  100. package/lib/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +24 -22
  102. package/lib/server/services/dbo/persist.d.ts +0 -34
package/lib/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- import { Devices, iConfig, ioBrokerMain, OwnSonosDevice } from './server';
1
+ import { Devices, iConfig, ioBrokerMain, OwnSonosDevice, iPersist } from './server';
2
2
  export * from './models/index';
3
3
  export * from './server/index';
4
4
  export declare class HoffmationInitializationObject {
5
5
  config: iConfig;
6
6
  constructor(config: iConfig);
7
7
  }
8
+ export declare let dbo: iPersist | undefined;
8
9
  export declare class HoffmationBase {
9
10
  static ioMain: ioBrokerMain;
10
11
  static initializeBeforeIoBroker(initObject: HoffmationInitializationObject): Promise<void>;
package/lib/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -10,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.HoffmationBase = exports.HoffmationInitializationObject = void 0;
17
+ exports.HoffmationBase = exports.dbo = exports.HoffmationInitializationObject = void 0;
14
18
  const models_1 = require("./models");
15
19
  const server_1 = require("./server");
16
20
  __exportStar(require("./models/index"), exports);
@@ -30,10 +34,13 @@ class HoffmationBase {
30
34
  }
31
35
  server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Hoffmation-Base Startup`);
32
36
  if (initObject.config.persistence) {
33
- await server_1.Persist.initialize(initObject.config.persistence);
34
- }
35
- else {
36
- server_1.Persist.turnOff();
37
+ if (initObject.config.persistence.mongo) {
38
+ exports.dbo = new server_1.MongoPersistance(initObject.config.persistence);
39
+ }
40
+ else if (initObject.config.persistence.postgreSql) {
41
+ exports.dbo = new server_1.PostgreSqlPersist(initObject.config.persistence);
42
+ }
43
+ await (exports.dbo === null || exports.dbo === void 0 ? void 0 : exports.dbo.initialize());
37
44
  }
38
45
  if (server_1.SettingsService.settings.mp3Server) {
39
46
  server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Mp3Server settings detected --> initializing`);
@@ -0,0 +1,5 @@
1
+ export * from './actuatorSettings';
2
+ export * from './deviceSettings';
3
+ export * from './dimmerSettings';
4
+ export * from './ledSettings';
5
+ export * from './shutterSettings';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./actuatorSettings"), exports);
18
+ __exportStar(require("./deviceSettings"), exports);
19
+ __exportStar(require("./dimmerSettings"), exports);
20
+ __exportStar(require("./ledSettings"), exports);
21
+ __exportStar(require("./shutterSettings"), exports);
@@ -0,0 +1,5 @@
1
+ import { DeviceSettings } from './deviceSettings';
2
+ export declare class ShutterSettings extends DeviceSettings {
3
+ msTilTop: number;
4
+ msTilBot: number;
5
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShutterSettings = void 0;
4
+ const deviceSettings_1 = require("./deviceSettings");
5
+ class ShutterSettings extends deviceSettings_1.DeviceSettings {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.msTilTop = -1;
9
+ this.msTilBot = -1;
10
+ }
11
+ }
12
+ exports.ShutterSettings = ShutterSettings;
@@ -0,0 +1,9 @@
1
+ export declare class ExcessEnergyConsumerSettings {
2
+ /**
3
+ * Priority in comparision to other ExcessEnergyConsumer Devices
4
+ * (-1 = off, 1= lowest, 99 = highest, 100 = Always on)
5
+ * Devices with same prio try to share as good as possible.
6
+ */
7
+ priority: number;
8
+ rampUpOnSpareEnergy: boolean;
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExcessEnergyConsumerSettings = void 0;
4
+ class ExcessEnergyConsumerSettings {
5
+ constructor() {
6
+ /**
7
+ * Priority in comparision to other ExcessEnergyConsumer Devices
8
+ * (-1 = off, 1= lowest, 99 = highest, 100 = Always on)
9
+ * Devices with same prio try to share as good as possible.
10
+ */
11
+ this.priority = -1;
12
+ this.rampUpOnSpareEnergy = false;
13
+ }
14
+ }
15
+ exports.ExcessEnergyConsumerSettings = ExcessEnergyConsumerSettings;
@@ -1,12 +1,11 @@
1
1
  export * from './rooms/index';
2
+ export * from './deviceSettings/index';
2
3
  export * from './persistence/index';
3
- export * from './actuatorSettings';
4
4
  export * from './connectionCallbacks';
5
5
  export * from './daytime';
6
6
  export * from './deviceConfig';
7
- export * from './dimmerSettings';
7
+ export * from './excessEnergyConsumerSettings';
8
8
  export * from './iTemperaturDataPoint';
9
- export * from './ledSettings';
10
9
  export * from './logLevel';
11
10
  export * from './temperaturSettings';
12
11
  export * from './timeCallback';
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,14 +15,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./rooms/index"), exports);
18
+ __exportStar(require("./deviceSettings/index"), exports);
14
19
  __exportStar(require("./persistence/index"), exports);
15
- __exportStar(require("./actuatorSettings"), exports);
16
20
  __exportStar(require("./connectionCallbacks"), exports);
17
21
  __exportStar(require("./daytime"), exports);
18
22
  __exportStar(require("./deviceConfig"), exports);
19
- __exportStar(require("./dimmerSettings"), exports);
23
+ __exportStar(require("./excessEnergyConsumerSettings"), exports);
20
24
  __exportStar(require("./iTemperaturDataPoint"), exports);
21
- __exportStar(require("./ledSettings"), exports);
22
25
  __exportStar(require("./logLevel"), exports);
23
26
  __exportStar(require("./temperaturSettings"), exports);
24
27
  __exportStar(require("./timeCallback"), exports);
@@ -0,0 +1,11 @@
1
+ export declare class EnergyCalculation {
2
+ startMs: number;
3
+ drawnKwH: number;
4
+ injectedKwH: number;
5
+ selfConsumedKwH: number;
6
+ costDrawn: number;
7
+ earnedInjected: number;
8
+ savedSelfConsume: number;
9
+ endMs: number;
10
+ constructor(startMs: number);
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnergyCalculation = void 0;
4
+ class EnergyCalculation {
5
+ constructor(startMs) {
6
+ this.startMs = startMs;
7
+ this.drawnKwH = 0;
8
+ this.injectedKwH = 0;
9
+ this.selfConsumedKwH = 0;
10
+ this.costDrawn = 0;
11
+ this.earnedInjected = 0;
12
+ this.savedSelfConsume = 0;
13
+ this.endMs = 0;
14
+ }
15
+ }
16
+ exports.EnergyCalculation = EnergyCalculation;
@@ -1,6 +1,7 @@
1
1
  export * from './BasicRoomInfo';
2
2
  export * from './CurrentIlluminationDataPoint';
3
3
  export * from './DailyMovementCount';
4
+ export * from './EnergyCalculation';
4
5
  export * from './RoomDetailInfo';
5
6
  export * from './ShutterCalibration';
6
7
  export * from './temperaturDataPoint';
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -13,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./BasicRoomInfo"), exports);
14
18
  __exportStar(require("./CurrentIlluminationDataPoint"), exports);
15
19
  __exportStar(require("./DailyMovementCount"), exports);
20
+ __exportStar(require("./EnergyCalculation"), exports);
16
21
  __exportStar(require("./RoomDetailInfo"), exports);
17
22
  __exportStar(require("./ShutterCalibration"), exports);
18
23
  __exportStar(require("./temperaturDataPoint"), exports);
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RoomBase = void 0;
7
7
  const logLevel_1 = require("../logLevel");
8
8
  const log_service_1 = require("../../server/services/log-service/log-service");
9
- const persist_1 = require("../../server/services/dbo/persist");
10
9
  const time_callback_service_1 = require("../../server/services/time-callback-service");
11
10
  const room_service_1 = require("../../server/services/room-service/room-service");
12
11
  const roomInfo_1 = require("./roomInfo");
@@ -15,6 +14,7 @@ const ShutterService_1 = require("../../server/services/ShutterService");
15
14
  const utils_1 = require("../../server/services/utils/utils");
16
15
  const lodash_1 = __importDefault(require("lodash"));
17
16
  const device_cluster_1 = require("../../server/devices/device-cluster");
17
+ const index_1 = require("../../index");
18
18
  class RoomBase {
19
19
  constructor(roomName, settings, groups) {
20
20
  this.settings = settings;
@@ -68,7 +68,7 @@ class RoomBase {
68
68
  (_c = this.TasterGroup) === null || _c === void 0 ? void 0 : _c.initCallbacks();
69
69
  }
70
70
  persist() {
71
- persist_1.Persist.addRoom(this);
71
+ index_1.dbo === null || index_1.dbo === void 0 ? void 0 : index_1.dbo.addRoom(this);
72
72
  }
73
73
  recalcTimeCallbacks() {
74
74
  const now = new Date();
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -5,5 +5,8 @@ export declare class TemperaturSettings {
5
5
  temperatur: number;
6
6
  active: boolean;
7
7
  constructor(start: Daytime, end: Daytime, temperatur: number, active?: boolean);
8
- isNowInRange(): boolean;
8
+ isNowInRange(date: Date): boolean;
9
+ static getActiveSetting(settings: {
10
+ [name: string]: TemperaturSettings;
11
+ }, date: Date): TemperaturSettings | undefined;
9
12
  }
@@ -8,14 +8,25 @@ class TemperaturSettings {
8
8
  this.temperatur = temperatur;
9
9
  this.active = active;
10
10
  }
11
- isNowInRange() {
12
- const now = new Date().getTime();
13
- const todayStart = new Date().setHours(this.start.hour, this.start.minute);
11
+ isNowInRange(date) {
12
+ const now = date.getTime();
13
+ const todayStart = new Date(now).setHours(this.start.hour, this.start.minute);
14
14
  if (now < todayStart) {
15
15
  return false;
16
16
  }
17
- const todayEnd = new Date().setHours(this.end.hour, this.end.minute);
17
+ const todayEnd = new Date(now).setHours(this.end.hour, this.end.minute);
18
18
  return now < todayEnd;
19
19
  }
20
+ static getActiveSetting(settings, date) {
21
+ for (const name of Object.keys(settings)) {
22
+ if (settings[name] === undefined) {
23
+ continue;
24
+ }
25
+ const setting = settings[name];
26
+ if (setting.isNowInRange(date)) {
27
+ return setting;
28
+ }
29
+ }
30
+ }
20
31
  }
21
32
  exports.TemperaturSettings = TemperaturSettings;
@@ -1,5 +1,6 @@
1
1
  import { LogLevel } from '../../models/logLevel';
2
2
  import { iRoomDefaultSettings } from '../../models/rooms/RoomSettings/iRoomDefaultSettings';
3
+ import { PoolConfig } from 'pg';
3
4
  interface iSonosSettings {
4
5
  active: boolean;
5
6
  }
@@ -8,6 +9,8 @@ export interface iRestSettings {
8
9
  port?: number;
9
10
  }
10
11
  export interface iConfig {
12
+ wattagePrice: number;
13
+ injectWattagePrice?: number;
11
14
  ioBrokerUrl: string;
12
15
  logSettings?: iLogSettings;
13
16
  translationSettings: iTranslationSettings;
@@ -42,6 +45,10 @@ export interface iTelegramSettings {
42
45
  subscribedIDs: number[];
43
46
  }
44
47
  export interface iPersistenceSettings {
48
+ mongo?: iMongoSettings;
49
+ postgreSql?: PoolConfig;
50
+ }
51
+ export interface iMongoSettings {
45
52
  mongoConnection: string;
46
53
  mongoDbName: string;
47
54
  }
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -12,7 +12,13 @@ export declare class DeviceInfo {
12
12
  valueName?: string;
13
13
  devConf: deviceConfig;
14
14
  allDevicesKey?: string;
15
- constructor(pDevConf: deviceConfig);
15
+ /**
16
+ * Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
17
+ * @param {deviceConfig} pDevConf The device Config based on the extracted devices.json from ioBroker
18
+ * @param {boolean} isJsStateChildObject Within JS Objects, creating devices is limited,
19
+ * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
20
+ */
21
+ constructor(pDevConf: deviceConfig, isJsStateChildObject?: boolean);
16
22
  set customName(val: string);
17
23
  get customName(): string;
18
24
  toJSON(): Partial<DeviceInfo>;
@@ -6,38 +6,60 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DeviceInfo = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  class DeviceInfo {
9
- constructor(pDevConf) {
9
+ /**
10
+ * Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
11
+ * @param {deviceConfig} pDevConf The device Config based on the extracted devices.json from ioBroker
12
+ * @param {boolean} isJsStateChildObject Within JS Objects, creating devices is limited,
13
+ * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
14
+ */
15
+ constructor(pDevConf, isJsStateChildObject = false) {
10
16
  this.devConf = pDevConf;
11
17
  this.type = pDevConf.type;
12
- this.fullID = pDevConf._id;
13
- /**
14
- * 0: hm-rpc
15
- * 1: rcpInstance
16
- * 2: Device ID
17
- * 3?: Channel
18
- * 4?: ValueName
19
- */
20
18
  const idSplit = pDevConf._id.split('.');
19
+ this.fullID = pDevConf._id;
21
20
  this.devID = idSplit[2];
22
- if (idSplit.length > 3) {
23
- this.channel = Number(idSplit[3]);
24
- }
25
- if (idSplit.length > 4) {
26
- this.valueName = idSplit[4];
27
- }
28
21
  this.fullName = pDevConf.common.name;
29
- /**
30
- * 0: Indikator own "00"
31
- * 1: "HmIP"
32
- * 2: Raum
33
- * 3: Was für ein Gerät
34
- * 4: Index dieses Gerätes im Raum (ggf. + :Channel)
35
- * 5?: Name des Wertes
36
- */
37
22
  const nameSplit = pDevConf.common.name.split('-');
38
- this.room = nameSplit[2];
39
- this.deviceType = nameSplit[3];
40
- this.deviceRoomIndex = Number(nameSplit[4].split(':')[0]);
23
+ if (!isJsStateChildObject) {
24
+ /**
25
+ * 0: hm-rpc
26
+ * 1: rcpInstance
27
+ * 2: Device ID
28
+ * 3?: Channel
29
+ * 4?: ValueName
30
+ */
31
+ if (idSplit.length > 3) {
32
+ this.channel = Number(idSplit[3]);
33
+ }
34
+ if (idSplit.length > 4) {
35
+ this.valueName = idSplit[4];
36
+ }
37
+ /** Name-Split
38
+ * 0: Indikator own "00"
39
+ * 1: "HmIP"
40
+ * 2: Raum
41
+ * 3: Was für ein Gerät
42
+ * 4: Index dieses Gerätes im Raum (ggf. + :Channel)
43
+ * 5?: Name des Wertes
44
+ */
45
+ this.room = nameSplit[2];
46
+ this.deviceType = nameSplit[3];
47
+ this.deviceRoomIndex = Number(nameSplit[4].split(':')[0]);
48
+ return;
49
+ }
50
+ else {
51
+ /** Name-Split
52
+ * 0: Indikator own "00"
53
+ * 1: "EnergyManager"
54
+ * 2: Raum
55
+ * 3: Was für ein Gerät
56
+ * 4: Index dieses Gerätes im Raum (ggf. + :Channel)
57
+ * 5?: Name des Wertes
58
+ */
59
+ this.deviceType = nameSplit[1];
60
+ this.room = nameSplit.length >= 3 ? nameSplit[2] : '';
61
+ this.deviceRoomIndex = nameSplit.length >= 4 ? Number(nameSplit[3]) : 0;
62
+ }
41
63
  }
42
64
  set customName(val) {
43
65
  this._customName = val;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Heizgruppen = void 0;
4
4
  const deviceType_1 = require("./deviceType");
5
- const persist_1 = require("../services/dbo/persist");
6
5
  const devices_1 = require("./devices");
6
+ const index_1 = require("../../index");
7
7
  class Heizgruppen {
8
8
  static getInfo() {
9
9
  const gruppen = Heizgruppen.getAllGruppen();
@@ -18,6 +18,7 @@ class Heizgruppen {
18
18
  return response.join('\n');
19
19
  }
20
20
  static async getSpecificInfo(pText) {
21
+ var _a;
21
22
  if (pText === undefined || !pText.includes('"')) {
22
23
  return `Bitte übergeben Sie eine Heizgruppe innerhalb von "". z.B. "EG Flur HeizGr"`;
23
24
  }
@@ -26,7 +27,7 @@ class Heizgruppen {
26
27
  if (group === undefined) {
27
28
  return `"${searchText}" ist keine gültige Heizgruppe, im Folgenden ist eine Liste aller gültigen Heizgruppen:\n${this.getInfo()}`;
28
29
  }
29
- const results = await persist_1.Persist.readTemperaturDataPoint(group, 20);
30
+ const results = (_a = (await (index_1.dbo === null || index_1.dbo === void 0 ? void 0 : index_1.dbo.readTemperaturDataPoint(group, 20)))) !== null && _a !== void 0 ? _a : [];
30
31
  const response = [`Dies sind die letzten 20 Messpunkte der Heizgruppe:`];
31
32
  response.push(`Zeitpunkt\t\tIst-Temperatur\t\tSoll-Temperatur\t\tVentilstellung`);
32
33
  for (const r of results) {
@@ -29,5 +29,6 @@ export declare enum DeviceType {
29
29
  ZigbeeAqaraMagnetContact = 215,
30
30
  ZigbeeSonoffTemp = 216,
31
31
  ZigbeeAqaraOpple3Switch = 217,
32
+ JsEnergyManager = 301,
32
33
  Wled = 1001
33
34
  }
@@ -33,5 +33,6 @@ var DeviceType;
33
33
  DeviceType[DeviceType["ZigbeeAqaraMagnetContact"] = 215] = "ZigbeeAqaraMagnetContact";
34
34
  DeviceType[DeviceType["ZigbeeSonoffTemp"] = 216] = "ZigbeeSonoffTemp";
35
35
  DeviceType[DeviceType["ZigbeeAqaraOpple3Switch"] = 217] = "ZigbeeAqaraOpple3Switch";
36
+ DeviceType[DeviceType["JsEnergyManager"] = 301] = "JsEnergyManager";
36
37
  DeviceType[DeviceType["Wled"] = 1001] = "Wled";
37
38
  })(DeviceType = exports.DeviceType || (exports.DeviceType = {}));
@@ -1,12 +1,15 @@
1
1
  import { deviceConfig } from '../../models/deviceConfig';
2
2
  import { IoBrokerBaseDevice } from './IoBrokerBaseDevice';
3
3
  import { iRoomImportEnforcer } from '../../models/rooms/iRoomImportEnforcer';
4
+ import { iEnergyManager } from './iEnergyManager';
4
5
  export declare class Devices {
5
6
  static IDENTIFIER_HOMEMATIC: string;
7
+ static IDENTIFIER_JS: string;
6
8
  static IDENTIFIER_ZIGBEE: string;
7
9
  static alLDevices: {
8
10
  [id: string]: IoBrokerBaseDevice;
9
11
  };
12
+ static energymanager?: iEnergyManager;
10
13
  constructor(pDeviceData: {
11
14
  [id: string]: deviceConfig;
12
15
  }, pRoomImportEnforcer?: iRoomImportEnforcer);
@@ -15,4 +18,5 @@ export declare class Devices {
15
18
  private processZigbeeDevice;
16
19
  private processHMIPDevice;
17
20
  static getBatteryInfo(): string;
21
+ private createEnergyManager;
18
22
  }
@@ -35,6 +35,7 @@ const hmIpAccessPoint_1 = require("./hmIPDevices/hmIpAccessPoint");
35
35
  const zigbeeAqaraMagnetContact_1 = require("./zigbee/zigbeeAqaraMagnetContact");
36
36
  const zigbeeSonoffTemp_1 = require("./zigbee/zigbeeSonoffTemp");
37
37
  const zigbeeAqaraOpple3Switch_1 = require("./zigbee/zigbeeAqaraOpple3Switch");
38
+ const jsObjectEnergyManager_1 = require("./jsObject/jsObjectEnergyManager");
38
39
  class Devices {
39
40
  constructor(pDeviceData, pRoomImportEnforcer) {
40
41
  // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
@@ -56,6 +57,10 @@ class Devices {
56
57
  else if (cName.indexOf('00-Zigbee') === 0) {
57
58
  this.processZigbeeDevice(cDevConf);
58
59
  }
60
+ else if (cName.indexOf('00-EnergyManager') === 0) {
61
+ log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Info, `Found Energy-Manager in Device json.`);
62
+ this.createEnergyManager(cDevConf);
63
+ }
59
64
  }
60
65
  hmIpDevice_1.HmIPDevice.checkMissing();
61
66
  zigbeeDevice_1.ZigbeeDevice.checkMissing();
@@ -218,8 +223,17 @@ class Devices {
218
223
  }
219
224
  return result.join('\n');
220
225
  }
226
+ createEnergyManager(cDevConf) {
227
+ const devInfo = new DeviceInfo_1.DeviceInfo(cDevConf, true);
228
+ const fullName = `${Devices.IDENTIFIER_JS}-${devInfo.devID}`;
229
+ devInfo.allDevicesKey = fullName;
230
+ Devices.energymanager = new jsObjectEnergyManager_1.JsObjectEnergyManager(devInfo);
231
+ Devices.alLDevices[fullName] = Devices.energymanager;
232
+ }
221
233
  }
222
234
  exports.Devices = Devices;
223
235
  Devices.IDENTIFIER_HOMEMATIC = 'hm-rpc';
236
+ Devices.IDENTIFIER_JS = 'javascript';
224
237
  Devices.IDENTIFIER_ZIGBEE = 'zigbee';
225
238
  Devices.alLDevices = {};
239
+ Devices.energymanager = undefined;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];