hoffmation-base 2.12.3 → 2.13.0

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 (79) hide show
  1. package/lib/index.d.ts +1 -0
  2. package/lib/index.js +1 -0
  3. package/lib/models/connectionCallbacks.d.ts +0 -2
  4. package/lib/models/deviceConfig.d.ts +0 -1
  5. package/lib/models/deviceSettings/acSettings.d.ts +5 -0
  6. package/lib/models/deviceSettings/acSettings.js +7 -1
  7. package/lib/models/persistence/EnergyCalculation.d.ts +3 -0
  8. package/lib/models/persistence/EnergyCalculation.js +22 -0
  9. package/lib/server/config/iConfig.d.ts +2 -2
  10. package/lib/server/config/iEnergyManagerSettings.d.ts +5 -0
  11. package/lib/server/config/iEnergyManagerSettings.js +2 -0
  12. package/lib/server/config/index.d.ts +1 -0
  13. package/lib/server/config/index.js +1 -0
  14. package/lib/server/devices/IoBrokerBaseDevice.d.ts +0 -1
  15. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +0 -1
  16. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +3 -0
  17. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +0 -1
  18. package/lib/server/devices/blueIris/blueIrisCoordinator.d.ts +0 -1
  19. package/lib/server/devices/blueIris/cameraDevice.d.ts +0 -1
  20. package/lib/server/devices/deviceUpdater.d.ts +0 -2
  21. package/lib/server/devices/devices.d.ts +2 -1
  22. package/lib/server/devices/devices.js +5 -2
  23. package/lib/server/devices/espresense/espresenseCoordinator.d.ts +0 -1
  24. package/lib/server/devices/espresense/espresenseDevice.d.ts +0 -1
  25. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +0 -1
  26. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +0 -1
  27. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +0 -1
  28. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +0 -1
  29. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +0 -1
  30. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +0 -1
  31. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +0 -1
  32. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +0 -1
  33. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +0 -1
  34. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +0 -1
  35. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +0 -1
  36. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +0 -1
  37. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +0 -1
  38. package/lib/server/devices/iDeviceUpdater.d.ts +0 -2
  39. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +0 -1
  40. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +1 -15
  41. package/lib/server/devices/mqtt/mqttCoordinator.d.ts +0 -1
  42. package/lib/server/devices/wledDevice.d.ts +0 -1
  43. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +0 -1
  44. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +0 -1
  45. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +0 -1
  46. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +0 -4
  47. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +0 -1
  48. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +0 -1
  49. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +0 -1
  50. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +0 -1
  51. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +0 -1
  52. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +0 -1
  53. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +0 -1
  54. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +0 -1
  55. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +0 -1
  56. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +0 -1
  57. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +0 -1
  58. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +0 -1
  59. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +0 -1
  60. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +0 -1
  61. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +0 -1
  62. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +0 -1
  63. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +0 -1
  64. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +0 -1
  65. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +0 -1
  66. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +0 -1
  67. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +0 -1
  68. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +0 -1
  69. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +0 -1
  70. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +0 -1
  71. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +0 -1
  72. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +0 -1
  73. package/lib/server/ioBroker/connection.d.ts +0 -2
  74. package/lib/server/services/ac/ac-device.js +5 -1
  75. package/lib/server/services/ac/own-daikin-device.js +1 -0
  76. package/lib/server/services/victron/victron-device.d.ts +9 -0
  77. package/lib/server/services/victron/victron-device.js +46 -0
  78. package/lib/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +21 -14
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Devices, iConfig, ioBrokerMain, iSpeaker } from './server';
2
+ import '@iobroker/types';
2
3
  export * from './models/index';
3
4
  export * from './server/index';
4
5
  export * from './liquid-pid';
package/lib/index.js CHANGED
@@ -18,6 +18,7 @@ exports.HoffmationBase = exports.HoffmationInitializationObject = void 0;
18
18
  const server_1 = require("./server");
19
19
  const models_1 = require("./models");
20
20
  const dachs_1 = require("./server/devices/dachs");
21
+ require("@iobroker/types");
21
22
  __exportStar(require("./models/index"), exports);
22
23
  __exportStar(require("./server/index"), exports);
23
24
  __exportStar(require("./liquid-pid"), exports);
@@ -1,5 +1,3 @@
1
- /// <reference types="iobroker" />
2
- /// <reference types="iobroker" />
3
1
  export declare class ConnectionCallbacks {
4
2
  onAuth?: any;
5
3
  onCommand?(pInstance: string, pCommand: string | number | boolean | any[] | Record<string, any> | null, pData: any): boolean;
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  export interface deviceConfig {
3
2
  type?: ioBroker.ObjectType;
4
3
  _id: string;
@@ -31,6 +31,11 @@ export declare class AcSettings extends DeviceSettings {
31
31
  * @type {boolean}
32
32
  */
33
33
  noCoolingOnMovement: boolean;
34
+ /**
35
+ * Whether this AC should be turned off for some time manually
36
+ * @type {boolean}
37
+ */
38
+ manualDisabled: boolean;
34
39
  fromPartialObject(data: Partial<AcSettings>): void;
35
40
  protected toJSON(): Partial<AcSettings>;
36
41
  }
@@ -37,9 +37,14 @@ class AcSettings extends deviceSettings_1.DeviceSettings {
37
37
  * @type {boolean}
38
38
  */
39
39
  this.noCoolingOnMovement = false;
40
+ /**
41
+ * Whether this AC should be turned off for some time manually
42
+ * @type {boolean}
43
+ */
44
+ this.manualDisabled = false;
40
45
  }
41
46
  fromPartialObject(data) {
42
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
47
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
43
48
  this.minimumHours = (_a = data.minimumHours) !== null && _a !== void 0 ? _a : this.minimumHours;
44
49
  this.minimumMinutes = (_b = data.minimumMinutes) !== null && _b !== void 0 ? _b : this.minimumMinutes;
45
50
  this.maximumHours = (_c = data.maximumHours) !== null && _c !== void 0 ? _c : this.maximumHours;
@@ -49,6 +54,7 @@ class AcSettings extends deviceSettings_1.DeviceSettings {
49
54
  this.heatingAllowed = (_g = data.heatingAllowed) !== null && _g !== void 0 ? _g : this.heatingAllowed;
50
55
  this.noCoolingOnMovement = (_h = data.noCoolingOnMovement) !== null && _h !== void 0 ? _h : this.noCoolingOnMovement;
51
56
  this.useOwnTemperatureAndAutomatic = (_j = data.useOwnTemperatureAndAutomatic) !== null && _j !== void 0 ? _j : this.useOwnTemperatureAndAutomatic;
57
+ this.manualDisabled = (_k = data.manualDisabled) !== null && _k !== void 0 ? _k : this.manualDisabled;
52
58
  super.fromPartialObject(data);
53
59
  }
54
60
  toJSON() {
@@ -1,3 +1,5 @@
1
+ import { LogLevel } from '../logLevel';
2
+ import { LogDebugType } from '../../server';
1
3
  export declare class EnergyCalculation {
2
4
  startMs: number;
3
5
  drawnKwH: number;
@@ -8,4 +10,5 @@ export declare class EnergyCalculation {
8
10
  savedSelfConsume: number;
9
11
  endMs: number;
10
12
  constructor(startMs: number);
13
+ static persist(obj: EnergyCalculation, endMs: number, logger: (level: LogLevel, message: string, logDebugType?: LogDebugType) => void): boolean;
11
14
  }
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EnergyCalculation = void 0;
4
+ const logLevel_1 = require("../logLevel");
5
+ const server_1 = require("../../server");
4
6
  class EnergyCalculation {
5
7
  constructor(startMs) {
6
8
  this.startMs = startMs;
@@ -12,5 +14,25 @@ class EnergyCalculation {
12
14
  this.savedSelfConsume = 0;
13
15
  this.endMs = 0;
14
16
  }
17
+ static persist(obj, endMs, logger) {
18
+ var _a, _b, _c, _d, _e, _f, _g, _h;
19
+ if (obj.drawnKwH === 0 && obj.injectedKwH === 0 && obj.selfConsumedKwH === 0) {
20
+ logger(logLevel_1.LogLevel.Warn, `Not persisting energy Data, as all values are 0.`);
21
+ return false;
22
+ }
23
+ if (!((_a = server_1.SettingsService.settings.energyManager) === null || _a === void 0 ? void 0 : _a.wattagePrice)) {
24
+ logger(logLevel_1.LogLevel.Warn, `Wattage price not set, assuming average of 34ct.`);
25
+ }
26
+ obj.endMs = endMs;
27
+ obj.earnedInjected = server_1.Utils.round(obj.injectedKwH * ((_c = (_b = server_1.SettingsService.settings.energyManager) === null || _b === void 0 ? void 0 : _b.injectWattagePrice) !== null && _c !== void 0 ? _c : 0.06), 4);
28
+ obj.savedSelfConsume = server_1.Utils.round(obj.selfConsumedKwH * ((_e = (_d = server_1.SettingsService.settings.energyManager) === null || _d === void 0 ? void 0 : _d.wattagePrice) !== null && _e !== void 0 ? _e : 0.35), 4);
29
+ obj.costDrawn = server_1.Utils.round(obj.drawnKwH * ((_g = (_f = server_1.SettingsService.settings.energyManager) === null || _f === void 0 ? void 0 : _f.wattagePrice) !== null && _g !== void 0 ? _g : 0.35), 4);
30
+ obj.injectedKwH = server_1.Utils.round(obj.injectedKwH, 4);
31
+ obj.selfConsumedKwH = server_1.Utils.round(obj.selfConsumedKwH, 4);
32
+ obj.drawnKwH = server_1.Utils.round(obj.drawnKwH, 4);
33
+ (_h = server_1.Utils.dbo) === null || _h === void 0 ? void 0 : _h.persistEnergyManager(obj);
34
+ logger(logLevel_1.LogLevel.Info, `Persisting energy Manager Data.`);
35
+ return true;
36
+ }
15
37
  }
16
38
  exports.EnergyCalculation = EnergyCalculation;
@@ -20,13 +20,14 @@ import { iEspresenseSettings } from './iEspresenseSettings';
20
20
  import { iTibberSettings } from './iTibberSettings';
21
21
  import { iVictronSettings } from './iVictronSettings';
22
22
  import { iDachsSettings } from './iDachsSettings';
23
+ import { iEnergyManagerSettings } from './iEnergyManagerSettings';
23
24
  export interface iConfig {
24
25
  asusConfig?: iAsusConfig;
25
26
  blueIris?: iBlueIrisSettings;
26
27
  daikin?: iDaikinSettings;
27
28
  dachs?: iDachsSettings;
29
+ energyManager?: iEnergyManagerSettings;
28
30
  espresense?: iEspresenseSettings;
29
- injectWattagePrice?: number;
30
31
  ioBrokerUrl: string;
31
32
  ioBroker?: iIobrokerSettigns;
32
33
  heaterSettings?: iHeaterSettings;
@@ -43,7 +44,6 @@ export interface iConfig {
43
44
  tibber?: iTibberSettings;
44
45
  timeSettings: iTimeSettings;
45
46
  translationSettings: iTranslationSettings;
46
- wattagePrice?: number;
47
47
  weather?: iWeatherSettings;
48
48
  victron?: iVictronSettings;
49
49
  }
@@ -0,0 +1,5 @@
1
+ export interface iEnergyManagerSettings {
2
+ disableJsEnergyManager?: boolean;
3
+ injectWattagePrice?: number;
4
+ wattagePrice?: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -5,6 +5,7 @@ export * from './iEspresenseSettings';
5
5
  export * from './iRestSettings';
6
6
  export * from './iAsusConfig';
7
7
  export * from './iDaikinSettings';
8
+ export * from './iEnergyManagerSettings';
8
9
  export * from './iSonosSettings';
9
10
  export * from './heatingMode';
10
11
  export * from './iHeaterSettings';
@@ -21,6 +21,7 @@ __exportStar(require("./iEspresenseSettings"), exports);
21
21
  __exportStar(require("./iRestSettings"), exports);
22
22
  __exportStar(require("./iAsusConfig"), exports);
23
23
  __exportStar(require("./iDaikinSettings"), exports);
24
+ __exportStar(require("./iEnergyManagerSettings"), exports);
24
25
  __exportStar(require("./iSonosSettings"), exports);
25
26
  __exportStar(require("./heatingMode"), exports);
26
27
  __exportStar(require("./iHeaterSettings"), exports);
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iRoomDevice } from './baseDeviceInterfaces';
3
2
  import { LogDebugType } from '../services';
4
3
  import { DeviceSettings, LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iMotionSensor } from './iMotionSensor';
3
2
  import { CameraSettings } from '../../../models';
4
3
  export interface iCameraDevice extends iMotionSensor {
@@ -2,6 +2,9 @@ import { iExcessEnergyConsumer } from './iExcessEnergyConsumer';
2
2
  import { iBaseDevice } from './iBaseDevice';
3
3
  export interface iEnergyManager extends iBaseDevice {
4
4
  excessEnergy: number;
5
+ readonly injectingWattage: number;
6
+ readonly drawingWattage: number;
7
+ readonly selfConsumingWattage: number;
5
8
  addExcessConsumer(device: iExcessEnergyConsumer): void;
6
9
  recalculatePowerSharing(): void;
7
10
  cleanup(): void;
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { LedSettings, TimeOfDay } from '../../../models';
3
2
  import { iDimmableLamp } from './iDimmableLamp';
4
3
  export interface iLedRgbCct extends iDimmableLamp {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iCameraDevice } from '../baseDeviceInterfaces';
3
2
  export declare class BlueIrisCoordinator {
4
3
  private static cameraDeviceMap;
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iCameraDevice, iRoomDevice } from '../baseDeviceInterfaces';
3
2
  import { CameraSettings, LogLevel, RoomBase } from '../../../models';
4
3
  import { LogDebugType } from '../../services';
@@ -1,5 +1,3 @@
1
- /// <reference types="iobroker" />
2
- /// <reference types="iobroker" />
3
1
  import { IDeviceUpdater } from './iDeviceUpdater';
4
2
  import { Devices } from './devices';
5
3
  export declare class DeviceUpdater implements IDeviceUpdater {
@@ -1,6 +1,7 @@
1
1
  import { deviceConfig, iRoomImportEnforcer } from '../../models';
2
2
  import { iBaseDevice, iEnergyManager, iTemperatureSensor } from './baseDeviceInterfaces';
3
3
  import { Dachs } from './dachs';
4
+ import { iConfig } from '../config';
4
5
  export declare class Devices {
5
6
  static IDENTIFIER_HOMEMATIC: string;
6
7
  static IDENTIFIER_JS: string;
@@ -14,7 +15,7 @@ export declare class Devices {
14
15
  static temperatureWarmWater?: iTemperatureSensor;
15
16
  constructor(pDeviceData: {
16
17
  [id: string]: deviceConfig;
17
- }, pRoomImportEnforcer?: iRoomImportEnforcer);
18
+ }, pRoomImportEnforcer?: iRoomImportEnforcer, config?: iConfig);
18
19
  static midnightReset(): void;
19
20
  static resetDetectionsToday(): void;
20
21
  static getBatteryInfo(): string;
@@ -11,7 +11,8 @@ const jsObject_1 = require("./jsObject");
11
11
  const wledDevice_1 = require("./wledDevice");
12
12
  const DeviceCapability_1 = require("./DeviceCapability");
13
13
  class Devices {
14
- constructor(pDeviceData, pRoomImportEnforcer) {
14
+ constructor(pDeviceData, pRoomImportEnforcer, config) {
15
+ var _a;
15
16
  // This forces import of rooms at correct timing, to allow devices to land in proper rooms.
16
17
  pRoomImportEnforcer === null || pRoomImportEnforcer === void 0 ? void 0 : pRoomImportEnforcer.addRoomConstructor();
17
18
  services_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Constructing devices now`);
@@ -34,7 +35,9 @@ class Devices {
34
35
  else if (cName.indexOf('00-WLED') === 0) {
35
36
  Devices.processWledDevice(cDevConf);
36
37
  }
37
- else if (cName.indexOf('00-EnergyManager') === 0 && cDevConf.type !== 'folder') {
38
+ else if (cName.indexOf('00-EnergyManager') === 0 &&
39
+ cDevConf.type !== 'folder' &&
40
+ !((_a = config === null || config === void 0 ? void 0 : config.energyManager) === null || _a === void 0 ? void 0 : _a.disableJsEnergyManager)) {
38
41
  services_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Found Energy-Manager in Device json.`);
39
42
  Devices.createEnergyManager(cDevConf);
40
43
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { EspresenseDevice } from './espresenseDevice';
3
2
  export declare class EspresenseCoordinator {
4
3
  private static espDeviceMap;
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iRoomDevice } from '../baseDeviceInterfaces';
3
2
  import { iBluetoothDetector } from '../baseDeviceInterfaces/iBluetoothDetector';
4
3
  import { DeviceCapability } from '../DeviceCapability';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class HmIpAccessPoint extends HmIPDevice {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { MotionSensorSettings } from '../../../models';
4
3
  import { iIlluminationSensor, iMotionSensor } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { IoBrokerBaseDevice } from '../IoBrokerBaseDevice';
3
2
  import { DeviceType } from '../deviceType';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iDisposable } from '../../services';
3
2
  import { WindowPosition } from '../models';
4
3
  import { Window } from '../groups';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { HmIPDevice } from './hmIpDevice';
4
3
  import { iDisposable } from '../../services';
5
4
  import { HeaterSettings, TemperatureSettings } from '../../../models';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  import { iBatteryDevice } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { ActuatorSettings, TimeOfDay } from '../../../models';
4
3
  import { iLamp, iTemporaryDisableAutomatic } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { MotionSensorSettings } from '../../../models';
4
3
  import { iBatteryDevice, iIlluminationSensor, iMotionSensor } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { Window } from '../groups';
4
3
  import { ShutterSettings } from '../../../models';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { iBatteryDevice, iButtonSwitch } from '../baseDeviceInterfaces';
4
3
  import { Button, ButtonPosition, ButtonPressType } from '../button';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  import { iBatteryDevice } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { iDisposable } from '../../services';
4
3
  import { MagnetPosition } from '../models';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { HmIPDevice } from './hmIpDevice';
3
2
  import { Button, ButtonPosition, ButtonPressType } from '../button';
4
3
  import { iButtonSwitch } from '../baseDeviceInterfaces';
@@ -1,5 +1,3 @@
1
- /// <reference types="iobroker" />
2
- /// <reference types="iobroker" />
3
1
  export interface IDeviceUpdater {
4
2
  updateState(id: string, state: ioBroker.State, initial?: boolean): void;
5
3
  updateObject(pId: string, pObj: ioBroker.Object): void;
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { IoBrokerBaseDevice } from '../IoBrokerBaseDevice';
3
2
  import { iEnergyManager, iExcessEnergyConsumer } from '../baseDeviceInterfaces';
4
3
  import { iDisposable } from '../../services';
@@ -148,25 +148,11 @@ class JsObjectEnergyManager extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
148
148
  this._lastPersistenceCalculation = now;
149
149
  }
150
150
  persist() {
151
- var _a, _b, _c, _d;
152
151
  const obj = JSON.parse(JSON.stringify(this._nextPersistEntry));
153
- if (obj.drawnKwH === 0 && obj.injectedKwH === 0 && obj.selfConsumedKwH === 0) {
154
- this.log(models_1.LogLevel.Warn, `Not persisting energy Data, as all values are 0.`);
152
+ if (!models_1.EnergyCalculation.persist(obj, this._lastPersistenceCalculation, this.log.bind(this))) {
155
153
  return;
156
154
  }
157
- if (!services_1.SettingsService.settings.wattagePrice) {
158
- this.log(models_1.LogLevel.Warn, `Wattage price not set, assuming average of 34ct.`);
159
- }
160
155
  this._nextPersistEntry = new models_1.EnergyCalculation(this._lastPersistenceCalculation);
161
- obj.endMs = this._lastPersistenceCalculation;
162
- obj.earnedInjected = services_1.Utils.round(obj.injectedKwH * ((_a = services_1.SettingsService.settings.injectWattagePrice) !== null && _a !== void 0 ? _a : 0.06), 4);
163
- obj.savedSelfConsume = services_1.Utils.round(obj.selfConsumedKwH * ((_b = services_1.SettingsService.settings.wattagePrice) !== null && _b !== void 0 ? _b : 0.35), 4);
164
- obj.costDrawn = services_1.Utils.round(obj.drawnKwH * ((_c = services_1.SettingsService.settings.wattagePrice) !== null && _c !== void 0 ? _c : 0.35), 4);
165
- obj.injectedKwH = services_1.Utils.round(obj.injectedKwH, 4);
166
- obj.selfConsumedKwH = services_1.Utils.round(obj.selfConsumedKwH, 4);
167
- obj.drawnKwH = services_1.Utils.round(obj.drawnKwH, 4);
168
- (_d = services_1.Utils.dbo) === null || _d === void 0 ? void 0 : _d.persistEnergyManager(obj);
169
- this.log(models_1.LogLevel.Info, `Persisting energy Manager Data.`);
170
156
  }
171
157
  turnOnAdditionalConsumer() {
172
158
  const result = services_1.EnergyManagerUtils.turnOnAdditionalConsumer(this._excessEnergyConsumer, this._lastDeviceChange);
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  export declare class MqttCoordinator {
3
2
  static update(idSplit: string[], state: ioBroker.State): void;
4
3
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { IoBrokerBaseDevice } from './IoBrokerBaseDevice';
3
2
  import { TimeOfDay, WledSettings } from '../../models';
4
3
  import { IoBrokerDeviceInfo } from './IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ActuatorSettings } from '../../../../models';
3
2
  import { DeviceType } from '../../deviceType';
4
3
  import { IoBrokerDeviceInfo } from '../../IoBrokerDeviceInfo';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { DeviceType } from '../../deviceType';
4
3
  import { IoBrokerBaseDevice } from '../../IoBrokerBaseDevice';
5
4
  import { IoBrokerDeviceInfo } from '../../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { DimmerSettings, TimeOfDay } from '../../../../models';
3
2
  import { DeviceType } from '../../deviceType';
4
3
  import { ZigbeeDevice } from './index';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { ZigbeeDevice } from './zigbeeDevice';
4
3
  import { iBatteryDevice, iHeater } from '../../baseDeviceInterfaces';
5
4
  import { HeaterSettings, TemperatureSettings } from '../../../../models';
@@ -13,9 +12,6 @@ export declare class ZigbeeHeater extends ZigbeeDevice implements iHeater, iBatt
13
12
  readonly persistHeaterInterval: NodeJS.Timeout;
14
13
  settings: HeaterSettings;
15
14
  get battery(): number;
16
- protected _automaticPoints: {
17
- [name: string]: TemperatureSettings;
18
- };
19
15
  protected _iAutomaticInterval: NodeJS.Timeout | undefined;
20
16
  protected _initialSeasonCheckDone: boolean;
21
17
  protected _level: number;
@@ -22,7 +22,6 @@ class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
22
22
  this.persistHeater();
23
23
  }, 5 * 60 * 1000, this, false);
24
24
  this.settings = new models_1.HeaterSettings();
25
- this._automaticPoints = {};
26
25
  this._initialSeasonCheckDone = false;
27
26
  this._level = 0;
28
27
  this._setPointTemperaturID = '';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { DeviceType } from '../../deviceType';
3
2
  import { LedSettings, TimeOfDay } from '../../../../models';
4
3
  import { IoBrokerDeviceInfo } from '../../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { DeviceType } from '../../deviceType';
3
2
  import { ZigbeeDevice } from './zigbeeDevice';
4
3
  import { MagnetPosition } from '../../models';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { DeviceType } from '../../deviceType';
4
3
  import { ZigbeeDevice } from './index';
5
4
  import { MotionSensorSettings } from '../../../../models';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { DeviceType } from '../../deviceType';
4
3
  import { ShutterCalibration, ShutterSettings } from '../../../../models';
5
4
  import { ZigbeeDevice } from './zigbeeDevice';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iButtonSwitch } from '../../baseDeviceInterfaces';
3
2
  import { ZigbeeDevice } from './zigbeeDevice';
4
3
  import { DeviceType } from '../../deviceType';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeMagnetContact } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeAqaraMagnetContact extends ZigbeeMagnetContact {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeSwitch } from './BaseDevices';
3
2
  import { Button } from '../button';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iIlluminationSensor } from '../baseDeviceInterfaces';
3
2
  import { ZigbeeMotionSensor } from './BaseDevices';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { iBatteryDevice, iVibrationSensor } from '../baseDeviceInterfaces';
3
2
  import { ZigbeeDevice } from './BaseDevices';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { ZigbeeDevice } from './BaseDevices';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
5
4
  import { iBatteryDevice } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ActuatorSettings, ExcessEnergyConsumerSettings } from '../../../models';
3
2
  import { ZigbeeActuator } from './BaseDevices';
4
3
  import { iExcessEnergyConsumer } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeHeater } from './BaseDevices';
3
2
  import { iDisposable } from '../../services';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { ZigbeeDevice } from './BaseDevices';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
5
4
  import { iBatteryDevice, iSmokeDetectorDevice } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeShutter } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeIkeaShutter extends ZigbeeShutter {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeActuator } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeIkeaSteckdose extends ZigbeeActuator {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeActuator } from './BaseDevices';
3
2
  import { DeviceType } from '../deviceType';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeIlluActuator } from './zigbeeIlluActuator';
3
2
  import { TimeOfDay } from '../../../models';
4
3
  import { iLamp } from '../baseDeviceInterfaces';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeShutter } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeIlluShutter extends ZigbeeShutter {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeMagnetContact } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeSMaBiTMagnetContact extends ZigbeeMagnetContact {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeMotionSensor } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeSonoffMotion extends ZigbeeMotionSensor {
@@ -1,5 +1,4 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="iobroker" />
3
2
  import { ZigbeeDevice } from './BaseDevices';
4
3
  import { iBatteryDevice, iHumiditySensor, iTemperatureSensor } from '../baseDeviceInterfaces';
5
4
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeHeater } from './BaseDevices';
3
2
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
3
  export declare class ZigbeeTuyaValve extends ZigbeeHeater {
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { ZigbeeActuator } from './BaseDevices';
3
2
  import { DeviceType } from '../deviceType';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
@@ -1,4 +1,3 @@
1
- /// <reference types="iobroker" />
2
1
  import { TimeOfDay } from '../../../models';
3
2
  import { iLamp } from '../baseDeviceInterfaces';
4
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';