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,137 +1,137 @@
1
- import { LogLevel } from '../../../models/logLevel';
2
- import { ServerLogService } from '../../services/log-service';
3
- import { DeviceInfo } from '../DeviceInfo';
4
- import { ZigbeeDevice } from './zigbeeDevice';
5
- import { ZigbeeDeviceType } from './zigbeeDeviceType';
6
- import { LedSettings } from '../../../models/ledSettings';
7
- import { TimeOfDay } from '../../services/time-callback-service';
8
-
9
- export class ZigbeeIlluLedRGBCCT extends ZigbeeDevice {
10
- public static DEFAULT_COLOR_WARM: string = '#f2b200';
11
- public on: boolean = false;
12
- public brightness: number = 0;
13
- public color: string = '#fcba32';
14
- public colortemp: number = 500;
15
- public settings: LedSettings = new LedSettings();
16
- private stateID: string = 'state';
17
- private brightnessID: string = 'brightness';
18
- private colorID: string = '';
19
- private colorTempID: string = '';
20
- private effectID: string = '';
21
-
22
- public constructor(pInfo: DeviceInfo) {
23
- super(pInfo, ZigbeeDeviceType.ZigbeeIlluLedRGBCCT);
24
- this.stateID = `${this.info.fullID}.state`;
25
- this.brightnessID = `${this.info.fullID}.brightness`;
26
- this.colorID = `${this.info.fullID}.color`;
27
- this.colorTempID = `${this.info.fullID}.colortemp`;
28
- this.effectID = `${this.info.fullID}.effect`;
29
- }
30
-
31
- public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
32
- ServerLogService.writeLog(
33
- LogLevel.DeepTrace,
34
- `LED Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
35
- );
36
- super.update(idSplit, state, initial, true);
37
- switch (idSplit[3]) {
38
- case 'state':
39
- ServerLogService.writeLog(LogLevel.Trace, `LED Update für ${this.info.customName} auf ${state.val}`);
40
- this.on = state.val as boolean;
41
- break;
42
- case 'brightness':
43
- ServerLogService.writeLog(LogLevel.Trace, `LED Helligkeit Update für ${this.info.customName} auf ${state.val}`);
44
- this.brightness = state.val as number;
45
- break;
46
- case 'color':
47
- ServerLogService.writeLog(LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
48
- this.color = state.val as string;
49
- break;
50
- case 'colortemp':
51
- ServerLogService.writeLog(LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
52
- this.colortemp = state.val as number;
53
- break;
54
- }
55
- }
56
-
57
- public setTimeBased(time: TimeOfDay): void {
58
- switch (time) {
59
- case TimeOfDay.Night:
60
- if (this.settings.nightOn) {
61
- this.setLight(true, this.settings.nightBrightness, this.settings.nightColor, this.settings.nightColorTemp);
62
- }
63
- break;
64
- case TimeOfDay.AfterSunset:
65
- if (this.settings.duskOn) {
66
- this.setLight(true, this.settings.duskBrightness, this.settings.duskColor, this.settings.duskColorTemp);
67
- }
68
- break;
69
- case TimeOfDay.BeforeSunrise:
70
- if (this.settings.dawnOn) {
71
- this.setLight(true, this.settings.dawnBrightness, this.settings.dawnColor, this.settings.dawnColorTemp);
72
- }
73
- break;
74
- case TimeOfDay.Daylight:
75
- if (this.settings.dayOn) {
76
- this.setLight(true, this.settings.dayBrightness, this.settings.dayColor, this.settings.dayColorTemp);
77
- }
78
- break;
79
- }
80
- }
81
-
82
- public setLight(pValue: boolean, brightness: number = -1, color: string = '', colortemp: number = -1): void {
83
- if (this.stateID === '') {
84
- ServerLogService.writeLog(LogLevel.Error, `Keine State ID für "${this.info.customName}" bekannt.`);
85
- return;
86
- }
87
-
88
- if (!this.ioConn) {
89
- ServerLogService.writeLog(LogLevel.Error, `Keine Connection für "${this.info.customName}" bekannt.`);
90
- return;
91
- }
92
-
93
- if (pValue && brightness === -1 && this.brightness < 10) {
94
- brightness = 10;
95
- }
96
- ServerLogService.writeLog(
97
- LogLevel.Debug,
98
- `LED Schalten: "${this.info.customName}" An: ${pValue}\tHelligkeit: ${brightness}%\tFarbe: "${color}"\tColorTemperatur: ${colortemp}`,
99
- );
100
-
101
- if (color !== '') {
102
- this.ioConn.setState(this.colorID, color, (err) => {
103
- if (err) {
104
- ServerLogService.writeLog(LogLevel.Error, `LED Farbe schalten ergab Fehler: ${err}`);
105
- }
106
- });
107
- }
108
-
109
- if (colortemp > -1) {
110
- this.ioConn.setState(this.colorTempID, colortemp, (err) => {
111
- if (err) {
112
- ServerLogService.writeLog(LogLevel.Error, `LED Farbwärme schalten ergab Fehler: ${err}`);
113
- }
114
- });
115
- }
116
-
117
- this.ioConn.setState(this.stateID, pValue, (err) => {
118
- if (err) {
119
- ServerLogService.writeLog(LogLevel.Error, `LED schalten ergab Fehler: ${err}`);
120
- }
121
- });
122
-
123
- if (brightness > -1) {
124
- this.ioConn.setState(this.brightnessID, brightness, (err) => {
125
- if (err) {
126
- ServerLogService.writeLog(LogLevel.Error, `LED Helligkeit schalten ergab Fehler: ${err}`);
127
- }
128
- });
129
- }
130
- }
131
-
132
- public toggleLight(): boolean {
133
- const newVal = !this.on;
134
- this.setLight(newVal);
135
- return newVal;
136
- }
137
- }
1
+ import { LogLevel } from '../../../models/logLevel';
2
+ import { ServerLogService } from '../../services/log-service';
3
+ import { DeviceInfo } from '../DeviceInfo';
4
+ import { ZigbeeDevice } from './zigbeeDevice';
5
+ import { ZigbeeDeviceType } from './zigbeeDeviceType';
6
+ import { LedSettings } from '../../../models/ledSettings';
7
+ import { TimeOfDay } from '../../services/time-callback-service';
8
+
9
+ export class ZigbeeIlluLedRGBCCT extends ZigbeeDevice {
10
+ public static DEFAULT_COLOR_WARM: string = '#f2b200';
11
+ public on: boolean = false;
12
+ public brightness: number = 0;
13
+ public color: string = '#fcba32';
14
+ public colortemp: number = 500;
15
+ public settings: LedSettings = new LedSettings();
16
+ private stateID: string = 'state';
17
+ private brightnessID: string = 'brightness';
18
+ private colorID: string = '';
19
+ private colorTempID: string = '';
20
+ private effectID: string = '';
21
+
22
+ public constructor(pInfo: DeviceInfo) {
23
+ super(pInfo, ZigbeeDeviceType.ZigbeeIlluLedRGBCCT);
24
+ this.stateID = `${this.info.fullID}.state`;
25
+ this.brightnessID = `${this.info.fullID}.brightness`;
26
+ this.colorID = `${this.info.fullID}.color`;
27
+ this.colorTempID = `${this.info.fullID}.colortemp`;
28
+ this.effectID = `${this.info.fullID}.effect`;
29
+ }
30
+
31
+ public update(idSplit: string[], state: ioBroker.State, initial: boolean = false): void {
32
+ ServerLogService.writeLog(
33
+ LogLevel.DeepTrace,
34
+ `LED Update für "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`,
35
+ );
36
+ super.update(idSplit, state, initial, true);
37
+ switch (idSplit[3]) {
38
+ case 'state':
39
+ ServerLogService.writeLog(LogLevel.Trace, `LED Update für ${this.info.customName} auf ${state.val}`);
40
+ this.on = state.val as boolean;
41
+ break;
42
+ case 'brightness':
43
+ ServerLogService.writeLog(LogLevel.Trace, `LED Helligkeit Update für ${this.info.customName} auf ${state.val}`);
44
+ this.brightness = state.val as number;
45
+ break;
46
+ case 'color':
47
+ ServerLogService.writeLog(LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
48
+ this.color = state.val as string;
49
+ break;
50
+ case 'colortemp':
51
+ ServerLogService.writeLog(LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
52
+ this.colortemp = state.val as number;
53
+ break;
54
+ }
55
+ }
56
+
57
+ public setTimeBased(time: TimeOfDay): void {
58
+ switch (time) {
59
+ case TimeOfDay.Night:
60
+ if (this.settings.nightOn) {
61
+ this.setLight(true, this.settings.nightBrightness, this.settings.nightColor, this.settings.nightColorTemp);
62
+ }
63
+ break;
64
+ case TimeOfDay.AfterSunset:
65
+ if (this.settings.duskOn) {
66
+ this.setLight(true, this.settings.duskBrightness, this.settings.duskColor, this.settings.duskColorTemp);
67
+ }
68
+ break;
69
+ case TimeOfDay.BeforeSunrise:
70
+ if (this.settings.dawnOn) {
71
+ this.setLight(true, this.settings.dawnBrightness, this.settings.dawnColor, this.settings.dawnColorTemp);
72
+ }
73
+ break;
74
+ case TimeOfDay.Daylight:
75
+ if (this.settings.dayOn) {
76
+ this.setLight(true, this.settings.dayBrightness, this.settings.dayColor, this.settings.dayColorTemp);
77
+ }
78
+ break;
79
+ }
80
+ }
81
+
82
+ public setLight(pValue: boolean, brightness: number = -1, color: string = '', colortemp: number = -1): void {
83
+ if (this.stateID === '') {
84
+ ServerLogService.writeLog(LogLevel.Error, `Keine State ID für "${this.info.customName}" bekannt.`);
85
+ return;
86
+ }
87
+
88
+ if (!this.ioConn) {
89
+ ServerLogService.writeLog(LogLevel.Error, `Keine Connection für "${this.info.customName}" bekannt.`);
90
+ return;
91
+ }
92
+
93
+ if (pValue && brightness === -1 && this.brightness < 10) {
94
+ brightness = 10;
95
+ }
96
+ ServerLogService.writeLog(
97
+ LogLevel.Debug,
98
+ `LED Schalten: "${this.info.customName}" An: ${pValue}\tHelligkeit: ${brightness}%\tFarbe: "${color}"\tColorTemperatur: ${colortemp}`,
99
+ );
100
+
101
+ if (color !== '') {
102
+ this.ioConn.setState(this.colorID, color, (err) => {
103
+ if (err) {
104
+ ServerLogService.writeLog(LogLevel.Error, `LED Farbe schalten ergab Fehler: ${err}`);
105
+ }
106
+ });
107
+ }
108
+
109
+ if (colortemp > -1) {
110
+ this.ioConn.setState(this.colorTempID, colortemp, (err) => {
111
+ if (err) {
112
+ ServerLogService.writeLog(LogLevel.Error, `LED Farbwärme schalten ergab Fehler: ${err}`);
113
+ }
114
+ });
115
+ }
116
+
117
+ this.ioConn.setState(this.stateID, pValue, (err) => {
118
+ if (err) {
119
+ ServerLogService.writeLog(LogLevel.Error, `LED schalten ergab Fehler: ${err}`);
120
+ }
121
+ });
122
+
123
+ if (brightness > -1) {
124
+ this.ioConn.setState(this.brightnessID, brightness, (err) => {
125
+ if (err) {
126
+ ServerLogService.writeLog(LogLevel.Error, `LED Helligkeit schalten ergab Fehler: ${err}`);
127
+ }
128
+ });
129
+ }
130
+ }
131
+
132
+ public toggleLight(): boolean {
133
+ const newVal = !this.on;
134
+ this.setLight(newVal);
135
+ return newVal;
136
+ }
137
+ }