hoffmation-base 0.1.1 → 0.1.5
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/.eslintrc.js +27 -27
- package/.github/workflows/npm-publish.yml +50 -0
- package/.prettierrc.js +9 -9
- package/LICENSE +21 -21
- package/index.js +1 -1
- package/models/connectionCallbacks.ts +13 -13
- package/models/daytime.ts +3 -3
- package/models/deviceConfig.ts +8 -8
- package/models/dimmerSettings.ts +5 -5
- package/models/iTemperaturDataPoint.ts +9 -9
- package/models/lampSettings.ts +5 -5
- package/models/ledSettings.ts +19 -19
- package/models/logLevel.ts +9 -9
- package/models/persistence/BasicRoomInfo.ts +3 -3
- package/models/persistence/DailyMovementCount.ts +3 -3
- package/models/persistence/RoomDetailInfo.ts +4 -4
- package/models/persistence/temperaturDataPoint.ts +12 -12
- package/models/persistence/todaysCount.ts +3 -3
- package/models/rooms/RoomBase.ts +357 -357
- package/models/rooms/RoomSettings/RoomSettings.ts +159 -159
- package/models/rooms/RoomSettings/hmIPRoomSettings.ts +53 -53
- package/models/rooms/RoomSettings/iRoomDefaultSettings.ts +17 -17
- package/models/rooms/RoomSettings/readme.md +17 -17
- package/models/rooms/RoomSettings/zigbeeRoomSettings.ts +51 -51
- package/models/rooms/iRoomImportEnforcer.ts +3 -3
- package/models/rooms/readme.md +11 -11
- package/models/temperaturSettings.ts +22 -22
- package/models/timeCallback.ts +90 -90
- package/package.json +1 -1
- package/server/config/config-readme.md +19 -19
- package/server/config/iConfig.ts +53 -53
- package/server/config/private/mainConfig.json +64 -64
- package/server/devices/DeviceInfo.ts +66 -66
- package/server/devices/Griffe.ts +31 -31
- package/server/devices/Heizgruppen.ts +91 -91
- package/server/devices/Rollos.ts +48 -48
- package/server/devices/deviceUpdater.ts +72 -72
- package/server/devices/devices.ts +189 -189
- package/server/devices/groups/fensterGroup.ts +175 -175
- package/server/devices/groups/heatGroup.ts +32 -32
- package/server/devices/groups/lampenGroup.ts +88 -88
- package/server/devices/groups/praesenzGroup.ts +182 -182
- package/server/devices/groups/smokeGroup.ts +16 -16
- package/server/devices/groups/sonosGroup.ts +33 -33
- package/server/devices/groups/tasterGroup.ts +48 -48
- package/server/devices/groups/waterGroup.ts +16 -16
- package/server/devices/hmIPDevices/Fenster.ts +114 -114
- package/server/devices/hmIPDevices/FensterPosition.ts +5 -5
- package/server/devices/hmIPDevices/TuerPosition.ts +4 -4
- package/server/devices/hmIPDevices/hmIpBewegung.ts +126 -126
- package/server/devices/hmIPDevices/hmIpDevice.ts +90 -90
- package/server/devices/hmIPDevices/hmIpDeviceType.ts +14 -14
- package/server/devices/hmIPDevices/hmIpGriff.ts +143 -143
- package/server/devices/hmIPDevices/hmIpHeizgruppe.ts +172 -172
- package/server/devices/hmIPDevices/hmIpHeizung.ts +69 -69
- package/server/devices/hmIPDevices/hmIpLampe.ts +119 -119
- package/server/devices/hmIPDevices/hmIpPraezenz.ts +99 -99
- package/server/devices/hmIPDevices/hmIpRoll.ts +133 -133
- package/server/devices/hmIPDevices/hmIpTaster.ts +82 -73
- package/server/devices/hmIPDevices/hmIpTherm.ts +19 -19
- package/server/devices/hmIPDevices/hmIpTuer.ts +115 -115
- package/server/devices/hmIPDevices/hmIpWippe.ts +55 -55
- package/server/devices/iDeviceUpdater.ts +4 -4
- package/server/devices/iIoBrokerDevice.ts +44 -44
- package/server/devices/iTaster.ts +6 -0
- package/server/devices/{hmIPDevices/hmIpTaste.ts → taste.ts} +84 -72
- package/server/devices/wledDevice.ts +124 -124
- package/server/devices/zigbee/ZigbeeActuator.ts +113 -113
- package/server/devices/zigbee/zigbeeAquaraVibra.ts +171 -171
- package/server/devices/zigbee/zigbeeAquaraWater.ts +94 -94
- package/server/devices/zigbee/zigbeeBlitzShp.ts +77 -77
- package/server/devices/zigbee/zigbeeDevice.ts +115 -115
- package/server/devices/zigbee/zigbeeDeviceType.ts +13 -13
- package/server/devices/zigbee/zigbeeHeimanSmoke.ts +99 -99
- package/server/devices/zigbee/zigbeeIkeaSteckdose.ts +31 -31
- package/server/devices/zigbee/zigbeeIlluActuator.ts +37 -37
- package/server/devices/zigbee/zigbeeIlluDimmer.ts +165 -165
- package/server/devices/zigbee/zigbeeIlluLampe.ts +33 -33
- package/server/devices/zigbee/zigbeeIlluLedRGBCCT.ts +137 -137
- package/server/ioBroker/connection.ts +1655 -1655
- package/server/ioBroker/ioBroker.main.ts +99 -99
- package/server/ioBroker/socketIOAuthInfo.ts +5 -5
- package/server/ioBroker/socketIOConnectOptions.ts +6 -6
- package/server/ioBroker/socketIOLogging.ts +29 -29
- package/server/ioBroker/socketIOVisCommand.ts +11 -11
- package/server/services/HTTPSOptions.ts +14 -14
- package/server/services/Sonos/OwnSonosDevices.ts +9 -0
- package/server/services/Sonos/mp3-server.ts +75 -75
- package/server/services/Sonos/polly-service.ts +100 -100
- package/server/services/Sonos/sonos-service.ts +194 -199
- package/server/services/Telegram/telegram-Commands.ts +237 -215
- package/server/services/Telegram/telegram-service.ts +171 -171
- package/server/services/Telegram/telegramMessageCalback.ts +11 -11
- package/server/services/calendar/muell-tonne.ts +82 -83
- package/server/services/calendar/m/303/274ll-service.ts +147 -146
- package/server/services/dbo/persist.ts +125 -125
- package/server/services/https-service.ts +71 -71
- package/server/services/log-service.ts +69 -69
- package/server/services/news-service.ts +81 -81
- package/server/services/settings-service.ts +15 -15
- package/server/services/time-callback-service.ts +223 -223
- package/server/services/utils/ringstorage.ts +24 -24
- package/server/services/utils/utils.ts +52 -52
- package/server/services/weather/weather-alert.ts +7 -7
- package/server/services/weather/weather-current.ts +26 -26
- package/server/services/weather/weather-daily.ts +22 -22
- package/server/services/weather/weather-feelsLike.ts +6 -6
- package/server/services/weather/weather-hourly.ts +17 -17
- package/server/services/weather/weather-item.ts +6 -6
- package/server/services/weather/weather-minutes.ts +4 -4
- package/server/services/weather/weather-service.ts +277 -277
- package/server/services/weather/weather-temp.ts +8 -8
- package/tsconfig.json +58 -58
|
@@ -1,159 +1,159 @@
|
|
|
1
|
-
import { HmIpRoomSettings } from './hmIPRoomSettings';
|
|
2
|
-
import { ZigbeeRoomSettings } from './zigbeeRoomSettings';
|
|
3
|
-
import { SettingsService } from '../../../server/services/settings-service';
|
|
4
|
-
import { iRoomDefaultSettings } from './iRoomDefaultSettings';
|
|
5
|
-
import { SunTimeOffsets } from '../../../server/services/time-callback-service';
|
|
6
|
-
|
|
7
|
-
import { RoomBase } from '../RoomBase';
|
|
8
|
-
import { iTimePair } from '../../../server/config/iConfig';
|
|
9
|
-
|
|
10
|
-
export class RoomSettings implements iRoomDefaultSettings {
|
|
11
|
-
public defaultSettings: iRoomDefaultSettings = SettingsService.settings.roomDefault;
|
|
12
|
-
private _lampenBeiBewegung: boolean = this.defaultSettings.lampenBeiBewegung;
|
|
13
|
-
private _lichtSonnenAufgangAus: boolean = this.defaultSettings.lichtSonnenAufgangAus;
|
|
14
|
-
private _sonnenUntergangRollos: boolean = this.defaultSettings.sonnenUntergangRollos;
|
|
15
|
-
private _sonnenAufgangRollos: boolean = this.defaultSettings.sonnenAufgangRollos;
|
|
16
|
-
private _movementResetTimer: number = this.defaultSettings.movementResetTimer;
|
|
17
|
-
private _sonnenUntergangRolloDelay: number = this.defaultSettings.sonnenUntergangRolloDelay;
|
|
18
|
-
private _sonnenUntergangRolloMaxTime: iTimePair = this.defaultSettings.sonnenUntergangRolloMaxTime;
|
|
19
|
-
private _sonnenUntergangLampenDelay: number = this.defaultSettings.sonnenUntergangLampenDelay;
|
|
20
|
-
private _sonnenAufgangRolloDelay: number = this.defaultSettings.sonnenAufgangRolloDelay;
|
|
21
|
-
private _sonnenAufgangRolloMinTime: iTimePair = this.defaultSettings.sonnenAufgangRolloMinTime;
|
|
22
|
-
private _sonnenAufgangLampenDelay: number = this.defaultSettings.sonnenAufgangLampenDelay;
|
|
23
|
-
private _lightIfNoWindows: boolean = this.defaultSettings.lightIfNoWindows;
|
|
24
|
-
public hmIpSettings?: HmIpRoomSettings;
|
|
25
|
-
public zigbeeSettings?: ZigbeeRoomSettings;
|
|
26
|
-
public radioUrl: string = 'https://hermes.bcs-systems.de/hitradio-rtl_top40_64k_aac'; // Radio RTL
|
|
27
|
-
public etage: number = -1;
|
|
28
|
-
public rolloOffset: SunTimeOffsets;
|
|
29
|
-
public lampOffset: SunTimeOffsets;
|
|
30
|
-
public room?: RoomBase;
|
|
31
|
-
public rolloHeatReduction: boolean = this.defaultSettings.rolloHeatReduction;
|
|
32
|
-
|
|
33
|
-
public constructor(public shortName: string) {
|
|
34
|
-
this.rolloOffset = new SunTimeOffsets(
|
|
35
|
-
this.sonnenAufgangRolloDelay,
|
|
36
|
-
this.sonnenUntergangRolloDelay,
|
|
37
|
-
this.sonnenAufgangRolloMinTime.hours,
|
|
38
|
-
this.sonnenAufgangRolloMinTime.minutes,
|
|
39
|
-
this.sonnenUntergangRolloMaxTime.hours,
|
|
40
|
-
this.sonnenUntergangRolloMaxTime.minutes,
|
|
41
|
-
);
|
|
42
|
-
this.lampOffset = new SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenUntergangLampenDelay);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
private recalcRolloOffset(): void {
|
|
46
|
-
this.rolloOffset = new SunTimeOffsets(
|
|
47
|
-
this.sonnenAufgangRolloDelay,
|
|
48
|
-
this.sonnenUntergangRolloDelay,
|
|
49
|
-
this.sonnenAufgangRolloMinTime.hours,
|
|
50
|
-
this.sonnenAufgangRolloMinTime.minutes,
|
|
51
|
-
this.sonnenUntergangRolloMaxTime.hours,
|
|
52
|
-
this.sonnenUntergangRolloMaxTime.minutes,
|
|
53
|
-
);
|
|
54
|
-
if (this.room) {
|
|
55
|
-
this.room.recalcTimeCallbacks();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
private recalcLampOffset(): void {
|
|
60
|
-
this.lampOffset = new SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenAufgangRolloDelay);
|
|
61
|
-
if (this.room) {
|
|
62
|
-
this.room.recalcTimeCallbacks();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
get sonnenAufgangLampenDelay(): number {
|
|
67
|
-
return this._sonnenAufgangLampenDelay;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
set sonnenAufgangLampenDelay(value: number) {
|
|
71
|
-
this._sonnenAufgangLampenDelay = value;
|
|
72
|
-
this.recalcLampOffset();
|
|
73
|
-
}
|
|
74
|
-
get sonnenAufgangRolloDelay(): number {
|
|
75
|
-
return this._sonnenAufgangRolloDelay;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
set sonnenAufgangRolloDelay(value: number) {
|
|
79
|
-
this._sonnenAufgangRolloDelay = value;
|
|
80
|
-
this.recalcRolloOffset();
|
|
81
|
-
}
|
|
82
|
-
get sonnenUntergangLampenDelay(): number {
|
|
83
|
-
return this._sonnenUntergangLampenDelay;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
set sonnenUntergangLampenDelay(value: number) {
|
|
87
|
-
this._sonnenUntergangLampenDelay = value;
|
|
88
|
-
this.recalcLampOffset();
|
|
89
|
-
}
|
|
90
|
-
get sonnenUntergangRolloDelay(): number {
|
|
91
|
-
return this._sonnenUntergangRolloDelay;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
set sonnenUntergangRolloDelay(value: number) {
|
|
95
|
-
this._sonnenUntergangRolloDelay = value;
|
|
96
|
-
}
|
|
97
|
-
get movementResetTimer(): number {
|
|
98
|
-
return this._movementResetTimer;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
set movementResetTimer(value: number) {
|
|
102
|
-
this._movementResetTimer = value;
|
|
103
|
-
}
|
|
104
|
-
get lichtSonnenAufgangAus(): boolean {
|
|
105
|
-
return this._lichtSonnenAufgangAus;
|
|
106
|
-
}
|
|
107
|
-
get sonnenAufgangRollos(): boolean {
|
|
108
|
-
return this._sonnenAufgangRollos;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
set sonnenAufgangRollos(value: boolean) {
|
|
112
|
-
this._sonnenAufgangRollos = value;
|
|
113
|
-
this.recalcRolloOffset();
|
|
114
|
-
}
|
|
115
|
-
get sonnenUntergangRollos(): boolean {
|
|
116
|
-
return this._sonnenUntergangRollos;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
set sonnenUntergangRollos(value: boolean) {
|
|
120
|
-
this._sonnenUntergangRollos = value;
|
|
121
|
-
this.recalcRolloOffset();
|
|
122
|
-
}
|
|
123
|
-
set lichtSonnenAufgangAus(value: boolean) {
|
|
124
|
-
this._lichtSonnenAufgangAus = value;
|
|
125
|
-
}
|
|
126
|
-
get lampenBeiBewegung(): boolean {
|
|
127
|
-
return this._lampenBeiBewegung;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
set lampenBeiBewegung(value: boolean) {
|
|
131
|
-
this._lampenBeiBewegung = value;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
get sonnenUntergangRolloMaxTime(): iTimePair {
|
|
135
|
-
return this._sonnenUntergangRolloMaxTime;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
set sonnenUntergangRolloMaxTime(value: iTimePair) {
|
|
139
|
-
this._sonnenUntergangRolloMaxTime = value;
|
|
140
|
-
this.recalcRolloOffset();
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
get sonnenAufgangRolloMinTime(): iTimePair {
|
|
144
|
-
return this._sonnenAufgangRolloMinTime;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
set sonnenAufgangRolloMinTime(value: iTimePair) {
|
|
148
|
-
this._sonnenAufgangRolloMinTime = value;
|
|
149
|
-
this.recalcRolloOffset();
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
get lightIfNoWindows(): boolean {
|
|
153
|
-
return this._lightIfNoWindows;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
set lightIfNoWindows(value: boolean) {
|
|
157
|
-
this._lightIfNoWindows = value;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
1
|
+
import { HmIpRoomSettings } from './hmIPRoomSettings';
|
|
2
|
+
import { ZigbeeRoomSettings } from './zigbeeRoomSettings';
|
|
3
|
+
import { SettingsService } from '../../../server/services/settings-service';
|
|
4
|
+
import { iRoomDefaultSettings } from './iRoomDefaultSettings';
|
|
5
|
+
import { SunTimeOffsets } from '../../../server/services/time-callback-service';
|
|
6
|
+
|
|
7
|
+
import { RoomBase } from '../RoomBase';
|
|
8
|
+
import { iTimePair } from '../../../server/config/iConfig';
|
|
9
|
+
|
|
10
|
+
export class RoomSettings implements iRoomDefaultSettings {
|
|
11
|
+
public defaultSettings: iRoomDefaultSettings = SettingsService.settings.roomDefault;
|
|
12
|
+
private _lampenBeiBewegung: boolean = this.defaultSettings.lampenBeiBewegung;
|
|
13
|
+
private _lichtSonnenAufgangAus: boolean = this.defaultSettings.lichtSonnenAufgangAus;
|
|
14
|
+
private _sonnenUntergangRollos: boolean = this.defaultSettings.sonnenUntergangRollos;
|
|
15
|
+
private _sonnenAufgangRollos: boolean = this.defaultSettings.sonnenAufgangRollos;
|
|
16
|
+
private _movementResetTimer: number = this.defaultSettings.movementResetTimer;
|
|
17
|
+
private _sonnenUntergangRolloDelay: number = this.defaultSettings.sonnenUntergangRolloDelay;
|
|
18
|
+
private _sonnenUntergangRolloMaxTime: iTimePair = this.defaultSettings.sonnenUntergangRolloMaxTime;
|
|
19
|
+
private _sonnenUntergangLampenDelay: number = this.defaultSettings.sonnenUntergangLampenDelay;
|
|
20
|
+
private _sonnenAufgangRolloDelay: number = this.defaultSettings.sonnenAufgangRolloDelay;
|
|
21
|
+
private _sonnenAufgangRolloMinTime: iTimePair = this.defaultSettings.sonnenAufgangRolloMinTime;
|
|
22
|
+
private _sonnenAufgangLampenDelay: number = this.defaultSettings.sonnenAufgangLampenDelay;
|
|
23
|
+
private _lightIfNoWindows: boolean = this.defaultSettings.lightIfNoWindows;
|
|
24
|
+
public hmIpSettings?: HmIpRoomSettings;
|
|
25
|
+
public zigbeeSettings?: ZigbeeRoomSettings;
|
|
26
|
+
public radioUrl: string = 'https://hermes.bcs-systems.de/hitradio-rtl_top40_64k_aac'; // Radio RTL
|
|
27
|
+
public etage: number = -1;
|
|
28
|
+
public rolloOffset: SunTimeOffsets;
|
|
29
|
+
public lampOffset: SunTimeOffsets;
|
|
30
|
+
public room?: RoomBase;
|
|
31
|
+
public rolloHeatReduction: boolean = this.defaultSettings.rolloHeatReduction;
|
|
32
|
+
|
|
33
|
+
public constructor(public shortName: string) {
|
|
34
|
+
this.rolloOffset = new SunTimeOffsets(
|
|
35
|
+
this.sonnenAufgangRolloDelay,
|
|
36
|
+
this.sonnenUntergangRolloDelay,
|
|
37
|
+
this.sonnenAufgangRolloMinTime.hours,
|
|
38
|
+
this.sonnenAufgangRolloMinTime.minutes,
|
|
39
|
+
this.sonnenUntergangRolloMaxTime.hours,
|
|
40
|
+
this.sonnenUntergangRolloMaxTime.minutes,
|
|
41
|
+
);
|
|
42
|
+
this.lampOffset = new SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenUntergangLampenDelay);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private recalcRolloOffset(): void {
|
|
46
|
+
this.rolloOffset = new SunTimeOffsets(
|
|
47
|
+
this.sonnenAufgangRolloDelay,
|
|
48
|
+
this.sonnenUntergangRolloDelay,
|
|
49
|
+
this.sonnenAufgangRolloMinTime.hours,
|
|
50
|
+
this.sonnenAufgangRolloMinTime.minutes,
|
|
51
|
+
this.sonnenUntergangRolloMaxTime.hours,
|
|
52
|
+
this.sonnenUntergangRolloMaxTime.minutes,
|
|
53
|
+
);
|
|
54
|
+
if (this.room) {
|
|
55
|
+
this.room.recalcTimeCallbacks();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private recalcLampOffset(): void {
|
|
60
|
+
this.lampOffset = new SunTimeOffsets(this.sonnenAufgangLampenDelay, this.sonnenAufgangRolloDelay);
|
|
61
|
+
if (this.room) {
|
|
62
|
+
this.room.recalcTimeCallbacks();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get sonnenAufgangLampenDelay(): number {
|
|
67
|
+
return this._sonnenAufgangLampenDelay;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
set sonnenAufgangLampenDelay(value: number) {
|
|
71
|
+
this._sonnenAufgangLampenDelay = value;
|
|
72
|
+
this.recalcLampOffset();
|
|
73
|
+
}
|
|
74
|
+
get sonnenAufgangRolloDelay(): number {
|
|
75
|
+
return this._sonnenAufgangRolloDelay;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
set sonnenAufgangRolloDelay(value: number) {
|
|
79
|
+
this._sonnenAufgangRolloDelay = value;
|
|
80
|
+
this.recalcRolloOffset();
|
|
81
|
+
}
|
|
82
|
+
get sonnenUntergangLampenDelay(): number {
|
|
83
|
+
return this._sonnenUntergangLampenDelay;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
set sonnenUntergangLampenDelay(value: number) {
|
|
87
|
+
this._sonnenUntergangLampenDelay = value;
|
|
88
|
+
this.recalcLampOffset();
|
|
89
|
+
}
|
|
90
|
+
get sonnenUntergangRolloDelay(): number {
|
|
91
|
+
return this._sonnenUntergangRolloDelay;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
set sonnenUntergangRolloDelay(value: number) {
|
|
95
|
+
this._sonnenUntergangRolloDelay = value;
|
|
96
|
+
}
|
|
97
|
+
get movementResetTimer(): number {
|
|
98
|
+
return this._movementResetTimer;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
set movementResetTimer(value: number) {
|
|
102
|
+
this._movementResetTimer = value;
|
|
103
|
+
}
|
|
104
|
+
get lichtSonnenAufgangAus(): boolean {
|
|
105
|
+
return this._lichtSonnenAufgangAus;
|
|
106
|
+
}
|
|
107
|
+
get sonnenAufgangRollos(): boolean {
|
|
108
|
+
return this._sonnenAufgangRollos;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
set sonnenAufgangRollos(value: boolean) {
|
|
112
|
+
this._sonnenAufgangRollos = value;
|
|
113
|
+
this.recalcRolloOffset();
|
|
114
|
+
}
|
|
115
|
+
get sonnenUntergangRollos(): boolean {
|
|
116
|
+
return this._sonnenUntergangRollos;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
set sonnenUntergangRollos(value: boolean) {
|
|
120
|
+
this._sonnenUntergangRollos = value;
|
|
121
|
+
this.recalcRolloOffset();
|
|
122
|
+
}
|
|
123
|
+
set lichtSonnenAufgangAus(value: boolean) {
|
|
124
|
+
this._lichtSonnenAufgangAus = value;
|
|
125
|
+
}
|
|
126
|
+
get lampenBeiBewegung(): boolean {
|
|
127
|
+
return this._lampenBeiBewegung;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
set lampenBeiBewegung(value: boolean) {
|
|
131
|
+
this._lampenBeiBewegung = value;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
get sonnenUntergangRolloMaxTime(): iTimePair {
|
|
135
|
+
return this._sonnenUntergangRolloMaxTime;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
set sonnenUntergangRolloMaxTime(value: iTimePair) {
|
|
139
|
+
this._sonnenUntergangRolloMaxTime = value;
|
|
140
|
+
this.recalcRolloOffset();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
get sonnenAufgangRolloMinTime(): iTimePair {
|
|
144
|
+
return this._sonnenAufgangRolloMinTime;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
set sonnenAufgangRolloMinTime(value: iTimePair) {
|
|
148
|
+
this._sonnenAufgangRolloMinTime = value;
|
|
149
|
+
this.recalcRolloOffset();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
get lightIfNoWindows(): boolean {
|
|
153
|
+
return this._lightIfNoWindows;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
set lightIfNoWindows(value: boolean) {
|
|
157
|
+
this._lightIfNoWindows = value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { HmIpDeviceType } from '../../../server/devices/hmIPDevices/hmIpDeviceType';
|
|
2
|
-
import { ServerLogService } from '../../../server/services/log-service';
|
|
3
|
-
import { LogLevel } from '../../logLevel';
|
|
4
|
-
|
|
5
|
-
export class HmIpAddDeviceItem {
|
|
6
|
-
private _added: boolean = false;
|
|
7
|
-
|
|
8
|
-
public get added(): boolean {
|
|
9
|
-
return this._added;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public set added(value: boolean) {
|
|
13
|
-
if (this._added) {
|
|
14
|
-
ServerLogService.writeLog(LogLevel.Error, `${this.customName} Added twice`);
|
|
15
|
-
}
|
|
16
|
-
this._added = value;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
constructor(public setID: (value: string) => void, public index: number, public customName: string) {}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export class HmIpRoomSettings {
|
|
23
|
-
public devices: Array<Array<HmIpAddDeviceItem>> = [];
|
|
24
|
-
|
|
25
|
-
constructor(public RoomName: string) {}
|
|
26
|
-
|
|
27
|
-
public addDevice(
|
|
28
|
-
deviceType: HmIpDeviceType,
|
|
29
|
-
setID: (value: string) => void,
|
|
30
|
-
index: number,
|
|
31
|
-
customName: string | undefined = undefined,
|
|
32
|
-
): void {
|
|
33
|
-
if (this.devices[deviceType] === undefined) {
|
|
34
|
-
this.devices[deviceType] = [];
|
|
35
|
-
}
|
|
36
|
-
if (customName === undefined) {
|
|
37
|
-
customName = `${this.RoomName} ${HmIpDeviceType[deviceType]}`;
|
|
38
|
-
}
|
|
39
|
-
this.devices[deviceType][index] = new HmIpAddDeviceItem(setID, index, customName);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public checkMissing(): void {
|
|
43
|
-
for (const type in this.devices) {
|
|
44
|
-
const devs = this.devices[type];
|
|
45
|
-
for (const index in devs) {
|
|
46
|
-
const dev = devs[index];
|
|
47
|
-
if (!dev.added) {
|
|
48
|
-
ServerLogService.writeLog(LogLevel.Error, `${dev.customName} fehlt in der Device JSON`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
import { HmIpDeviceType } from '../../../server/devices/hmIPDevices/hmIpDeviceType';
|
|
2
|
+
import { ServerLogService } from '../../../server/services/log-service';
|
|
3
|
+
import { LogLevel } from '../../logLevel';
|
|
4
|
+
|
|
5
|
+
export class HmIpAddDeviceItem {
|
|
6
|
+
private _added: boolean = false;
|
|
7
|
+
|
|
8
|
+
public get added(): boolean {
|
|
9
|
+
return this._added;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public set added(value: boolean) {
|
|
13
|
+
if (this._added) {
|
|
14
|
+
ServerLogService.writeLog(LogLevel.Error, `${this.customName} Added twice`);
|
|
15
|
+
}
|
|
16
|
+
this._added = value;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
constructor(public setID: (value: string) => void, public index: number, public customName: string) {}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export class HmIpRoomSettings {
|
|
23
|
+
public devices: Array<Array<HmIpAddDeviceItem>> = [];
|
|
24
|
+
|
|
25
|
+
constructor(public RoomName: string) {}
|
|
26
|
+
|
|
27
|
+
public addDevice(
|
|
28
|
+
deviceType: HmIpDeviceType,
|
|
29
|
+
setID: (value: string) => void,
|
|
30
|
+
index: number,
|
|
31
|
+
customName: string | undefined = undefined,
|
|
32
|
+
): void {
|
|
33
|
+
if (this.devices[deviceType] === undefined) {
|
|
34
|
+
this.devices[deviceType] = [];
|
|
35
|
+
}
|
|
36
|
+
if (customName === undefined) {
|
|
37
|
+
customName = `${this.RoomName} ${HmIpDeviceType[deviceType]}`;
|
|
38
|
+
}
|
|
39
|
+
this.devices[deviceType][index] = new HmIpAddDeviceItem(setID, index, customName);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public checkMissing(): void {
|
|
43
|
+
for (const type in this.devices) {
|
|
44
|
+
const devs = this.devices[type];
|
|
45
|
+
for (const index in devs) {
|
|
46
|
+
const dev = devs[index];
|
|
47
|
+
if (!dev.added) {
|
|
48
|
+
ServerLogService.writeLog(LogLevel.Error, `${dev.customName} fehlt in der Device JSON`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { iTimePair } from '../../../server/config/iConfig';
|
|
2
|
-
|
|
3
|
-
export interface iRoomDefaultSettings {
|
|
4
|
-
rolloHeatReduction: boolean;
|
|
5
|
-
lampenBeiBewegung: boolean;
|
|
6
|
-
lichtSonnenAufgangAus: boolean;
|
|
7
|
-
sonnenUntergangRollos: boolean;
|
|
8
|
-
sonnenUntergangRolloDelay: number;
|
|
9
|
-
sonnenUntergangRolloMaxTime: iTimePair;
|
|
10
|
-
sonnenUntergangLampenDelay: number;
|
|
11
|
-
sonnenAufgangRollos: boolean;
|
|
12
|
-
sonnenAufgangRolloDelay: number;
|
|
13
|
-
sonnenAufgangRolloMinTime: iTimePair;
|
|
14
|
-
sonnenAufgangLampenDelay: number;
|
|
15
|
-
movementResetTimer: number;
|
|
16
|
-
lightIfNoWindows: boolean;
|
|
17
|
-
}
|
|
1
|
+
import { iTimePair } from '../../../server/config/iConfig';
|
|
2
|
+
|
|
3
|
+
export interface iRoomDefaultSettings {
|
|
4
|
+
rolloHeatReduction: boolean;
|
|
5
|
+
lampenBeiBewegung: boolean;
|
|
6
|
+
lichtSonnenAufgangAus: boolean;
|
|
7
|
+
sonnenUntergangRollos: boolean;
|
|
8
|
+
sonnenUntergangRolloDelay: number;
|
|
9
|
+
sonnenUntergangRolloMaxTime: iTimePair;
|
|
10
|
+
sonnenUntergangLampenDelay: number;
|
|
11
|
+
sonnenAufgangRollos: boolean;
|
|
12
|
+
sonnenAufgangRolloDelay: number;
|
|
13
|
+
sonnenAufgangRolloMinTime: iTimePair;
|
|
14
|
+
sonnenAufgangLampenDelay: number;
|
|
15
|
+
movementResetTimer: number;
|
|
16
|
+
lightIfNoWindows: boolean;
|
|
17
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
### Generate Setter for ID's ###
|
|
2
|
-
```
|
|
3
|
-
function fix(s) {
|
|
4
|
-
var t = [];
|
|
5
|
-
var e = s.split('\n');
|
|
6
|
-
for(var i=0;i<e.length;i++) {
|
|
7
|
-
var cI = e[i];
|
|
8
|
-
cI = cI.trim().trimStart();
|
|
9
|
-
cI = cI.replace("private static ", "");
|
|
10
|
-
cI = cI.replace(": string = '';", "");
|
|
11
|
-
cI = cI.replace(": string;", "");
|
|
12
|
-
var cL = `${cI.charAt(0).toUpperCase()}${cI.substr(1)}`;
|
|
13
|
-
t.push(`public static set${cL}(value: string): void {\n\tthis.${cI} = value;\n}`);
|
|
14
|
-
}
|
|
15
|
-
console.log(t.join("\n\n"));
|
|
16
|
-
}
|
|
17
|
-
fix(`YOUR_DECLARATIONS_COME_HERE`);
|
|
1
|
+
### Generate Setter for ID's ###
|
|
2
|
+
```
|
|
3
|
+
function fix(s) {
|
|
4
|
+
var t = [];
|
|
5
|
+
var e = s.split('\n');
|
|
6
|
+
for(var i=0;i<e.length;i++) {
|
|
7
|
+
var cI = e[i];
|
|
8
|
+
cI = cI.trim().trimStart();
|
|
9
|
+
cI = cI.replace("private static ", "");
|
|
10
|
+
cI = cI.replace(": string = '';", "");
|
|
11
|
+
cI = cI.replace(": string;", "");
|
|
12
|
+
var cL = `${cI.charAt(0).toUpperCase()}${cI.substr(1)}`;
|
|
13
|
+
t.push(`public static set${cL}(value: string): void {\n\tthis.${cI} = value;\n}`);
|
|
14
|
+
}
|
|
15
|
+
console.log(t.join("\n\n"));
|
|
16
|
+
}
|
|
17
|
+
fix(`YOUR_DECLARATIONS_COME_HERE`);
|
|
18
18
|
```
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { ZigbeeDeviceType } from '../../../server/devices/zigbee/zigbeeDeviceType';
|
|
2
|
-
import { ServerLogService } from '../../../server/services/log-service';
|
|
3
|
-
import { LogLevel } from '../../logLevel';
|
|
4
|
-
|
|
5
|
-
export class ZigbeeAddDeviceItem {
|
|
6
|
-
private _added: boolean = false;
|
|
7
|
-
|
|
8
|
-
public get added(): boolean {
|
|
9
|
-
return this._added;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public set added(value: boolean) {
|
|
13
|
-
if (this._added) {
|
|
14
|
-
ServerLogService.writeLog(LogLevel.Error, `${this.customName} Added twice`);
|
|
15
|
-
}
|
|
16
|
-
this._added = value;
|
|
17
|
-
}
|
|
18
|
-
constructor(public setID: (value: string) => void, public index: number, public customName: string) {}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export class ZigbeeRoomSettings {
|
|
22
|
-
public devices: Array<Array<ZigbeeAddDeviceItem>> = [];
|
|
23
|
-
constructor(public RoomName: string) {}
|
|
24
|
-
|
|
25
|
-
public addDevice(
|
|
26
|
-
deviceType: ZigbeeDeviceType,
|
|
27
|
-
setID: (value: string) => void,
|
|
28
|
-
index: number,
|
|
29
|
-
customName: string | undefined = undefined,
|
|
30
|
-
): void {
|
|
31
|
-
if (this.devices[deviceType] === undefined) {
|
|
32
|
-
this.devices[deviceType] = [];
|
|
33
|
-
}
|
|
34
|
-
if (customName === undefined) {
|
|
35
|
-
customName = `${this.RoomName} ${ZigbeeDeviceType[deviceType]}`;
|
|
36
|
-
}
|
|
37
|
-
this.devices[deviceType][index] = new ZigbeeAddDeviceItem(setID, index, customName);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public checkMissing(): void {
|
|
41
|
-
for (const type in this.devices) {
|
|
42
|
-
const devs = this.devices[type];
|
|
43
|
-
for (const index in devs) {
|
|
44
|
-
const dev = devs[index];
|
|
45
|
-
if (!dev.added) {
|
|
46
|
-
ServerLogService.writeLog(LogLevel.Error, `${dev.customName} fehlt in der Device JSON`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
1
|
+
import { ZigbeeDeviceType } from '../../../server/devices/zigbee/zigbeeDeviceType';
|
|
2
|
+
import { ServerLogService } from '../../../server/services/log-service';
|
|
3
|
+
import { LogLevel } from '../../logLevel';
|
|
4
|
+
|
|
5
|
+
export class ZigbeeAddDeviceItem {
|
|
6
|
+
private _added: boolean = false;
|
|
7
|
+
|
|
8
|
+
public get added(): boolean {
|
|
9
|
+
return this._added;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public set added(value: boolean) {
|
|
13
|
+
if (this._added) {
|
|
14
|
+
ServerLogService.writeLog(LogLevel.Error, `${this.customName} Added twice`);
|
|
15
|
+
}
|
|
16
|
+
this._added = value;
|
|
17
|
+
}
|
|
18
|
+
constructor(public setID: (value: string) => void, public index: number, public customName: string) {}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class ZigbeeRoomSettings {
|
|
22
|
+
public devices: Array<Array<ZigbeeAddDeviceItem>> = [];
|
|
23
|
+
constructor(public RoomName: string) {}
|
|
24
|
+
|
|
25
|
+
public addDevice(
|
|
26
|
+
deviceType: ZigbeeDeviceType,
|
|
27
|
+
setID: (value: string) => void,
|
|
28
|
+
index: number,
|
|
29
|
+
customName: string | undefined = undefined,
|
|
30
|
+
): void {
|
|
31
|
+
if (this.devices[deviceType] === undefined) {
|
|
32
|
+
this.devices[deviceType] = [];
|
|
33
|
+
}
|
|
34
|
+
if (customName === undefined) {
|
|
35
|
+
customName = `${this.RoomName} ${ZigbeeDeviceType[deviceType]}`;
|
|
36
|
+
}
|
|
37
|
+
this.devices[deviceType][index] = new ZigbeeAddDeviceItem(setID, index, customName);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public checkMissing(): void {
|
|
41
|
+
for (const type in this.devices) {
|
|
42
|
+
const devs = this.devices[type];
|
|
43
|
+
for (const index in devs) {
|
|
44
|
+
const dev = devs[index];
|
|
45
|
+
if (!dev.added) {
|
|
46
|
+
ServerLogService.writeLog(LogLevel.Error, `${dev.customName} fehlt in der Device JSON`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export interface iRoomImportEnforcer {
|
|
2
|
-
addRoomConstructor(): void;
|
|
3
|
-
}
|
|
1
|
+
export interface iRoomImportEnforcer {
|
|
2
|
+
addRoomConstructor(): void;
|
|
3
|
+
}
|
package/models/rooms/readme.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
### Create Rooms
|
|
2
|
-
Hoffmation is centered about rooms.
|
|
3
|
-
Many follow certain default behaviour while others have very specific rules.
|
|
4
|
-
To be modular Rooms within HoffMation should be generated automatically.
|
|
5
|
-
|
|
6
|
-
To do so use the Excel Document `Raumdefinition.xlsm`
|
|
7
|
-
Within that document you have to create all your rooms and the devices.
|
|
8
|
-
|
|
9
|
-
Afterwards you can create the resulting config code and paste that into
|
|
10
|
-
`server/config/roomConfig.txt`
|
|
11
|
-
|
|
1
|
+
### Create Rooms
|
|
2
|
+
Hoffmation is centered about rooms.
|
|
3
|
+
Many follow certain default behaviour while others have very specific rules.
|
|
4
|
+
To be modular Rooms within HoffMation should be generated automatically.
|
|
5
|
+
|
|
6
|
+
To do so use the Excel Document `Raumdefinition.xlsm`
|
|
7
|
+
Within that document you have to create all your rooms and the devices.
|
|
8
|
+
|
|
9
|
+
Afterwards you can create the resulting config code and paste that into
|
|
10
|
+
`server/config/roomConfig.txt`
|
|
11
|
+
|