hoffmation-base 0.1.41-20 → 0.1.41-22

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 (130) hide show
  1. package/lib/index.js +1 -1
  2. package/lib/models/deviceSettings/heaterSettings.d.ts +16 -0
  3. package/lib/models/deviceSettings/heaterSettings.js +16 -0
  4. package/lib/models/rooms/RoomBase.js +2 -1
  5. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +1 -1
  6. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  7. package/lib/models/rooms/RoomSettings/roomAddDeviceItem.d.ts +1 -1
  8. package/lib/models/rooms/RoomSettings/roomAddDeviceItem.js +2 -2
  9. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +1 -1
  10. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -4
  11. package/lib/models/rooms/roomInfo.d.ts +1 -1
  12. package/lib/server/config/iConfig.d.ts +1 -2
  13. package/lib/server/devices/DeviceInfo.d.ts +3 -3
  14. package/lib/server/devices/DeviceInfo.js +3 -3
  15. package/lib/server/devices/Griffe.d.ts +1 -1
  16. package/lib/server/devices/Griffe.js +2 -2
  17. package/lib/server/devices/IoBrokerBaseDevice.d.ts +1 -1
  18. package/lib/server/devices/{iBaseDevice.d.ts → baseDeviceInterfaces/iBaseDevice.d.ts} +3 -3
  19. package/lib/server/devices/{iBaseDevice.js → baseDeviceInterfaces/iBaseDevice.js} +0 -0
  20. package/lib/server/devices/{iButtonSwitch.d.ts → baseDeviceInterfaces/iButtonSwitch.d.ts} +1 -1
  21. package/lib/server/devices/{iButtonSwitch.js → baseDeviceInterfaces/iButtonSwitch.js} +0 -0
  22. package/lib/server/devices/{iEnergyManager.d.ts → baseDeviceInterfaces/iEnergyManager.d.ts} +0 -0
  23. package/lib/server/devices/{iEnergyManager.js → baseDeviceInterfaces/iEnergyManager.js} +0 -0
  24. package/lib/server/devices/{iExcessEnergyConsumer.d.ts → baseDeviceInterfaces/iExcessEnergyConsumer.d.ts} +1 -1
  25. package/lib/server/devices/{iExcessEnergyConsumer.js → baseDeviceInterfaces/iExcessEnergyConsumer.js} +0 -0
  26. package/lib/server/devices/{iHeater.d.ts → baseDeviceInterfaces/iHeater.d.ts} +4 -1
  27. package/lib/server/devices/{iHeater.js → baseDeviceInterfaces/iHeater.js} +0 -0
  28. package/lib/server/devices/{iHumiditySensor.d.ts → baseDeviceInterfaces/iHumiditySensor.d.ts} +0 -0
  29. package/lib/server/devices/{iHumiditySensor.js → baseDeviceInterfaces/iHumiditySensor.js} +0 -0
  30. package/lib/server/devices/{iIlluminationSensor.d.ts → baseDeviceInterfaces/iIlluminationSensor.d.ts} +0 -0
  31. package/lib/server/devices/{iIlluminationSensor.js → baseDeviceInterfaces/iIlluminationSensor.js} +0 -0
  32. package/lib/server/devices/{iLamp.d.ts → baseDeviceInterfaces/iLamp.d.ts} +1 -1
  33. package/lib/server/devices/{iLamp.js → baseDeviceInterfaces/iLamp.js} +0 -0
  34. package/lib/server/devices/{iMotionSensor.d.ts → baseDeviceInterfaces/iMotionSensor.d.ts} +1 -1
  35. package/lib/server/devices/{iMotionSensor.js → baseDeviceInterfaces/iMotionSensor.js} +0 -0
  36. package/lib/server/devices/{iShutter.d.ts → baseDeviceInterfaces/iShutter.d.ts} +1 -1
  37. package/lib/server/devices/{iShutter.js → baseDeviceInterfaces/iShutter.js} +0 -0
  38. package/lib/server/devices/{iTemperaturSensor.d.ts → baseDeviceInterfaces/iTemperaturSensor.d.ts} +2 -0
  39. package/lib/server/devices/{iTemperaturSensor.js → baseDeviceInterfaces/iTemperaturSensor.js} +2 -0
  40. package/lib/server/devices/{iVibrationSensor.d.ts → baseDeviceInterfaces/iVibrationSensor.d.ts} +0 -0
  41. package/lib/server/devices/{iVibrationSensor.js → baseDeviceInterfaces/iVibrationSensor.js} +0 -0
  42. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +12 -0
  43. package/lib/server/devices/baseDeviceInterfaces/index.js +28 -0
  44. package/lib/server/devices/device-cluster.d.ts +1 -1
  45. package/lib/server/devices/device-list.d.ts +1 -1
  46. package/lib/server/devices/deviceType.d.ts +1 -0
  47. package/lib/server/devices/deviceType.js +1 -0
  48. package/lib/server/devices/devices.d.ts +1 -2
  49. package/lib/server/devices/devices.js +4 -0
  50. package/lib/server/devices/groups/Fenster.d.ts +1 -2
  51. package/lib/server/devices/groups/base-group.d.ts +2 -3
  52. package/lib/server/devices/groups/base-group.js +3 -5
  53. package/lib/server/devices/groups/heatGroup.d.ts +4 -4
  54. package/lib/server/devices/groups/heatGroup.js +46 -1
  55. package/lib/server/devices/groups/lampenGroup.d.ts +1 -1
  56. package/lib/server/devices/groups/praesenzGroup.d.ts +1 -1
  57. package/lib/server/devices/groups/smokeGroup.d.ts +2 -2
  58. package/lib/server/devices/groups/smokeGroup.js +3 -3
  59. package/lib/server/devices/groups/sonosGroup.d.ts +1 -1
  60. package/lib/server/devices/groups/sonosGroup.js +2 -2
  61. package/lib/server/devices/groups/tasterGroup.d.ts +1 -1
  62. package/lib/server/devices/groups/waterGroup.d.ts +2 -2
  63. package/lib/server/devices/groups/waterGroup.js +3 -3
  64. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -1
  65. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +2 -2
  66. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +1 -2
  67. package/lib/server/devices/hmIPDevices/hmIpDevice.js +5 -5
  68. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +3 -3
  69. package/lib/server/devices/hmIPDevices/hmIpGriff.js +21 -23
  70. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +14 -4
  71. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +60 -6
  72. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +1 -1
  73. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +4 -4
  74. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +1 -1
  75. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +1 -1
  76. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +9 -9
  77. package/lib/server/devices/hmIPDevices/hmIpRoll.js +21 -21
  78. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +1 -1
  79. package/lib/server/devices/hmIPDevices/hmIpTaster.js +2 -2
  80. package/lib/server/devices/hmIPDevices/hmIpTherm.js +2 -2
  81. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +1 -1
  82. package/lib/server/devices/hmIPDevices/hmIpTuer.js +18 -21
  83. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +1 -1
  84. package/lib/server/devices/hmIPDevices/hmIpWippe.js +4 -4
  85. package/lib/server/devices/index.d.ts +1 -12
  86. package/lib/server/devices/index.js +1 -12
  87. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +1 -2
  88. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +7 -7
  89. package/lib/server/devices/wledDevice.js +9 -9
  90. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +9 -1
  91. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +40 -4
  92. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +1 -1
  93. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +1 -1
  94. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +1 -1
  95. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +1 -1
  96. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +1 -1
  97. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  98. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +1 -1
  99. package/lib/server/devices/zigbee/zigbeeMotionSensor.d.ts +1 -1
  100. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +2 -2
  101. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +5 -3
  102. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +16 -2
  103. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +17 -2
  104. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +98 -2
  105. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -3
  106. package/lib/server/ioBroker/ioBroker.main.js +12 -16
  107. package/lib/server/services/HTTPSOptions.js +3 -3
  108. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -3
  109. package/lib/server/services/Sonos/mp3-server.d.ts +1 -1
  110. package/lib/server/services/Sonos/mp3-server.js +4 -4
  111. package/lib/server/services/Sonos/polly-service.d.ts +2 -2
  112. package/lib/server/services/Sonos/polly-service.js +10 -10
  113. package/lib/server/services/Sonos/sonos-service.d.ts +4 -4
  114. package/lib/server/services/Sonos/sonos-service.js +22 -23
  115. package/lib/server/services/Translation/res.d.ts +1 -1
  116. package/lib/server/services/calendar/muell-tonne.d.ts +1 -1
  117. package/lib/server/services/calendar/muell-tonne.js +14 -14
  118. package/lib/server/services/https-service.d.ts +1 -1
  119. package/lib/server/services/https-service.js +11 -11
  120. package/lib/server/services/log-service/log-object.d.ts +1 -1
  121. package/lib/server/services/log-service/log-service.d.ts +4 -4
  122. package/lib/server/services/log-service/log-service.js +11 -11
  123. package/lib/server/services/news-service.d.ts +9 -9
  124. package/lib/server/services/news-service.js +40 -41
  125. package/lib/server/services/settings-service.d.ts +2 -2
  126. package/lib/server/services/settings-service.js +3 -3
  127. package/lib/server/services/utils/utils.d.ts +2 -0
  128. package/lib/server/services/utils/utils.js +9 -1
  129. package/lib/tsconfig.tsbuildinfo +1 -1
  130. package/package.json +4 -4
package/lib/index.js CHANGED
@@ -15,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.HoffmationBase = exports.HoffmationInitializationObject = void 0;
18
- const models_1 = require("./models");
19
18
  const server_1 = require("./server");
19
+ const models_1 = require("./models");
20
20
  __exportStar(require("./models/index"), exports);
21
21
  __exportStar(require("./server/index"), exports);
22
22
  class HoffmationInitializationObject {
@@ -3,4 +3,20 @@ export declare class HeaterSettings extends DeviceSettings {
3
3
  automaticMode: boolean;
4
4
  automaticFallBackTemperatur: number;
5
5
  useOwnTemperatur: boolean;
6
+ /**
7
+ * Whether this device should turn off at Start of summer season and only heat in winter
8
+ * @type {boolean}
9
+ */
10
+ seasonalTurnOffActive: boolean;
11
+ /**
12
+ *
13
+ * The day in a year after which SeasonalHeater should be turned off completly
14
+ * @type {number}
15
+ */
16
+ seasonTurnOffDay: number;
17
+ /**
18
+ * The day in a year after which SeasonalHeater should be turned to automatic
19
+ * @type {number}
20
+ */
21
+ seasonTurnOnDay: number;
6
22
  }
@@ -8,6 +8,22 @@ class HeaterSettings extends deviceSettings_1.DeviceSettings {
8
8
  this.automaticMode = true;
9
9
  this.automaticFallBackTemperatur = 20;
10
10
  this.useOwnTemperatur = true;
11
+ /**
12
+ * Whether this device should turn off at Start of summer season and only heat in winter
13
+ * @type {boolean}
14
+ */
15
+ this.seasonalTurnOffActive = true;
16
+ /**
17
+ *
18
+ * The day in a year after which SeasonalHeater should be turned off completly
19
+ * @type {number}
20
+ */
21
+ this.seasonTurnOffDay = 99;
22
+ /**
23
+ * The day in a year after which SeasonalHeater should be turned to automatic
24
+ * @type {number}
25
+ */
26
+ this.seasonTurnOnDay = 267;
11
27
  }
12
28
  }
13
29
  exports.HeaterSettings = HeaterSettings;
@@ -54,12 +54,13 @@ class RoomBase {
54
54
  return this.info.etage;
55
55
  }
56
56
  initializeBase() {
57
- var _a, _b, _c;
57
+ var _a, _b, _c, _d;
58
58
  this.log(logLevel_1.LogLevel.Debug, `RoomBase Init für ${this.roomName}`);
59
59
  this.recalcTimeCallbacks();
60
60
  (_a = this.PraesenzGroup) === null || _a === void 0 ? void 0 : _a.initCallbacks();
61
61
  (_b = this.FensterGroup) === null || _b === void 0 ? void 0 : _b.initialize();
62
62
  (_c = this.TasterGroup) === null || _c === void 0 ? void 0 : _c.initCallbacks();
63
+ (_d = this.HeatGroup) === null || _d === void 0 ? void 0 : _d.initialize();
63
64
  }
64
65
  persist() {
65
66
  var _a;
@@ -3,7 +3,7 @@ import { RoomDeviceAddingSettings } from './roomDeviceAddingSettings';
3
3
  export declare class RoomInitializationSettings implements iRoomInitializationSettings {
4
4
  shortName: string;
5
5
  etage: number;
6
- constructor(shortName: string, etage?: number);
7
6
  deviceAddidngSettings?: RoomDeviceAddingSettings;
7
+ constructor(shortName: string, etage?: number);
8
8
  static registerRoomForDevices(roomInitializationSettings: RoomInitializationSettings): void;
9
9
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RoomInitializationSettings = void 0;
4
- const IoBrokerBaseDevice_1 = require("../../../server/devices/IoBrokerBaseDevice");
4
+ const server_1 = require("../../../server");
5
5
  class RoomInitializationSettings {
6
6
  constructor(shortName, etage = -1) {
7
7
  this.shortName = shortName;
@@ -9,7 +9,7 @@ class RoomInitializationSettings {
9
9
  }
10
10
  static registerRoomForDevices(roomInitializationSettings) {
11
11
  if (roomInitializationSettings.deviceAddidngSettings !== undefined) {
12
- IoBrokerBaseDevice_1.IoBrokerBaseDevice.addRoom(roomInitializationSettings.shortName, roomInitializationSettings.deviceAddidngSettings);
12
+ server_1.IoBrokerBaseDevice.addRoom(roomInitializationSettings.shortName, roomInitializationSettings.deviceAddidngSettings);
13
13
  }
14
14
  }
15
15
  }
@@ -3,8 +3,8 @@ export declare class RoomAddDeviceItem {
3
3
  setID: (value: string) => RoomBase;
4
4
  index: number;
5
5
  customName: string;
6
+ constructor(setID: (value: string) => RoomBase, index: number, customName: string);
6
7
  private _added;
7
8
  get added(): boolean;
8
9
  set added(value: boolean);
9
- constructor(setID: (value: string) => RoomBase, index: number, customName: string);
10
10
  }
@@ -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/log-service");
4
+ const server_1 = require("../../../server");
5
5
  const logLevel_1 = require("../../logLevel");
6
6
  class RoomAddDeviceItem {
7
7
  constructor(setID, index, customName) {
@@ -15,7 +15,7 @@ class RoomAddDeviceItem {
15
15
  }
16
16
  set added(value) {
17
17
  if (this._added) {
18
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Error, `${this.customName} Added twice`);
18
+ server_1.ServerLogService.writeLog(logLevel_1.LogLevel.Error, `${this.customName} Added twice`);
19
19
  }
20
20
  this._added = value;
21
21
  }
@@ -1,5 +1,5 @@
1
+ import { DeviceType } from '../../../server';
1
2
  import { RoomAddDeviceItem } from './roomAddDeviceItem';
2
- import { DeviceType } from '../../../server/devices/deviceType';
3
3
  import { RoomBase } from '../RoomBase';
4
4
  export declare class RoomDeviceAddingSettings {
5
5
  RoomName: string;
@@ -1,10 +1,9 @@
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/log-service");
4
+ const server_1 = require("../../../server");
5
5
  const roomAddDeviceItem_1 = require("./roomAddDeviceItem");
6
6
  const logLevel_1 = require("../../logLevel");
7
- const deviceType_1 = require("../../../server/devices/deviceType");
8
7
  class RoomDeviceAddingSettings {
9
8
  constructor(RoomName) {
10
9
  this.RoomName = RoomName;
@@ -15,7 +14,7 @@ class RoomDeviceAddingSettings {
15
14
  this.devices[deviceType] = [];
16
15
  }
17
16
  if (customName === undefined) {
18
- customName = `${this.RoomName} ${deviceType_1.DeviceType[deviceType]}`;
17
+ customName = `${this.RoomName} ${server_1.DeviceType[deviceType]}`;
19
18
  }
20
19
  this.devices[deviceType][index] = new roomAddDeviceItem_1.RoomAddDeviceItem(setID, index, customName);
21
20
  }
@@ -25,7 +24,7 @@ class RoomDeviceAddingSettings {
25
24
  for (const index in devs) {
26
25
  const dev = devs[index];
27
26
  if (!dev.added) {
28
- log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Error, `${dev.customName} fehlt in der Device JSON`);
27
+ server_1.ServerLogService.writeLog(logLevel_1.LogLevel.Error, `${dev.customName} fehlt in der Device JSON`);
29
28
  }
30
29
  }
31
30
  }
@@ -1,4 +1,4 @@
1
- import { RoomSettings } from './RoomSettings/RoomSettings';
1
+ import { RoomSettings } from './RoomSettings';
2
2
  export declare class RoomInfo {
3
3
  roomName: string;
4
4
  etage?: number;
@@ -1,5 +1,4 @@
1
- import { LogLevel } from '../../models/logLevel';
2
- import { iRoomDefaultSettings } from '../../models/rooms/RoomSettings/iRoomDefaultSettings';
1
+ import { iRoomDefaultSettings, LogLevel } from '../../models';
3
2
  import { PoolConfig } from 'pg';
4
3
  interface iSonosSettings {
5
4
  active: boolean;
@@ -1,4 +1,4 @@
1
- import { deviceConfig } from '../../models/deviceConfig';
1
+ import { deviceConfig } from '../../models';
2
2
  export declare class DeviceInfo {
3
3
  devID: string;
4
4
  room: string;
@@ -6,7 +6,6 @@ export declare class DeviceInfo {
6
6
  deviceRoomIndex: number;
7
7
  type: 'device' | 'channel' | 'state';
8
8
  fullName: string;
9
- private _customName?;
10
9
  fullID: string;
11
10
  channel?: number;
12
11
  valueName?: string;
@@ -19,7 +18,8 @@ export declare class DeviceInfo {
19
18
  * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
20
19
  */
21
20
  constructor(pDevConf: deviceConfig, isJsStateChildObject?: boolean);
22
- set customName(val: string);
21
+ private _customName?;
23
22
  get customName(): string;
23
+ set customName(val: string);
24
24
  toJSON(): Partial<DeviceInfo>;
25
25
  }
@@ -61,15 +61,15 @@ class DeviceInfo {
61
61
  this.deviceRoomIndex = nameSplit.length >= 4 ? Number(nameSplit[3]) : 0;
62
62
  }
63
63
  }
64
- set customName(val) {
65
- this._customName = val;
66
- }
67
64
  get customName() {
68
65
  if (this._customName !== undefined) {
69
66
  return this._customName;
70
67
  }
71
68
  return this.fullName;
72
69
  }
70
+ set customName(val) {
71
+ this._customName = val;
72
+ }
73
73
  toJSON() {
74
74
  return lodash_1.default.omit(this, ['devConf']);
75
75
  }
@@ -1,4 +1,4 @@
1
- import { HmIpGriff } from './hmIPDevices/hmIpGriff';
1
+ import { HmIpGriff } from './hmIPDevices';
2
2
  export declare class Griffe {
3
3
  static getGriffPosition(): string;
4
4
  static getAllGriffe(): HmIpGriff[];
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Griffe = void 0;
4
4
  const deviceType_1 = require("./deviceType");
5
- const FensterPosition_1 = require("./models/FensterPosition");
5
+ const models_1 = require("./models");
6
6
  const devices_1 = require("./devices");
7
7
  class Griffe {
8
8
  static getGriffPosition() {
@@ -13,7 +13,7 @@ class Griffe {
13
13
  });
14
14
  const response = [`Dies sind die aktuellen Stellungen der FensterGriffe:`];
15
15
  for (const g of griffe) {
16
- response.push(`${FensterPosition_1.FensterPosition[g.position]} Fenster: "${g.info.customName}"`);
16
+ response.push(`${models_1.FensterPosition[g.position]} Fenster: "${g.info.customName}"`);
17
17
  }
18
18
  return response.join('\n');
19
19
  }
@@ -1,5 +1,5 @@
1
1
  /// <reference types="iobroker" />
2
- import { IBaseDevice } from './iBaseDevice';
2
+ import { IBaseDevice } from './baseDeviceInterfaces';
3
3
  import { DeviceInfo } from './DeviceInfo';
4
4
  import { LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
5
5
  import { IOBrokerConnection } from '../ioBroker';
@@ -1,6 +1,6 @@
1
- import { LogLevel, RoomBase } from '../../models';
2
- import { DeviceType } from './deviceType';
3
- import { DeviceInfo } from './DeviceInfo';
1
+ import { LogLevel, RoomBase } from '../../../models';
2
+ import { DeviceType } from '../deviceType';
3
+ import { DeviceInfo } from '../DeviceInfo';
4
4
  export interface IBaseDevice {
5
5
  room: RoomBase | undefined;
6
6
  deviceType: DeviceType;
@@ -1,4 +1,4 @@
1
- import { Button } from './button';
1
+ import { Button } from '../button';
2
2
  import { IBaseDevice } from './iBaseDevice';
3
3
  export interface iButtonSwitch extends IBaseDevice {
4
4
  buttonTopLeft: Button | undefined;
@@ -1,4 +1,4 @@
1
- import { ExcessEnergyConsumerSettings } from '../../models';
1
+ import { ExcessEnergyConsumerSettings } from '../../../models';
2
2
  import { IBaseDevice } from './iBaseDevice';
3
3
  export interface iExcessEnergyConsumer extends IBaseDevice {
4
4
  energyConsumerSettings: ExcessEnergyConsumerSettings;
@@ -1,12 +1,15 @@
1
- import { TemperaturSettings } from '../../models';
1
+ import { HeaterSettings, TemperaturSettings } from '../../../models';
2
2
  import { IBaseDevice } from './iBaseDevice';
3
3
  export interface iHeater extends IBaseDevice {
4
+ settings: HeaterSettings;
4
5
  readonly desiredTemperatur: number;
5
6
  readonly humidity: number;
6
7
  readonly iLevel: number;
7
8
  readonly iTemperatur: number;
9
+ set seasonTurnOff(value: boolean);
8
10
  deleteAutomaticPoint(name: string): void;
9
11
  setAutomaticPoint(name: string, setting: TemperaturSettings): void;
10
12
  stopAutomaticCheck(): void;
11
13
  checkAutomaticChange(): void;
14
+ onTemperaturChange(newTemperatur: number): void;
12
15
  }
@@ -1,4 +1,4 @@
1
- import { ActuatorSettings, RoomBase, TimeOfDay } from '../../models';
1
+ import { ActuatorSettings, RoomBase, TimeOfDay } from '../../../models';
2
2
  import { IBaseDevice } from './iBaseDevice';
3
3
  export interface iLamp extends IBaseDevice {
4
4
  settings: ActuatorSettings;
@@ -1,4 +1,4 @@
1
- import { MotionSensorSettings } from '../../models';
1
+ import { MotionSensorSettings } from '../../../models';
2
2
  import { IBaseDevice } from './iBaseDevice';
3
3
  export interface iMotionSensor extends IBaseDevice {
4
4
  settings: MotionSensorSettings;
@@ -1,4 +1,4 @@
1
- import { Fenster } from './groups';
1
+ import { Fenster } from '../groups';
2
2
  import { IBaseDevice } from './iBaseDevice';
3
3
  export interface iShutter extends IBaseDevice {
4
4
  currentLevel: number;
@@ -1,5 +1,7 @@
1
1
  import { IBaseDevice } from './iBaseDevice';
2
+ export declare const UNDEFINED_TEMP_VALUE = -99;
2
3
  export interface iTemperaturSensor extends IBaseDevice {
3
4
  iTemperatur: number;
4
5
  sTemperatur: string;
6
+ addTempChangeCallback(pCallback: (pValue: number) => void): void;
5
7
  }
@@ -1,2 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UNDEFINED_TEMP_VALUE = void 0;
4
+ exports.UNDEFINED_TEMP_VALUE = -99;
@@ -0,0 +1,12 @@
1
+ export * from './iBaseDevice';
2
+ export * from './iButtonSwitch';
3
+ export * from './iEnergyManager';
4
+ export * from './iExcessEnergyConsumer';
5
+ export * from './iHeater';
6
+ export * from './iHumiditySensor';
7
+ export * from './iIlluminationSensor';
8
+ export * from './iLamp';
9
+ export * from './iMotionSensor';
10
+ export * from './iShutter';
11
+ export * from './iTemperaturSensor';
12
+ export * from './iVibrationSensor';
@@ -0,0 +1,28 @@
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("./iBaseDevice"), exports);
18
+ __exportStar(require("./iButtonSwitch"), exports);
19
+ __exportStar(require("./iEnergyManager"), exports);
20
+ __exportStar(require("./iExcessEnergyConsumer"), exports);
21
+ __exportStar(require("./iHeater"), exports);
22
+ __exportStar(require("./iHumiditySensor"), exports);
23
+ __exportStar(require("./iIlluminationSensor"), exports);
24
+ __exportStar(require("./iLamp"), exports);
25
+ __exportStar(require("./iMotionSensor"), exports);
26
+ __exportStar(require("./iShutter"), exports);
27
+ __exportStar(require("./iTemperaturSensor"), exports);
28
+ __exportStar(require("./iVibrationSensor"), exports);
@@ -2,7 +2,7 @@ import { DeviceClusterType } from './device-cluster-type';
2
2
  import { DeviceList } from './device-list';
3
3
  import { IoBrokerBaseDevice } from './IoBrokerBaseDevice';
4
4
  import { OwnSonosDevice } from '../services';
5
- import { IBaseDevice } from './iBaseDevice';
5
+ import { IBaseDevice } from './baseDeviceInterfaces';
6
6
  export declare class DeviceCluster {
7
7
  deviceMap: Map<DeviceClusterType, DeviceList>;
8
8
  constructor(deviceMap?: Map<DeviceClusterType, DeviceList>);
@@ -1,5 +1,5 @@
1
1
  import { OwnSonosDevice } from '../services';
2
- import { IBaseDevice } from './iBaseDevice';
2
+ import { IBaseDevice } from './baseDeviceInterfaces';
3
3
  export declare class DeviceList {
4
4
  private _ids;
5
5
  constructor(_ids?: string[]);
@@ -30,6 +30,7 @@ export declare enum DeviceType {
30
30
  ZigbeeSonoffTemp = 216,
31
31
  ZigbeeAqaraOpple3Switch = 217,
32
32
  ZigbeeUbisysShutter = 218,
33
+ ZigbeeTuyaValve = 219,
33
34
  JsEnergyManager = 301,
34
35
  Wled = 1001
35
36
  }
@@ -34,6 +34,7 @@ var DeviceType;
34
34
  DeviceType[DeviceType["ZigbeeSonoffTemp"] = 216] = "ZigbeeSonoffTemp";
35
35
  DeviceType[DeviceType["ZigbeeAqaraOpple3Switch"] = 217] = "ZigbeeAqaraOpple3Switch";
36
36
  DeviceType[DeviceType["ZigbeeUbisysShutter"] = 218] = "ZigbeeUbisysShutter";
37
+ DeviceType[DeviceType["ZigbeeTuyaValve"] = 219] = "ZigbeeTuyaValve";
37
38
  DeviceType[DeviceType["JsEnergyManager"] = 301] = "JsEnergyManager";
38
39
  DeviceType[DeviceType["Wled"] = 1001] = "Wled";
39
40
  })(DeviceType = exports.DeviceType || (exports.DeviceType = {}));
@@ -1,6 +1,5 @@
1
1
  import { deviceConfig, iRoomImportEnforcer } from '../../models';
2
- import { iEnergyManager } from './iEnergyManager';
3
- import { IBaseDevice } from './iBaseDevice';
2
+ import { IBaseDevice, iEnergyManager } from './baseDeviceInterfaces';
4
3
  export declare class Devices {
5
4
  static IDENTIFIER_HOMEMATIC: string;
6
5
  static IDENTIFIER_JS: string;
@@ -8,6 +8,7 @@ const deviceType_1 = require("./deviceType");
8
8
  const services_1 = require("../services");
9
9
  const DeviceInfo_1 = require("./DeviceInfo");
10
10
  const jsObject_1 = require("./jsObject");
11
+ const zigbeeTuyaValve_1 = require("./zigbee/zigbeeTuyaValve");
11
12
  class Devices {
12
13
  constructor(pDeviceData, pRoomImportEnforcer) {
13
14
  // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
@@ -134,6 +135,9 @@ class Devices {
134
135
  case 'UbisysShutter':
135
136
  d = new zigbee_1.ZigbeeUbisysShutter(zigbeeInfo);
136
137
  break;
138
+ case 'TuyaValve':
139
+ d = new zigbeeTuyaValve_1.ZigbeeTuyaValve(zigbeeInfo);
140
+ break;
137
141
  default:
138
142
  services_1.ServerLogService.writeLog(models_1.LogLevel.Warn, `No zigbee Device Type for ${zigbeeInfo.deviceType} defined`);
139
143
  d = new zigbee_1.ZigbeeDevice(zigbeeInfo, deviceType_1.DeviceType.unknown);
@@ -1,9 +1,8 @@
1
1
  import { HmIpGriff } from '../hmIPDevices';
2
2
  import { FensterPosition } from '../models';
3
- import { iShutter } from '../iShutter';
3
+ import { iShutter, iVibrationSensor } from '../baseDeviceInterfaces';
4
4
  import { BaseGroup } from './base-group';
5
5
  import { ZigbeeMagnetContact } from '../zigbee';
6
- import { iVibrationSensor } from '../iVibrationSensor';
7
6
  export declare class Fenster extends BaseGroup {
8
7
  noRolloOnSunrise: boolean;
9
8
  desiredPosition: number;
@@ -1,13 +1,12 @@
1
1
  import { GroupType } from './group-type';
2
2
  import { DeviceCluster } from '../device-cluster';
3
- import { RoomBase } from '../../../models/rooms/RoomBase';
4
- import { LogLevel } from '../../../models/logLevel';
3
+ import { LogLevel, RoomBase } from '../../../models';
5
4
  export declare class BaseGroup {
6
5
  roomName: string;
7
6
  type: GroupType;
7
+ constructor(roomName: string, type: GroupType);
8
8
  protected _deviceCluster: DeviceCluster;
9
9
  get deviceCluster(): DeviceCluster;
10
- constructor(roomName: string, type: GroupType);
11
10
  getRoom(): RoomBase;
12
11
  protected log(level: LogLevel, message: string): void;
13
12
  }
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseGroup = void 0;
4
4
  const group_type_1 = require("./group-type");
5
5
  const device_cluster_1 = require("../device-cluster");
6
- const api_service_1 = require("../../services/api/api-service");
7
- const utils_1 = require("../../services/utils/utils");
8
- const log_service_1 = require("../../services/log-service/log-service");
6
+ const services_1 = require("../../services");
9
7
  class BaseGroup {
10
8
  constructor(roomName, type) {
11
9
  this.roomName = roomName;
@@ -16,10 +14,10 @@ class BaseGroup {
16
14
  return this._deviceCluster;
17
15
  }
18
16
  getRoom() {
19
- return utils_1.Utils.guard(api_service_1.API.getRoom(this.roomName));
17
+ return services_1.Utils.guard(services_1.API.getRoom(this.roomName));
20
18
  }
21
19
  log(level, message) {
22
- log_service_1.ServerLogService.writeLog(level, message, {
20
+ services_1.ServerLogService.writeLog(level, message, {
23
21
  room: this.roomName,
24
22
  groupType: group_type_1.GroupType[this.type],
25
23
  });
@@ -1,12 +1,12 @@
1
- import { HmIpHeizgruppe } from '../hmIPDevices';
2
1
  import { BaseGroup } from './base-group';
3
- import { iTemperaturSensor } from '../iTemperaturSensor';
4
- import { iHumiditySensor } from '../iHumiditySensor';
2
+ import { iHeater, iHumiditySensor, iTemperaturSensor } from '../baseDeviceInterfaces';
5
3
  export declare class HeatGroup extends BaseGroup {
6
4
  constructor(roomName: string, heaterIds: string[], tempSensorIds: string[], humiditySensorIds: string[]);
7
5
  get currentTemp(): number;
8
6
  get desiredTemp(): number;
9
- getHeater(): HmIpHeizgruppe[];
7
+ getHeater(): iHeater[];
10
8
  getTempSensors(): iTemperaturSensor[];
11
9
  getHumiditySensors(): iHumiditySensor[];
10
+ initialize(): void;
11
+ private recalcRoomTemperatur;
12
12
  }
@@ -5,6 +5,7 @@ const base_group_1 = require("./base-group");
5
5
  const group_type_1 = require("./group-type");
6
6
  const device_cluster_type_1 = require("../device-cluster-type");
7
7
  const device_list_1 = require("../device-list");
8
+ const baseDeviceInterfaces_1 = require("../baseDeviceInterfaces");
8
9
  class HeatGroup extends base_group_1.BaseGroup {
9
10
  constructor(roomName, heaterIds, tempSensorIds, humiditySensorIds) {
10
11
  super(roomName, group_type_1.GroupType.Heating);
@@ -34,7 +35,7 @@ class HeatGroup extends base_group_1.BaseGroup {
34
35
  return Math.round((value / this.getHeater().length) * 10) / 10;
35
36
  }
36
37
  getHeater() {
37
- return this.deviceCluster.getIoBrokerDevicesByType(device_cluster_type_1.DeviceClusterType.Heater);
38
+ return this.deviceCluster.getDevicesByType(device_cluster_type_1.DeviceClusterType.Heater);
38
39
  }
39
40
  getTempSensors() {
40
41
  return this.deviceCluster.getDevicesByType(device_cluster_type_1.DeviceClusterType.TemperaturSensor);
@@ -42,5 +43,49 @@ class HeatGroup extends base_group_1.BaseGroup {
42
43
  getHumiditySensors() {
43
44
  return this.deviceCluster.getDevicesByType(device_cluster_type_1.DeviceClusterType.HumiditySensor);
44
45
  }
46
+ initialize() {
47
+ this.getTempSensors().forEach((sensor) => {
48
+ sensor.addTempChangeCallback((_newVal) => {
49
+ this.recalcRoomTemperatur();
50
+ });
51
+ });
52
+ }
53
+ recalcRoomTemperatur() {
54
+ let temp = baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE;
55
+ let count = 0;
56
+ this.getTempSensors().forEach((sensor) => {
57
+ const sensorValue = sensor.iTemperatur;
58
+ if (sensorValue === baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE) {
59
+ return;
60
+ }
61
+ if (count === 0) {
62
+ count = 1;
63
+ temp = sensorValue;
64
+ return;
65
+ }
66
+ temp = (temp * count + sensorValue) / ++count;
67
+ });
68
+ this.getHeater().forEach((heaterAsSensor) => {
69
+ if (!heaterAsSensor.settings.useOwnTemperatur) {
70
+ return;
71
+ }
72
+ const sensorValue = heaterAsSensor.iTemperatur;
73
+ if (sensorValue === baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE) {
74
+ return;
75
+ }
76
+ if (count === 0) {
77
+ count = 1;
78
+ temp = sensorValue;
79
+ return;
80
+ }
81
+ temp = (temp * count + sensorValue) / ++count;
82
+ });
83
+ if (temp === baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE) {
84
+ return;
85
+ }
86
+ this.getHeater().forEach((heater) => {
87
+ heater.onTemperaturChange(temp);
88
+ });
89
+ }
45
90
  }
46
91
  exports.HeatGroup = HeatGroup;