hoffmation-base 1.3.14-alpha.0 → 1.3.14-alpha.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 (45) hide show
  1. package/lib/models/deviceSettings/deviceSettings.d.ts +2 -4
  2. package/lib/models/deviceSettings/deviceSettings.js +5 -30
  3. package/lib/models/iIdHolder.d.ts +6 -0
  4. package/lib/models/iIdHolder.js +2 -0
  5. package/lib/models/index.d.ts +1 -0
  6. package/lib/models/index.js +1 -0
  7. package/lib/models/objectSettings.d.ts +8 -0
  8. package/lib/models/objectSettings.js +41 -0
  9. package/lib/models/rooms/RoomBase.d.ts +13 -5
  10. package/lib/models/rooms/RoomBase.js +14 -5
  11. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +1 -2
  12. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +1 -2
  13. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +34 -0
  14. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +104 -0
  15. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +20 -16
  16. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +0 -1
  17. package/lib/models/rooms/RoomSettings/index.d.ts +2 -1
  18. package/lib/models/rooms/RoomSettings/index.js +2 -1
  19. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +39 -0
  20. package/lib/models/rooms/RoomSettings/roomSettings.js +102 -0
  21. package/lib/models/rooms/roomInfo.d.ts +2 -3
  22. package/lib/models/rooms/roomInfo.js +2 -2
  23. package/lib/server/devices/IoBrokerBaseDevice.d.ts +1 -0
  24. package/lib/server/devices/IoBrokerBaseDevice.js +3 -0
  25. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +3 -4
  26. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +1 -0
  27. package/lib/server/devices/espresense/detectedBluetoothDevice.js +3 -0
  28. package/lib/server/devices/espresense/espresenseDevice.d.ts +1 -0
  29. package/lib/server/devices/espresense/espresenseDevice.js +3 -0
  30. package/lib/server/devices/scene/room-scene.d.ts +1 -0
  31. package/lib/server/devices/scene/room-scene.js +3 -0
  32. package/lib/server/devices/tv/tvDevice.d.ts +1 -0
  33. package/lib/server/devices/tv/tvDevice.js +3 -0
  34. package/lib/server/services/Sonos/own-sonos-device.d.ts +1 -0
  35. package/lib/server/services/Sonos/own-sonos-device.js +3 -0
  36. package/lib/server/services/ac/ac-device.d.ts +1 -0
  37. package/lib/server/services/ac/ac-device.js +3 -0
  38. package/lib/server/services/api/api-service.d.ts +7 -0
  39. package/lib/server/services/api/api-service.js +15 -0
  40. package/lib/server/services/dbo/postgreSqlPersist.d.ts +1 -1
  41. package/lib/server/services/dbo/postgreSqlPersist.js +5 -5
  42. package/lib/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/lib/models/rooms/RoomSettings/RoomSettings.d.ts +0 -64
  45. package/lib/models/rooms/RoomSettings/RoomSettings.js +0 -156
@@ -1,9 +1,7 @@
1
- import { iBaseDevice } from '../../server';
2
1
  import { ExcessEnergyConsumerSettings } from '../excessEnergyConsumerSettings';
3
- export declare abstract class DeviceSettings {
2
+ import { ObjectSettings } from '../objectSettings';
3
+ export declare abstract class DeviceSettings extends ObjectSettings {
4
4
  energySettings: ExcessEnergyConsumerSettings | undefined;
5
- persist(device: iBaseDevice): void;
6
- initializeFromDb(device: iBaseDevice): void;
7
5
  fromPartialObject(_obj: Partial<DeviceSettings>): void;
8
6
  protected toJSON(): Partial<DeviceSettings>;
9
7
  }
@@ -1,40 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeviceSettings = void 0;
4
- const server_1 = require("../../server");
5
- const logLevel_1 = require("../logLevel");
6
4
  const excessEnergyConsumerSettings_1 = require("../excessEnergyConsumerSettings");
7
- class DeviceSettings {
5
+ const objectSettings_1 = require("../objectSettings");
6
+ const server_1 = require("../../server");
7
+ class DeviceSettings extends objectSettings_1.ObjectSettings {
8
8
  constructor() {
9
+ super(...arguments);
9
10
  this.energySettings = undefined;
10
11
  }
11
- persist(device) {
12
- var _a;
13
- (_a = server_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistSettings(device.id, JSON.stringify(this), device.info.customName);
14
- }
15
- initializeFromDb(device) {
16
- var _a;
17
- (_a = server_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.loadSettings(device.id).then((data) => {
18
- if (!data) {
19
- // Nothing in db yet
20
- return;
21
- }
22
- let obj = null;
23
- try {
24
- obj = JSON.parse(data);
25
- }
26
- catch (e) {
27
- device.log(logLevel_1.LogLevel.Error, `Failed to parse Device Setting JSON (${e})`);
28
- }
29
- if (!obj) {
30
- return;
31
- }
32
- this.fromPartialObject(obj);
33
- if (JSON.stringify(this) !== data) {
34
- this.persist(device);
35
- }
36
- });
37
- }
38
12
  fromPartialObject(_obj) {
39
13
  if (_obj.energySettings) {
40
14
  if (this.energySettings === undefined) {
@@ -42,6 +16,7 @@ class DeviceSettings {
42
16
  }
43
17
  this.energySettings.fromPartialObject(_obj.energySettings);
44
18
  }
19
+ super.fromPartialObject(_obj);
45
20
  }
46
21
  toJSON() {
47
22
  return server_1.Utils.jsonFilter(this);
@@ -0,0 +1,6 @@
1
+ import { LogLevel } from './logLevel';
2
+ export interface iIdHolder {
3
+ readonly id: string;
4
+ readonly customName: string;
5
+ log(level: LogLevel, message: string): void;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -8,5 +8,6 @@ export * from './deviceConfig';
8
8
  export * from './excessEnergyConsumerSettings';
9
9
  export * from './iTemperaturDataPoint';
10
10
  export * from './logLevel';
11
+ export * from './objectSettings';
11
12
  export * from './temperatureSettings';
12
13
  export * from './timeCallback';
@@ -24,5 +24,6 @@ __exportStar(require("./deviceConfig"), exports);
24
24
  __exportStar(require("./excessEnergyConsumerSettings"), exports);
25
25
  __exportStar(require("./iTemperaturDataPoint"), exports);
26
26
  __exportStar(require("./logLevel"), exports);
27
+ __exportStar(require("./objectSettings"), exports);
27
28
  __exportStar(require("./temperatureSettings"), exports);
28
29
  __exportStar(require("./timeCallback"), exports);
@@ -0,0 +1,8 @@
1
+ import { iIdHolder } from './iIdHolder';
2
+ export declare abstract class ObjectSettings {
3
+ onChangeCb?: () => void;
4
+ persist(holder: iIdHolder): void;
5
+ initializeFromDb(holder: iIdHolder): void;
6
+ fromPartialObject(_obj: Partial<ObjectSettings>): void;
7
+ protected toJSON(): Partial<ObjectSettings>;
8
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectSettings = void 0;
4
+ const server_1 = require("../server");
5
+ const logLevel_1 = require("./logLevel");
6
+ class ObjectSettings {
7
+ persist(holder) {
8
+ var _a;
9
+ (_a = server_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistSettings(holder.id, JSON.stringify(this), holder.customName);
10
+ }
11
+ initializeFromDb(holder) {
12
+ var _a;
13
+ (_a = server_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.loadSettings(holder.id).then((data) => {
14
+ if (!data) {
15
+ // Nothing in db yet
16
+ return;
17
+ }
18
+ let obj = null;
19
+ try {
20
+ obj = JSON.parse(data);
21
+ }
22
+ catch (e) {
23
+ holder.log(logLevel_1.LogLevel.Error, `Failed to parse Device Setting JSON (${e})`);
24
+ }
25
+ if (!obj) {
26
+ return;
27
+ }
28
+ this.fromPartialObject(obj);
29
+ if (JSON.stringify(this) !== data) {
30
+ this.persist(holder);
31
+ }
32
+ });
33
+ }
34
+ fromPartialObject(_obj) {
35
+ // nothing yet
36
+ }
37
+ toJSON() {
38
+ return server_1.Utils.jsonFilter(this);
39
+ }
40
+ }
41
+ exports.ObjectSettings = ObjectSettings;
@@ -1,10 +1,11 @@
1
1
  import { TimeCallback } from '../timeCallback';
2
2
  import { BaseGroup, DeviceCluster, GroupType, HeatGroup, LampenGroup, PraesenzGroup, SmokeGroup, SpeakerGroup, TasterGroup, WaterGroup, WindowGroup } from '../../server';
3
- import { RoomSettings } from './RoomSettings';
3
+ import { LogLevel } from '../logLevel';
4
+ import { RoomSettingsController } from './RoomSettings';
4
5
  import { iRoomBase } from './iRoomBase';
5
6
  import { RoomInfo } from './roomInfo';
6
- export declare class RoomBase implements iRoomBase {
7
- settings: RoomSettings;
7
+ import { iIdHolder } from '../iIdHolder';
8
+ export declare class RoomBase implements iRoomBase, iIdHolder {
8
9
  groupMap: Map<GroupType, BaseGroup>;
9
10
  info: RoomInfo;
10
11
  sonnenAufgangCallback: TimeCallback | undefined;
@@ -12,7 +13,14 @@ export declare class RoomBase implements iRoomBase {
12
13
  sonnenAufgangLichtCallback: TimeCallback | undefined;
13
14
  sonnenUntergangLichtCallback: TimeCallback | undefined;
14
15
  skipNextRolloUp: boolean;
15
- constructor(roomName: string, settings: RoomSettings, groupMap: Map<GroupType, BaseGroup>);
16
+ settings: RoomSettingsController;
17
+ constructor(groupMap: Map<GroupType, BaseGroup>, roomName: string, etage?: number);
18
+ /**
19
+ * For Rooms the id is itss name
20
+ * @returns {string} The Roomname
21
+ */
22
+ get id(): string;
23
+ get customName(): string;
16
24
  protected _deviceCluster: DeviceCluster;
17
25
  get deviceCluster(): DeviceCluster;
18
26
  get WindowGroup(): WindowGroup | undefined;
@@ -39,5 +47,5 @@ export declare class RoomBase implements iRoomBase {
39
47
  [p: string]: BaseGroup;
40
48
  };
41
49
  }>;
42
- private log;
50
+ log(level: LogLevel, message: string): void;
43
51
  }
@@ -7,19 +7,28 @@ exports.RoomBase = void 0;
7
7
  const timeCallback_1 = require("../timeCallback");
8
8
  const server_1 = require("../../server");
9
9
  const logLevel_1 = require("../logLevel");
10
+ const RoomSettings_1 = require("./RoomSettings");
10
11
  const roomInfo_1 = require("./roomInfo");
11
12
  const lodash_1 = __importDefault(require("lodash"));
12
13
  class RoomBase {
13
- constructor(roomName, settings, groupMap) {
14
- this.settings = settings;
14
+ constructor(groupMap, roomName, etage = 99) {
15
15
  this.groupMap = groupMap;
16
16
  this.skipNextRolloUp = false;
17
17
  this._deviceCluster = new server_1.DeviceCluster();
18
- this.info = new roomInfo_1.RoomInfo(roomName, settings);
19
- settings.roomName = roomName;
20
- this.settings = settings;
18
+ this.info = new roomInfo_1.RoomInfo(roomName, etage);
19
+ this.settings = new RoomSettings_1.RoomSettingsController(this);
21
20
  server_1.RoomService.addToRoomList(this);
22
21
  }
22
+ /**
23
+ * For Rooms the id is itss name
24
+ * @returns {string} The Roomname
25
+ */
26
+ get id() {
27
+ return this.roomName;
28
+ }
29
+ get customName() {
30
+ return this.roomName;
31
+ }
23
32
  get deviceCluster() {
24
33
  return this._deviceCluster;
25
34
  }
@@ -2,8 +2,7 @@ import { iRoomInitializationSettings } from './iRoomInitializationSettings';
2
2
  import { RoomDeviceAddingSettings } from './roomDeviceAddingSettings';
3
3
  export declare class RoomInitializationSettings implements iRoomInitializationSettings {
4
4
  shortName: string;
5
- etage: number;
6
5
  deviceAddidngSettings?: RoomDeviceAddingSettings;
7
- constructor(shortName: string, etage?: number);
6
+ constructor(shortName: string);
8
7
  static registerRoomForDevices(roomInitializationSettings: RoomInitializationSettings): void;
9
8
  }
@@ -3,9 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RoomInitializationSettings = void 0;
4
4
  const server_1 = require("../../../server");
5
5
  class RoomInitializationSettings {
6
- constructor(shortName, etage = -1) {
6
+ constructor(shortName) {
7
7
  this.shortName = shortName;
8
- this.etage = etage;
9
8
  }
10
9
  static registerRoomForDevices(roomInitializationSettings) {
11
10
  if (roomInitializationSettings.deviceAddidngSettings !== undefined) {
@@ -0,0 +1,34 @@
1
+ import { RoomBase } from '../RoomBase';
2
+ import { iRoomDefaultSettings } from './iRoomDefaultSettings';
3
+ import { iTimePair, SunTimeOffsets } from '../../../server';
4
+ import { RoomSettings } from './roomSettings';
5
+ export declare class RoomSettingsController implements iRoomDefaultSettings {
6
+ constructor(room: RoomBase);
7
+ roomName: string;
8
+ rolloOffset: SunTimeOffsets;
9
+ lampOffset: SunTimeOffsets;
10
+ private _settingsContainer;
11
+ get settingsContainer(): RoomSettings;
12
+ get lichtSonnenAufgangAus(): boolean;
13
+ get ambientLightAfterSunset(): boolean;
14
+ get rolloHeatReduction(): boolean;
15
+ get sonnenAufgangRollos(): boolean;
16
+ get sonnenUntergangRolloMaxTime(): iTimePair;
17
+ get sonnenAufgangRolloMinTime(): iTimePair;
18
+ get lightIfNoWindows(): boolean;
19
+ get lampenBeiBewegung(): boolean;
20
+ get sonnenUntergangRollos(): boolean;
21
+ get movementResetTimer(): number;
22
+ get sonnenUntergangRolloDelay(): number;
23
+ get sonnenUntergangLampenDelay(): number;
24
+ get sonnenUntergangRolloAdditionalOffsetPerCloudiness(): number;
25
+ get sonnenAufgangRolloDelay(): number;
26
+ get sonnenAufgangLampenDelay(): number;
27
+ get roomIsAlwaysDark(): boolean;
28
+ get radioUrl(): string;
29
+ get room(): RoomBase | undefined;
30
+ toJSON(): Partial<RoomSettingsController>;
31
+ private onSettingChange;
32
+ private recalcRolloOffset;
33
+ private recalcLampOffset;
34
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RoomSettingsController = void 0;
7
+ const server_1 = require("../../../server");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const roomSettings_1 = require("./roomSettings");
10
+ class RoomSettingsController {
11
+ constructor(room) {
12
+ this._settingsContainer = new roomSettings_1.RoomSettings();
13
+ this.roomName = room.roomName;
14
+ this.rolloOffset = new server_1.SunTimeOffsets(this.sonnenAufgangRolloDelay, this.sonnenUntergangRolloDelay, this.sonnenAufgangRolloMinTime.hours, this.sonnenAufgangRolloMinTime.minutes, this.sonnenUntergangRolloMaxTime.hours, this.sonnenUntergangRolloMaxTime.minutes);
15
+ this.lampOffset = new server_1.SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenUntergangLampenDelay);
16
+ this._settingsContainer.onChangeCb = this.onSettingChange.bind(this);
17
+ this._settingsContainer.initializeFromDb(room);
18
+ }
19
+ get settingsContainer() {
20
+ return this._settingsContainer;
21
+ }
22
+ get lichtSonnenAufgangAus() {
23
+ return this._settingsContainer.lichtSonnenAufgangAus;
24
+ }
25
+ get ambientLightAfterSunset() {
26
+ return this._settingsContainer.ambientLightAfterSunset;
27
+ }
28
+ get rolloHeatReduction() {
29
+ return this._settingsContainer.rolloHeatReduction;
30
+ }
31
+ get sonnenAufgangRollos() {
32
+ return this._settingsContainer.sonnenAufgangRollos;
33
+ }
34
+ get sonnenUntergangRolloMaxTime() {
35
+ return this._settingsContainer.sonnenUntergangRolloMaxTime;
36
+ }
37
+ get sonnenAufgangRolloMinTime() {
38
+ return this._settingsContainer.sonnenAufgangRolloMinTime;
39
+ }
40
+ get lightIfNoWindows() {
41
+ return this._settingsContainer.lightIfNoWindows;
42
+ }
43
+ get lampenBeiBewegung() {
44
+ return this._settingsContainer.lampenBeiBewegung;
45
+ }
46
+ get sonnenUntergangRollos() {
47
+ return this._settingsContainer.sonnenUntergangRollos;
48
+ }
49
+ get movementResetTimer() {
50
+ return this._settingsContainer.movementResetTimer;
51
+ }
52
+ get sonnenUntergangRolloDelay() {
53
+ return this._settingsContainer.sonnenUntergangRolloDelay;
54
+ }
55
+ get sonnenUntergangLampenDelay() {
56
+ return this._settingsContainer.sonnenUntergangLampenDelay;
57
+ }
58
+ get sonnenUntergangRolloAdditionalOffsetPerCloudiness() {
59
+ return this._settingsContainer.sonnenUntergangRolloAdditionalOffsetPerCloudiness;
60
+ }
61
+ get sonnenAufgangRolloDelay() {
62
+ return this._settingsContainer.sonnenAufgangRolloDelay;
63
+ }
64
+ get sonnenAufgangLampenDelay() {
65
+ return this._settingsContainer.sonnenAufgangLampenDelay;
66
+ }
67
+ get roomIsAlwaysDark() {
68
+ return this._settingsContainer.roomIsAlwaysDark;
69
+ }
70
+ get radioUrl() {
71
+ return this._settingsContainer.radioUrl;
72
+ }
73
+ get room() {
74
+ if (!this.roomName) {
75
+ return undefined;
76
+ }
77
+ return server_1.API.getRoom(this.roomName);
78
+ }
79
+ toJSON() {
80
+ const result = server_1.Utils.jsonFilter(this);
81
+ return lodash_1.default.omit(result, [`defaultSettings`, 'deviceAddidngSettings']);
82
+ }
83
+ onSettingChange() {
84
+ this.recalcLampOffset();
85
+ this.recalcRolloOffset();
86
+ }
87
+ recalcRolloOffset() {
88
+ var _a;
89
+ this.rolloOffset = new server_1.SunTimeOffsets(this.sonnenAufgangRolloDelay, this.sonnenUntergangRolloDelay, this.sonnenAufgangRolloMinTime.hours, this.sonnenAufgangRolloMinTime.minutes, this.sonnenUntergangRolloMaxTime.hours, this.sonnenUntergangRolloMaxTime.minutes);
90
+ if (this.sonnenUntergangRolloAdditionalOffsetPerCloudiness > 0) {
91
+ server_1.WeatherService.addWeatherUpdateCb(`RolloWeatherUpdate${this.roomName}`, () => {
92
+ var _a;
93
+ (_a = this.room) === null || _a === void 0 ? void 0 : _a.recalcTimeCallbacks();
94
+ });
95
+ }
96
+ (_a = this.room) === null || _a === void 0 ? void 0 : _a.recalcTimeCallbacks();
97
+ }
98
+ recalcLampOffset() {
99
+ var _a;
100
+ this.lampOffset = new server_1.SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenUntergangLampenDelay);
101
+ (_a = this.room) === null || _a === void 0 ? void 0 : _a.recalcTimeCallbacks();
102
+ }
103
+ }
104
+ exports.RoomSettingsController = RoomSettingsController;
@@ -1,23 +1,27 @@
1
1
  import { iTimePair } from '../../../server';
2
2
  export interface iRoomDefaultSettings {
3
- rolloHeatReduction: boolean;
3
+ /**
4
+ * The default radio URL to use with speaker
5
+ */
6
+ readonly radioUrl?: string;
7
+ readonly rolloHeatReduction: boolean;
4
8
  /**
5
9
  * Indicates rooms, which are time independent always dark (like basement).
6
10
  * This results in lamps beeing turned on on motion regardless of windows and time.
7
11
  */
8
- roomIsAlwaysDark: boolean;
9
- lampenBeiBewegung: boolean;
10
- lichtSonnenAufgangAus: boolean;
11
- sonnenUntergangRollos: boolean;
12
- sonnenUntergangRolloDelay: number;
13
- sonnenUntergangRolloMaxTime: iTimePair;
14
- sonnenUntergangLampenDelay: number;
15
- sonnenUntergangRolloAdditionalOffsetPerCloudiness: number;
16
- sonnenAufgangRollos: boolean;
17
- sonnenAufgangRolloDelay: number;
18
- sonnenAufgangRolloMinTime: iTimePair;
19
- sonnenAufgangLampenDelay: number;
20
- movementResetTimer: number;
21
- lightIfNoWindows: boolean;
22
- ambientLightAfterSunset: boolean;
12
+ readonly roomIsAlwaysDark: boolean;
13
+ readonly lampenBeiBewegung: boolean;
14
+ readonly lichtSonnenAufgangAus: boolean;
15
+ readonly sonnenUntergangRollos: boolean;
16
+ readonly sonnenUntergangRolloDelay: number;
17
+ readonly sonnenUntergangRolloMaxTime: iTimePair;
18
+ readonly sonnenUntergangLampenDelay: number;
19
+ readonly sonnenUntergangRolloAdditionalOffsetPerCloudiness: number;
20
+ readonly sonnenAufgangRollos: boolean;
21
+ readonly sonnenAufgangRolloDelay: number;
22
+ readonly sonnenAufgangRolloMinTime: iTimePair;
23
+ readonly sonnenAufgangLampenDelay: number;
24
+ readonly movementResetTimer: number;
25
+ readonly lightIfNoWindows: boolean;
26
+ readonly ambientLightAfterSunset: boolean;
23
27
  }
@@ -1,6 +1,5 @@
1
1
  import { RoomDeviceAddingSettings } from './roomDeviceAddingSettings';
2
2
  export interface iRoomInitializationSettings {
3
3
  deviceAddidngSettings?: RoomDeviceAddingSettings;
4
- etage: number;
5
4
  shortName: string;
6
5
  }
@@ -3,4 +3,5 @@ export * from './iRoomInitializationSettings';
3
3
  export * from './roomAddDeviceItem';
4
4
  export * from './roomDeviceAddingSettings';
5
5
  export * from './RoomInitializationSettings';
6
- export * from './RoomSettings';
6
+ export * from './roomSettings';
7
+ export * from './RoomSettingsController';
@@ -19,4 +19,5 @@ __exportStar(require("./iRoomInitializationSettings"), exports);
19
19
  __exportStar(require("./roomAddDeviceItem"), exports);
20
20
  __exportStar(require("./roomDeviceAddingSettings"), exports);
21
21
  __exportStar(require("./RoomInitializationSettings"), exports);
22
- __exportStar(require("./RoomSettings"), exports);
22
+ __exportStar(require("./roomSettings"), exports);
23
+ __exportStar(require("./RoomSettingsController"), exports);
@@ -0,0 +1,39 @@
1
+ import { ObjectSettings } from '../../objectSettings';
2
+ import { iTimePair } from '../../../server';
3
+ export declare class RoomSettings extends ObjectSettings {
4
+ private _ambientLightAfterSunset;
5
+ get ambientLightAfterSunset(): boolean;
6
+ private _lichtSonnenAufgangAus;
7
+ get lichtSonnenAufgangAus(): boolean;
8
+ private _radioUrl;
9
+ get radioUrl(): string;
10
+ private _rolloHeatReduction;
11
+ get rolloHeatReduction(): boolean;
12
+ private _lampenBeiBewegung;
13
+ get lampenBeiBewegung(): boolean;
14
+ private _lightIfNoWindows;
15
+ get lightIfNoWindows(): boolean;
16
+ private _movementResetTimer;
17
+ get movementResetTimer(): number;
18
+ private _roomIsAlwaysDark;
19
+ get roomIsAlwaysDark(): boolean;
20
+ private _sonnenAufgangLampenDelay;
21
+ get sonnenAufgangLampenDelay(): number;
22
+ private _sonnenAufgangRolloDelay;
23
+ get sonnenAufgangRolloDelay(): number;
24
+ private _sonnenAufgangRollos;
25
+ get sonnenAufgangRollos(): boolean;
26
+ private _sonnenUntergangRolloAdditionalOffsetPerCloudiness;
27
+ get sonnenUntergangRolloAdditionalOffsetPerCloudiness(): number;
28
+ private _sonnenUntergangRolloMaxTime;
29
+ get sonnenUntergangRolloMaxTime(): iTimePair;
30
+ private _sonnenAufgangRolloMinTime;
31
+ get sonnenAufgangRolloMinTime(): iTimePair;
32
+ private _sonnenUntergangRolloDelay;
33
+ get sonnenUntergangRolloDelay(): number;
34
+ private _sonnenUntergangLampenDelay;
35
+ get sonnenUntergangLampenDelay(): number;
36
+ private _sonnenUntergangRollos;
37
+ get sonnenUntergangRollos(): boolean;
38
+ fromPartialObject(_obj: Partial<RoomSettings>): void;
39
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoomSettings = void 0;
4
+ const objectSettings_1 = require("../../objectSettings");
5
+ const server_1 = require("../../../server");
6
+ class RoomSettings extends objectSettings_1.ObjectSettings {
7
+ constructor() {
8
+ var _a;
9
+ super(...arguments);
10
+ this._ambientLightAfterSunset = server_1.SettingsService.settings.roomDefault.ambientLightAfterSunset;
11
+ this._lichtSonnenAufgangAus = server_1.SettingsService.settings.roomDefault.lichtSonnenAufgangAus;
12
+ this._radioUrl = (_a = server_1.SettingsService.settings.roomDefault.radioUrl) !== null && _a !== void 0 ? _a : '';
13
+ this._rolloHeatReduction = server_1.SettingsService.settings.roomDefault.rolloHeatReduction;
14
+ this._lampenBeiBewegung = server_1.SettingsService.settings.roomDefault.lampenBeiBewegung;
15
+ this._lightIfNoWindows = server_1.SettingsService.settings.roomDefault.lightIfNoWindows;
16
+ this._movementResetTimer = server_1.SettingsService.settings.roomDefault.movementResetTimer;
17
+ this._roomIsAlwaysDark = server_1.SettingsService.settings.roomDefault.roomIsAlwaysDark;
18
+ this._sonnenAufgangLampenDelay = server_1.SettingsService.settings.roomDefault.sonnenAufgangLampenDelay;
19
+ this._sonnenAufgangRolloDelay = server_1.SettingsService.settings.roomDefault.sonnenAufgangRolloDelay;
20
+ this._sonnenAufgangRollos = server_1.SettingsService.settings.roomDefault.sonnenAufgangRollos;
21
+ this._sonnenUntergangRolloAdditionalOffsetPerCloudiness = server_1.SettingsService.settings.roomDefault.sonnenUntergangRolloAdditionalOffsetPerCloudiness;
22
+ this._sonnenUntergangRolloMaxTime = server_1.SettingsService.settings.roomDefault.sonnenUntergangRolloMaxTime;
23
+ this._sonnenAufgangRolloMinTime = server_1.SettingsService.settings.roomDefault.sonnenAufgangRolloMinTime;
24
+ this._sonnenUntergangRolloDelay = server_1.SettingsService.settings.roomDefault.sonnenUntergangRolloDelay;
25
+ this._sonnenUntergangLampenDelay = server_1.SettingsService.settings.roomDefault.sonnenUntergangLampenDelay;
26
+ this._sonnenUntergangRollos = server_1.SettingsService.settings.roomDefault.sonnenUntergangRollos;
27
+ }
28
+ get ambientLightAfterSunset() {
29
+ return this._ambientLightAfterSunset;
30
+ }
31
+ get lichtSonnenAufgangAus() {
32
+ return this._lichtSonnenAufgangAus;
33
+ }
34
+ get radioUrl() {
35
+ return this._radioUrl;
36
+ }
37
+ get rolloHeatReduction() {
38
+ return this._rolloHeatReduction;
39
+ }
40
+ get lampenBeiBewegung() {
41
+ return this._lampenBeiBewegung;
42
+ }
43
+ get lightIfNoWindows() {
44
+ return this._lightIfNoWindows;
45
+ }
46
+ get movementResetTimer() {
47
+ return this._movementResetTimer;
48
+ }
49
+ get roomIsAlwaysDark() {
50
+ return this._roomIsAlwaysDark;
51
+ }
52
+ get sonnenAufgangLampenDelay() {
53
+ return this._sonnenAufgangLampenDelay;
54
+ }
55
+ get sonnenAufgangRolloDelay() {
56
+ return this._sonnenAufgangRolloDelay;
57
+ }
58
+ get sonnenAufgangRollos() {
59
+ return this._sonnenAufgangRollos;
60
+ }
61
+ get sonnenUntergangRolloAdditionalOffsetPerCloudiness() {
62
+ return this._sonnenUntergangRolloAdditionalOffsetPerCloudiness;
63
+ }
64
+ get sonnenUntergangRolloMaxTime() {
65
+ return this._sonnenUntergangRolloMaxTime;
66
+ }
67
+ get sonnenAufgangRolloMinTime() {
68
+ return this._sonnenAufgangRolloMinTime;
69
+ }
70
+ get sonnenUntergangRolloDelay() {
71
+ return this._sonnenUntergangRolloDelay;
72
+ }
73
+ get sonnenUntergangLampenDelay() {
74
+ return this._sonnenUntergangLampenDelay;
75
+ }
76
+ get sonnenUntergangRollos() {
77
+ return this._sonnenUntergangRollos;
78
+ }
79
+ fromPartialObject(_obj) {
80
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
81
+ this._ambientLightAfterSunset = (_a = _obj.ambientLightAfterSunset) !== null && _a !== void 0 ? _a : this.ambientLightAfterSunset;
82
+ this._lichtSonnenAufgangAus = (_b = _obj.lichtSonnenAufgangAus) !== null && _b !== void 0 ? _b : this.lichtSonnenAufgangAus;
83
+ this._radioUrl = (_c = _obj.radioUrl) !== null && _c !== void 0 ? _c : this.radioUrl;
84
+ this._rolloHeatReduction = (_d = _obj.rolloHeatReduction) !== null && _d !== void 0 ? _d : this.rolloHeatReduction;
85
+ this._lampenBeiBewegung = (_e = _obj.lampenBeiBewegung) !== null && _e !== void 0 ? _e : this.lampenBeiBewegung;
86
+ this._lightIfNoWindows = (_f = _obj.lightIfNoWindows) !== null && _f !== void 0 ? _f : this.lightIfNoWindows;
87
+ this._movementResetTimer = (_g = _obj.movementResetTimer) !== null && _g !== void 0 ? _g : this.movementResetTimer;
88
+ this._roomIsAlwaysDark = (_h = _obj.roomIsAlwaysDark) !== null && _h !== void 0 ? _h : this.roomIsAlwaysDark;
89
+ this._sonnenAufgangLampenDelay = (_j = _obj.sonnenAufgangLampenDelay) !== null && _j !== void 0 ? _j : this.sonnenAufgangLampenDelay;
90
+ this._sonnenAufgangRolloDelay = (_k = _obj.sonnenAufgangRolloDelay) !== null && _k !== void 0 ? _k : this.sonnenAufgangRolloDelay;
91
+ this._sonnenAufgangRollos = (_l = _obj.sonnenAufgangRollos) !== null && _l !== void 0 ? _l : this.sonnenAufgangRollos;
92
+ this._sonnenUntergangRolloAdditionalOffsetPerCloudiness =
93
+ (_m = _obj.sonnenUntergangRolloAdditionalOffsetPerCloudiness) !== null && _m !== void 0 ? _m : this.sonnenUntergangRolloAdditionalOffsetPerCloudiness;
94
+ this._sonnenUntergangRolloMaxTime = (_o = _obj.sonnenUntergangRolloMaxTime) !== null && _o !== void 0 ? _o : this.sonnenUntergangRolloMaxTime;
95
+ this._sonnenAufgangRolloMinTime = (_p = _obj.sonnenAufgangRolloMinTime) !== null && _p !== void 0 ? _p : this.sonnenAufgangRolloMinTime;
96
+ this._sonnenUntergangRolloDelay = (_q = _obj.sonnenUntergangRolloDelay) !== null && _q !== void 0 ? _q : this.sonnenUntergangRolloDelay;
97
+ this._sonnenUntergangLampenDelay = (_r = _obj.sonnenUntergangLampenDelay) !== null && _r !== void 0 ? _r : this.sonnenUntergangLampenDelay;
98
+ this._sonnenUntergangRollos = (_s = _obj.sonnenUntergangRollos) !== null && _s !== void 0 ? _s : this.sonnenUntergangRollos;
99
+ super.fromPartialObject(_obj);
100
+ }
101
+ }
102
+ exports.RoomSettings = RoomSettings;
@@ -1,6 +1,5 @@
1
- import { RoomSettings } from './RoomSettings';
2
1
  export declare class RoomInfo {
3
2
  roomName: string;
4
- etage?: number;
5
- constructor(roomName: string, settings: RoomSettings);
3
+ etage: number;
4
+ constructor(roomName: string, etage?: number);
6
5
  }
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RoomInfo = void 0;
4
4
  class RoomInfo {
5
- constructor(roomName, settings) {
5
+ constructor(roomName, etage = 99) {
6
6
  this.roomName = roomName;
7
- this.etage = settings.etage;
7
+ this.etage = etage;
8
8
  }
9
9
  }
10
10
  exports.RoomInfo = RoomInfo;
@@ -15,6 +15,7 @@ export declare abstract class IoBrokerBaseDevice implements iRoomDevice {
15
15
  };
16
16
  room: RoomBase | undefined;
17
17
  readonly deviceCapabilities: DeviceCapability[];
18
+ get customName(): string;
18
19
  protected readonly individualStateCallbacks: Map<string, Array<(val: ioBroker.StateValue) => void>>;
19
20
  protected constructor(_info: IoBrokerDeviceInfo, deviceType: DeviceType);
20
21
  get id(): string;
@@ -5,6 +5,9 @@ const services_1 = require("../services");
5
5
  const models_1 = require("../../models");
6
6
  const ioBroker_1 = require("../ioBroker");
7
7
  class IoBrokerBaseDevice {
8
+ get customName() {
9
+ return this.info.customName;
10
+ }
8
11
  constructor(_info, deviceType) {
9
12
  this._info = _info;
10
13
  this.deviceType = deviceType;
@@ -1,14 +1,13 @@
1
- import { DeviceSettings, LogLevel } from '../../../models';
1
+ import { DeviceSettings } from '../../../models';
2
2
  import { DeviceType } from '../deviceType';
3
3
  import { DeviceInfo } from '../DeviceInfo';
4
4
  import { DeviceCapability } from '../DeviceCapability';
5
- export interface iBaseDevice {
5
+ import { iIdHolder } from '../../../models/iIdHolder';
6
+ export interface iBaseDevice extends iIdHolder {
6
7
  readonly settings: DeviceSettings | undefined;
7
8
  deviceType: DeviceType;
8
9
  info: DeviceInfo;
9
10
  readonly deviceCapabilities: DeviceCapability[];
10
- readonly id: string;
11
- log(level: LogLevel, message: string): void;
12
11
  persistDeviceInfo(): void;
13
12
  loadDeviceSettings(): void;
14
13
  toJSON(): Partial<iBaseDevice>;