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.
Files changed (113) hide show
  1. package/.eslintrc.js +27 -27
  2. package/.github/workflows/npm-publish.yml +50 -0
  3. package/.prettierrc.js +9 -9
  4. package/LICENSE +21 -21
  5. package/index.js +1 -1
  6. package/models/connectionCallbacks.ts +13 -13
  7. package/models/daytime.ts +3 -3
  8. package/models/deviceConfig.ts +8 -8
  9. package/models/dimmerSettings.ts +5 -5
  10. package/models/iTemperaturDataPoint.ts +9 -9
  11. package/models/lampSettings.ts +5 -5
  12. package/models/ledSettings.ts +19 -19
  13. package/models/logLevel.ts +9 -9
  14. package/models/persistence/BasicRoomInfo.ts +3 -3
  15. package/models/persistence/DailyMovementCount.ts +3 -3
  16. package/models/persistence/RoomDetailInfo.ts +4 -4
  17. package/models/persistence/temperaturDataPoint.ts +12 -12
  18. package/models/persistence/todaysCount.ts +3 -3
  19. package/models/rooms/RoomBase.ts +357 -357
  20. package/models/rooms/RoomSettings/RoomSettings.ts +159 -159
  21. package/models/rooms/RoomSettings/hmIPRoomSettings.ts +53 -53
  22. package/models/rooms/RoomSettings/iRoomDefaultSettings.ts +17 -17
  23. package/models/rooms/RoomSettings/readme.md +17 -17
  24. package/models/rooms/RoomSettings/zigbeeRoomSettings.ts +51 -51
  25. package/models/rooms/iRoomImportEnforcer.ts +3 -3
  26. package/models/rooms/readme.md +11 -11
  27. package/models/temperaturSettings.ts +22 -22
  28. package/models/timeCallback.ts +90 -90
  29. package/package.json +1 -1
  30. package/server/config/config-readme.md +19 -19
  31. package/server/config/iConfig.ts +53 -53
  32. package/server/config/private/mainConfig.json +64 -64
  33. package/server/devices/DeviceInfo.ts +66 -66
  34. package/server/devices/Griffe.ts +31 -31
  35. package/server/devices/Heizgruppen.ts +91 -91
  36. package/server/devices/Rollos.ts +48 -48
  37. package/server/devices/deviceUpdater.ts +72 -72
  38. package/server/devices/devices.ts +189 -189
  39. package/server/devices/groups/fensterGroup.ts +175 -175
  40. package/server/devices/groups/heatGroup.ts +32 -32
  41. package/server/devices/groups/lampenGroup.ts +88 -88
  42. package/server/devices/groups/praesenzGroup.ts +182 -182
  43. package/server/devices/groups/smokeGroup.ts +16 -16
  44. package/server/devices/groups/sonosGroup.ts +33 -33
  45. package/server/devices/groups/tasterGroup.ts +48 -48
  46. package/server/devices/groups/waterGroup.ts +16 -16
  47. package/server/devices/hmIPDevices/Fenster.ts +114 -114
  48. package/server/devices/hmIPDevices/FensterPosition.ts +5 -5
  49. package/server/devices/hmIPDevices/TuerPosition.ts +4 -4
  50. package/server/devices/hmIPDevices/hmIpBewegung.ts +126 -126
  51. package/server/devices/hmIPDevices/hmIpDevice.ts +90 -90
  52. package/server/devices/hmIPDevices/hmIpDeviceType.ts +14 -14
  53. package/server/devices/hmIPDevices/hmIpGriff.ts +143 -143
  54. package/server/devices/hmIPDevices/hmIpHeizgruppe.ts +172 -172
  55. package/server/devices/hmIPDevices/hmIpHeizung.ts +69 -69
  56. package/server/devices/hmIPDevices/hmIpLampe.ts +119 -119
  57. package/server/devices/hmIPDevices/hmIpPraezenz.ts +99 -99
  58. package/server/devices/hmIPDevices/hmIpRoll.ts +133 -133
  59. package/server/devices/hmIPDevices/hmIpTaster.ts +82 -73
  60. package/server/devices/hmIPDevices/hmIpTherm.ts +19 -19
  61. package/server/devices/hmIPDevices/hmIpTuer.ts +115 -115
  62. package/server/devices/hmIPDevices/hmIpWippe.ts +55 -55
  63. package/server/devices/iDeviceUpdater.ts +4 -4
  64. package/server/devices/iIoBrokerDevice.ts +44 -44
  65. package/server/devices/iTaster.ts +6 -0
  66. package/server/devices/{hmIPDevices/hmIpTaste.ts → taste.ts} +84 -72
  67. package/server/devices/wledDevice.ts +124 -124
  68. package/server/devices/zigbee/ZigbeeActuator.ts +113 -113
  69. package/server/devices/zigbee/zigbeeAquaraVibra.ts +171 -171
  70. package/server/devices/zigbee/zigbeeAquaraWater.ts +94 -94
  71. package/server/devices/zigbee/zigbeeBlitzShp.ts +77 -77
  72. package/server/devices/zigbee/zigbeeDevice.ts +115 -115
  73. package/server/devices/zigbee/zigbeeDeviceType.ts +13 -13
  74. package/server/devices/zigbee/zigbeeHeimanSmoke.ts +99 -99
  75. package/server/devices/zigbee/zigbeeIkeaSteckdose.ts +31 -31
  76. package/server/devices/zigbee/zigbeeIlluActuator.ts +37 -37
  77. package/server/devices/zigbee/zigbeeIlluDimmer.ts +165 -165
  78. package/server/devices/zigbee/zigbeeIlluLampe.ts +33 -33
  79. package/server/devices/zigbee/zigbeeIlluLedRGBCCT.ts +137 -137
  80. package/server/ioBroker/connection.ts +1655 -1655
  81. package/server/ioBroker/ioBroker.main.ts +99 -99
  82. package/server/ioBroker/socketIOAuthInfo.ts +5 -5
  83. package/server/ioBroker/socketIOConnectOptions.ts +6 -6
  84. package/server/ioBroker/socketIOLogging.ts +29 -29
  85. package/server/ioBroker/socketIOVisCommand.ts +11 -11
  86. package/server/services/HTTPSOptions.ts +14 -14
  87. package/server/services/Sonos/OwnSonosDevices.ts +9 -0
  88. package/server/services/Sonos/mp3-server.ts +75 -75
  89. package/server/services/Sonos/polly-service.ts +100 -100
  90. package/server/services/Sonos/sonos-service.ts +194 -199
  91. package/server/services/Telegram/telegram-Commands.ts +237 -215
  92. package/server/services/Telegram/telegram-service.ts +171 -171
  93. package/server/services/Telegram/telegramMessageCalback.ts +11 -11
  94. package/server/services/calendar/muell-tonne.ts +82 -83
  95. package/server/services/calendar/m/303/274ll-service.ts +147 -146
  96. package/server/services/dbo/persist.ts +125 -125
  97. package/server/services/https-service.ts +71 -71
  98. package/server/services/log-service.ts +69 -69
  99. package/server/services/news-service.ts +81 -81
  100. package/server/services/settings-service.ts +15 -15
  101. package/server/services/time-callback-service.ts +223 -223
  102. package/server/services/utils/ringstorage.ts +24 -24
  103. package/server/services/utils/utils.ts +52 -52
  104. package/server/services/weather/weather-alert.ts +7 -7
  105. package/server/services/weather/weather-current.ts +26 -26
  106. package/server/services/weather/weather-daily.ts +22 -22
  107. package/server/services/weather/weather-feelsLike.ts +6 -6
  108. package/server/services/weather/weather-hourly.ts +17 -17
  109. package/server/services/weather/weather-item.ts +6 -6
  110. package/server/services/weather/weather-minutes.ts +4 -4
  111. package/server/services/weather/weather-service.ts +277 -277
  112. package/server/services/weather/weather-temp.ts +8 -8
  113. package/tsconfig.json +58 -58
@@ -1,172 +1,172 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { HmIPDevice } from './hmIpDevice';
3
- import { HmIpDeviceType } from './hmIpDeviceType';
4
- import { DeviceInfo } from '../DeviceInfo';
5
- import { ServerLogService } from '../../services/log-service';
6
- import { TemperaturSettings } from '../../../models/temperaturSettings';
7
- import { Persist } from '../../services/dbo/persist';
8
- import { HmIpHeizung } from './hmIpHeizung';
9
- import { Devices } from '../devices';
10
- import { Utils } from '../../services/utils/utils';
11
-
12
- export class HmIpHeizgruppe extends HmIPDevice {
13
- private _automaticMode: boolean = true;
14
- private _iAutomaticInterval: NodeJS.Timeout;
15
- private _level: number = 0;
16
- private _temperatur: number = 0;
17
- private _humidity: number = 0;
18
- private _desiredTemperatur: number = 0;
19
- private _setPointTemperaturID: string = '';
20
- private _automaticFallBackTemperatur: number = 20;
21
- private _automaticPoints: { [name: string]: TemperaturSettings } = {};
22
- private _humidityCallbacks: Array<(pValue: number) => void> = [];
23
-
24
- public constructor(pInfo: DeviceInfo) {
25
- super(pInfo, HmIpDeviceType.HmIpHeizgruppe);
26
- this._setPointTemperaturID = `${this.info.fullID}.1.SET_POINT_TEMPERATURE`;
27
- this._iAutomaticInterval = Utils.guardedInterval(this.checkAutomaticChange, 300000, this); // Alle 5 Minuten prüfen
28
- }
29
-
30
- public get sLevel(): string {
31
- return `${this._level * 100}%`;
32
- }
33
-
34
- public get iLevel(): number {
35
- return this._level;
36
- }
37
-
38
- public get sTemperatur(): string {
39
- return `${this._temperatur}°C`;
40
- }
41
-
42
- public get iTemperatur(): number {
43
- return this._temperatur;
44
- }
45
-
46
- public get desiredTemperatur(): number {
47
- return this._desiredTemperatur;
48
- }
49
-
50
- public get humidity(): number {
51
- return this._humidity;
52
- }
53
-
54
- private set humidity(val: number) {
55
- this._humidity = val;
56
- for (const cb of this._humidityCallbacks) {
57
- cb(val);
58
- }
59
- }
60
-
61
- public set desiredTemperatur(val: number) {
62
- if (!this.ioConn) {
63
- ServerLogService.writeLog(LogLevel.Error, `Keine Connection für "${this.info.customName}" bekannt.`);
64
- return;
65
- }
66
-
67
- ServerLogService.writeLog(LogLevel.Info, `Neue Temperatur (${val}) für "${this.info.customName}".`);
68
- this.ioConn.setState(this._setPointTemperaturID, val, (err) => {
69
- if (err) {
70
- ServerLogService.writeLog(
71
- LogLevel.Error,
72
- `Temperaturänderung für "${this.info.customName}" ergab Fehler ${err}.`,
73
- );
74
- } else {
75
- ServerLogService.writeLog(
76
- LogLevel.Debug,
77
- `Temperaturänderung für "${this.info.customName}" auf ${val} erfolgreich`,
78
- );
79
- }
80
- });
81
- }
82
-
83
- public addHumidityCallback(pCallback: (pValue: number) => void): void {
84
- this._humidityCallbacks.push(pCallback);
85
- if (this._humidity > 0) {
86
- pCallback(this._humidity);
87
- }
88
- }
89
-
90
- public deleteAutomaticPoint(name: string): void {
91
- if (this._automaticPoints[name] !== undefined) delete this._automaticPoints[name];
92
- }
93
-
94
- public getBelongingHeizungen(): HmIpHeizung[] {
95
- const result: HmIpHeizung[] = [];
96
- for (const dID in Devices.hmIP) {
97
- const d = Devices.hmIP[dID];
98
- if (d.deviceType === HmIpDeviceType.HmIpHeizung && d.info.room === this.info.room) {
99
- result.push(d as HmIpHeizung);
100
- }
101
- }
102
- return result;
103
- }
104
-
105
- public setAutomaticPoint(name: string, setting: TemperaturSettings): void {
106
- this._automaticPoints[name] = setting;
107
- }
108
-
109
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
110
- ServerLogService.writeLog(
111
- LogLevel.Trace,
112
- `Heizgruppe "${this.info.customName}" Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
113
- );
114
- super.update(idSplit, state, initial, true);
115
-
116
- switch (idSplit[3]) {
117
- case '1':
118
- this.updateBaseInformation(idSplit[4], state, initial);
119
- break;
120
- }
121
- }
122
-
123
- private updateBaseInformation(name: string, state: ioBroker.State, initial: boolean) {
124
- switch (name) {
125
- case 'ACTUAL_TEMPERATURE':
126
- this._temperatur = state.val as number;
127
- break;
128
- case 'LEVEL':
129
- this._level = state.val as number;
130
- break;
131
- case 'HUMIDITY':
132
- this.humidity = state.val as number;
133
- break;
134
- case 'SET_POINT_TEMPERATURE':
135
- ServerLogService.writeLog(
136
- LogLevel.Trace,
137
- `Heizgruppe "${this.info.customName}" Update Soll-Temperatur JSON: ${JSON.stringify(state)}`,
138
- );
139
- this._desiredTemperatur = state.val as number;
140
- break;
141
- }
142
- }
143
-
144
- private checkAutomaticChange(): void {
145
- if (!this._automaticMode) {
146
- Persist.addTemperaturDataPoint(this);
147
- return;
148
- }
149
-
150
- for (const name in this._automaticPoints) {
151
- if (this._automaticPoints[name] === undefined) {
152
- continue;
153
- }
154
-
155
- const settings: TemperaturSettings = this._automaticPoints[name];
156
- if (!settings.isNowInRange()) {
157
- continue;
158
- }
159
-
160
- if (this._desiredTemperatur !== settings.temperatur) {
161
- ServerLogService.writeLog(
162
- LogLevel.Debug,
163
- `Automatische Temperaturanpassung für ${this.info.customName} auf ${settings.temperatur}°C`,
164
- );
165
- this.desiredTemperatur = settings.temperatur;
166
- }
167
- break;
168
- }
169
-
170
- Persist.addTemperaturDataPoint(this);
171
- }
172
- }
1
+ import { LogLevel } from '../../../models/logLevel';
2
+ import { HmIPDevice } from './hmIpDevice';
3
+ import { HmIpDeviceType } from './hmIpDeviceType';
4
+ import { DeviceInfo } from '../DeviceInfo';
5
+ import { ServerLogService } from '../../services/log-service';
6
+ import { TemperaturSettings } from '../../../models/temperaturSettings';
7
+ import { Persist } from '../../services/dbo/persist';
8
+ import { HmIpHeizung } from './hmIpHeizung';
9
+ import { Devices } from '../devices';
10
+ import { Utils } from '../../services/utils/utils';
11
+
12
+ export class HmIpHeizgruppe extends HmIPDevice {
13
+ private _automaticMode: boolean = true;
14
+ private _iAutomaticInterval: NodeJS.Timeout;
15
+ private _level: number = 0;
16
+ private _temperatur: number = 0;
17
+ private _humidity: number = 0;
18
+ private _desiredTemperatur: number = 0;
19
+ private _setPointTemperaturID: string = '';
20
+ private _automaticFallBackTemperatur: number = 20;
21
+ private _automaticPoints: { [name: string]: TemperaturSettings } = {};
22
+ private _humidityCallbacks: Array<(pValue: number) => void> = [];
23
+
24
+ public constructor(pInfo: DeviceInfo) {
25
+ super(pInfo, HmIpDeviceType.HmIpHeizgruppe);
26
+ this._setPointTemperaturID = `${this.info.fullID}.1.SET_POINT_TEMPERATURE`;
27
+ this._iAutomaticInterval = Utils.guardedInterval(this.checkAutomaticChange, 300000, this); // Alle 5 Minuten prüfen
28
+ }
29
+
30
+ public get sLevel(): string {
31
+ return `${this._level * 100}%`;
32
+ }
33
+
34
+ public get iLevel(): number {
35
+ return this._level;
36
+ }
37
+
38
+ public get sTemperatur(): string {
39
+ return `${this._temperatur}°C`;
40
+ }
41
+
42
+ public get iTemperatur(): number {
43
+ return this._temperatur;
44
+ }
45
+
46
+ public get desiredTemperatur(): number {
47
+ return this._desiredTemperatur;
48
+ }
49
+
50
+ public get humidity(): number {
51
+ return this._humidity;
52
+ }
53
+
54
+ private set humidity(val: number) {
55
+ this._humidity = val;
56
+ for (const cb of this._humidityCallbacks) {
57
+ cb(val);
58
+ }
59
+ }
60
+
61
+ public set desiredTemperatur(val: number) {
62
+ if (!this.ioConn) {
63
+ ServerLogService.writeLog(LogLevel.Error, `Keine Connection für "${this.info.customName}" bekannt.`);
64
+ return;
65
+ }
66
+
67
+ ServerLogService.writeLog(LogLevel.Info, `Neue Temperatur (${val}) für "${this.info.customName}".`);
68
+ this.ioConn.setState(this._setPointTemperaturID, val, (err) => {
69
+ if (err) {
70
+ ServerLogService.writeLog(
71
+ LogLevel.Error,
72
+ `Temperaturänderung für "${this.info.customName}" ergab Fehler ${err}.`,
73
+ );
74
+ } else {
75
+ ServerLogService.writeLog(
76
+ LogLevel.Debug,
77
+ `Temperaturänderung für "${this.info.customName}" auf ${val} erfolgreich`,
78
+ );
79
+ }
80
+ });
81
+ }
82
+
83
+ public addHumidityCallback(pCallback: (pValue: number) => void): void {
84
+ this._humidityCallbacks.push(pCallback);
85
+ if (this._humidity > 0) {
86
+ pCallback(this._humidity);
87
+ }
88
+ }
89
+
90
+ public deleteAutomaticPoint(name: string): void {
91
+ if (this._automaticPoints[name] !== undefined) delete this._automaticPoints[name];
92
+ }
93
+
94
+ public getBelongingHeizungen(): HmIpHeizung[] {
95
+ const result: HmIpHeizung[] = [];
96
+ for (const dID in Devices.hmIP) {
97
+ const d = Devices.hmIP[dID];
98
+ if (d.deviceType === HmIpDeviceType.HmIpHeizung && d.info.room === this.info.room) {
99
+ result.push(d as HmIpHeizung);
100
+ }
101
+ }
102
+ return result;
103
+ }
104
+
105
+ public setAutomaticPoint(name: string, setting: TemperaturSettings): void {
106
+ this._automaticPoints[name] = setting;
107
+ }
108
+
109
+ public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
110
+ ServerLogService.writeLog(
111
+ LogLevel.Trace,
112
+ `Heizgruppe "${this.info.customName}" Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
113
+ );
114
+ super.update(idSplit, state, initial, true);
115
+
116
+ switch (idSplit[3]) {
117
+ case '1':
118
+ this.updateBaseInformation(idSplit[4], state, initial);
119
+ break;
120
+ }
121
+ }
122
+
123
+ private updateBaseInformation(name: string, state: ioBroker.State, initial: boolean) {
124
+ switch (name) {
125
+ case 'ACTUAL_TEMPERATURE':
126
+ this._temperatur = state.val as number;
127
+ break;
128
+ case 'LEVEL':
129
+ this._level = state.val as number;
130
+ break;
131
+ case 'HUMIDITY':
132
+ this.humidity = state.val as number;
133
+ break;
134
+ case 'SET_POINT_TEMPERATURE':
135
+ ServerLogService.writeLog(
136
+ LogLevel.Trace,
137
+ `Heizgruppe "${this.info.customName}" Update Soll-Temperatur JSON: ${JSON.stringify(state)}`,
138
+ );
139
+ this._desiredTemperatur = state.val as number;
140
+ break;
141
+ }
142
+ }
143
+
144
+ private checkAutomaticChange(): void {
145
+ if (!this._automaticMode) {
146
+ Persist.addTemperaturDataPoint(this);
147
+ return;
148
+ }
149
+
150
+ for (const name in this._automaticPoints) {
151
+ if (this._automaticPoints[name] === undefined) {
152
+ continue;
153
+ }
154
+
155
+ const settings: TemperaturSettings = this._automaticPoints[name];
156
+ if (!settings.isNowInRange()) {
157
+ continue;
158
+ }
159
+
160
+ if (this._desiredTemperatur !== settings.temperatur) {
161
+ ServerLogService.writeLog(
162
+ LogLevel.Debug,
163
+ `Automatische Temperaturanpassung für ${this.info.customName} auf ${settings.temperatur}°C`,
164
+ );
165
+ this.desiredTemperatur = settings.temperatur;
166
+ }
167
+ break;
168
+ }
169
+
170
+ Persist.addTemperaturDataPoint(this);
171
+ }
172
+ }
@@ -1,69 +1,69 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { ServerLogService } from '../../services/log-service';
3
- import { HmIPDevice } from './hmIpDevice';
4
- import { HmIpDeviceType } from './hmIpDeviceType';
5
- import { DeviceInfo } from '../DeviceInfo';
6
-
7
- export class HmIpHeizung extends HmIPDevice {
8
- private _temperatur: number = 0;
9
- private _level: number = 0;
10
- private _adaptionState: number | undefined;
11
- private _desiredTemperatur: number = 0;
12
-
13
- public get desiredTemperatur(): number {
14
- return this._desiredTemperatur;
15
- }
16
-
17
- public get iLevel(): number {
18
- return this._level;
19
- }
20
-
21
- public get iTemperatur(): number {
22
- return this._temperatur;
23
- }
24
-
25
- public constructor(pInfo: DeviceInfo) {
26
- super(pInfo, HmIpDeviceType.HmIpHeizung);
27
- }
28
-
29
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
30
- ServerLogService.writeLog(
31
- LogLevel.Trace,
32
- `Heizung "${this.info.customName}" Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
33
- );
34
- super.update(idSplit, state, initial, true);
35
-
36
- switch (idSplit[3]) {
37
- case '1':
38
- this.updateBaseInformation(idSplit[4], state, initial);
39
- break;
40
- }
41
- }
42
-
43
- private updateBaseInformation(name: string, state: ioBroker.State, initial: boolean) {
44
- switch (name) {
45
- case 'ACTUAL_TEMPERATURE':
46
- this._temperatur = state.val as number;
47
- break;
48
- case 'LEVEL':
49
- this._level = state.val as number;
50
- break;
51
- case 'VALVE_STATE':
52
- this._adaptionState = state.val as number;
53
- if (this._adaptionState !== 4) {
54
- ServerLogService.writeLog(
55
- LogLevel.Alert,
56
- `Adaption State für Heizung "${this.info.customName}" ungewöhnlich: ${this._adaptionState}`,
57
- );
58
- }
59
- break;
60
- case 'SET_POINT_TEMPERATURE':
61
- ServerLogService.writeLog(
62
- LogLevel.Trace,
63
- `Heizung "${this.info.customName}" Update Soll-Temperatur JSON: ${JSON.stringify(state)}`,
64
- );
65
- this._desiredTemperatur = state.val as number;
66
- break;
67
- }
68
- }
69
- }
1
+ import { LogLevel } from '../../../models/logLevel';
2
+ import { ServerLogService } from '../../services/log-service';
3
+ import { HmIPDevice } from './hmIpDevice';
4
+ import { HmIpDeviceType } from './hmIpDeviceType';
5
+ import { DeviceInfo } from '../DeviceInfo';
6
+
7
+ export class HmIpHeizung extends HmIPDevice {
8
+ private _temperatur: number = 0;
9
+ private _level: number = 0;
10
+ private _adaptionState: number | undefined;
11
+ private _desiredTemperatur: number = 0;
12
+
13
+ public get desiredTemperatur(): number {
14
+ return this._desiredTemperatur;
15
+ }
16
+
17
+ public get iLevel(): number {
18
+ return this._level;
19
+ }
20
+
21
+ public get iTemperatur(): number {
22
+ return this._temperatur;
23
+ }
24
+
25
+ public constructor(pInfo: DeviceInfo) {
26
+ super(pInfo, HmIpDeviceType.HmIpHeizung);
27
+ }
28
+
29
+ public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
30
+ ServerLogService.writeLog(
31
+ LogLevel.Trace,
32
+ `Heizung "${this.info.customName}" Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
33
+ );
34
+ super.update(idSplit, state, initial, true);
35
+
36
+ switch (idSplit[3]) {
37
+ case '1':
38
+ this.updateBaseInformation(idSplit[4], state, initial);
39
+ break;
40
+ }
41
+ }
42
+
43
+ private updateBaseInformation(name: string, state: ioBroker.State, initial: boolean) {
44
+ switch (name) {
45
+ case 'ACTUAL_TEMPERATURE':
46
+ this._temperatur = state.val as number;
47
+ break;
48
+ case 'LEVEL':
49
+ this._level = state.val as number;
50
+ break;
51
+ case 'VALVE_STATE':
52
+ this._adaptionState = state.val as number;
53
+ if (this._adaptionState !== 4) {
54
+ ServerLogService.writeLog(
55
+ LogLevel.Alert,
56
+ `Adaption State für Heizung "${this.info.customName}" ungewöhnlich: ${this._adaptionState}`,
57
+ );
58
+ }
59
+ break;
60
+ case 'SET_POINT_TEMPERATURE':
61
+ ServerLogService.writeLog(
62
+ LogLevel.Trace,
63
+ `Heizung "${this.info.customName}" Update Soll-Temperatur JSON: ${JSON.stringify(state)}`,
64
+ );
65
+ this._desiredTemperatur = state.val as number;
66
+ break;
67
+ }
68
+ }
69
+ }