homebridge-solaxcloud-api 2.1.2 → 2.1.4-beta.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.
@@ -1,4 +1,16 @@
1
1
  import { AccessoryPlugin, API, Logging, PlatformConfig } from 'homebridge';
2
+ /**
3
+ * Standard names for accessories.
4
+ */
5
+ export declare const ACCESSORY_KEYS: {
6
+ pv: string;
7
+ inverterToBattery: string;
8
+ inverterFromBattery: string;
9
+ inverterAC: string;
10
+ inverterToGrid: string;
11
+ inverterToHouse: string;
12
+ gridToHouse: string;
13
+ };
2
14
  /**
3
15
  * SolaxCloudAPIPlatformInverter.
4
16
  * This class is the main constructor for your inverter accessories
@@ -16,6 +28,10 @@ export declare class SolaxCloudAPIPlatformInverter {
16
28
  * Inverter serial number.
17
29
  **/
18
30
  private sn;
31
+ /**
32
+ * Whether this inverter has a battery.
33
+ **/
34
+ private batteryInstalled;
19
35
  /**
20
36
  * Size of window for statistical smoothing operations.
21
37
  */
@@ -24,6 +40,10 @@ export declare class SolaxCloudAPIPlatformInverter {
24
40
  * API for retrieving data from Solax cloud.
25
41
  */
26
42
  private solaxCloudAPI;
43
+ /**
44
+ * Virtual motion sensor triggered by data updates from Solax Cloud.
45
+ */
46
+ private motionUpdate;
27
47
  /**
28
48
  * Outlets with raw data gathered from Solax Cloud.
29
49
  */
@@ -34,10 +54,6 @@ export declare class SolaxCloudAPIPlatformInverter {
34
54
  * prevent events like the temporary passage of a cloud to directly affect values.
35
55
  */
36
56
  private smoothOutlets;
37
- /**
38
- * Virtual motion sensor triggered by data updates from Solax Cloud.
39
- */
40
- private motionUpdate;
41
57
  /**
42
58
  * Ambient light sensors for Power Consumption (pure Home App config).
43
59
  */
@@ -60,34 +76,54 @@ export declare class SolaxCloudAPIPlatformInverter {
60
76
  * @param smoothingWindow
61
77
  * @returns
62
78
  */
63
- constructor(log: Logging, config: PlatformConfig, api: API, tokenId: string, sn: string, name: string, smoothingWindow: number);
79
+ constructor(log: Logging, config: PlatformConfig, api: API, tokenId: string, sn: string, name: string, hasBattery: boolean, smoothingWindow: number);
64
80
  /**
65
- * Updates smooth ambient light sensors data from raw outlet data by applying configured smoothing function.
81
+ * Update all platform accessory status based on the values read from the API.
82
+ * @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
66
83
  */
67
- private updateSmoothLightSensors;
84
+ private updateAccessories;
68
85
  /**
69
- * Update raw ambient light sensors with power consumption data from Solax Cloud API.
70
- * @param {SolaxCloudAPIResponse} apiData API data retrieved from Solax Cloud.
71
- */
72
- private updateRawLightSensors;
86
+ * Sets virtual update motion detector to true to notify of new data update.
87
+ */
88
+ setMotionUpdate(): void;
73
89
  /**
74
- * Updates smooth outlet data from raw outlet data by applying configured smoothing function.
75
- */
76
- private updateSmoothOutlets;
90
+ * Sets raw accessory power for this inverter.
91
+ * @param {string} key Accessory key.
92
+ * @param {number} power Power to set (in Watt).
93
+ */
94
+ setRawPower(key: string, power: number): void;
77
95
  /**
78
- * Update raw outlet data from API data read from Solax Cloud.
79
- * @param {SolaxCloudAPIResponse} apiData Solax Cloud API data.
80
- */
81
- private updateRawOutlets;
96
+ * Gets raw accessory power for this inverter.
97
+ * @param {string} key Accessory key.
98
+ * @returns {number} Power consumptions for this accessory.
99
+ */
100
+ getRawPower(key: string): number;
82
101
  /**
83
- * Update all platform accessory status based on the values read from the API.
84
- * @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
85
- */
86
- private updateAccessories;
102
+ * Gets raw accessory energy for this inverter.
103
+ * @param {string} key Accessory key.
104
+ * @returns {number} The energy consumption for the desired acessory (in Wh).
105
+ */
106
+ getRawEnergy(key: string): number;
107
+ /**
108
+ * Sets raw accessory energy for this inverter.
109
+ * @param {string} key Accessory key.
110
+ * @param {number} energy Energy consumption to set (in Wh).
111
+ */
112
+ setRawEnergy(key: string, energy: number): void;
113
+ /**
114
+ * Sets smooth accessory power from raw accessory power for this inverter.
115
+ * @param {string} key Accessory key.
116
+ */
117
+ setSmoothPower(key: string): void;
87
118
  /**
88
119
  * Update data from this inverter by using the Solax Cloud API
89
120
  */
90
- updateInverterData(): void;
121
+ updateInverterDataFromCloud(): void;
122
+ /**
123
+ * Returns whether this inverter has a battery installed.
124
+ * @returns {boolean} Whether this inverter battery has a battery installed.
125
+ */
126
+ hasBattery(): boolean;
91
127
  /**
92
128
  * Get array with full list of accessories for this inverter.
93
129
  * @returns {AccessoryPlugin[]} Array of accessories for this inverter.
@@ -1 +1 @@
1
- {"version":3,"file":"platformInverter.d.ts","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAsB3E;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAE1B;;OAEG;IACH,OAAO,CAAC,IAAI,CAAS;IAErB;;QAEI;IACJ,OAAO,CAAC,EAAE,CAAS;IAEnB;;OAEG;IACH,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAgB;IAErC;;OAEG;IACH,OAAO,CAAC,UAAU,CAAwB;IAE1C;;;;QAII;IACJ,OAAO,CAAC,aAAa,CAAwB;IAE7C;;QAEI;IACJ,OAAO,CAAC,YAAY,CAAwB;IAE5C;;QAEI;IACJ,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;;QAII;IACJ,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,iCAAiC;IACjC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD;;;;;;;;;QASI;gBACS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAmI/H;;QAEI;IACJ,OAAO,CAAC,wBAAwB;IAkBhC;;;QAGI;IACJ,OAAO,CAAC,qBAAqB;IAQ7B;;QAEI;IACJ,OAAO,CAAC,mBAAmB;IAkB3B;;;QAGI;IACJ,OAAO,CAAC,gBAAgB;IASxB;;;QAGI;IACJ,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACI,kBAAkB;IAkBzB;;;OAGG;IACI,cAAc,IAAI,eAAe,EAAE;CAI3C"}
1
+ {"version":3,"file":"platformInverter.d.ts","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAW3E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAC;AA4BF;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAE1B;;OAEG;IACH,OAAO,CAAC,IAAI,CAAS;IAErB;;QAEI;IACJ,OAAO,CAAC,EAAE,CAAS;IAEnB;;QAEI;IACJ,OAAO,CAAC,gBAAgB,CAAU;IAElC;;OAEG;IACH,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAgB;IAErC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAwB;IAE5C;;OAEG;IACH,OAAO,CAAC,UAAU,CAAwB;IAE1C;;;;QAII;IACJ,OAAO,CAAC,aAAa,CAAwB;IAE7C;;QAEI;IACJ,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;;QAII;IACJ,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,iCAAiC;IACjC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD;;;;;;;;;QASI;gBACS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EACzD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAC9D,eAAe,EAAE,MAAM;IA8KzB;;;QAGI;IACJ,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACI,eAAe;IAItB;;;;OAIG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQ7C;;;;OAIG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIvC;;;;OAIG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxC;;;;OAIG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI/C;;;OAGG;IACI,cAAc,CAAC,GAAG,EAAE,MAAM;IAUjC;;OAEG;IACI,2BAA2B;IAkBlC;;;OAGG;IACI,UAAU,IAAI,OAAO;IAI5B;;;OAGG;IACI,cAAc,IAAI,eAAe,EAAE;CAI3C"}
@@ -1,20 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolaxCloudAPIPlatformInverter = void 0;
3
+ exports.SolaxCloudAPIPlatformInverter = exports.ACCESSORY_KEYS = void 0;
4
4
  const solaxcloudapi_1 = require("./solaxcloudapi");
5
5
  const outletAccessory_1 = require("./outletAccessory");
6
6
  const lightSensorAccessory_1 = require("./lightSensorAccessory");
7
7
  const motionAccessory_1 = require("./motionAccessory");
8
+ /**
9
+ * Standard names for accessories.
10
+ */
11
+ exports.ACCESSORY_KEYS = {
12
+ pv: 'pv',
13
+ inverterToBattery: 'inverterToBattery',
14
+ inverterFromBattery: 'inverterFromBattery',
15
+ inverterAC: 'inverterAC',
16
+ inverterToGrid: 'inverterToGrid',
17
+ inverterToHouse: 'inverterToHouse',
18
+ gridToHouse: 'gridToHouse',
19
+ };
8
20
  /**
9
21
  * Standard names for accessories.
10
22
  */
11
23
  const ACCESSORY_NAMES = {
12
24
  pv: 'PV',
25
+ inverterToBattery: 'To Battery',
26
+ inverterFromBattery: 'From Battery',
13
27
  inverterAC: 'AC',
14
28
  inverterToGrid: 'To Grid',
15
29
  inverterToHouse: 'To House',
16
30
  gridToHouse: 'From Grid',
17
31
  };
32
+ /**
33
+ * Standar prefixes for accessory serials.
34
+ */
35
+ const ACCESSORY_SERIAL_PREFIXES = {
36
+ pv: 'pv',
37
+ inverterToBattery: 'inv-tobat',
38
+ inverterFromBattery: 'inv-frombat',
39
+ inverterAC: 'inv-ac',
40
+ inverterToGrid: 'inv-grid',
41
+ inverterToHouse: 'inv-house',
42
+ gridToHouse: 'grid-house',
43
+ };
18
44
  /**
19
45
  * SolaxCloudAPIPlatformInverter.
20
46
  * This class is the main constructor for your inverter accessories
@@ -31,7 +57,7 @@ class SolaxCloudAPIPlatformInverter {
31
57
  * @param smoothingWindow
32
58
  * @returns
33
59
  */
34
- constructor(log, config, api, tokenId, sn, name, smoothingWindow) {
60
+ constructor(log, config, api, tokenId, sn, name, hasBattery, smoothingWindow) {
35
61
  /** Array with all accessories */
36
62
  this.solaxAccessories = [];
37
63
  // store values in properties
@@ -42,6 +68,7 @@ class SolaxCloudAPIPlatformInverter {
42
68
  this.sn = sn.toLowerCase();
43
69
  this.name = name;
44
70
  this.smoothingWindow = smoothingWindow;
71
+ this.batteryInstalled = hasBattery;
45
72
  this.log.info(`Initialing acessories for inverter "${name}" (SN="${sn}")...`);
46
73
  // init new Solax Cloud API object with give tokenID and sn
47
74
  this.solaxCloudAPI = new solaxcloudapi_1.SolaxCloudAPI(tokenId, sn);
@@ -58,11 +85,13 @@ class SolaxCloudAPIPlatformInverter {
58
85
  }
59
86
  // setup raw outlet accessories
60
87
  this.rawOutlets = {
61
- pv: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv}`, `pv-${this.sn}`, inverterModel),
62
- inverterAC: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC}`, `inv-ac-${this.sn}`, inverterModel),
63
- inverterToGrid: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid}`, `inv-grid-${this.sn}`, inverterModel),
64
- inverterToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse}`, `inv-house-${this.sn}`, inverterModel),
65
- gridToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse}`, `grid-house-${this.sn}`, inverterModel),
88
+ pv: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv}`, `${ACCESSORY_SERIAL_PREFIXES.pv}-${this.sn}`, inverterModel),
89
+ inverterFromBattery: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery}`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-${this.sn}`, inverterModel),
90
+ inverterToBattery: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-${this.sn}`, inverterModel),
91
+ inverterAC: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC}`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-${this.sn}`, inverterModel),
92
+ inverterToGrid: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-${this.sn}`, inverterModel),
93
+ inverterToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-${this.sn}`, inverterModel),
94
+ gridToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse}`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-${this.sn}`, inverterModel),
66
95
  };
67
96
  // setup update motion sensor
68
97
  this.motionUpdate =
@@ -71,114 +100,146 @@ class SolaxCloudAPIPlatformInverter {
71
100
  this.solaxAccessories =
72
101
  [this.rawOutlets.pv, this.rawOutlets.inverterAC, this.rawOutlets.inverterToGrid,
73
102
  this.rawOutlets.inverterToHouse, this.rawOutlets.gridToHouse, this.motionUpdate];
103
+ if (this.batteryInstalled) {
104
+ this.solaxAccessories.push(this.rawOutlets.inverterFromBattery, this.rawOutlets.inverterToBattery);
105
+ }
74
106
  // check if "pure" Home App accessories are needed
75
107
  if (this.config.pureHomeApp) {
76
108
  // add raw light sensors
77
109
  this.rawLightSensors = {
78
- pv: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor`, `pv-light-${this.sn}`, inverterModel),
79
- inverterAC: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor`, `inv-ac-light-${this.sn}`, inverterModel),
80
- inverterToGrid: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor`, `inv-grid-light-${this.sn}`, inverterModel),
81
- inverterToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor`, `inv-house-light-${this.sn}`, inverterModel),
82
- gridToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor`, `grid-house-light-${this.sn}`, inverterModel),
110
+ pv: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor`, `${ACCESSORY_SERIAL_PREFIXES.pv}-light-${this.sn}`, inverterModel),
111
+ inverterFromBattery: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-light-${this.sn}`, inverterModel),
112
+ inverterToBattery: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-light-${this.sn}`, inverterModel),
113
+ inverterAC: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-light-${this.sn}`, inverterModel),
114
+ inverterToGrid: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-light-${this.sn}`, inverterModel),
115
+ inverterToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-light-${this.sn}`, inverterModel),
116
+ gridToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-light-${this.sn}`, inverterModel),
83
117
  };
84
118
  this.solaxAccessories.push(this.rawLightSensors.pv, this.rawLightSensors.inverterAC, this.rawLightSensors.inverterToGrid, this.rawLightSensors.inverterToHouse, this.rawLightSensors.gridToHouse);
119
+ if (this.batteryInstalled) {
120
+ this.solaxAccessories.push(this.rawLightSensors.inverterFromBattery, this.rawLightSensors.inverterToBattery);
121
+ }
85
122
  if (this.config.smoothMeters) {
86
123
  // add smooth light sensors
87
124
  this.smoothLightSensors = {
88
- pv: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor (smooth)`, `pv-light-${this.sn}`, inverterModel),
89
- inverterAC: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor (smooth)`, `inv-ac-light-smooth-${this.sn}`, inverterModel),
90
- inverterToGrid: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor (smooth)`, `inv-grid-light-smooth-${this.sn}`, inverterModel),
91
- inverterToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor (smooth)`, `inv-house-light-smooth-${this.sn}`, inverterModel),
92
- gridToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor (smooth)`, `grid-house-light-smooth-${this.sn}`, inverterModel),
125
+ pv: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.pv}-light-smooth-${this.sn}`, inverterModel),
126
+ inverterFromBattery: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-light-smooth-${this.sn}`, inverterModel),
127
+ inverterToBattery: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-light-smooth-${this.sn}`, inverterModel),
128
+ inverterAC: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-light-smooth-${this.sn}`, inverterModel),
129
+ inverterToGrid: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-light-smooth-${this.sn}`, inverterModel),
130
+ inverterToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-light-smooth-${this.sn}`, inverterModel),
131
+ gridToHouse: new lightSensorAccessory_1.SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-light-smooth-${this.sn}`, inverterModel),
93
132
  };
94
133
  this.solaxAccessories.push(this.smoothLightSensors.pv, this.smoothLightSensors.inverterAC, this.smoothLightSensors.inverterToGrid, this.smoothLightSensors.inverterToHouse, this.smoothLightSensors.gridToHouse);
134
+ if (this.batteryInstalled) {
135
+ this.solaxAccessories.push(this.smoothLightSensors.inverterFromBattery, this.smoothLightSensors.inverterToBattery);
136
+ }
95
137
  }
96
138
  }
97
139
  else {
98
140
  if (this.config.smoothMeters) {
99
141
  // setup smooth outlet accessories
100
142
  this.smoothOutlets = {
101
- pv: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} (smooth)`, `pv-smooth-${this.sn}`, inverterModel),
102
- inverterAC: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} (smooth)`, `inv-ac-smooth-${this.sn}`, inverterModel),
103
- inverterToGrid: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} (smooth)`, `inv-grid-smooth-${this.sn}`, inverterModel),
104
- inverterToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} (smooth)`, `inv-house-smooth-${this.sn}`, inverterModel),
105
- gridToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} (smooth)`, `grid-house-smooth-${this.sn}`, inverterModel),
143
+ pv: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.pv}-smooth-${this.sn}`, inverterModel),
144
+ inverterFromBattery: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-smooth-${this.sn}`, inverterModel),
145
+ inverterToBattery: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-smooth-${this.sn}`, inverterModel),
146
+ inverterAC: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-smooth-${this.sn}`, inverterModel),
147
+ inverterToGrid: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-smooth-${this.sn}`, inverterModel),
148
+ inverterToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-smooth-${this.sn}`, inverterModel),
149
+ gridToHouse: new outletAccessory_1.SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} (smooth)`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-smooth-${this.sn}`, inverterModel),
106
150
  };
107
151
  this.solaxAccessories.push(this.smoothOutlets.pv, this.smoothOutlets.inverterAC, this.smoothOutlets.inverterToGrid, this.smoothOutlets.inverterToHouse, this.smoothOutlets.gridToHouse);
152
+ if (this.batteryInstalled) {
153
+ this.solaxAccessories.push(this.smoothOutlets.inverterFromBattery, this.smoothOutlets.inverterToBattery);
154
+ }
108
155
  }
109
156
  }
110
157
  }
111
158
  /**
112
- * Updates smooth ambient light sensors data from raw outlet data by applying configured smoothing function.
159
+ * Update all platform accessory status based on the values read from the API.
160
+ * @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
113
161
  */
114
- updateSmoothLightSensors() {
115
- this.smoothLightSensors.pv.setAmbientLightLevel(this.rawOutlets.pv.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
116
- this.smoothLightSensors.inverterAC.setAmbientLightLevel(this.rawOutlets.inverterAC.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
117
- this.smoothLightSensors.inverterToGrid.setAmbientLightLevel(this.rawOutlets.inverterToGrid.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
118
- this.smoothLightSensors.inverterToHouse.setAmbientLightLevel(this.rawOutlets.inverterToHouse.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
119
- this.smoothLightSensors.gridToHouse.setAmbientLightLevel(this.rawOutlets.gridToHouse.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
162
+ updateAccessories(apiData) {
163
+ // update raw sensors
164
+ this.setRawPower(exports.ACCESSORY_KEYS.pv, solaxcloudapi_1.SolaxCloudAPI.getPVPower(apiData.result));
165
+ this.setRawPower(exports.ACCESSORY_KEYS.inverterFromBattery, solaxcloudapi_1.SolaxCloudAPI.getInverterPowerFromBattery(apiData.result));
166
+ this.setRawPower(exports.ACCESSORY_KEYS.inverterToBattery, solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToBattery(apiData.result));
167
+ this.setRawPower(exports.ACCESSORY_KEYS.inverterAC, solaxcloudapi_1.SolaxCloudAPI.getInverterACPower(apiData.result));
168
+ this.setRawEnergy(exports.ACCESSORY_KEYS.inverterAC, solaxcloudapi_1.SolaxCloudAPI.getYieldTotal(apiData.result));
169
+ this.setRawPower(exports.ACCESSORY_KEYS.inverterToGrid, solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToGrid(apiData.result));
170
+ this.setRawPower(exports.ACCESSORY_KEYS.inverterToHouse, solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToHouse(apiData.result));
171
+ this.setRawPower(exports.ACCESSORY_KEYS.gridToHouse, solaxcloudapi_1.SolaxCloudAPI.getGridPowerToHouse(apiData.result));
172
+ if (this.config.smoothMeters) {
173
+ // update smooth light sensors from raw outlets by applying smoothing function to power consumption
174
+ this.setSmoothPower(exports.ACCESSORY_KEYS.pv);
175
+ this.setSmoothPower(exports.ACCESSORY_KEYS.inverterFromBattery);
176
+ this.setSmoothPower(exports.ACCESSORY_KEYS.inverterToBattery);
177
+ this.setSmoothPower(exports.ACCESSORY_KEYS.inverterAC);
178
+ this.setSmoothPower(exports.ACCESSORY_KEYS.inverterToGrid);
179
+ this.setSmoothPower(exports.ACCESSORY_KEYS.inverterToHouse);
180
+ this.setSmoothPower(exports.ACCESSORY_KEYS.gridToHouse);
181
+ }
182
+ // notify update with motion sensor
183
+ this.setMotionUpdate();
120
184
  }
121
185
  /**
122
- * Update raw ambient light sensors with power consumption data from Solax Cloud API.
123
- * @param {SolaxCloudAPIResponse} apiData API data retrieved from Solax Cloud.
124
- */
125
- updateRawLightSensors(apiData) {
126
- this.rawLightSensors.pv.setAmbientLightLevel(solaxcloudapi_1.SolaxCloudAPI.getPVPower(apiData.result));
127
- this.rawLightSensors.inverterAC.setAmbientLightLevel(solaxcloudapi_1.SolaxCloudAPI.getInverterACPower(apiData.result));
128
- this.rawLightSensors.inverterToGrid.setAmbientLightLevel(solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToGrid(apiData.result));
129
- this.rawLightSensors.inverterToHouse.setAmbientLightLevel(solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToHouse(apiData.result));
130
- this.rawLightSensors.gridToHouse.setAmbientLightLevel(solaxcloudapi_1.SolaxCloudAPI.getGridPowerToHouse(apiData.result));
186
+ * Sets virtual update motion detector to true to notify of new data update.
187
+ */
188
+ setMotionUpdate() {
189
+ this.motionUpdate.setState(true);
131
190
  }
132
191
  /**
133
- * Updates smooth outlet data from raw outlet data by applying configured smoothing function.
134
- */
135
- updateSmoothOutlets() {
136
- this.smoothOutlets.pv.setPowerConsumption(this.rawOutlets.pv.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
137
- this.smoothOutlets.inverterAC.setPowerConsumption(this.rawOutlets.inverterAC.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
138
- this.smoothOutlets.inverterToGrid.setPowerConsumption(this.rawOutlets.inverterToGrid.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
139
- this.smoothOutlets.inverterToHouse.setPowerConsumption(this.rawOutlets.inverterToHouse.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
140
- this.smoothOutlets.gridToHouse.setPowerConsumption(this.rawOutlets.gridToHouse.getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow));
192
+ * Sets raw accessory power for this inverter.
193
+ * @param {string} key Accessory key.
194
+ * @param {number} power Power to set (in Watt).
195
+ */
196
+ setRawPower(key, power) {
197
+ this.rawOutlets[key].setPowerConsumption(power);
198
+ if (this.config.pureHomeApp) {
199
+ this.rawLightSensors[key].setAmbientLightLevel(power);
200
+ }
141
201
  }
142
202
  /**
143
- * Update raw outlet data from API data read from Solax Cloud.
144
- * @param {SolaxCloudAPIResponse} apiData Solax Cloud API data.
145
- */
146
- updateRawOutlets(apiData) {
147
- this.rawOutlets.pv.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getPVPower(apiData.result));
148
- this.rawOutlets.inverterAC.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getInverterACPower(apiData.result));
149
- this.rawOutlets.inverterAC.setTotalEnergyConsumption(solaxcloudapi_1.SolaxCloudAPI.getYieldTotal(apiData.result));
150
- this.rawOutlets.inverterToGrid.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToGrid(apiData.result));
151
- this.rawOutlets.inverterToHouse.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToHouse(apiData.result));
152
- this.rawOutlets.gridToHouse.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getGridPowerToHouse(apiData.result));
203
+ * Gets raw accessory power for this inverter.
204
+ * @param {string} key Accessory key.
205
+ * @returns {number} Power consumptions for this accessory.
206
+ */
207
+ getRawPower(key) {
208
+ return this.rawOutlets[key].getPowerConsumption();
153
209
  }
154
210
  /**
155
- * Update all platform accessory status based on the values read from the API.
156
- * @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
157
- */
158
- updateAccessories(apiData) {
159
- // update raw outlets on/off, power & energy settings
160
- this.updateRawOutlets(apiData);
211
+ * Gets raw accessory energy for this inverter.
212
+ * @param {string} key Accessory key.
213
+ * @returns {number} The energy consumption for the desired acessory (in Wh).
214
+ */
215
+ getRawEnergy(key) {
216
+ return this.rawOutlets[key].getTotalEnergyConsumption();
217
+ }
218
+ /**
219
+ * Sets raw accessory energy for this inverter.
220
+ * @param {string} key Accessory key.
221
+ * @param {number} energy Energy consumption to set (in Wh).
222
+ */
223
+ setRawEnergy(key, energy) {
224
+ this.rawOutlets[key].setTotalEnergyConsumption(energy);
225
+ }
226
+ /**
227
+ * Sets smooth accessory power from raw accessory power for this inverter.
228
+ * @param {string} key Accessory key.
229
+ */
230
+ setSmoothPower(key) {
231
+ const smoothPower = this.rawOutlets[key].getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow);
161
232
  if (this.config.pureHomeApp) {
162
- // update raw light sensors with power consumption
163
- this.updateRawLightSensors(apiData);
164
- if (this.config.smoothMeters) {
165
- // update smooth light sensors from raw outlets by applying smoothing function to power consumption
166
- this.updateSmoothLightSensors();
167
- }
233
+ this.smoothLightSensors[key].setAmbientLightLevel(smoothPower);
168
234
  }
169
235
  else {
170
- if (this.config.smoothMeters) {
171
- // update smooth outlets data from raw outlets by applying smoothing function to power consumption
172
- this.updateSmoothOutlets();
173
- }
236
+ this.smoothOutlets[key].setPowerConsumption(smoothPower);
174
237
  }
175
- // update motion sensor
176
- this.motionUpdate.setState(true);
177
238
  }
178
239
  /**
179
240
  * Update data from this inverter by using the Solax Cloud API
180
241
  */
181
- updateInverterData() {
242
+ updateInverterDataFromCloud() {
182
243
  try {
183
244
  this.log.info(`Retrieving data from Solax Cloud API for inverter "${this.name}" (SN="${this.sn}")`);
184
245
  const apiData = this.solaxCloudAPI.getAPIData();
@@ -194,6 +255,13 @@ class SolaxCloudAPIPlatformInverter {
194
255
  this.log.error(`Failed to read from Solax Cloud API for inverter "${this.name}" (SN="${this.sn})". Error: ${error}`);
195
256
  }
196
257
  }
258
+ /**
259
+ * Returns whether this inverter has a battery installed.
260
+ * @returns {boolean} Whether this inverter battery has a battery installed.
261
+ */
262
+ hasBattery() {
263
+ return this.batteryInstalled;
264
+ }
197
265
  /**
198
266
  * Get array with full list of accessories for this inverter.
199
267
  * @returns {AccessoryPlugin[]} Array of accessories for this inverter.
@@ -1 +1 @@
1
- {"version":3,"file":"platformInverter.js","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformInverter.js","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"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"}
@@ -6,23 +6,31 @@ import { SolaxOutletAccessory } from './outletAccessory';
6
6
  export interface PlatformOutletMeters {
7
7
  /**
8
8
  * Virtual outlet used to detect and measure photovoltaic production.
9
- */
9
+ */
10
10
  pv: SolaxOutletAccessory;
11
11
  /**
12
- * Virtual outlet used to detect and measure inverter AC production.
13
- */
12
+ * Virtual outlet used to measure DC power sent to battery.
13
+ */
14
+ inverterToBattery: SolaxOutletAccessory;
15
+ /**
16
+ * Virtual outlet used to measure DC power sent to battery.
17
+ */
18
+ inverterFromBattery: SolaxOutletAccessory;
19
+ /**
20
+ * Virtual outlet used to detect and measure inverter AC production.
21
+ */
14
22
  inverterAC: SolaxOutletAccessory;
15
23
  /**
16
- * Virtual outlet used to detect and measure inverter excess production injected in the grid.
17
- */
24
+ * Virtual outlet used to detect and measure inverter excess production injected in the grid.
25
+ */
18
26
  inverterToGrid: SolaxOutletAccessory;
19
27
  /**
20
- * Virtual outlet used to detect and measure inverter production directly fed into the house (self-consumption).
21
- */
28
+ * Virtual outlet used to detect and measure inverter production directly fed into the house (self-consumption).
29
+ */
22
30
  inverterToHouse: SolaxOutletAccessory;
23
31
  /**
24
- * Virtual outlet used to detect and measure grid power fed into the house.
25
- */
32
+ * Virtual outlet used to detect and measure grid power fed into the house.
33
+ */
26
34
  gridToHouse: SolaxOutletAccessory;
27
35
  }
28
36
  /**
@@ -31,23 +39,31 @@ export interface PlatformOutletMeters {
31
39
  export interface PlatformLightSensorMeters {
32
40
  /**
33
41
  * Virtual ambient light meter used to detect and measure photovoltaic production.
34
- */
42
+ */
35
43
  pv: SolaxLightSensorAccessory;
36
44
  /**
37
- * Virtual ambient light meter used to detect and measure inverter AC production.
38
- */
45
+ * Virtual ambient light meter used to measure DC power sent to battery.
46
+ */
47
+ inverterToBattery: SolaxLightSensorAccessory;
48
+ /**
49
+ * Virtual ambient light meter used to measure DC power sent to battery.
50
+ */
51
+ inverterFromBattery: SolaxLightSensorAccessory;
52
+ /**
53
+ * Virtual ambient light meter used to detect and measure inverter AC production.
54
+ */
39
55
  inverterAC: SolaxLightSensorAccessory;
40
56
  /**
41
- * Virtual ambient light meter used to detect and measure inverter excess production injected in the grid.
42
- */
57
+ * Virtual ambient light meter used to detect and measure inverter excess production injected in the grid.
58
+ */
43
59
  inverterToGrid: SolaxLightSensorAccessory;
44
60
  /**
45
- * Virtual ambient light meter used to detect and measure inverter production directly fed into the house (self-consumption).
46
- */
61
+ * Virtual ambient light meter used to detect and measure inverter production directly fed into the house (self-consumption).
62
+ */
47
63
  inverterToHouse: SolaxLightSensorAccessory;
48
64
  /**
49
- * Virtual ambient light meter used to detect and measure grid power fed into the house.
50
- */
65
+ * Virtual ambient light meter used to detect and measure grid power fed into the house.
66
+ */
51
67
  gridToHouse: SolaxLightSensorAccessory;
52
68
  }
53
69
  //# sourceMappingURL=platformMeters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platformMeters.d.ts","sourceRoot":"","sources":["../src/platformMeters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;MAEE;IACF,EAAE,EAAE,oBAAoB,CAAC;IAEzB;;MAEE;IACF,UAAU,EAAE,oBAAoB,CAAC;IAEjC;;MAEE;IACF,cAAc,EAAE,oBAAoB,CAAC;IAErC;;MAEE;IACF,eAAe,EAAE,oBAAoB,CAAC;IAEtC;;MAEE;IACF,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAEH;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;MAEE;IACF,EAAE,EAAE,yBAAyB,CAAC;IAE9B;;MAEE;IACF,UAAU,EAAE,yBAAyB,CAAC;IAEtC;;MAEE;IACF,cAAc,EAAE,yBAAyB,CAAC;IAE1C;;MAEE;IACF,eAAe,EAAE,yBAAyB,CAAC;IAE3C;;MAEE;IACF,WAAW,EAAE,yBAAyB,CAAC;CACxC"}
1
+ {"version":3,"file":"platformMeters.d.ts","sourceRoot":"","sources":["../src/platformMeters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,EAAE,EAAE,oBAAoB,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,oBAAoB,CAAC;IAExC;;OAEG;IACH,mBAAmB,EAAE,oBAAoB,CAAC;IAE1C;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAC;IAEjC;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IAErC;;OAEG;IACH,eAAe,EAAE,oBAAoB,CAAC;IAEtC;;OAEG;IACH,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,EAAE,EAAE,yBAAyB,CAAC;IAE9B;;KAEC;IACD,iBAAiB,EAAE,yBAAyB,CAAC;IAE7C;;OAEG;IACH,mBAAmB,EAAE,yBAAyB,CAAC;IAE/C;;OAEG;IACH,UAAU,EAAE,yBAAyB,CAAC;IAEtC;;OAEG;IACH,cAAc,EAAE,yBAAyB,CAAC;IAE1C;;OAEG;IACH,eAAe,EAAE,yBAAyB,CAAC;IAE3C;;OAEG;IACH,WAAW,EAAE,yBAAyB,CAAC;CACxC"}