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.
- package/lib/models/deviceSettings/deviceSettings.d.ts +2 -4
- package/lib/models/deviceSettings/deviceSettings.js +5 -30
- package/lib/models/iIdHolder.d.ts +6 -0
- package/lib/models/iIdHolder.js +2 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.js +1 -0
- package/lib/models/objectSettings.d.ts +8 -0
- package/lib/models/objectSettings.js +41 -0
- package/lib/models/rooms/RoomBase.d.ts +13 -5
- package/lib/models/rooms/RoomBase.js +14 -5
- package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +1 -2
- package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +1 -2
- package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +34 -0
- package/lib/models/rooms/RoomSettings/RoomSettingsController.js +104 -0
- package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +20 -16
- package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +0 -1
- package/lib/models/rooms/RoomSettings/index.d.ts +2 -1
- package/lib/models/rooms/RoomSettings/index.js +2 -1
- package/lib/models/rooms/RoomSettings/roomSettings.d.ts +39 -0
- package/lib/models/rooms/RoomSettings/roomSettings.js +102 -0
- package/lib/models/rooms/roomInfo.d.ts +2 -3
- package/lib/models/rooms/roomInfo.js +2 -2
- package/lib/server/devices/IoBrokerBaseDevice.d.ts +1 -0
- package/lib/server/devices/IoBrokerBaseDevice.js +3 -0
- package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +3 -4
- package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +1 -0
- package/lib/server/devices/espresense/detectedBluetoothDevice.js +3 -0
- package/lib/server/devices/espresense/espresenseDevice.d.ts +1 -0
- package/lib/server/devices/espresense/espresenseDevice.js +3 -0
- package/lib/server/devices/scene/room-scene.d.ts +1 -0
- package/lib/server/devices/scene/room-scene.js +3 -0
- package/lib/server/devices/tv/tvDevice.d.ts +1 -0
- package/lib/server/devices/tv/tvDevice.js +3 -0
- package/lib/server/services/Sonos/own-sonos-device.d.ts +1 -0
- package/lib/server/services/Sonos/own-sonos-device.js +3 -0
- package/lib/server/services/ac/ac-device.d.ts +1 -0
- package/lib/server/services/ac/ac-device.js +3 -0
- package/lib/server/services/api/api-service.d.ts +7 -0
- package/lib/server/services/api/api-service.js +15 -0
- package/lib/server/services/dbo/postgreSqlPersist.d.ts +1 -1
- package/lib/server/services/dbo/postgreSqlPersist.js +5 -5
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/lib/models/rooms/RoomSettings/RoomSettings.d.ts +0 -64
- 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
|
-
|
|
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
|
-
|
|
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);
|
package/lib/models/index.d.ts
CHANGED
package/lib/models/index.js
CHANGED
|
@@ -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 {
|
|
3
|
+
import { LogLevel } from '../logLevel';
|
|
4
|
+
import { RoomSettingsController } from './RoomSettings';
|
|
4
5
|
import { iRoomBase } from './iRoomBase';
|
|
5
6
|
import { RoomInfo } from './roomInfo';
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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,
|
|
19
|
-
settings
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
}
|
|
@@ -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 './
|
|
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("./
|
|
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;
|
|
@@ -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,
|
|
5
|
+
constructor(roomName, etage = 99) {
|
|
6
6
|
this.roomName = roomName;
|
|
7
|
-
this.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
|
|
1
|
+
import { DeviceSettings } from '../../../models';
|
|
2
2
|
import { DeviceType } from '../deviceType';
|
|
3
3
|
import { DeviceInfo } from '../DeviceInfo';
|
|
4
4
|
import { DeviceCapability } from '../DeviceCapability';
|
|
5
|
-
|
|
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>;
|