hoffmation-base 0.1.33-8 → 0.1.34-2

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 (118) hide show
  1. package/lib/models/rooms/RoomBase.d.ts +1 -0
  2. package/lib/models/rooms/RoomBase.js +19 -8
  3. package/lib/models/rooms/RoomSettings/RoomSettings.d.ts +3 -0
  4. package/lib/models/rooms/RoomSettings/RoomSettings.js +7 -0
  5. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +5 -0
  6. package/lib/models/rooms/RoomSettings/roomAddDeviceItem.js +1 -1
  7. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +1 -1
  8. package/lib/models/timeCallback.js +1 -1
  9. package/lib/server/devices/IoBrokerBaseDevice.d.ts +2 -0
  10. package/lib/server/devices/IoBrokerBaseDevice.js +8 -1
  11. package/lib/server/devices/device-cluster-type.d.ts +4 -1
  12. package/lib/server/devices/device-cluster-type.js +3 -0
  13. package/lib/server/devices/deviceType.d.ts +3 -0
  14. package/lib/server/devices/deviceType.js +3 -0
  15. package/lib/server/devices/deviceUpdater.js +1 -1
  16. package/lib/server/devices/devices.js +32 -16
  17. package/lib/server/devices/{Fenster.d.ts → groups/Fenster.d.ts} +8 -6
  18. package/lib/server/devices/{Fenster.js → groups/Fenster.js} +16 -13
  19. package/lib/server/devices/groups/base-group.d.ts +2 -0
  20. package/lib/server/devices/groups/base-group.js +8 -0
  21. package/lib/server/devices/groups/fensterGroup.d.ts +1 -1
  22. package/lib/server/devices/groups/fensterGroup.js +2 -3
  23. package/lib/server/devices/groups/heatGroup.d.ts +5 -1
  24. package/lib/server/devices/groups/heatGroup.js +12 -3
  25. package/lib/server/devices/groups/index.d.ts +1 -0
  26. package/lib/server/devices/groups/index.js +1 -0
  27. package/lib/server/devices/groups/lampenGroup.js +4 -0
  28. package/lib/server/devices/groups/praesenzGroup.js +5 -6
  29. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +10 -0
  30. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +32 -0
  31. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +9 -10
  32. package/lib/server/devices/hmIPDevices/hmIpDevice.js +4 -4
  33. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +1 -1
  34. package/lib/server/devices/hmIPDevices/hmIpGriff.js +10 -11
  35. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +3 -1
  36. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +5 -6
  37. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +17 -5
  38. package/lib/server/devices/hmIPDevices/hmIpLampe.js +7 -8
  39. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +7 -8
  40. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +1 -1
  41. package/lib/server/devices/hmIPDevices/hmIpRoll.js +7 -8
  42. package/lib/server/devices/hmIPDevices/hmIpTaster.js +1 -2
  43. package/lib/server/devices/hmIPDevices/hmIpTherm.js +1 -2
  44. package/lib/server/devices/hmIPDevices/hmIpTuer.js +8 -10
  45. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -4
  46. package/lib/server/devices/hmIPDevices/index.d.ts +1 -0
  47. package/lib/server/devices/hmIPDevices/index.js +1 -0
  48. package/lib/server/devices/iHumiditySensor.d.ts +4 -0
  49. package/lib/server/devices/iHumiditySensor.js +2 -0
  50. package/lib/server/devices/iShutter.d.ts +1 -1
  51. package/lib/server/devices/iTemperaturSensor.d.ts +5 -0
  52. package/lib/server/devices/iTemperaturSensor.js +2 -0
  53. package/lib/server/devices/index.d.ts +2 -1
  54. package/lib/server/devices/index.js +2 -1
  55. package/lib/server/devices/wledDevice.js +1 -1
  56. package/lib/server/devices/zigbee/ZigbeeActuator.js +7 -9
  57. package/lib/server/devices/zigbee/index.d.ts +2 -0
  58. package/lib/server/devices/zigbee/index.js +2 -0
  59. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +7 -0
  60. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +22 -0
  61. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +3 -4
  62. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +16 -17
  63. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +4 -5
  64. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +16 -13
  65. package/lib/server/devices/zigbee/zigbeeDevice.js +5 -6
  66. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +4 -5
  67. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +1 -2
  68. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +1 -2
  69. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +11 -12
  70. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +2 -3
  71. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +12 -13
  72. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  73. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +19 -8
  74. package/lib/server/devices/zigbee/zigbeeMagnetContact.d.ts +2 -0
  75. package/lib/server/devices/zigbee/zigbeeMagnetContact.js +17 -10
  76. package/lib/server/devices/zigbee/zigbeeMotionSensor.js +11 -12
  77. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -2
  78. package/lib/server/devices/zigbee/zigbeeShutter.d.ts +1 -1
  79. package/lib/server/devices/zigbee/zigbeeShutter.js +6 -7
  80. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -2
  81. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +14 -0
  82. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +33 -0
  83. package/lib/server/ioBroker/ioBroker.main.js +1 -1
  84. package/lib/server/services/HTTPSOptions.js +1 -1
  85. package/lib/server/services/ShutterService.d.ts +1 -1
  86. package/lib/server/services/Sonos/OwnSonosDevices.js +1 -1
  87. package/lib/server/services/Sonos/mp3-server.js +1 -1
  88. package/lib/server/services/Sonos/polly-service.js +1 -1
  89. package/lib/server/services/Sonos/sonos-service.js +1 -1
  90. package/lib/server/services/Telegram/telegram-service.js +1 -1
  91. package/lib/server/services/api/api-service.d.ts +2 -0
  92. package/lib/server/services/api/api-service.js +6 -4
  93. package/lib/server/services/calendar/muell-tonne.js +1 -1
  94. package/lib/server/services/calendar/m/303/274ll-service.js +1 -1
  95. package/lib/server/services/dbo/persist.js +1 -1
  96. package/lib/server/services/https-service.js +1 -1
  97. package/lib/server/services/index.d.ts +1 -1
  98. package/lib/server/services/index.js +1 -1
  99. package/lib/server/services/log-service/index.d.ts +3 -0
  100. package/lib/server/services/log-service/index.js +15 -0
  101. package/lib/server/services/log-service/log-filter-data.d.ts +6 -0
  102. package/lib/server/services/log-service/log-filter-data.js +6 -0
  103. package/lib/server/services/log-service/log-object.d.ts +9 -0
  104. package/lib/server/services/log-service/log-object.js +12 -0
  105. package/lib/server/services/log-service/log-service.d.ts +18 -0
  106. package/lib/server/services/log-service/log-service.js +58 -0
  107. package/lib/server/services/news-service.js +1 -1
  108. package/lib/server/services/room-service/room-service.d.ts +1 -1
  109. package/lib/server/services/room-service/room-service.js +1 -1
  110. package/lib/server/services/time-callback-service.js +2 -2
  111. package/lib/server/services/utils/ringstorage.d.ts +3 -3
  112. package/lib/server/services/utils/ringstorage.js +2 -2
  113. package/lib/server/services/utils/utils.js +1 -1
  114. package/lib/server/services/weather/weather-service.js +1 -1
  115. package/lib/tsconfig.tsbuildinfo +1 -1
  116. package/package.json +12 -12
  117. package/lib/server/services/log-service.d.ts +0 -12
  118. package/lib/server/services/log-service.js +0 -37
@@ -45,4 +45,5 @@ export declare class RoomBase implements iRoomBase {
45
45
  [p: string]: BaseGroup;
46
46
  };
47
47
  }>;
48
+ private log;
48
49
  }
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RoomBase = void 0;
7
7
  const logLevel_1 = require("../logLevel");
8
- const log_service_1 = require("../../server/services/log-service");
8
+ const log_service_1 = require("../../server/services/log-service/log-service");
9
9
  const persist_1 = require("../../server/services/dbo/persist");
10
10
  const time_callback_service_1 = require("../../server/services/time-callback-service");
11
11
  const room_service_1 = require("../../server/services/room-service/room-service");
@@ -56,7 +56,7 @@ class RoomBase {
56
56
  }
57
57
  initializeBase() {
58
58
  var _a, _b, _c;
59
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `RoomBase Init für ${this.roomName}`);
59
+ this.log(logLevel_1.LogLevel.Debug, `RoomBase Init für ${this.roomName}`);
60
60
  this.recalcTimeCallbacks();
61
61
  (_a = this.PraesenzGroup) === null || _a === void 0 ? void 0 : _a.initCallbacks();
62
62
  (_b = this.FensterGroup) === null || _b === void 0 ? void 0 : _b.initialize();
@@ -89,17 +89,21 @@ class RoomBase {
89
89
  setLightTimeBased(movementDependant = false) {
90
90
  var _a, _b;
91
91
  if (!this.LampenGroup) {
92
+ this.log(logLevel_1.LogLevel.Trace, 'Ignore "setLightTimeBased" as we have no lamps');
92
93
  return;
93
94
  }
94
95
  if (movementDependant && this.PraesenzGroup && !((_a = this.PraesenzGroup) === null || _a === void 0 ? void 0 : _a.anyPresent())) {
96
+ this.log(logLevel_1.LogLevel.Trace, 'Turn off lights as noone is present.');
95
97
  this.LampenGroup.switchAll(false);
96
98
  return;
97
99
  }
98
- if (!this.settings.lampOffset) {
99
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Alert, `Beim Aufruf von "setLightTimeBased" im Raum ${this.roomName} liegt kein Lampen Offset vor`);
100
+ if (!this.settings.lampOffset && !this.settings.roomIsAlwaysDark) {
101
+ this.log(logLevel_1.LogLevel.Alert, `Beim Aufruf von "setLightTimeBased" im Raum ${this.roomName} liegt kein Lampen Offset vor`);
100
102
  return;
101
103
  }
102
- let timeOfDay = time_callback_service_1.TimeCallbackService.dayType(this.settings.lampOffset);
104
+ let timeOfDay = this.settings.roomIsAlwaysDark
105
+ ? time_callback_service_1.TimeOfDay.Night
106
+ : time_callback_service_1.TimeCallbackService.dayType(this.settings.lampOffset);
103
107
  if (timeOfDay === time_callback_service_1.TimeOfDay.Daylight &&
104
108
  ((this.settings.lightIfNoWindows && (!this.FensterGroup || this.FensterGroup.fenster.length === 0)) ||
105
109
  ((_b = this.FensterGroup) === null || _b === void 0 ? void 0 : _b.fenster.some((f) => {
@@ -111,11 +115,13 @@ class RoomBase {
111
115
  }
112
116
  isNowLightTime() {
113
117
  var _a;
114
- if (!this.settings.lampOffset) {
115
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Alert, `Beim Aufruf von "setLightTimeBased" im Raum ${this.roomName} liegt kein Lampen Offset vor`);
118
+ if (!this.settings.lampOffset && !this.settings.roomIsAlwaysDark) {
119
+ this.log(logLevel_1.LogLevel.Alert, `Beim Aufruf von "setLightTimeBased" im Raum ${this.roomName} liegt kein Lampen Offset vor`);
116
120
  return false;
117
121
  }
118
- let timeOfDay = time_callback_service_1.TimeCallbackService.dayType(this.settings.lampOffset);
122
+ let timeOfDay = this.settings.roomIsAlwaysDark
123
+ ? time_callback_service_1.TimeOfDay.Night
124
+ : time_callback_service_1.TimeCallbackService.dayType(this.settings.lampOffset);
119
125
  if (timeOfDay === time_callback_service_1.TimeOfDay.Daylight &&
120
126
  ((_a = this.FensterGroup) === null || _a === void 0 ? void 0 : _a.fenster.some((f) => {
121
127
  return ShutterService_1.ShutterService.anyRolloDown(f.getShutter());
@@ -129,5 +135,10 @@ class RoomBase {
129
135
  result.groupDict = Object.fromEntries(this.groups);
130
136
  return lodash_1.default.omit(result, 'groups');
131
137
  }
138
+ log(level, message) {
139
+ log_service_1.ServerLogService.writeLog(level, message, {
140
+ room: this.roomName,
141
+ });
142
+ }
132
143
  }
133
144
  exports.RoomBase = RoomBase;
@@ -26,9 +26,12 @@ export declare class RoomSettings implements iRoomDefaultSettings, iRoomInitiali
26
26
  private _sonnenAufgangRolloMinTime;
27
27
  private _sonnenAufgangLampenDelay;
28
28
  private _lightIfNoWindows;
29
+ private _roomIsAlwaysDark;
29
30
  constructor(initSettings: iRoomInitializationSettings);
30
31
  private recalcRolloOffset;
31
32
  private recalcLampOffset;
33
+ get roomIsAlwaysDark(): boolean;
34
+ set roomIsAlwaysDark(value: boolean);
32
35
  get sonnenAufgangLampenDelay(): number;
33
36
  set sonnenAufgangLampenDelay(value: number);
34
37
  get sonnenAufgangRolloDelay(): number;
@@ -27,6 +27,7 @@ class RoomSettings {
27
27
  this._sonnenAufgangRolloMinTime = this.defaultSettings.sonnenAufgangRolloMinTime;
28
28
  this._sonnenAufgangLampenDelay = this.defaultSettings.sonnenAufgangLampenDelay;
29
29
  this._lightIfNoWindows = this.defaultSettings.lightIfNoWindows;
30
+ this._roomIsAlwaysDark = this.defaultSettings.roomIsAlwaysDark;
30
31
  this.shortName = initSettings.shortName;
31
32
  this.etage = initSettings.etage;
32
33
  this.deviceAddidngSettings = initSettings.deviceAddidngSettings;
@@ -43,6 +44,12 @@ class RoomSettings {
43
44
  this.lampOffset = new time_callback_service_1.SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenAufgangRolloDelay);
44
45
  (_a = this.room) === null || _a === void 0 ? void 0 : _a.recalcTimeCallbacks();
45
46
  }
47
+ get roomIsAlwaysDark() {
48
+ return this._roomIsAlwaysDark;
49
+ }
50
+ set roomIsAlwaysDark(value) {
51
+ this._roomIsAlwaysDark = value;
52
+ }
46
53
  get sonnenAufgangLampenDelay() {
47
54
  return this._sonnenAufgangLampenDelay;
48
55
  }
@@ -1,6 +1,11 @@
1
1
  import { iTimePair } from '../../../server/config/iConfig';
2
2
  export interface iRoomDefaultSettings {
3
3
  rolloHeatReduction: boolean;
4
+ /**
5
+ * Indicates rooms, which are time independent always dark (like basement).
6
+ * This results in lamps beeing turned on on motion regardless of windows and time.
7
+ */
8
+ roomIsAlwaysDark: boolean;
4
9
  lampenBeiBewegung: boolean;
5
10
  lichtSonnenAufgangAus: boolean;
6
11
  sonnenUntergangRollos: boolean;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RoomAddDeviceItem = void 0;
4
- const log_service_1 = require("../../../server/services/log-service");
4
+ const log_service_1 = require("../../../server/services/log-service/log-service");
5
5
  const logLevel_1 = require("../../logLevel");
6
6
  class RoomAddDeviceItem {
7
7
  constructor(setID, index, customName) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RoomDeviceAddingSettings = void 0;
4
- const log_service_1 = require("../../../server/services/log-service");
4
+ const log_service_1 = require("../../../server/services/log-service/log-service");
5
5
  const roomAddDeviceItem_1 = require("./roomAddDeviceItem");
6
6
  const logLevel_1 = require("../../logLevel");
7
7
  const deviceType_1 = require("../../../server/devices/deviceType");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimeCallback = exports.TimeCallbackType = void 0;
4
- const log_service_1 = require("../server/services/log-service");
4
+ const log_service_1 = require("../server/services/log-service/log-service");
5
5
  const time_callback_service_1 = require("../server/services/time-callback-service");
6
6
  const logLevel_1 = require("./logLevel");
7
7
  var TimeCallbackType;
@@ -2,6 +2,7 @@
2
2
  import { DeviceInfo } from './DeviceInfo';
3
3
  import { RoomDeviceAddingSettings } from '../../models/rooms/RoomSettings/roomDeviceAddingSettings';
4
4
  import { IOBrokerConnection } from '../ioBroker/connection';
5
+ import { LogLevel } from '../../models/logLevel';
5
6
  import { DeviceType } from './deviceType';
6
7
  import { RoomBase } from '../../models/rooms/RoomBase';
7
8
  export declare abstract class IoBrokerBaseDevice {
@@ -38,6 +39,7 @@ export declare abstract class IoBrokerBaseDevice {
38
39
  checkIoConnection(showError?: boolean): boolean;
39
40
  abstract update(idSplit: string[], state: ioBroker.State, initial: boolean, pOverride: boolean): void;
40
41
  protected addToCorrectRoom(): void;
42
+ protected log(level: LogLevel, message: string): void;
41
43
  /**
42
44
  * Sets the state of a given data point and returns true if that was successful.
43
45
  * @param pointId Data point to write to
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IoBrokerBaseDevice = void 0;
4
- const log_service_1 = require("../services/log-service");
4
+ const log_service_1 = require("../services/log-service/log-service");
5
5
  const logLevel_1 = require("../../models/logLevel");
6
6
  const ioBroker_main_1 = require("../ioBroker/ioBroker.main");
7
7
  const utils_1 = require("../services/utils/utils");
@@ -88,6 +88,13 @@ class IoBrokerBaseDevice {
88
88
  }
89
89
  log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Warn, `${this.info.room} is noch kein bekannter Raum`);
90
90
  }
91
+ log(level, message) {
92
+ log_service_1.ServerLogService.writeLog(level, message, {
93
+ room: this.info.room,
94
+ deviceId: this.id,
95
+ deviceName: this.info.customName,
96
+ });
97
+ }
91
98
  /**
92
99
  * Sets the state of a given data point and returns true if that was successful.
93
100
  * @param pointId Data point to write to
@@ -12,5 +12,8 @@ export declare enum DeviceClusterType {
12
12
  Windows = 10,
13
13
  Handle = 11,
14
14
  Vibration = 12,
15
- Shutter = 13
15
+ Shutter = 13,
16
+ MagnetContact = 14,
17
+ TemperaturSensor = 15,
18
+ HumiditySensor = 16
16
19
  }
@@ -17,4 +17,7 @@ var DeviceClusterType;
17
17
  DeviceClusterType[DeviceClusterType["Handle"] = 11] = "Handle";
18
18
  DeviceClusterType[DeviceClusterType["Vibration"] = 12] = "Vibration";
19
19
  DeviceClusterType[DeviceClusterType["Shutter"] = 13] = "Shutter";
20
+ DeviceClusterType[DeviceClusterType["MagnetContact"] = 14] = "MagnetContact";
21
+ DeviceClusterType[DeviceClusterType["TemperaturSensor"] = 15] = "TemperaturSensor";
22
+ DeviceClusterType[DeviceClusterType["HumiditySensor"] = 16] = "HumiditySensor";
20
23
  })(DeviceClusterType = exports.DeviceClusterType || (exports.DeviceClusterType = {}));
@@ -11,6 +11,7 @@ export declare enum DeviceType {
11
11
  HmIpTuer = 109,
12
12
  HmIpHeizgruppe = 110,
13
13
  HmIpBewegung = 111,
14
+ HmIpAccessPoint = 112,
14
15
  ZigbeeIkeaFernbedienung = 201,
15
16
  ZigbeeIkeaSteckdose = 202,
16
17
  ZigbeeIlluLedRGBCCT = 203,
@@ -25,5 +26,7 @@ export declare enum DeviceType {
25
26
  ZigbeeIlluShutter = 212,
26
27
  ZigbeeSMaBiTMagnetContact = 213,
27
28
  ZigbeeSonoffMotion = 214,
29
+ ZigbeeAqaraMagnetContact = 215,
30
+ ZigbeeSonoffTemp = 216,
28
31
  Wled = 1001
29
32
  }
@@ -15,6 +15,7 @@ var DeviceType;
15
15
  DeviceType[DeviceType["HmIpTuer"] = 109] = "HmIpTuer";
16
16
  DeviceType[DeviceType["HmIpHeizgruppe"] = 110] = "HmIpHeizgruppe";
17
17
  DeviceType[DeviceType["HmIpBewegung"] = 111] = "HmIpBewegung";
18
+ DeviceType[DeviceType["HmIpAccessPoint"] = 112] = "HmIpAccessPoint";
18
19
  DeviceType[DeviceType["ZigbeeIkeaFernbedienung"] = 201] = "ZigbeeIkeaFernbedienung";
19
20
  DeviceType[DeviceType["ZigbeeIkeaSteckdose"] = 202] = "ZigbeeIkeaSteckdose";
20
21
  DeviceType[DeviceType["ZigbeeIlluLedRGBCCT"] = 203] = "ZigbeeIlluLedRGBCCT";
@@ -29,5 +30,7 @@ var DeviceType;
29
30
  DeviceType[DeviceType["ZigbeeIlluShutter"] = 212] = "ZigbeeIlluShutter";
30
31
  DeviceType[DeviceType["ZigbeeSMaBiTMagnetContact"] = 213] = "ZigbeeSMaBiTMagnetContact";
31
32
  DeviceType[DeviceType["ZigbeeSonoffMotion"] = 214] = "ZigbeeSonoffMotion";
33
+ DeviceType[DeviceType["ZigbeeAqaraMagnetContact"] = 215] = "ZigbeeAqaraMagnetContact";
34
+ DeviceType[DeviceType["ZigbeeSonoffTemp"] = 216] = "ZigbeeSonoffTemp";
32
35
  DeviceType[DeviceType["Wled"] = 1001] = "Wled";
33
36
  })(DeviceType = exports.DeviceType || (exports.DeviceType = {}));
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeviceUpdater = void 0;
4
- const log_service_1 = require("../services/log-service");
4
+ const log_service_1 = require("../services/log-service/log-service");
5
5
  const logLevel_1 = require("../../models/logLevel");
6
6
  const devices_1 = require("./devices");
7
7
  class DeviceUpdater {
@@ -5,7 +5,7 @@ const hmIpDevice_1 = require("./hmIPDevices/hmIpDevice");
5
5
  const zigbeeDevice_1 = require("./zigbee/zigbeeDevice");
6
6
  const deviceType_1 = require("./deviceType");
7
7
  const hmIpPraezenz_1 = require("./hmIPDevices/hmIpPraezenz");
8
- const log_service_1 = require("../services/log-service");
8
+ const log_service_1 = require("../services/log-service/log-service");
9
9
  const DeviceInfo_1 = require("./DeviceInfo");
10
10
  const logLevel_1 = require("../../models/logLevel");
11
11
  const hmIpBewegung_1 = require("./hmIPDevices/hmIpBewegung");
@@ -31,6 +31,9 @@ const hmIpHeizgruppe_1 = require("./hmIPDevices/hmIpHeizgruppe");
31
31
  const zigbeeIlluShutter_1 = require("./zigbee/zigbeeIlluShutter");
32
32
  const zigbeeSMaBiTMagnetContact_1 = require("./zigbee/zigbeeSMaBiTMagnetContact");
33
33
  const zigbeeSonoffMotion_1 = require("./zigbee/zigbeeSonoffMotion");
34
+ const hmIpAccessPoint_1 = require("./hmIPDevices/hmIpAccessPoint");
35
+ const zigbeeAqaraMagnetContact_1 = require("./zigbee/zigbeeAqaraMagnetContact");
36
+ const zigbeeSonoffTemp_1 = require("./zigbee/zigbeeSonoffTemp");
34
37
  class Devices {
35
38
  constructor(pDeviceData, pRoomImportEnforcer) {
36
39
  // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
@@ -71,6 +74,10 @@ class Devices {
71
74
  log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
72
75
  d.detectionsToday = 0;
73
76
  }
77
+ else if (d.deviceType === deviceType_1.DeviceType.ZigbeeSonoffMotion || d.deviceType === deviceType_1.DeviceType.ZigbeeAquaraMotion) {
78
+ log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
79
+ d.detectionsToday = 0;
80
+ }
74
81
  }
75
82
  }
76
83
  processZigbeeDevice(cDevConf) {
@@ -83,23 +90,14 @@ class Devices {
83
90
  log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `${zigbeeInfo.devID} with Type "${zigbeeInfo.deviceType}" doesn't exists --> create it`);
84
91
  let d;
85
92
  switch (zigbeeInfo.deviceType) {
86
- case 'AquaraVibra':
87
- d = new zigbeeAquaraVibra_1.ZigbeeAquaraVibra(zigbeeInfo);
93
+ case 'AqaraMagnetContact':
94
+ d = new zigbeeAqaraMagnetContact_1.ZigbeeAqaraMagnetContact(zigbeeInfo);
88
95
  break;
89
96
  case 'AquaraMotion':
90
97
  d = new zigbeeAquaraMotion_1.ZigbeeAquaraMotion(zigbeeInfo);
91
98
  break;
92
- case 'IkeaStecker':
93
- d = new zigbeeIkeaSteckdose_1.ZigbeeIkeaSteckdose(zigbeeInfo);
94
- break;
95
- case 'LedRGBCCT':
96
- d = new zigbeeIlluLedRGBCCT_1.ZigbeeIlluLedRGBCCT(zigbeeInfo);
97
- break;
98
- case 'IlluDimmer':
99
- d = new zigbeeIlluDimmer_1.ZigbeeIlluDimmer(zigbeeInfo);
100
- break;
101
- case 'HeimanSmoke':
102
- d = new zigbeeHeimanSmoke_1.ZigbeeHeimanSmoke(zigbeeInfo);
99
+ case 'AquaraVibra':
100
+ d = new zigbeeAquaraVibra_1.ZigbeeAquaraVibra(zigbeeInfo);
103
101
  break;
104
102
  case 'AquaraWater':
105
103
  d = new zigbeeAquaraWater_1.ZigbeeAquaraWater(zigbeeInfo);
@@ -107,21 +105,36 @@ class Devices {
107
105
  case 'BlitzShp':
108
106
  d = new zigbeeBlitzShp_1.ZigbeeBlitzShp(zigbeeInfo);
109
107
  break;
110
- case 'IlluLampe':
111
- d = new zigbeeIlluLampe_1.ZigbeeIlluLampe(zigbeeInfo);
108
+ case 'HeimanSmoke':
109
+ d = new zigbeeHeimanSmoke_1.ZigbeeHeimanSmoke(zigbeeInfo);
110
+ break;
111
+ case 'IkeaStecker':
112
+ d = new zigbeeIkeaSteckdose_1.ZigbeeIkeaSteckdose(zigbeeInfo);
112
113
  break;
113
114
  case 'IlluActuator':
114
115
  d = new zigbeeIlluActuator_1.ZigbeeIlluActuator(zigbeeInfo);
115
116
  break;
117
+ case 'IlluDimmer':
118
+ d = new zigbeeIlluDimmer_1.ZigbeeIlluDimmer(zigbeeInfo);
119
+ break;
120
+ case 'IlluLampe':
121
+ d = new zigbeeIlluLampe_1.ZigbeeIlluLampe(zigbeeInfo);
122
+ break;
116
123
  case 'IlluShutter':
117
124
  d = new zigbeeIlluShutter_1.ZigbeeIlluShutter(zigbeeInfo);
118
125
  break;
126
+ case 'LedRGBCCT':
127
+ d = new zigbeeIlluLedRGBCCT_1.ZigbeeIlluLedRGBCCT(zigbeeInfo);
128
+ break;
119
129
  case 'SMaBiTMagnet':
120
130
  d = new zigbeeSMaBiTMagnetContact_1.ZigbeeSMaBiTMagnetContact(zigbeeInfo);
121
131
  break;
122
132
  case 'SonoffMotion':
123
133
  d = new zigbeeSonoffMotion_1.ZigbeeSonoffMotion(zigbeeInfo);
124
134
  break;
135
+ case 'SonoffTemp':
136
+ d = new zigbeeSonoffTemp_1.ZigbeeSonoffTemp(zigbeeInfo);
137
+ break;
125
138
  default:
126
139
  log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Warn, `No zigbee Device Type for ${zigbeeInfo.deviceType} defined`);
127
140
  d = new zigbeeDevice_1.ZigbeeDevice(zigbeeInfo, deviceType_1.DeviceType.unknown);
@@ -172,6 +185,9 @@ class Devices {
172
185
  case 'HeizGr':
173
186
  d = new hmIpHeizgruppe_1.HmIpHeizgruppe(hmIPInfo);
174
187
  break;
188
+ case 'AccessPoint':
189
+ d = new hmIpAccessPoint_1.HmIpAccessPoint(hmIPInfo);
190
+ break;
175
191
  default:
176
192
  log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Warn, `No HmIP Device Type for ${hmIPInfo.deviceType} defined`);
177
193
  d = new hmIpDevice_1.HmIPDevice(hmIPInfo, deviceType_1.DeviceType.unknown);
@@ -1,8 +1,9 @@
1
- import { HmIpGriff } from './hmIPDevices/hmIpGriff';
2
- import { ZigbeeAquaraVibra } from './zigbee/zigbeeAquaraVibra';
3
- import { FensterPosition } from './models/FensterPosition';
4
- import { iShutter } from './iShutter';
5
- import { BaseGroup } from './groups/base-group';
1
+ import { HmIpGriff } from '../hmIPDevices/hmIpGriff';
2
+ import { ZigbeeAquaraVibra } from '../zigbee/zigbeeAquaraVibra';
3
+ import { FensterPosition } from '../models/FensterPosition';
4
+ import { iShutter } from '../iShutter';
5
+ import { BaseGroup } from './base-group';
6
+ import { ZigbeeMagnetContact } from '../zigbee/zigbeeMagnetContact';
6
7
  export declare class Fenster extends BaseGroup {
7
8
  noRolloOnSunrise: boolean;
8
9
  desiredPosition: number;
@@ -11,8 +12,9 @@ export declare class Fenster extends BaseGroup {
11
12
  * @param {number} value
12
13
  */
13
14
  setDesiredPosition(value: number): void;
14
- constructor(roomName: string, handleIds?: string[], vibrationIds?: string[], shutterIds?: string[], noRolloOnSunrise?: boolean);
15
+ constructor(roomName: string, handleIds?: string[], vibrationIds?: string[], shutterIds?: string[], magnetIds?: string[], noRolloOnSunrise?: boolean);
15
16
  getHandle(): HmIpGriff[];
17
+ getMagnetContact(): ZigbeeMagnetContact[];
16
18
  getShutter(): iShutter[];
17
19
  getVibration(): ZigbeeAquaraVibra[];
18
20
  griffeInPosition(pPosition: FensterPosition): number;
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Fenster = void 0;
4
- const log_service_1 = require("../services/log-service");
5
- const utils_1 = require("../services/utils/utils");
6
- const FensterPosition_1 = require("./models/FensterPosition");
7
- const time_callback_service_1 = require("../services/time-callback-service");
8
- const logLevel_1 = require("../../models/logLevel");
9
- const ShutterService_1 = require("../services/ShutterService");
10
- const base_group_1 = require("./groups/base-group");
11
- const group_type_1 = require("./groups/group-type");
12
- const device_cluster_type_1 = require("./device-cluster-type");
13
- const device_list_1 = require("./device-list");
4
+ const utils_1 = require("../../services/utils/utils");
5
+ const FensterPosition_1 = require("../models/FensterPosition");
6
+ const time_callback_service_1 = require("../../services/time-callback-service");
7
+ const logLevel_1 = require("../../../models/logLevel");
8
+ const ShutterService_1 = require("../../services/ShutterService");
9
+ const base_group_1 = require("./base-group");
10
+ const group_type_1 = require("./group-type");
11
+ const device_cluster_type_1 = require("../device-cluster-type");
12
+ const device_list_1 = require("../device-list");
14
13
  class Fenster extends base_group_1.BaseGroup {
15
- constructor(roomName, handleIds = [], vibrationIds = [], shutterIds = [], noRolloOnSunrise = false) {
14
+ constructor(roomName, handleIds = [], vibrationIds = [], shutterIds = [], magnetIds = [], noRolloOnSunrise = false) {
16
15
  super(roomName, group_type_1.GroupType.Window);
17
16
  this.noRolloOnSunrise = noRolloOnSunrise;
18
17
  this.desiredPosition = 0;
19
18
  this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.Handle, new device_list_1.DeviceList(handleIds));
20
19
  this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.Vibration, new device_list_1.DeviceList(vibrationIds));
21
20
  this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.Shutter, new device_list_1.DeviceList(shutterIds));
21
+ this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.MagnetContact, new device_list_1.DeviceList(magnetIds));
22
22
  }
23
23
  /**
24
24
  * sets the desired Pos and moves rollo to this level
@@ -31,6 +31,9 @@ class Fenster extends base_group_1.BaseGroup {
31
31
  getHandle() {
32
32
  return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.Handle);
33
33
  }
34
+ getMagnetContact() {
35
+ return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.MagnetContact);
36
+ }
34
37
  getShutter() {
35
38
  return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.Shutter);
36
39
  }
@@ -78,7 +81,7 @@ class Fenster extends base_group_1.BaseGroup {
78
81
  this.griffeInPosition(FensterPosition_1.FensterPosition.kipp) === 0) {
79
82
  const now = new Date().getTime();
80
83
  this.getVibration().forEach((element) => {
81
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `Starte Timeout für Vibrationsdeaktivierung für ${element.info.customName}`);
84
+ this.log(logLevel_1.LogLevel.Debug, `Starte Timeout für Vibrationsdeaktivierung für ${element.info.customName}`);
82
85
  utils_1.Utils.guardedTimeout(() => {
83
86
  if (element.vibrationBlockedTimeStamp < now) {
84
87
  element.vibrationBlocked = false;
@@ -99,7 +102,7 @@ class Fenster extends base_group_1.BaseGroup {
99
102
  }, 5, this);
100
103
  }
101
104
  rolloPositionChange(pValue) {
102
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `Rollo Position Change in ${this.roomName} to ${pValue}`);
105
+ this.log(logLevel_1.LogLevel.Debug, `Rollo Position Change in ${this.roomName} to ${pValue}`);
103
106
  if (pValue === 0 || pValue === 100) {
104
107
  this.getRoom().setLightTimeBased(true);
105
108
  }
@@ -1,6 +1,7 @@
1
1
  import { GroupType } from './group-type';
2
2
  import { DeviceCluster } from '../device-cluster';
3
3
  import { RoomBase } from '../../../models/rooms/RoomBase';
4
+ import { LogLevel } from '../../../models/logLevel';
4
5
  export declare class BaseGroup {
5
6
  roomName: string;
6
7
  type: GroupType;
@@ -8,4 +9,5 @@ export declare class BaseGroup {
8
9
  get deviceCluster(): DeviceCluster;
9
10
  constructor(roomName: string, type: GroupType);
10
11
  getRoom(): RoomBase;
12
+ protected log(level: LogLevel, message: string): void;
11
13
  }
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseGroup = void 0;
4
+ const group_type_1 = require("./group-type");
4
5
  const device_cluster_1 = require("../device-cluster");
5
6
  const api_service_1 = require("../../services/api/api-service");
6
7
  const utils_1 = require("../../services/utils/utils");
8
+ const log_service_1 = require("../../services/log-service/log-service");
7
9
  class BaseGroup {
8
10
  constructor(roomName, type) {
9
11
  this.roomName = roomName;
@@ -16,5 +18,11 @@ class BaseGroup {
16
18
  getRoom() {
17
19
  return utils_1.Utils.guard(api_service_1.API.getRoom(this.roomName));
18
20
  }
21
+ log(level, message) {
22
+ log_service_1.ServerLogService.writeLog(level, message, {
23
+ room: this.roomName,
24
+ groupType: group_type_1.GroupType[this.type],
25
+ });
26
+ }
19
27
  }
20
28
  exports.BaseGroup = BaseGroup;
@@ -1,4 +1,4 @@
1
- import { Fenster } from '../Fenster';
1
+ import { Fenster } from './Fenster';
2
2
  import { BaseGroup } from './base-group';
3
3
  export declare class FensterGroup extends BaseGroup {
4
4
  fenster: Fenster[];
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FensterGroup = void 0;
4
4
  const timeCallback_1 = require("../../../models/timeCallback");
5
- const log_service_1 = require("../../services/log-service");
6
5
  const utils_1 = require("../../services/utils/utils");
7
6
  const weather_service_1 = require("../../services/weather/weather-service");
8
7
  const FensterPosition_1 = require("../models/FensterPosition");
@@ -42,7 +41,7 @@ class FensterGroup extends base_group_1.BaseGroup {
42
41
  initialize() {
43
42
  const room = this.getRoom();
44
43
  if (room.settings.sonnenAufgangRollos && room.settings.rolloOffset) {
45
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Sonnenaufgang TimeCallback für ${this.roomName} hinzufügen`);
44
+ this.log(logLevel_1.LogLevel.Trace, `Sonnenaufgang TimeCallback für ${this.roomName} hinzufügen`);
46
45
  room.sonnenAufgangCallback = new timeCallback_1.TimeCallback(`${this.roomName} Sonnenaufgang Rollos`, timeCallback_1.TimeCallbackType.Sunrise, () => {
47
46
  if (room.skipNextRolloUp) {
48
47
  room.skipNextRolloUp = false;
@@ -113,7 +112,7 @@ class FensterGroup extends base_group_1.BaseGroup {
113
112
  if (f.noRolloOnSunrise || f.getShutter().length === 0) {
114
113
  return;
115
114
  }
116
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `Fahre das Rollo zum Sonnenaufgang ${initial ? '(ggf. nachträglich)' : ''} hoch`);
115
+ this.log(logLevel_1.LogLevel.Debug, `Fahre das Rollo zum Sonnenaufgang ${initial ? '(ggf. nachträglich)' : ''} hoch`);
117
116
  f.setDesiredPosition(100);
118
117
  });
119
118
  }
@@ -1,8 +1,12 @@
1
1
  import { HmIpHeizgruppe } from '../hmIPDevices/hmIpHeizgruppe';
2
2
  import { BaseGroup } from './base-group';
3
+ import { iTemperaturSensor } from '../iTemperaturSensor';
4
+ import { iHumiditySensor } from '../iHumiditySensor';
3
5
  export declare class HeatGroup extends BaseGroup {
4
6
  get currentTemp(): number;
5
7
  get desiredTemp(): number;
6
8
  getHeater(): HmIpHeizgruppe[];
7
- constructor(roomName: string, heaterIds: string[]);
9
+ getTempSensors(): iTemperaturSensor[];
10
+ getHumiditySensors(): iHumiditySensor[];
11
+ constructor(roomName: string, heaterIds: string[], tempSensorIds: string[], humiditySensorIds: string[]);
8
12
  }
@@ -11,10 +11,11 @@ class HeatGroup extends base_group_1.BaseGroup {
11
11
  return -99;
12
12
  }
13
13
  let value = 0;
14
- for (const h of this.getHeater()) {
14
+ const sensors = this.getTempSensors();
15
+ for (const h of sensors) {
15
16
  value += h.iTemperatur;
16
17
  }
17
- return Math.round((value / this.getHeater().length) * 10) / 10;
18
+ return Math.round((value / sensors.length) * 10) / 10;
18
19
  }
19
20
  get desiredTemp() {
20
21
  if (this.getHeater().length === 0) {
@@ -29,9 +30,17 @@ class HeatGroup extends base_group_1.BaseGroup {
29
30
  getHeater() {
30
31
  return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.Heater);
31
32
  }
32
- constructor(roomName, heaterIds) {
33
+ getTempSensors() {
34
+ return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.TemperaturSensor);
35
+ }
36
+ getHumiditySensors() {
37
+ return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.HumiditySensor);
38
+ }
39
+ constructor(roomName, heaterIds, tempSensorIds, humiditySensorIds) {
33
40
  super(roomName, group_type_1.GroupType.Heating);
34
41
  this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.Heater, new device_list_1.DeviceList(heaterIds));
42
+ this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.TemperaturSensor, new device_list_1.DeviceList(tempSensorIds));
43
+ this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.HumiditySensor, new device_list_1.DeviceList(humiditySensorIds));
35
44
  }
36
45
  }
37
46
  exports.HeatGroup = HeatGroup;
@@ -1,4 +1,5 @@
1
1
  export * from './base-group';
2
+ export * from './Fenster';
2
3
  export * from './fensterGroup';
3
4
  export * from './group-type';
4
5
  export * from './heatGroup';
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./base-group"), exports);
14
+ __exportStar(require("./Fenster"), exports);
14
15
  __exportStar(require("./fensterGroup"), exports);
15
16
  __exportStar(require("./group-type"), exports);
16
17
  __exportStar(require("./heatGroup"), exports);
@@ -6,6 +6,7 @@ const base_group_1 = require("./base-group");
6
6
  const group_type_1 = require("./group-type");
7
7
  const device_cluster_type_1 = require("../device-cluster-type");
8
8
  const device_list_1 = require("../device-list");
9
+ const logLevel_1 = require("../../../models/logLevel");
9
10
  class LampenGroup extends base_group_1.BaseGroup {
10
11
  constructor(roomName, lampenIds = [], steckerIds = [], ledIds = []) {
11
12
  super(roomName, group_type_1.GroupType.Light);
@@ -53,14 +54,17 @@ class LampenGroup extends base_group_1.BaseGroup {
53
54
  let resultLampen = false;
54
55
  let resultSteckdosen = false;
55
56
  if (this.getLED().length > 0) {
57
+ this.log(logLevel_1.LogLevel.Trace, `Set LEDs time based for time "${time_callback_service_1.TimeOfDay[time]}"`);
56
58
  this.getLED().forEach((s) => {
57
59
  s.setTimeBased(time);
58
60
  });
59
61
  }
60
62
  else if (this.getStecker().length > 0) {
63
+ this.log(logLevel_1.LogLevel.Trace, `Set outlets time based for time "${time_callback_service_1.TimeOfDay[time]}"`);
61
64
  resultSteckdosen = darkOutside;
62
65
  }
63
66
  else {
67
+ this.log(logLevel_1.LogLevel.Trace, `Set Lamps time based for time "${time_callback_service_1.TimeOfDay[time]}"`);
64
68
  resultLampen = darkOutside;
65
69
  }
66
70
  this.setAllLampen(resultLampen, time);