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,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
|
+
}
|