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,189 +1,189 @@
1
- import { LogLevel } from '../../models/logLevel';
2
- import { HmIpDeviceType } from './hmIPDevices/hmIpDeviceType';
3
- import { ZigbeeDeviceType } from './zigbee/zigbeeDeviceType';
4
- import { IOBrokerConnection } from '../ioBroker/connection';
5
- import { ServerLogService } from '../services/log-service';
6
- import { HmIPDevice } from './hmIPDevices/hmIpDevice';
7
- import { ZigbeeDevice } from './zigbee/zigbeeDevice';
8
- import { HmIpGriff } from './hmIPDevices/hmIpGriff';
9
- import { HmIpHeizung } from './hmIPDevices/hmIpHeizung';
10
- import { DeviceInfo } from './DeviceInfo';
11
- import { HmIpLampe } from './hmIPDevices/hmIpLampe';
12
- import { HmIpPraezenz } from './hmIPDevices/hmIpPraezenz';
13
- import { HmIpRoll } from './hmIPDevices/hmIpRoll';
14
- import { HmIpTaster } from './hmIPDevices/hmIpTaster';
15
- import { HmIpTherm } from './hmIPDevices/hmIpTherm';
16
- import { HmIpTuer } from './hmIPDevices/hmIpTuer';
17
- import { HmIpWippe } from './hmIPDevices/hmIpWippe';
18
- import { deviceConfig } from '../../models/deviceConfig';
19
- import { HmIpHeizgruppe } from './hmIPDevices/hmIpHeizgruppe';
20
- import { HmIpBewegung } from './hmIPDevices/hmIpBewegung';
21
- import { ZigbeeIkeaSteckdose } from './zigbee/zigbeeIkeaSteckdose';
22
- import { ZigbeeIlluLedRGBCCT } from './zigbee/zigbeeIlluLedRGBCCT';
23
- import { ZigbeeAquaraVibra } from './zigbee/zigbeeAquaraVibra';
24
- import { ZigbeeIlluDimmer } from './zigbee/zigbeeIlluDimmer';
25
- import { ZigbeeHeimanSmoke } from './zigbee/zigbeeHeimanSmoke';
26
- import { ZigbeeAquaraWater } from './zigbee/zigbeeAquaraWater';
27
- import { ZigbeeBlitzShp } from './zigbee/zigbeeBlitzShp';
28
- import { ZigbeeIlluLampe } from './zigbee/zigbeeIlluLampe';
29
- import { ZigbeeIlluActuator } from './zigbee/zigbeeIlluActuator';
30
- import { iRoomImportEnforcer } from '../../models/rooms/iRoomImportEnforcer';
31
-
32
- export class Devices {
33
- public static hmIP: { [id: string]: HmIPDevice } = {};
34
- public static Zigbee: { [id: string]: ZigbeeDevice } = {};
35
-
36
- public constructor(pDeviceData: { [id: string]: deviceConfig }, pRoomImportEnforcer: iRoomImportEnforcer) {
37
- // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
38
- pRoomImportEnforcer.addRoomConstructor();
39
-
40
- for (const cID in pDeviceData) {
41
- const cDevConf: deviceConfig = pDeviceData[cID];
42
- if (
43
- !cDevConf.common ||
44
- !cDevConf.common.name ||
45
- typeof cDevConf.common.name === 'object' ||
46
- !cDevConf.type ||
47
- cDevConf.type === 'channel'
48
- ) {
49
- continue;
50
- }
51
-
52
- const cName: string = cDevConf.common.name;
53
-
54
- if (cName.indexOf('00-HmIP') === 0) {
55
- this.processHMIPDevice(cDevConf);
56
- } else if (cName.indexOf('00-Zigbee') === 0) {
57
- this.processZigbeeDevice(cDevConf);
58
- }
59
- }
60
-
61
- HmIPDevice.checkMissing();
62
- ZigbeeDevice.checkMissing();
63
- }
64
-
65
- public static addIoConnection(pIoConnection: IOBrokerConnection): void {
66
- for (const id in Devices.hmIP) {
67
- Devices.hmIP[id].ioConn = pIoConnection;
68
- }
69
-
70
- for (const id in Devices.Zigbee) {
71
- Devices.Zigbee[id].ioConn = pIoConnection;
72
- }
73
- }
74
-
75
- public static midnightReset(): void {
76
- // Nothing yet
77
- }
78
-
79
- public static resetPraesenzCount(): void {
80
- ServerLogService.writeLog(LogLevel.Info, `3 Uhr Reset der Präsenzmelder`);
81
- for (const dID in Devices.hmIP) {
82
- const d = Devices.hmIP[dID];
83
- if (d.deviceType === HmIpDeviceType.HmIpPraezenz) {
84
- ServerLogService.writeLog(LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
85
- (d as HmIpPraezenz).detectionsToday = 0;
86
- } else if (d.deviceType === HmIpDeviceType.HmIpBewegung) {
87
- ServerLogService.writeLog(LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
88
- (d as HmIpBewegung).detectionsToday = 0;
89
- }
90
- }
91
- }
92
-
93
- private processZigbeeDevice(cDevConf: deviceConfig) {
94
- const zigbeeInfo: DeviceInfo = new DeviceInfo(cDevConf);
95
-
96
- if (typeof Devices.Zigbee[zigbeeInfo.devID] !== 'undefined') {
97
- return;
98
- }
99
-
100
- ServerLogService.writeLog(
101
- LogLevel.Trace,
102
- `${zigbeeInfo.devID} with Type "${zigbeeInfo.deviceType}" doesn't exists --> create it`,
103
- );
104
-
105
- switch (zigbeeInfo.deviceType) {
106
- case 'AquaraVibra':
107
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraVibra(zigbeeInfo);
108
- break;
109
- case 'IkeaStecker':
110
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIkeaSteckdose(zigbeeInfo);
111
- break;
112
- case 'LedRGBCCT':
113
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluLedRGBCCT(zigbeeInfo);
114
- break;
115
- case 'IlluDimmer':
116
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluDimmer(zigbeeInfo);
117
- break;
118
- case 'HeimanSmoke':
119
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeHeimanSmoke(zigbeeInfo);
120
- break;
121
- case 'AquaraWater':
122
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraWater(zigbeeInfo);
123
- break;
124
- case 'BlitzShp':
125
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeBlitzShp(zigbeeInfo);
126
- break;
127
- case 'IlluLampe':
128
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluLampe(zigbeeInfo);
129
- break;
130
- case 'IlluActuator':
131
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluActuator(zigbeeInfo);
132
- break;
133
- default:
134
- ServerLogService.writeLog(LogLevel.Warn, `No zigbee Device Type for ${zigbeeInfo.deviceType} defined`);
135
- Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeDevice(zigbeeInfo, ZigbeeDeviceType.unknown);
136
- }
137
- }
138
-
139
- private processHMIPDevice(cDevConf: deviceConfig) {
140
- const hmIPInfo: DeviceInfo = new DeviceInfo(cDevConf);
141
-
142
- if (typeof Devices.hmIP[hmIPInfo.devID] !== 'undefined') {
143
- return;
144
- }
145
- ServerLogService.writeLog(
146
- LogLevel.Trace,
147
- `${hmIPInfo.devID} with Type "${hmIPInfo.deviceType}" doesn't exists --> create it`,
148
- );
149
- switch (hmIPInfo.deviceType) {
150
- case 'Lampe':
151
- Devices.hmIP[hmIPInfo.devID] = new HmIpLampe(hmIPInfo);
152
- break;
153
- case 'Roll':
154
- case 'Broll':
155
- Devices.hmIP[hmIPInfo.devID] = new HmIpRoll(hmIPInfo);
156
- break;
157
- case 'Beweg':
158
- Devices.hmIP[hmIPInfo.devID] = new HmIpBewegung(hmIPInfo);
159
- break;
160
- case 'Taster':
161
- Devices.hmIP[hmIPInfo.devID] = new HmIpTaster(hmIPInfo);
162
- break;
163
- case 'Wippe':
164
- Devices.hmIP[hmIPInfo.devID] = new HmIpWippe(hmIPInfo);
165
- break;
166
- case 'Praezenz':
167
- Devices.hmIP[hmIPInfo.devID] = new HmIpPraezenz(hmIPInfo);
168
- break;
169
- case 'Griff':
170
- Devices.hmIP[hmIPInfo.devID] = new HmIpGriff(hmIPInfo);
171
- break;
172
- case 'Thermostat':
173
- Devices.hmIP[hmIPInfo.devID] = new HmIpTherm(hmIPInfo);
174
- break;
175
- case 'Heizung':
176
- Devices.hmIP[hmIPInfo.devID] = new HmIpHeizung(hmIPInfo);
177
- break;
178
- case 'Tuer':
179
- Devices.hmIP[hmIPInfo.devID] = new HmIpTuer(hmIPInfo);
180
- break;
181
- case 'HeizGr':
182
- Devices.hmIP[hmIPInfo.devID] = new HmIpHeizgruppe(hmIPInfo);
183
- break;
184
- default:
185
- ServerLogService.writeLog(LogLevel.Warn, `No HmIP Device Type for ${hmIPInfo.deviceType} defined`);
186
- Devices.hmIP[hmIPInfo.devID] = new HmIPDevice(hmIPInfo, HmIpDeviceType.unknown);
187
- }
188
- }
189
- }
1
+ import { LogLevel } from '../../models/logLevel';
2
+ import { HmIpDeviceType } from './hmIPDevices/hmIpDeviceType';
3
+ import { ZigbeeDeviceType } from './zigbee/zigbeeDeviceType';
4
+ import { IOBrokerConnection } from '../ioBroker/connection';
5
+ import { ServerLogService } from '../services/log-service';
6
+ import { HmIPDevice } from './hmIPDevices/hmIpDevice';
7
+ import { ZigbeeDevice } from './zigbee/zigbeeDevice';
8
+ import { HmIpGriff } from './hmIPDevices/hmIpGriff';
9
+ import { HmIpHeizung } from './hmIPDevices/hmIpHeizung';
10
+ import { DeviceInfo } from './DeviceInfo';
11
+ import { HmIpLampe } from './hmIPDevices/hmIpLampe';
12
+ import { HmIpPraezenz } from './hmIPDevices/hmIpPraezenz';
13
+ import { HmIpRoll } from './hmIPDevices/hmIpRoll';
14
+ import { HmIpTaster } from './hmIPDevices/hmIpTaster';
15
+ import { HmIpTherm } from './hmIPDevices/hmIpTherm';
16
+ import { HmIpTuer } from './hmIPDevices/hmIpTuer';
17
+ import { HmIpWippe } from './hmIPDevices/hmIpWippe';
18
+ import { deviceConfig } from '../../models/deviceConfig';
19
+ import { HmIpHeizgruppe } from './hmIPDevices/hmIpHeizgruppe';
20
+ import { HmIpBewegung } from './hmIPDevices/hmIpBewegung';
21
+ import { ZigbeeIkeaSteckdose } from './zigbee/zigbeeIkeaSteckdose';
22
+ import { ZigbeeIlluLedRGBCCT } from './zigbee/zigbeeIlluLedRGBCCT';
23
+ import { ZigbeeAquaraVibra } from './zigbee/zigbeeAquaraVibra';
24
+ import { ZigbeeIlluDimmer } from './zigbee/zigbeeIlluDimmer';
25
+ import { ZigbeeHeimanSmoke } from './zigbee/zigbeeHeimanSmoke';
26
+ import { ZigbeeAquaraWater } from './zigbee/zigbeeAquaraWater';
27
+ import { ZigbeeBlitzShp } from './zigbee/zigbeeBlitzShp';
28
+ import { ZigbeeIlluLampe } from './zigbee/zigbeeIlluLampe';
29
+ import { ZigbeeIlluActuator } from './zigbee/zigbeeIlluActuator';
30
+ import { iRoomImportEnforcer } from '../../models/rooms/iRoomImportEnforcer';
31
+
32
+ export class Devices {
33
+ public static hmIP: { [id: string]: HmIPDevice } = {};
34
+ public static Zigbee: { [id: string]: ZigbeeDevice } = {};
35
+
36
+ public constructor(pDeviceData: { [id: string]: deviceConfig }, pRoomImportEnforcer: iRoomImportEnforcer) {
37
+ // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
38
+ pRoomImportEnforcer.addRoomConstructor();
39
+
40
+ for (const cID in pDeviceData) {
41
+ const cDevConf: deviceConfig = pDeviceData[cID];
42
+ if (
43
+ !cDevConf.common ||
44
+ !cDevConf.common.name ||
45
+ typeof cDevConf.common.name === 'object' ||
46
+ !cDevConf.type ||
47
+ cDevConf.type === 'channel'
48
+ ) {
49
+ continue;
50
+ }
51
+
52
+ const cName: string = cDevConf.common.name;
53
+
54
+ if (cName.indexOf('00-HmIP') === 0) {
55
+ this.processHMIPDevice(cDevConf);
56
+ } else if (cName.indexOf('00-Zigbee') === 0) {
57
+ this.processZigbeeDevice(cDevConf);
58
+ }
59
+ }
60
+
61
+ HmIPDevice.checkMissing();
62
+ ZigbeeDevice.checkMissing();
63
+ }
64
+
65
+ public static addIoConnection(pIoConnection: IOBrokerConnection): void {
66
+ for (const id in Devices.hmIP) {
67
+ Devices.hmIP[id].ioConn = pIoConnection;
68
+ }
69
+
70
+ for (const id in Devices.Zigbee) {
71
+ Devices.Zigbee[id].ioConn = pIoConnection;
72
+ }
73
+ }
74
+
75
+ public static midnightReset(): void {
76
+ // Nothing yet
77
+ }
78
+
79
+ public static resetPraesenzCount(): void {
80
+ ServerLogService.writeLog(LogLevel.Info, `3 Uhr Reset der Präsenzmelder`);
81
+ for (const dID in Devices.hmIP) {
82
+ const d = Devices.hmIP[dID];
83
+ if (d.deviceType === HmIpDeviceType.HmIpPraezenz) {
84
+ ServerLogService.writeLog(LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
85
+ (d as HmIpPraezenz).detectionsToday = 0;
86
+ } else if (d.deviceType === HmIpDeviceType.HmIpBewegung) {
87
+ ServerLogService.writeLog(LogLevel.Debug, `2 Uhr Reset der Tages Detektionen von ${d.info.customName}`);
88
+ (d as HmIpBewegung).detectionsToday = 0;
89
+ }
90
+ }
91
+ }
92
+
93
+ private processZigbeeDevice(cDevConf: deviceConfig) {
94
+ const zigbeeInfo: DeviceInfo = new DeviceInfo(cDevConf);
95
+
96
+ if (typeof Devices.Zigbee[zigbeeInfo.devID] !== 'undefined') {
97
+ return;
98
+ }
99
+
100
+ ServerLogService.writeLog(
101
+ LogLevel.Trace,
102
+ `${zigbeeInfo.devID} with Type "${zigbeeInfo.deviceType}" doesn't exists --> create it`,
103
+ );
104
+
105
+ switch (zigbeeInfo.deviceType) {
106
+ case 'AquaraVibra':
107
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraVibra(zigbeeInfo);
108
+ break;
109
+ case 'IkeaStecker':
110
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIkeaSteckdose(zigbeeInfo);
111
+ break;
112
+ case 'LedRGBCCT':
113
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluLedRGBCCT(zigbeeInfo);
114
+ break;
115
+ case 'IlluDimmer':
116
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluDimmer(zigbeeInfo);
117
+ break;
118
+ case 'HeimanSmoke':
119
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeHeimanSmoke(zigbeeInfo);
120
+ break;
121
+ case 'AquaraWater':
122
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeAquaraWater(zigbeeInfo);
123
+ break;
124
+ case 'BlitzShp':
125
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeBlitzShp(zigbeeInfo);
126
+ break;
127
+ case 'IlluLampe':
128
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluLampe(zigbeeInfo);
129
+ break;
130
+ case 'IlluActuator':
131
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeIlluActuator(zigbeeInfo);
132
+ break;
133
+ default:
134
+ ServerLogService.writeLog(LogLevel.Warn, `No zigbee Device Type for ${zigbeeInfo.deviceType} defined`);
135
+ Devices.Zigbee[zigbeeInfo.devID] = new ZigbeeDevice(zigbeeInfo, ZigbeeDeviceType.unknown);
136
+ }
137
+ }
138
+
139
+ private processHMIPDevice(cDevConf: deviceConfig) {
140
+ const hmIPInfo: DeviceInfo = new DeviceInfo(cDevConf);
141
+
142
+ if (typeof Devices.hmIP[hmIPInfo.devID] !== 'undefined') {
143
+ return;
144
+ }
145
+ ServerLogService.writeLog(
146
+ LogLevel.Trace,
147
+ `${hmIPInfo.devID} with Type "${hmIPInfo.deviceType}" doesn't exists --> create it`,
148
+ );
149
+ switch (hmIPInfo.deviceType) {
150
+ case 'Lampe':
151
+ Devices.hmIP[hmIPInfo.devID] = new HmIpLampe(hmIPInfo);
152
+ break;
153
+ case 'Roll':
154
+ case 'Broll':
155
+ Devices.hmIP[hmIPInfo.devID] = new HmIpRoll(hmIPInfo);
156
+ break;
157
+ case 'Beweg':
158
+ Devices.hmIP[hmIPInfo.devID] = new HmIpBewegung(hmIPInfo);
159
+ break;
160
+ case 'Taster':
161
+ Devices.hmIP[hmIPInfo.devID] = new HmIpTaster(hmIPInfo);
162
+ break;
163
+ case 'Wippe':
164
+ Devices.hmIP[hmIPInfo.devID] = new HmIpWippe(hmIPInfo);
165
+ break;
166
+ case 'Praezenz':
167
+ Devices.hmIP[hmIPInfo.devID] = new HmIpPraezenz(hmIPInfo);
168
+ break;
169
+ case 'Griff':
170
+ Devices.hmIP[hmIPInfo.devID] = new HmIpGriff(hmIPInfo);
171
+ break;
172
+ case 'Thermostat':
173
+ Devices.hmIP[hmIPInfo.devID] = new HmIpTherm(hmIPInfo);
174
+ break;
175
+ case 'Heizung':
176
+ Devices.hmIP[hmIPInfo.devID] = new HmIpHeizung(hmIPInfo);
177
+ break;
178
+ case 'Tuer':
179
+ Devices.hmIP[hmIPInfo.devID] = new HmIpTuer(hmIPInfo);
180
+ break;
181
+ case 'HeizGr':
182
+ Devices.hmIP[hmIPInfo.devID] = new HmIpHeizgruppe(hmIPInfo);
183
+ break;
184
+ default:
185
+ ServerLogService.writeLog(LogLevel.Warn, `No HmIP Device Type for ${hmIPInfo.deviceType} defined`);
186
+ Devices.hmIP[hmIPInfo.devID] = new HmIPDevice(hmIPInfo, HmIpDeviceType.unknown);
187
+ }
188
+ }
189
+ }