hoffmation-base 0.1.40 → 0.1.41-12

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 (106) hide show
  1. package/lib/index.d.ts +1 -2
  2. package/lib/index.js +5 -4
  3. package/lib/models/deviceSettings/actuatorSettings.d.ts +11 -0
  4. package/lib/models/deviceSettings/actuatorSettings.js +11 -0
  5. package/lib/models/deviceSettings/index.d.ts +1 -0
  6. package/lib/models/deviceSettings/index.js +1 -0
  7. package/lib/models/deviceSettings/motionSensorSettings.d.ts +9 -0
  8. package/lib/models/deviceSettings/motionSensorSettings.js +16 -0
  9. package/lib/models/deviceSettings/shutterSettings.d.ts +6 -0
  10. package/lib/models/deviceSettings/shutterSettings.js +6 -0
  11. package/lib/models/rooms/RoomBase.d.ts +7 -17
  12. package/lib/models/rooms/RoomBase.js +27 -32
  13. package/lib/models/rooms/RoomSettings/RoomSettings.js +1 -0
  14. package/lib/models/timeCallback.d.ts +7 -1
  15. package/lib/models/timeCallback.js +16 -10
  16. package/lib/server/devices/Heizgruppen.d.ts +1 -1
  17. package/lib/server/devices/Heizgruppen.js +3 -3
  18. package/lib/server/devices/IoBrokerBaseDevice.d.ts +11 -12
  19. package/lib/server/devices/IoBrokerBaseDevice.js +36 -38
  20. package/lib/server/devices/button.d.ts +1 -1
  21. package/lib/server/devices/button.js +5 -6
  22. package/lib/server/devices/device-cluster.d.ts +5 -4
  23. package/lib/server/devices/device-cluster.js +3 -2
  24. package/lib/server/devices/device-list.d.ts +4 -4
  25. package/lib/server/devices/device-list.js +5 -5
  26. package/lib/server/devices/deviceType.d.ts +1 -0
  27. package/lib/server/devices/deviceType.js +1 -0
  28. package/lib/server/devices/deviceUpdater.js +4 -4
  29. package/lib/server/devices/devices.d.ts +6 -7
  30. package/lib/server/devices/devices.js +78 -108
  31. package/lib/server/devices/groups/Fenster.d.ts +6 -6
  32. package/lib/server/devices/groups/Fenster.js +22 -24
  33. package/lib/server/devices/groups/fensterGroup.d.ts +2 -1
  34. package/lib/server/devices/groups/fensterGroup.js +42 -36
  35. package/lib/server/devices/groups/heatGroup.d.ts +2 -2
  36. package/lib/server/devices/groups/heatGroup.js +8 -8
  37. package/lib/server/devices/groups/lampenGroup.d.ts +3 -4
  38. package/lib/server/devices/groups/lampenGroup.js +16 -16
  39. package/lib/server/devices/groups/praesenzGroup.d.ts +6 -7
  40. package/lib/server/devices/groups/praesenzGroup.js +45 -40
  41. package/lib/server/devices/groups/tasterGroup.d.ts +1 -1
  42. package/lib/server/devices/groups/tasterGroup.js +3 -3
  43. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +12 -8
  44. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +31 -26
  45. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +8 -8
  46. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +40 -43
  47. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +4 -14
  48. package/lib/server/devices/hmIPDevices/hmIpLampe.js +36 -33
  49. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +5 -5
  50. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +17 -17
  51. package/lib/server/devices/iBaseDevice.d.ts +11 -0
  52. package/lib/server/devices/iBaseDevice.js +2 -0
  53. package/lib/server/devices/iButtonSwitch.d.ts +2 -2
  54. package/lib/server/devices/iEnergyManager.d.ts +21 -2
  55. package/lib/server/devices/iEnergyManager.js +28 -0
  56. package/lib/server/devices/iExcessEnergyConsumer.d.ts +3 -3
  57. package/lib/server/devices/iHeater.d.ts +3 -3
  58. package/lib/server/devices/iHumiditySensor.d.ts +2 -2
  59. package/lib/server/devices/iLamp.d.ts +11 -6
  60. package/lib/server/devices/iMotionSensor.d.ts +13 -0
  61. package/lib/server/devices/iMotionSensor.js +2 -0
  62. package/lib/server/devices/iShutter.d.ts +3 -3
  63. package/lib/server/devices/iTemperaturSensor.d.ts +2 -2
  64. package/lib/server/devices/iVibrationSensor.d.ts +9 -0
  65. package/lib/server/devices/iVibrationSensor.js +2 -0
  66. package/lib/server/devices/index.d.ts +3 -0
  67. package/lib/server/devices/index.js +3 -0
  68. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +38 -11
  69. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +101 -44
  70. package/lib/server/devices/zigbee/index.d.ts +1 -0
  71. package/lib/server/devices/zigbee/index.js +1 -0
  72. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +4 -4
  73. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +15 -16
  74. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +11 -5
  75. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +48 -32
  76. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +6 -2
  77. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +28 -25
  78. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +5 -4
  79. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +35 -14
  80. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -2
  81. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +18 -20
  82. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +0 -2
  83. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +26 -24
  84. package/lib/server/devices/zigbee/zigbeeMotionSensor.d.ts +8 -6
  85. package/lib/server/devices/zigbee/zigbeeMotionSensor.js +22 -21
  86. package/lib/server/devices/zigbee/zigbeeShutter.d.ts +13 -11
  87. package/lib/server/devices/zigbee/zigbeeShutter.js +43 -34
  88. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +9 -0
  89. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +26 -0
  90. package/lib/server/services/ShutterService.d.ts +1 -2
  91. package/lib/server/services/ShutterService.js +6 -5
  92. package/lib/server/services/Telegram/telegram-Commands.js +27 -24
  93. package/lib/server/services/api/api-service.d.ts +5 -5
  94. package/lib/server/services/api/api-service.js +5 -5
  95. package/lib/server/services/calendar/m/303/274ll-service.d.ts +4 -4
  96. package/lib/server/services/calendar/m/303/274ll-service.js +18 -14
  97. package/lib/server/services/dbo/postgreSqlPersist.d.ts +9 -9
  98. package/lib/server/services/dbo/postgreSqlPersist.js +13 -13
  99. package/lib/server/services/room-service/room-service.d.ts +5 -6
  100. package/lib/server/services/room-service/room-service.js +29 -30
  101. package/lib/server/services/time-callback-service.d.ts +9 -15
  102. package/lib/server/services/time-callback-service.js +39 -45
  103. package/lib/server/services/utils/utils.d.ts +2 -0
  104. package/lib/server/services/utils/utils.js +6 -10
  105. package/lib/tsconfig.tsbuildinfo +1 -1
  106. package/package.json +14 -14
package/lib/index.d.ts CHANGED
@@ -1,11 +1,10 @@
1
- import { Devices, iConfig, ioBrokerMain, OwnSonosDevice, iPersist } from './server';
1
+ import { Devices, iConfig, ioBrokerMain, OwnSonosDevice } 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;
9
8
  export declare class HoffmationBase {
10
9
  static ioMain: ioBrokerMain;
11
10
  static initializeBeforeIoBroker(initObject: HoffmationInitializationObject): Promise<void>;
package/lib/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.HoffmationBase = exports.dbo = exports.HoffmationInitializationObject = void 0;
17
+ exports.HoffmationBase = exports.HoffmationInitializationObject = void 0;
18
18
  const models_1 = require("./models");
19
19
  const server_1 = require("./server");
20
20
  __exportStar(require("./models/index"), exports);
@@ -27,6 +27,7 @@ class HoffmationInitializationObject {
27
27
  exports.HoffmationInitializationObject = HoffmationInitializationObject;
28
28
  class HoffmationBase {
29
29
  static async initializeBeforeIoBroker(initObject) {
30
+ var _a;
30
31
  server_1.SettingsService.initialize(initObject.config);
31
32
  server_1.Res.initialize(initObject.config.translationSettings);
32
33
  if (initObject.config.logSettings) {
@@ -35,12 +36,12 @@ class HoffmationBase {
35
36
  server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Hoffmation-Base Startup`);
36
37
  if (initObject.config.persistence) {
37
38
  if (initObject.config.persistence.mongo) {
38
- exports.dbo = new server_1.MongoPersistance(initObject.config.persistence);
39
+ server_1.Utils.dbo = new server_1.MongoPersistance(initObject.config.persistence);
39
40
  }
40
41
  else if (initObject.config.persistence.postgreSql) {
41
- exports.dbo = new server_1.PostgreSqlPersist(initObject.config.persistence);
42
+ server_1.Utils.dbo = new server_1.PostgreSqlPersist(initObject.config.persistence);
42
43
  }
43
- await (exports.dbo === null || exports.dbo === void 0 ? void 0 : exports.dbo.initialize());
44
+ await ((_a = server_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.initialize());
44
45
  }
45
46
  if (server_1.SettingsService.settings.mp3Server) {
46
47
  server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Mp3Server settings detected --> initializing`);
@@ -3,4 +3,15 @@ export declare class ActuatorSettings extends DeviceSettings {
3
3
  dawnOn: boolean;
4
4
  duskOn: boolean;
5
5
  nightOn: boolean;
6
+ /**
7
+ * Indicates if this device controls e.g. an Eltako, which has it's own Turn Off Time logic.
8
+ * @type {boolean}
9
+ */
10
+ isStromStoss: boolean;
11
+ /**
12
+ * If this is an Actuator controling a time based relais,
13
+ * this indicates the time after which we retrigger the relais.
14
+ * @type {number}
15
+ */
16
+ stromStossResendTime: number;
6
17
  }
@@ -8,6 +8,17 @@ class ActuatorSettings extends deviceSettings_1.DeviceSettings {
8
8
  this.dawnOn = true;
9
9
  this.duskOn = true;
10
10
  this.nightOn = true;
11
+ /**
12
+ * Indicates if this device controls e.g. an Eltako, which has it's own Turn Off Time logic.
13
+ * @type {boolean}
14
+ */
15
+ this.isStromStoss = false;
16
+ /**
17
+ * If this is an Actuator controling a time based relais,
18
+ * this indicates the time after which we retrigger the relais.
19
+ * @type {number}
20
+ */
21
+ this.stromStossResendTime = 180;
11
22
  }
12
23
  }
13
24
  exports.ActuatorSettings = ActuatorSettings;
@@ -2,4 +2,5 @@ export * from './actuatorSettings';
2
2
  export * from './deviceSettings';
3
3
  export * from './dimmerSettings';
4
4
  export * from './ledSettings';
5
+ export * from './motionSensorSettings';
5
6
  export * from './shutterSettings';
@@ -18,4 +18,5 @@ __exportStar(require("./actuatorSettings"), exports);
18
18
  __exportStar(require("./deviceSettings"), exports);
19
19
  __exportStar(require("./dimmerSettings"), exports);
20
20
  __exportStar(require("./ledSettings"), exports);
21
+ __exportStar(require("./motionSensorSettings"), exports);
21
22
  __exportStar(require("./shutterSettings"), exports);
@@ -0,0 +1,9 @@
1
+ import { DeviceSettings } from './deviceSettings';
2
+ export declare class MotionSensorSettings extends DeviceSettings {
3
+ /**
4
+ * If set to false, a detected movement on this sensor will block certain alarms on windows in this room
5
+ * @type {boolean}
6
+ */
7
+ seesWindow: boolean;
8
+ excludeFromNightAlarm: boolean;
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MotionSensorSettings = void 0;
4
+ const deviceSettings_1 = require("./deviceSettings");
5
+ class MotionSensorSettings extends deviceSettings_1.DeviceSettings {
6
+ constructor() {
7
+ super(...arguments);
8
+ /**
9
+ * If set to false, a detected movement on this sensor will block certain alarms on windows in this room
10
+ * @type {boolean}
11
+ */
12
+ this.seesWindow = true;
13
+ this.excludeFromNightAlarm = false;
14
+ }
15
+ }
16
+ exports.MotionSensorSettings = MotionSensorSettings;
@@ -2,4 +2,10 @@ import { DeviceSettings } from './deviceSettings';
2
2
  export declare class ShutterSettings extends DeviceSettings {
3
3
  msTilTop: number;
4
4
  msTilBot: number;
5
+ /**
6
+ * Some shutter give no position feedback on their own, so by knowing the durations in either direction,
7
+ * we can programmatically trigger the callbacks.
8
+ * @type {boolean}
9
+ */
10
+ triggerPositionUpdateByTime: boolean;
5
11
  }
@@ -7,6 +7,12 @@ class ShutterSettings extends deviceSettings_1.DeviceSettings {
7
7
  super(...arguments);
8
8
  this.msTilTop = -1;
9
9
  this.msTilBot = -1;
10
+ /**
11
+ * Some shutter give no position feedback on their own, so by knowing the durations in either direction,
12
+ * we can programmatically trigger the callbacks.
13
+ * @type {boolean}
14
+ */
15
+ this.triggerPositionUpdateByTime = false;
10
16
  }
11
17
  }
12
18
  exports.ShutterSettings = ShutterSettings;
@@ -1,22 +1,17 @@
1
1
  import { TimeCallback } from '../timeCallback';
2
- import { TasterGroup } from '../../server/devices/groups/tasterGroup';
3
- import { PraesenzGroup } from '../../server/devices/groups/praesenzGroup';
4
- import { HeatGroup } from '../../server/devices/groups/heatGroup';
5
- import { WaterGroup } from '../../server/devices/groups/waterGroup';
6
- import { LampenGroup } from '../../server/devices/groups/lampenGroup';
7
- import { RoomSettings } from './RoomSettings/RoomSettings';
8
- import { SmokeGroup } from '../../server/devices/groups/smokeGroup';
9
- import { FensterGroup } from '../../server/devices/groups/fensterGroup';
10
- import { SonosGroup } from '../../server/devices/groups/sonosGroup';
2
+ import { BaseGroup, DeviceCluster, FensterGroup, GroupType, HeatGroup, LampenGroup, PraesenzGroup, SmokeGroup, SonosGroup, TasterGroup, WaterGroup } from '../../server';
3
+ import { RoomSettings } from './RoomSettings';
11
4
  import { iRoomBase } from './iRoomBase';
12
5
  import { RoomInfo } from './roomInfo';
13
- import { BaseGroup } from '../../server/devices/groups/base-group';
14
- import { GroupType } from '../../server/devices/groups/group-type';
15
- import { DeviceCluster } from '../../server/devices/device-cluster';
16
6
  export declare class RoomBase implements iRoomBase {
17
7
  settings: RoomSettings;
18
8
  groups: Map<GroupType, BaseGroup>;
19
9
  info: RoomInfo;
10
+ sonnenAufgangCallback: TimeCallback | undefined;
11
+ sonnenUntergangCallback: TimeCallback | undefined;
12
+ sonnenAufgangLichtCallback: TimeCallback | undefined;
13
+ skipNextRolloUp: boolean;
14
+ constructor(roomName: string, settings: RoomSettings, groups: Map<GroupType, BaseGroup>);
20
15
  protected _deviceCluster: DeviceCluster;
21
16
  get deviceCluster(): DeviceCluster;
22
17
  get FensterGroup(): FensterGroup | undefined;
@@ -27,13 +22,8 @@ export declare class RoomBase implements iRoomBase {
27
22
  get SmokeGroup(): SmokeGroup | undefined;
28
23
  get WaterGroup(): WaterGroup | undefined;
29
24
  get HeatGroup(): HeatGroup | undefined;
30
- sonnenAufgangCallback: TimeCallback | undefined;
31
- sonnenUntergangCallback: TimeCallback | undefined;
32
- sonnenAufgangLichtCallback: TimeCallback | undefined;
33
- skipNextRolloUp: boolean;
34
25
  get roomName(): string;
35
26
  get etage(): number | undefined;
36
- constructor(roomName: string, settings: RoomSettings, groups: Map<GroupType, BaseGroup>);
37
27
  initializeBase(): void;
38
28
  persist(): void;
39
29
  recalcTimeCallbacks(): void;
@@ -4,54 +4,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RoomBase = void 0;
7
+ const timeCallback_1 = require("../timeCallback");
8
+ const server_1 = require("../../server");
7
9
  const logLevel_1 = require("../logLevel");
8
- const log_service_1 = require("../../server/services/log-service/log-service");
9
- const time_callback_service_1 = require("../../server/services/time-callback-service");
10
- const room_service_1 = require("../../server/services/room-service/room-service");
11
10
  const roomInfo_1 = require("./roomInfo");
12
- const group_type_1 = require("../../server/devices/groups/group-type");
13
- const ShutterService_1 = require("../../server/services/ShutterService");
14
- const utils_1 = require("../../server/services/utils/utils");
15
11
  const lodash_1 = __importDefault(require("lodash"));
16
- const device_cluster_1 = require("../../server/devices/device-cluster");
17
- const index_1 = require("../../index");
18
12
  class RoomBase {
19
13
  constructor(roomName, settings, groups) {
20
14
  this.settings = settings;
21
15
  this.groups = groups;
22
- this._deviceCluster = new device_cluster_1.DeviceCluster();
23
16
  this.skipNextRolloUp = false;
17
+ this._deviceCluster = new server_1.DeviceCluster();
24
18
  this.info = new roomInfo_1.RoomInfo(roomName, settings);
25
19
  settings.roomName = roomName;
26
20
  this.settings = settings;
27
- room_service_1.RoomService.addToRoomList(this);
21
+ server_1.RoomService.addToRoomList(this);
28
22
  }
29
23
  get deviceCluster() {
30
24
  return this._deviceCluster;
31
25
  }
32
26
  get FensterGroup() {
33
- return this.groups.get(group_type_1.GroupType.Window);
27
+ return this.groups.get(server_1.GroupType.Window);
34
28
  }
35
29
  get PraesenzGroup() {
36
- return this.groups.get(group_type_1.GroupType.Presence);
30
+ return this.groups.get(server_1.GroupType.Presence);
37
31
  }
38
32
  get LampenGroup() {
39
- return this.groups.get(group_type_1.GroupType.Light);
33
+ return this.groups.get(server_1.GroupType.Light);
40
34
  }
41
35
  get TasterGroup() {
42
- return this.groups.get(group_type_1.GroupType.Buttons);
36
+ return this.groups.get(server_1.GroupType.Buttons);
43
37
  }
44
38
  get SonosGroup() {
45
- return this.groups.get(group_type_1.GroupType.Speaker);
39
+ return this.groups.get(server_1.GroupType.Speaker);
46
40
  }
47
41
  get SmokeGroup() {
48
- return this.groups.get(group_type_1.GroupType.Smoke);
42
+ return this.groups.get(server_1.GroupType.Smoke);
49
43
  }
50
44
  get WaterGroup() {
51
- return this.groups.get(group_type_1.GroupType.Water);
45
+ return this.groups.get(server_1.GroupType.Water);
52
46
  }
53
47
  get HeatGroup() {
54
- return this.groups.get(group_type_1.GroupType.Heating);
48
+ return this.groups.get(server_1.GroupType.Heating);
55
49
  }
56
50
  get roomName() {
57
51
  return this.info.roomName;
@@ -68,7 +62,8 @@ class RoomBase {
68
62
  (_c = this.TasterGroup) === null || _c === void 0 ? void 0 : _c.initCallbacks();
69
63
  }
70
64
  persist() {
71
- index_1.dbo === null || index_1.dbo === void 0 ? void 0 : index_1.dbo.addRoom(this);
65
+ var _a;
66
+ (_a = server_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.addRoom(this);
72
67
  }
73
68
  recalcTimeCallbacks() {
74
69
  const now = new Date();
@@ -107,14 +102,14 @@ class RoomBase {
107
102
  return;
108
103
  }
109
104
  let timeOfDay = this.settings.roomIsAlwaysDark
110
- ? time_callback_service_1.TimeOfDay.Night
111
- : time_callback_service_1.TimeCallbackService.dayType(this.settings.lampOffset);
112
- if (timeOfDay === time_callback_service_1.TimeOfDay.Daylight &&
105
+ ? timeCallback_1.TimeOfDay.Night
106
+ : server_1.TimeCallbackService.dayType(this.settings.lampOffset);
107
+ if (timeOfDay === timeCallback_1.TimeOfDay.Daylight &&
113
108
  ((this.settings.lightIfNoWindows && (!this.FensterGroup || this.FensterGroup.fenster.length === 0)) ||
114
109
  ((_b = this.FensterGroup) === null || _b === void 0 ? void 0 : _b.fenster.some((f) => {
115
- return ShutterService_1.ShutterService.anyRolloDown(f.getShutter());
110
+ return server_1.ShutterService.anyRolloDown(f.getShutter());
116
111
  })))) {
117
- timeOfDay = time_callback_service_1.TimeOfDay.AfterSunset;
112
+ timeOfDay = timeCallback_1.TimeOfDay.AfterSunset;
118
113
  }
119
114
  this.LampenGroup.switchTimeConditional(timeOfDay);
120
115
  }
@@ -125,23 +120,23 @@ class RoomBase {
125
120
  return false;
126
121
  }
127
122
  let timeOfDay = this.settings.roomIsAlwaysDark
128
- ? time_callback_service_1.TimeOfDay.Night
129
- : time_callback_service_1.TimeCallbackService.dayType(this.settings.lampOffset);
130
- if (timeOfDay === time_callback_service_1.TimeOfDay.Daylight &&
123
+ ? timeCallback_1.TimeOfDay.Night
124
+ : server_1.TimeCallbackService.dayType(this.settings.lampOffset);
125
+ if (timeOfDay === timeCallback_1.TimeOfDay.Daylight &&
131
126
  ((_a = this.FensterGroup) === null || _a === void 0 ? void 0 : _a.fenster.some((f) => {
132
- return ShutterService_1.ShutterService.anyRolloDown(f.getShutter());
127
+ return server_1.ShutterService.anyRolloDown(f.getShutter());
133
128
  }))) {
134
- timeOfDay = time_callback_service_1.TimeOfDay.AfterSunset;
129
+ timeOfDay = timeCallback_1.TimeOfDay.AfterSunset;
135
130
  }
136
- return time_callback_service_1.TimeCallbackService.darkOutsideOrNight(timeOfDay);
131
+ return server_1.TimeCallbackService.darkOutsideOrNight(timeOfDay);
137
132
  }
138
133
  toJSON() {
139
- const result = utils_1.Utils.jsonFilter(this);
134
+ const result = server_1.Utils.jsonFilter(this);
140
135
  result.groupDict = Object.fromEntries(this.groups);
141
136
  return lodash_1.default.omit(result, ['groups', '_deviceCluster']);
142
137
  }
143
138
  log(level, message) {
144
- log_service_1.ServerLogService.writeLog(level, message, {
139
+ server_1.ServerLogService.writeLog(level, message, {
145
140
  room: this.roomName,
146
141
  });
147
142
  }
@@ -76,6 +76,7 @@ class RoomSettings {
76
76
  }
77
77
  set sonnenUntergangRolloDelay(value) {
78
78
  this._sonnenUntergangRolloDelay = value;
79
+ this.recalcRolloOffset();
79
80
  }
80
81
  get movementResetTimer() {
81
82
  return this._movementResetTimer;
@@ -1,9 +1,15 @@
1
- import { SunTimeOffsets } from '../server/services/time-callback-service';
1
+ import { SunTimeOffsets } from '../server';
2
2
  export declare enum TimeCallbackType {
3
3
  TimeOfDay = 1,
4
4
  Sunrise = 2,
5
5
  SunSet = 3
6
6
  }
7
+ export declare enum TimeOfDay {
8
+ BeforeSunrise = 1,
9
+ Daylight = 2,
10
+ AfterSunset = 3,
11
+ Night = 4
12
+ }
7
13
  export declare class TimeCallback {
8
14
  name: string;
9
15
  type: TimeCallbackType;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimeCallback = exports.TimeCallbackType = void 0;
4
- const log_service_1 = require("../server/services/log-service/log-service");
5
- const time_callback_service_1 = require("../server/services/time-callback-service");
3
+ exports.TimeCallback = exports.TimeOfDay = exports.TimeCallbackType = void 0;
4
+ const server_1 = require("../server");
6
5
  const logLevel_1 = require("./logLevel");
7
6
  var TimeCallbackType;
8
7
  (function (TimeCallbackType) {
@@ -10,6 +9,13 @@ var TimeCallbackType;
10
9
  TimeCallbackType[TimeCallbackType["Sunrise"] = 2] = "Sunrise";
11
10
  TimeCallbackType[TimeCallbackType["SunSet"] = 3] = "SunSet";
12
11
  })(TimeCallbackType = exports.TimeCallbackType || (exports.TimeCallbackType = {}));
12
+ var TimeOfDay;
13
+ (function (TimeOfDay) {
14
+ TimeOfDay[TimeOfDay["BeforeSunrise"] = 1] = "BeforeSunrise";
15
+ TimeOfDay[TimeOfDay["Daylight"] = 2] = "Daylight";
16
+ TimeOfDay[TimeOfDay["AfterSunset"] = 3] = "AfterSunset";
17
+ TimeOfDay[TimeOfDay["Night"] = 4] = "Night";
18
+ })(TimeOfDay = exports.TimeOfDay || (exports.TimeOfDay = {}));
13
19
  class TimeCallback {
14
20
  constructor(name, type, cFunction, minuteOffset, hours, minutes, sunTimeOffset) {
15
21
  this.name = name;
@@ -37,12 +43,12 @@ class TimeCallback {
37
43
  // Heute ist schon abgelaufen, also morgen festlegen
38
44
  this.nextToDo = new Date(this.nextToDo.getTime() + 24 * 60 * 60 * 1000);
39
45
  }
40
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Nächste Zeitevent für "${this.name}" um ${this.nextToDo.toLocaleTimeString('de-DE')}`);
46
+ server_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Nächste Zeitevent für "${this.name}" um ${this.nextToDo.toLocaleTimeString('de-DE')}`);
41
47
  break;
42
48
  case TimeCallbackType.Sunrise:
43
- let fixedSRDate = new Date(time_callback_service_1.TimeCallbackService.nextSunRise.getTime() + this.minuteOffset * 60 * 1000);
49
+ let fixedSRDate = new Date(server_1.TimeCallbackService.nextSunRise.getTime() + this.minuteOffset * 60 * 1000);
44
50
  if (this.sunTimeOffset) {
45
- const nextMinSR = this.sunTimeOffset.getNextMinimumSunrise();
51
+ const nextMinSR = this.sunTimeOffset.getNextMinimumSunrise(now);
46
52
  if (nextMinSR > fixedSRDate && fixedSRDate.getDate() === nextMinSR.getDate()) {
47
53
  fixedSRDate = nextMinSR;
48
54
  }
@@ -50,13 +56,13 @@ class TimeCallback {
50
56
  if (now > fixedSRDate) {
51
57
  return;
52
58
  }
53
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Nächste Zeitevent für "${this.name}" um ${fixedSRDate.toLocaleTimeString('de-DE')}`);
59
+ server_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Nächste Zeitevent für "${this.name}" um ${fixedSRDate.toLocaleTimeString('de-DE')}`);
54
60
  this.nextToDo = fixedSRDate;
55
61
  break;
56
62
  case TimeCallbackType.SunSet:
57
- let fixedSSDate = new Date(time_callback_service_1.TimeCallbackService.nextSunSet.getTime() + this.minuteOffset * 60 * 1000);
63
+ let fixedSSDate = new Date(server_1.TimeCallbackService.nextSunSet.getTime() + this.minuteOffset * 60 * 1000);
58
64
  if (this.sunTimeOffset) {
59
- const nextMaxSS = this.sunTimeOffset.getNextMaximumSunset();
65
+ const nextMaxSS = this.sunTimeOffset.getNextMaximumSunset(now);
60
66
  if (nextMaxSS < fixedSSDate && fixedSSDate.getDate() === nextMaxSS.getDate()) {
61
67
  fixedSSDate = nextMaxSS;
62
68
  }
@@ -64,7 +70,7 @@ class TimeCallback {
64
70
  if (now > fixedSSDate) {
65
71
  return;
66
72
  }
67
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Nächste Zeitevent für "${this.name}" um ${fixedSSDate.toLocaleTimeString('de-DE')}`);
73
+ server_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Nächste Zeitevent für "${this.name}" um ${fixedSSDate.toLocaleTimeString('de-DE')}`);
68
74
  this.nextToDo = fixedSSDate;
69
75
  break;
70
76
  }
@@ -1,4 +1,4 @@
1
- import { HmIpHeizgruppe } from './hmIPDevices/hmIpHeizgruppe';
1
+ import { HmIpHeizgruppe } from './hmIPDevices';
2
2
  export declare class Heizgruppen {
3
3
  static getInfo(): string;
4
4
  static getSpecificInfo(pText: string | undefined): Promise<string>;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Heizgruppen = void 0;
4
4
  const deviceType_1 = require("./deviceType");
5
5
  const devices_1 = require("./devices");
6
- const index_1 = require("../../index");
6
+ const services_1 = require("../services");
7
7
  class Heizgruppen {
8
8
  static getInfo() {
9
9
  const gruppen = Heizgruppen.getAllGruppen();
@@ -18,7 +18,7 @@ class Heizgruppen {
18
18
  return response.join('\n');
19
19
  }
20
20
  static async getSpecificInfo(pText) {
21
- var _a;
21
+ var _a, _b;
22
22
  if (pText === undefined || !pText.includes('"')) {
23
23
  return `Bitte übergeben Sie eine Heizgruppe innerhalb von "". z.B. "EG Flur HeizGr"`;
24
24
  }
@@ -27,7 +27,7 @@ class Heizgruppen {
27
27
  if (group === undefined) {
28
28
  return `"${searchText}" ist keine gültige Heizgruppe, im Folgenden ist eine Liste aller gültigen Heizgruppen:\n${this.getInfo()}`;
29
29
  }
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
+ const results = (_b = (await ((_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.readTemperaturDataPoint(group, 20)))) !== null && _b !== void 0 ? _b : [];
31
31
  const response = [`Dies sind die letzten 20 Messpunkte der Heizgruppe:`];
32
32
  response.push(`Zeitpunkt\t\tIst-Temperatur\t\tSoll-Temperatur\t\tVentilstellung`);
33
33
  for (const r of results) {
@@ -1,30 +1,27 @@
1
1
  /// <reference types="iobroker" />
2
+ import { IBaseDevice } from './iBaseDevice';
2
3
  import { DeviceInfo } from './DeviceInfo';
3
- import { RoomDeviceAddingSettings } from '../../models/rooms/RoomSettings/roomDeviceAddingSettings';
4
- import { IOBrokerConnection } from '../ioBroker/connection';
5
- import { LogLevel } from '../../models/logLevel';
4
+ import { LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
5
+ import { IOBrokerConnection } from '../ioBroker';
6
6
  import { DeviceType } from './deviceType';
7
- import { RoomBase } from '../../models/rooms/RoomBase';
8
- export declare abstract class IoBrokerBaseDevice {
7
+ export declare abstract class IoBrokerBaseDevice implements IBaseDevice {
9
8
  protected _info: DeviceInfo;
10
9
  deviceType: DeviceType;
11
10
  static roomAddingSettings: {
12
11
  [id: string]: RoomDeviceAddingSettings;
13
12
  };
14
- static addRoom(shortName: string, settings: RoomDeviceAddingSettings): void;
15
- static checkMissing(): void;
16
13
  room: RoomBase | undefined;
17
14
  battery: number | undefined;
18
- get id(): string;
19
15
  protected constructor(_info: DeviceInfo, deviceType: DeviceType);
16
+ get id(): string;
20
17
  /**
21
18
  * Getter info
22
- * @return {TradFriInfo}
19
+ * @return {DeviceInfo}
23
20
  */
24
21
  get info(): DeviceInfo;
25
22
  /**
26
23
  * Setter info
27
- * @param {TradFriInfo} value
24
+ * @param {DeviceInfo} value
28
25
  */
29
26
  set info(value: DeviceInfo);
30
27
  /**
@@ -32,14 +29,17 @@ export declare abstract class IoBrokerBaseDevice {
32
29
  * @return {IOBrokerConnection}
33
30
  */
34
31
  get ioConn(): IOBrokerConnection | undefined;
32
+ static addRoom(shortName: string, settings: RoomDeviceAddingSettings): void;
33
+ static checkMissing(): void;
35
34
  /**
36
35
  * Returns whether a connection to ioBroker is established or not
37
36
  * @param showError If true, an error message will be written to the log if the connection is not established
38
37
  */
39
38
  checkIoConnection(showError?: boolean): boolean;
40
39
  abstract update(idSplit: string[], state: ioBroker.State, initial: boolean, pOverride: boolean): void;
40
+ log(level: LogLevel, message: string): void;
41
+ toJSON(): Partial<IoBrokerBaseDevice>;
41
42
  protected addToCorrectRoom(): void;
42
- protected log(level: LogLevel, message: string): void;
43
43
  /**
44
44
  * Sets the state of a given data point and returns true if that was successful.
45
45
  * @param pointId Data point to write to
@@ -48,5 +48,4 @@ export declare abstract class IoBrokerBaseDevice {
48
48
  * @param onError Callback to run if an error has occurred during writing the data
49
49
  */
50
50
  protected setState(pointId: string, state: string | number | boolean | ioBroker.State | ioBroker.SettableState | null, onSuccess?: (() => void) | undefined, onError?: ((error: Error) => void) | undefined): void;
51
- toJSON(): Partial<IoBrokerBaseDevice>;
52
51
  }