hoffmation-base 1.0.41 → 1.0.43

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 (70) hide show
  1. package/lib/index.d.ts +2 -2
  2. package/lib/models/rooms/RoomBase.d.ts +2 -2
  3. package/lib/server/devices/DeviceCapabilities.d.ts +15 -0
  4. package/lib/server/devices/DeviceCapabilities.js +19 -0
  5. package/lib/server/devices/IoBrokerBaseDevice.d.ts +2 -0
  6. package/lib/server/devices/IoBrokerBaseDevice.js +1 -0
  7. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +14 -0
  8. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.js +2 -0
  9. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +2 -0
  10. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +8 -0
  11. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.js +2 -0
  12. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +2 -0
  13. package/lib/server/devices/baseDeviceInterfaces/index.js +2 -0
  14. package/lib/server/devices/device-cluster.d.ts +1 -2
  15. package/lib/server/devices/device-cluster.js +6 -0
  16. package/lib/server/devices/device-list.d.ts +2 -4
  17. package/lib/server/devices/device-list.js +4 -13
  18. package/lib/server/devices/groups/heatGroup.js +1 -1
  19. package/lib/server/devices/groups/index.d.ts +1 -1
  20. package/lib/server/devices/groups/index.js +1 -1
  21. package/lib/server/devices/groups/{sonosGroup.d.ts → speakerGroup.d.ts} +3 -3
  22. package/lib/server/devices/groups/{sonosGroup.js → speakerGroup.js} +6 -8
  23. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +3 -0
  24. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +4 -0
  25. package/lib/server/devices/hmIPDevices/hmIpLampe.js +2 -0
  26. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +3 -0
  27. package/lib/server/devices/hmIPDevices/hmIpRoll.js +2 -0
  28. package/lib/server/devices/hmIPDevices/hmIpTaster.js +2 -0
  29. package/lib/server/devices/hmIPDevices/hmIpWippe.js +2 -0
  30. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +2 -0
  31. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  32. package/lib/server/devices/zigbee/BaseDevices/index.js +1 -0
  33. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +2 -0
  34. package/lib/server/devices/zigbee/{zigbeeMotionSensor.d.ts → BaseDevices/zigbeeMotionSensor.d.ts} +5 -5
  35. package/lib/server/devices/zigbee/{zigbeeMotionSensor.js → BaseDevices/zigbeeMotionSensor.js} +6 -4
  36. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +2 -0
  37. package/lib/server/devices/zigbee/index.d.ts +0 -1
  38. package/lib/server/devices/zigbee/index.js +0 -1
  39. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +1 -1
  40. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +4 -2
  41. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +2 -0
  42. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +2 -0
  43. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +2 -0
  44. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +2 -0
  45. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -1
  46. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +2 -2
  47. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +3 -0
  48. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -1
  49. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +1 -1
  50. package/lib/server/services/Sonos/OwnSonosDevices.js +1 -1
  51. package/lib/server/services/Sonos/index.d.ts +1 -0
  52. package/lib/server/services/Sonos/index.js +3 -0
  53. package/lib/server/services/Sonos/own-sonos-device.d.ts +26 -0
  54. package/lib/server/services/Sonos/own-sonos-device.js +108 -0
  55. package/lib/server/services/Sonos/sonos-service.d.ts +1 -20
  56. package/lib/server/services/Sonos/sonos-service.js +5 -94
  57. package/lib/server/services/ac/ac-device.d.ts +4 -2
  58. package/lib/server/services/ac/ac-device.js +2 -0
  59. package/lib/server/services/api/api-service.d.ts +1 -1
  60. package/lib/server/services/api/api-service.js +2 -2
  61. package/lib/server/services/calendar/muell-tonne.d.ts +3 -3
  62. package/lib/server/services/calendar/muell-tonne.js +6 -12
  63. package/lib/server/services/calendar/m/303/274ll-service.d.ts +3 -3
  64. package/lib/server/services/calendar/m/303/274ll-service.js +7 -7
  65. package/lib/server/services/news-service.d.ts +3 -3
  66. package/lib/server/services/news-service.js +4 -4
  67. package/lib/server/services/weather/weather-service.d.ts +2 -2
  68. package/lib/server/services/weather/weather-service.js +14 -15
  69. package/lib/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { OwnSonosDevice } from './Sonos';
2
1
  import { iNewsSettings } from '../config';
2
+ import { ISpeaker } from '../devices';
3
3
  export declare class NewsService {
4
4
  static lastNewsAudioFile: string;
5
5
  private static readonly newsFilePrefix;
@@ -25,11 +25,11 @@ export declare class NewsService {
25
25
  static getLatestNews(): void;
26
26
  /**
27
27
  * Plays the latest news on a sonos device
28
- * @param ownSonosDevice Sonos device to play from
28
+ * @param speaker Sonos device to play from
29
29
  * @param volume volume to play at
30
30
  * @param retries Number of times playing should be tried if there is currently no audio file available
31
31
  */
32
- static playLastNews(ownSonosDevice: OwnSonosDevice, volume?: number, retries?: number): void;
32
+ static playLastNews(speaker: ISpeaker, volume?: number, retries?: number): void;
33
33
  private static downloadLatestFileFromFeed;
34
34
  /**
35
35
  * Deletes all files in the given directory that are older than the given age.
@@ -96,18 +96,18 @@ class NewsService {
96
96
  }
97
97
  /**
98
98
  * Plays the latest news on a sonos device
99
- * @param ownSonosDevice Sonos device to play from
99
+ * @param speaker Sonos device to play from
100
100
  * @param volume volume to play at
101
101
  * @param retries Number of times playing should be tried if there is currently no audio file available
102
102
  */
103
- static playLastNews(ownSonosDevice, volume = 30, retries = 5) {
103
+ static playLastNews(speaker, volume = 30, retries = 5) {
104
104
  if (!NewsService.lastNewsAudioFile) {
105
105
  if (retries > 0) {
106
106
  log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, `Service not ready yet --> waiting, remaining tries: ${retries - 1}`, {
107
107
  source: logSource_1.LogSource.News,
108
108
  });
109
109
  utils_1.Utils.guardedTimeout(() => {
110
- NewsService.playLastNews(ownSonosDevice, volume, retries - 1);
110
+ NewsService.playLastNews(speaker, volume, retries - 1);
111
111
  }, 1000);
112
112
  }
113
113
  else {
@@ -117,7 +117,7 @@ class NewsService {
117
117
  }
118
118
  return;
119
119
  }
120
- Sonos_1.SonosService.playOnDevice(ownSonosDevice, path_1.default.basename(NewsService.lastNewsAudioFile, path_1.default.extname(NewsService.lastNewsAudioFile)), Sonos_1.PollyService.getDuration(NewsService.lastNewsAudioFile), volume);
120
+ speaker.playOnDevice(path_1.default.basename(NewsService.lastNewsAudioFile, path_1.default.extname(NewsService.lastNewsAudioFile)), Sonos_1.PollyService.getDuration(NewsService.lastNewsAudioFile), volume);
121
121
  }
122
122
  static downloadLatestFileFromFeed(rssUrl, targetDir) {
123
123
  const parser = new rss_parser_1.default();
@@ -4,9 +4,9 @@ import { WeatherMinutes } from './weather-minutes';
4
4
  import { WeatherAlert } from './weather-alert';
5
5
  import { iWeatherSettings } from '../../config';
6
6
  import { LogLevel } from '../../../models';
7
- import { OwnSonosDevice } from '../Sonos';
8
7
  import { LogDebugType } from '../log-service';
9
8
  import { WeatherDaily } from './weather-daily';
9
+ import { ISpeaker } from '../../devices';
10
10
  export interface WeatherResponse {
11
11
  lat: number;
12
12
  lon: number;
@@ -36,7 +36,7 @@ export declare class WeatherService {
36
36
  static initialize(config: iWeatherSettings): void;
37
37
  static update(): void;
38
38
  static stopInterval(): void;
39
- static playWeatherInfo(sonosDevice: OwnSonosDevice, volume?: number, short?: boolean, retries?: number): void;
39
+ static playWeatherInfo(speaker: ISpeaker, volume?: number, short?: boolean, retries?: number): void;
40
40
  static processHourlyWeather(): void;
41
41
  static getCurrentTemp(): number;
42
42
  static willOutsideBeWarmer(referenceTemperature: number, logger: (level: LogLevel, message: string, debugType?: LogDebugType) => void): boolean;
@@ -8,7 +8,6 @@ const models_1 = require("../../../models");
8
8
  const HTTPSOptions_1 = require("../HTTPSOptions");
9
9
  const https_service_1 = require("../https-service");
10
10
  const utils_1 = require("../utils");
11
- const Sonos_1 = require("../Sonos");
12
11
  const log_service_1 = require("../log-service");
13
12
  const suncalc_1 = __importDefault(require("suncalc"));
14
13
  const time_callback_service_1 = require("../time-callback-service");
@@ -33,13 +32,13 @@ class WeatherService {
33
32
  this._refreshInterval = undefined;
34
33
  }
35
34
  }
36
- static playWeatherInfo(sonosDevice, volume = 30, short = false, retries = 5) {
35
+ static playWeatherInfo(speaker, volume = 30, short = false, retries = 5) {
37
36
  const wData = WeatherService.lastResponse;
38
37
  if (wData === undefined) {
39
38
  if (retries > 0) {
40
39
  log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, `WeatherService.playWeatherInfo(): Der Wetterbericht ist noch nicht bereit --> warten`);
41
40
  setTimeout(() => {
42
- WeatherService.playWeatherInfo(sonosDevice, volume, short, retries - 1);
41
+ WeatherService.playWeatherInfo(speaker, volume, short, retries - 1);
43
42
  }, 1000);
44
43
  }
45
44
  else {
@@ -47,19 +46,19 @@ class WeatherService {
47
46
  }
48
47
  return;
49
48
  }
50
- Sonos_1.SonosService.speakOnDevice(short ? `Kurze Wetterinfo:` : `HoffMation Wetter-Bericht:`, sonosDevice, volume, false);
51
- Sonos_1.SonosService.speakOnDevice(`Wetterbeschreibung für heute: ${wData.daily[0].weather[0].description}`, sonosDevice, volume, false);
52
- Sonos_1.SonosService.speakOnDevice(`Aktuell sind es ${Math.round(wData.current.temp)} Grad.`, sonosDevice, volume, false);
49
+ speaker.speakOnDevice(short ? `Kurze Wetterinfo:` : `HoffMation Wetter-Bericht:`, volume, false);
50
+ speaker.speakOnDevice(`Wetterbeschreibung für heute: ${wData.daily[0].weather[0].description}`, volume, false);
51
+ speaker.speakOnDevice(`Aktuell sind es ${Math.round(wData.current.temp)} Grad.`, volume, false);
53
52
  if (!short) {
54
- Sonos_1.SonosService.speakOnDevice(`Heute sollen es im Durchschnitt ${Math.round(wData.daily[0].temp.day)} Grad sein.`, sonosDevice, volume, false);
55
- Sonos_1.SonosService.speakOnDevice(`Die Höchsttemperatur liegt heute bei ${Math.round(wData.daily[0].temp.max)} Grad.`, sonosDevice, volume, false);
56
- Sonos_1.SonosService.speakOnDevice(`Die Tiefsttemperatur soll heute ${Math.round(wData.daily[0].temp.min)} Grad betragen.`, sonosDevice, volume, false);
53
+ speaker.speakOnDevice(`Heute sollen es im Durchschnitt ${Math.round(wData.daily[0].temp.day)} Grad sein.`, volume, false);
54
+ speaker.speakOnDevice(`Die Höchsttemperatur liegt heute bei ${Math.round(wData.daily[0].temp.max)} Grad.`, volume, false);
55
+ speaker.speakOnDevice(`Die Tiefsttemperatur soll heute ${Math.round(wData.daily[0].temp.min)} Grad betragen.`, volume, false);
57
56
  if (wData.daily[0].rain !== undefined) {
58
- Sonos_1.SonosService.speakOnDevice(`Es sollen heute etwa ${Math.round(wData.daily[0].rain)} Millimeter Regen fallen.`, sonosDevice, volume, false);
57
+ speaker.speakOnDevice(`Es sollen heute etwa ${Math.round(wData.daily[0].rain)} Millimeter Regen fallen.`, volume, false);
59
58
  }
60
59
  }
61
60
  if (wData.daily[0].snow !== undefined && wData.daily[0].snow > 0) {
62
- Sonos_1.SonosService.speakOnDevice(`Heute wird es Schneien! Es werden etwa ${Math.round(wData.daily[0].snow)} Millimeter Schnee erwartet.`, sonosDevice, volume, false);
61
+ speaker.speakOnDevice(`Heute wird es Schneien! Es werden etwa ${Math.round(wData.daily[0].snow)} Millimeter Schnee erwartet.`, volume, false);
63
62
  }
64
63
  const { minutes, precipitation } = WeatherService.getRainNextMinutes();
65
64
  const ratio = minutes <= 0 ? 0 : (precipitation / minutes) * 60;
@@ -84,10 +83,10 @@ class WeatherService {
84
83
  message += `bleibt es trocken.`;
85
84
  break;
86
85
  }
87
- Sonos_1.SonosService.speakOnDevice(message, sonosDevice, volume, false);
86
+ speaker.speakOnDevice(message, volume, false);
88
87
  !short &&
89
88
  precipitation > 0 &&
90
- Sonos_1.SonosService.speakOnDevice(`Es werden etwa ${precipitation} Millimeter Niederschlag in den nächsten ${minutes} Minuten fallen`, sonosDevice, volume, false);
89
+ speaker.speakOnDevice(`Es werden etwa ${precipitation} Millimeter Niederschlag in den nächsten ${minutes} Minuten fallen`, volume, false);
91
90
  const alerts = WeatherService.getActiveAlerts();
92
91
  if (alerts.length > 0) {
93
92
  const alertMessage = [`Achtung, vorliegende Wetterwarnungen:`];
@@ -95,10 +94,10 @@ class WeatherService {
95
94
  alertMessage.push(`${element.event} von ${new Date(element.start * 1000).toLocaleString('de-DE')} bis ${new Date(element.end * 1000).toLocaleString('de-DE')}`);
96
95
  // } bis ${new Date(element.end * 1000).toLocaleString("de-DE")}; Beschreibung: ${element.description} Herausgeber: ${element.sender_name}`)
97
96
  });
98
- Sonos_1.SonosService.speakOnDevice(alertMessage.join('\n'), sonosDevice, volume, false);
97
+ speaker.speakOnDevice(alertMessage.join('\n'), volume, false);
99
98
  }
100
99
  else if (!short) {
101
- Sonos_1.SonosService.speakOnDevice(`Für heute liegt keine Unwetterwarnungen vor`, sonosDevice, volume, false);
100
+ speaker.speakOnDevice(`Für heute liegt keine Unwetterwarnungen vor`, volume, false);
102
101
  }
103
102
  }
104
103
  static processHourlyWeather() {