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,133 +1,133 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { Fenster } from './Fenster';
3
- import { FensterPosition } from './FensterPosition';
4
- import { HmIPDevice } from './hmIpDevice';
5
- import { HmIpDeviceType } from './hmIpDeviceType';
6
- import { DeviceInfo } from '../DeviceInfo';
7
- import { ServerLogService } from '../../services/log-service';
8
- import { Utils } from '../../services/utils/utils';
9
-
10
- export class HmIpRoll extends HmIPDevice {
11
- public get currentLevel(): number {
12
- if (this._setLevel !== -1 && this._currentLevel !== this._setLevel) {
13
- return this._setLevel;
14
- }
15
- return this._currentLevel;
16
- }
17
-
18
- public set currentLevel(value: number) {
19
- if (value !== this._setLevel && Utils.nowMS() - this._setLevelTime < 60 * 10000) {
20
- value = this._setLevel;
21
- }
22
- if (value !== this._currentLevel && this._fenster) {
23
- Utils.guardedNewThread(() => {
24
- this._fenster?.rolloPositionChange(value);
25
- }, this);
26
- }
27
- this._currentLevel = value;
28
- }
29
-
30
- public get desiredFensterLevel(): number {
31
- if (this._fenster === undefined) {
32
- return -1;
33
- }
34
- return this._fenster.desiredPosition;
35
- }
36
-
37
- private _currentLevel: number = -1;
38
- private _setLevelSwitchID: string;
39
- private _fenster?: Fenster;
40
- private _firstCommandRecieved: boolean = false;
41
- private _setLevel: number = -1;
42
- private _setLevelTime: number = -1;
43
-
44
- public set Fenster(value: Fenster) {
45
- this._fenster = value;
46
- }
47
-
48
- public constructor(pInfo: DeviceInfo) {
49
- super(pInfo, HmIpDeviceType.HmIpRoll);
50
- this._setLevelSwitchID = `${this.info.fullID}.4.LEVEL`;
51
- }
52
-
53
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
54
- ServerLogService.writeLog(
55
- LogLevel.DeepTrace,
56
- `Rollo Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
57
- );
58
- super.update(idSplit, state, initial, true);
59
- switch (idSplit[3]) {
60
- case '3':
61
- if (idSplit[4] === 'LEVEL') {
62
- this.currentLevel = state.val as number;
63
- }
64
- break;
65
- }
66
- }
67
-
68
- public setLevel(pPosition: number, initial: boolean = false, skipOpenWarning: boolean = false): void {
69
- if (!this._firstCommandRecieved && !initial) {
70
- this._firstCommandRecieved = true;
71
- }
72
- if (this._firstCommandRecieved && initial) {
73
- ServerLogService.writeLog(
74
- LogLevel.Debug,
75
- `Skipped initial Rollo "${this.info.customName}" to ${pPosition} as we recieved a command already`,
76
- );
77
- return;
78
- }
79
- if (this.currentLevel === pPosition) {
80
- ServerLogService.writeLog(
81
- LogLevel.Debug,
82
- `Skip Rollo command for "${this.info.customName}" to Position ${pPosition} as this is the current one`,
83
- );
84
- return;
85
- }
86
- if (this._setLevelSwitchID === '') {
87
- console.error(`Keine Switch ID für "${this.info.customName}" bekannt.`);
88
- return;
89
- }
90
-
91
- if (!this.ioConn) {
92
- console.error(`Keine Connection für "${this.info.customName}" bekannt.`);
93
- return;
94
- }
95
-
96
- if (this._fenster !== undefined) {
97
- if (this._fenster.griffeInPosition(FensterPosition.offen) > 0 && pPosition < 100) {
98
- if (!skipOpenWarning) {
99
- ServerLogService.writeLog(
100
- LogLevel.Alert,
101
- `Fahre Rollo "${this.info.customName}" nicht runter, weil das Fenster offen ist!`,
102
- );
103
- }
104
- return;
105
- }
106
- if (this._fenster.griffeInPosition(FensterPosition.kipp) > 0 && pPosition < 50) {
107
- pPosition = 50;
108
- if (!skipOpenWarning) {
109
- ServerLogService.writeLog(
110
- LogLevel.Alert,
111
- `Fahre Rollo "${this.info.customName}" nicht runter, weil das Fenster auf Kipp ist!`,
112
- );
113
- }
114
- }
115
- }
116
-
117
- this._setLevel = pPosition;
118
- ServerLogService.writeLog(LogLevel.Debug, `Fahre Rollo "${this.info.customName}" auf Position ${pPosition}`);
119
- this.ioConn.setState(this._setLevelSwitchID, pPosition);
120
- }
121
-
122
- public down(initial: boolean = false): void {
123
- this.setLevel(0, initial);
124
- }
125
-
126
- public middle(): void {
127
- this.setLevel(50);
128
- }
129
-
130
- public up(initial: boolean = false): void {
131
- this.setLevel(100, initial);
132
- }
133
- }
1
+ import { LogLevel } from '../../../models/logLevel';
2
+ import { Fenster } from './Fenster';
3
+ import { FensterPosition } from './FensterPosition';
4
+ import { HmIPDevice } from './hmIpDevice';
5
+ import { HmIpDeviceType } from './hmIpDeviceType';
6
+ import { DeviceInfo } from '../DeviceInfo';
7
+ import { ServerLogService } from '../../services/log-service';
8
+ import { Utils } from '../../services/utils/utils';
9
+
10
+ export class HmIpRoll extends HmIPDevice {
11
+ public get currentLevel(): number {
12
+ if (this._setLevel !== -1 && this._currentLevel !== this._setLevel) {
13
+ return this._setLevel;
14
+ }
15
+ return this._currentLevel;
16
+ }
17
+
18
+ public set currentLevel(value: number) {
19
+ if (value !== this._setLevel && Utils.nowMS() - this._setLevelTime < 60 * 10000) {
20
+ value = this._setLevel;
21
+ }
22
+ if (value !== this._currentLevel && this._fenster) {
23
+ Utils.guardedNewThread(() => {
24
+ this._fenster?.rolloPositionChange(value);
25
+ }, this);
26
+ }
27
+ this._currentLevel = value;
28
+ }
29
+
30
+ public get desiredFensterLevel(): number {
31
+ if (this._fenster === undefined) {
32
+ return -1;
33
+ }
34
+ return this._fenster.desiredPosition;
35
+ }
36
+
37
+ private _currentLevel: number = -1;
38
+ private _setLevelSwitchID: string;
39
+ private _fenster?: Fenster;
40
+ private _firstCommandRecieved: boolean = false;
41
+ private _setLevel: number = -1;
42
+ private _setLevelTime: number = -1;
43
+
44
+ public set Fenster(value: Fenster) {
45
+ this._fenster = value;
46
+ }
47
+
48
+ public constructor(pInfo: DeviceInfo) {
49
+ super(pInfo, HmIpDeviceType.HmIpRoll);
50
+ this._setLevelSwitchID = `${this.info.fullID}.4.LEVEL`;
51
+ }
52
+
53
+ public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
54
+ ServerLogService.writeLog(
55
+ LogLevel.DeepTrace,
56
+ `Rollo Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
57
+ );
58
+ super.update(idSplit, state, initial, true);
59
+ switch (idSplit[3]) {
60
+ case '3':
61
+ if (idSplit[4] === 'LEVEL') {
62
+ this.currentLevel = state.val as number;
63
+ }
64
+ break;
65
+ }
66
+ }
67
+
68
+ public setLevel(pPosition: number, initial: boolean = false, skipOpenWarning: boolean = false): void {
69
+ if (!this._firstCommandRecieved && !initial) {
70
+ this._firstCommandRecieved = true;
71
+ }
72
+ if (this._firstCommandRecieved && initial) {
73
+ ServerLogService.writeLog(
74
+ LogLevel.Debug,
75
+ `Skipped initial Rollo "${this.info.customName}" to ${pPosition} as we recieved a command already`,
76
+ );
77
+ return;
78
+ }
79
+ if (this.currentLevel === pPosition) {
80
+ ServerLogService.writeLog(
81
+ LogLevel.Debug,
82
+ `Skip Rollo command for "${this.info.customName}" to Position ${pPosition} as this is the current one`,
83
+ );
84
+ return;
85
+ }
86
+ if (this._setLevelSwitchID === '') {
87
+ console.error(`Keine Switch ID für "${this.info.customName}" bekannt.`);
88
+ return;
89
+ }
90
+
91
+ if (!this.ioConn) {
92
+ console.error(`Keine Connection für "${this.info.customName}" bekannt.`);
93
+ return;
94
+ }
95
+
96
+ if (this._fenster !== undefined) {
97
+ if (this._fenster.griffeInPosition(FensterPosition.offen) > 0 && pPosition < 100) {
98
+ if (!skipOpenWarning) {
99
+ ServerLogService.writeLog(
100
+ LogLevel.Alert,
101
+ `Fahre Rollo "${this.info.customName}" nicht runter, weil das Fenster offen ist!`,
102
+ );
103
+ }
104
+ return;
105
+ }
106
+ if (this._fenster.griffeInPosition(FensterPosition.kipp) > 0 && pPosition < 50) {
107
+ pPosition = 50;
108
+ if (!skipOpenWarning) {
109
+ ServerLogService.writeLog(
110
+ LogLevel.Alert,
111
+ `Fahre Rollo "${this.info.customName}" nicht runter, weil das Fenster auf Kipp ist!`,
112
+ );
113
+ }
114
+ }
115
+ }
116
+
117
+ this._setLevel = pPosition;
118
+ ServerLogService.writeLog(LogLevel.Debug, `Fahre Rollo "${this.info.customName}" auf Position ${pPosition}`);
119
+ this.ioConn.setState(this._setLevelSwitchID, pPosition);
120
+ }
121
+
122
+ public down(initial: boolean = false): void {
123
+ this.setLevel(0, initial);
124
+ }
125
+
126
+ public middle(): void {
127
+ this.setLevel(50);
128
+ }
129
+
130
+ public up(initial: boolean = false): void {
131
+ this.setLevel(100, initial);
132
+ }
133
+ }
@@ -1,73 +1,82 @@
1
- import { HmIPDevice } from './hmIpDevice';
2
- import { HmIpDeviceType } from './hmIpDeviceType';
3
- import { DeviceInfo } from '../DeviceInfo';
4
- import { HmIPTaste } from './hmIpTaste';
5
- import { LogLevel } from '../../../models/logLevel';
6
- import { ServerLogService } from '../../services/log-service';
7
-
8
- export class HmIpTaster extends HmIPDevice {
9
- public tasten: {
10
- ObenLinks: HmIPTaste;
11
- ObenRechts: HmIPTaste;
12
- MitteLinks: HmIPTaste;
13
- MitteRechts: HmIPTaste;
14
- UntenLinks: HmIPTaste;
15
- UntenRechts: HmIPTaste;
16
- } = {
17
- ObenLinks: new HmIPTaste(1),
18
- ObenRechts: new HmIPTaste(2),
19
- MitteLinks: new HmIPTaste(3),
20
- MitteRechts: new HmIPTaste(4),
21
- UntenLinks: new HmIPTaste(5),
22
- UntenRechts: new HmIPTaste(6),
23
- };
24
-
25
- public constructor(pInfo: DeviceInfo) {
26
- super(pInfo, HmIpDeviceType.HmIpTaster);
27
- }
28
-
29
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
30
- ServerLogService.writeLog(LogLevel.Trace, `Taster Update: JSON: ${JSON.stringify(state)}ID: ${idSplit.join('.')}`);
31
- super.update(idSplit, state, initial, true);
32
- let cTaste: HmIPTaste | undefined = undefined;
33
- switch (idSplit[3]) {
34
- case '1':
35
- cTaste = this.tasten.ObenLinks;
36
- break;
37
- case '2':
38
- cTaste = this.tasten.ObenRechts;
39
- break;
40
- case '3':
41
- cTaste = this.tasten.MitteLinks;
42
- break;
43
- case '4':
44
- cTaste = this.tasten.MitteRechts;
45
- break;
46
- case '5':
47
- cTaste = this.tasten.UntenLinks;
48
- break;
49
- case '6':
50
- cTaste = this.tasten.UntenRechts;
51
- break;
52
- }
53
-
54
- if (cTaste === undefined) {
55
- return;
56
- }
57
-
58
- switch (idSplit[4]) {
59
- case 'PRESS_SHORT':
60
- if (!initial) {
61
- // Tasten beim Starten ignorieren
62
- cTaste.updateShort(state.val as boolean);
63
- }
64
- break;
65
- case 'PRESS_LONG':
66
- if (!initial) {
67
- // Tasten beim Starten ignorieren
68
- cTaste.updateLong(state.val as boolean);
69
- }
70
- break;
71
- }
72
- }
73
- }
1
+ import { HmIPDevice } from './hmIpDevice';
2
+ import { HmIpDeviceType } from './hmIpDeviceType';
3
+ import { DeviceInfo } from '../DeviceInfo';
4
+ import { Taste } from '../taste';
5
+ import { LogLevel } from '../../../models/logLevel';
6
+ import { ServerLogService } from '../../services/log-service';
7
+ import { iTaster } from "/server/config/private/server/devices/iTaster";
8
+
9
+ export class HmIpTaster extends HmIPDevice implements iTaster{
10
+ public tasten: { [id: string]: Taste} = {
11
+ ObenLinks: new Taste(1),
12
+ ObenRechts: new Taste(2),
13
+ MitteLinks: new Taste(3),
14
+ MitteRechts: new Taste(4),
15
+ UntenLinks: new Taste(5),
16
+ UntenRechts: new Taste(6),
17
+ };
18
+
19
+ public constructor(pInfo: DeviceInfo) {
20
+ super(pInfo, HmIpDeviceType.HmIpTaster);
21
+ }
22
+
23
+ public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
24
+ ServerLogService.writeLog(LogLevel.Trace, `Taster Update: JSON: ${JSON.stringify(state)}ID: ${idSplit.join('.')}`);
25
+ super.update(idSplit, state, initial, true);
26
+ let cTaste: Taste | undefined = undefined;
27
+ switch (idSplit[3]) {
28
+ case '1':
29
+ cTaste = this.tasten.ObenLinks;
30
+ break;
31
+ case '2':
32
+ cTaste = this.tasten.ObenRechts;
33
+ break;
34
+ case '3':
35
+ cTaste = this.tasten.MitteLinks;
36
+ break;
37
+ case '4':
38
+ cTaste = this.tasten.MitteRechts;
39
+ break;
40
+ case '5':
41
+ cTaste = this.tasten.UntenLinks;
42
+ break;
43
+ case '6':
44
+ cTaste = this.tasten.UntenRechts;
45
+ break;
46
+ }
47
+
48
+ if (cTaste === undefined) {
49
+ return;
50
+ }
51
+
52
+ switch (idSplit[4]) {
53
+ case 'PRESS_SHORT':
54
+ if (!initial) {
55
+ // Tasten beim Starten ignorieren
56
+ cTaste.updateShort(state.val as boolean);
57
+ }
58
+ break;
59
+ case 'PRESS_LONG':
60
+ if (!initial) {
61
+ // Tasten beim Starten ignorieren
62
+ cTaste.updateLong(state.val as boolean);
63
+ }
64
+ break;
65
+ }
66
+ }
67
+
68
+ public getTastenAssignment(): string {
69
+ const result: string[] = [`Button: ${this.info.customName}`];
70
+ for (const tastenName in this.tasten) {
71
+ const desc: string = this.tasten[tastenName].getDescription();
72
+ if (desc === '') {
73
+ continue;
74
+ }
75
+ result.push(`Button "${tastenName}":`);
76
+ result.push(desc);
77
+ result.push('');
78
+ }
79
+ result.push('____________');
80
+ return result.join('\n');
81
+ }
82
+ }
@@ -1,19 +1,19 @@
1
- import { HmIPDevice } from './hmIpDevice';
2
- import { HmIpDeviceType } from './hmIpDeviceType';
3
- import { DeviceInfo } from '../DeviceInfo';
4
- import { LogLevel } from '../../../models/logLevel';
5
- import { ServerLogService } from '../../services/log-service';
6
-
7
- export class HmIpTherm extends HmIPDevice {
8
- public constructor(pInfo: DeviceInfo) {
9
- super(pInfo, HmIpDeviceType.HmIpTherm);
10
- }
11
-
12
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
13
- ServerLogService.writeLog(
14
- LogLevel.Trace,
15
- `Thermostat "${this.info.customName}" Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
16
- );
17
- super.update(idSplit, state, initial, true);
18
- }
19
- }
1
+ import { HmIPDevice } from './hmIpDevice';
2
+ import { HmIpDeviceType } from './hmIpDeviceType';
3
+ import { DeviceInfo } from '../DeviceInfo';
4
+ import { LogLevel } from '../../../models/logLevel';
5
+ import { ServerLogService } from '../../services/log-service';
6
+
7
+ export class HmIpTherm extends HmIPDevice {
8
+ public constructor(pInfo: DeviceInfo) {
9
+ super(pInfo, HmIpDeviceType.HmIpTherm);
10
+ }
11
+
12
+ public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
13
+ ServerLogService.writeLog(
14
+ LogLevel.Trace,
15
+ `Thermostat "${this.info.customName}" Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
16
+ );
17
+ super.update(idSplit, state, initial, true);
18
+ }
19
+ }