@pietrolubini/homebridge-ecoflow 1.3.0 → 1.4.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 (188) hide show
  1. package/README.md +174 -40
  2. package/config.schema.json +14 -2
  3. package/dist/accessories/batteries/delta2/delta2Accessory.d.ts +10 -0
  4. package/dist/accessories/batteries/delta2/delta2Accessory.js +14 -0
  5. package/dist/accessories/batteries/delta2/delta2Accessory.js.map +1 -0
  6. package/dist/accessories/batteries/delta2/delta2AccessoryBase.d.ts +32 -0
  7. package/dist/accessories/batteries/{batteryAccessoryBase.js → delta2/delta2AccessoryBase.js} +71 -32
  8. package/dist/accessories/batteries/delta2/delta2AccessoryBase.js.map +1 -0
  9. package/dist/accessories/batteries/delta2/delta2MaxAccessory.d.ts +10 -0
  10. package/dist/accessories/batteries/delta2/delta2MaxAccessory.js +14 -0
  11. package/dist/accessories/batteries/delta2/delta2MaxAccessory.js.map +1 -0
  12. package/dist/accessories/batteries/delta2/interfaces/delta2Configuration.d.ts +4 -0
  13. package/dist/accessories/batteries/{interfaces/httpApiBatteryContracts.js → delta2/interfaces/delta2Configuration.js} +1 -1
  14. package/dist/accessories/batteries/delta2/interfaces/delta2Configuration.js.map +1 -0
  15. package/dist/accessories/batteries/delta2/interfaces/delta2HttpApiContracts.d.ts +40 -0
  16. package/dist/accessories/batteries/delta2/interfaces/delta2HttpApiContracts.js +4 -0
  17. package/dist/accessories/batteries/delta2/interfaces/delta2HttpApiContracts.js.map +1 -0
  18. package/dist/accessories/batteries/delta2/interfaces/delta2MqttApiContracts.d.ts +45 -0
  19. package/dist/accessories/batteries/delta2/interfaces/delta2MqttApiContracts.js +25 -0
  20. package/dist/accessories/batteries/delta2/interfaces/delta2MqttApiContracts.js.map +1 -0
  21. package/dist/accessories/batteries/delta2/services/delta2OutletServiceBase.d.ts +5 -0
  22. package/dist/accessories/batteries/{services/outletBatteryServiceBase.js → delta2/services/delta2OutletServiceBase.js} +4 -4
  23. package/dist/accessories/batteries/delta2/services/delta2OutletServiceBase.js.map +1 -0
  24. package/dist/accessories/batteries/delta2/services/outletAcService.d.ts +10 -0
  25. package/dist/accessories/batteries/delta2/services/outletAcService.js +23 -0
  26. package/dist/accessories/batteries/delta2/services/outletAcService.js.map +1 -0
  27. package/dist/accessories/batteries/delta2/services/outletCarService.d.ts +7 -0
  28. package/dist/accessories/batteries/delta2/services/outletCarService.js +16 -0
  29. package/dist/accessories/batteries/delta2/services/outletCarService.js.map +1 -0
  30. package/dist/accessories/batteries/delta2/services/outletCarService.spec.d.ts +1 -0
  31. package/dist/accessories/batteries/delta2/services/outletUsbService.d.ts +7 -0
  32. package/dist/accessories/batteries/delta2/services/outletUsbService.js +16 -0
  33. package/dist/accessories/batteries/delta2/services/outletUsbService.js.map +1 -0
  34. package/dist/accessories/batteries/delta2/services/outletUsbService.spec.d.ts +1 -0
  35. package/dist/accessories/batteries/delta2/services/switchXboostService.d.ts +10 -0
  36. package/dist/accessories/batteries/delta2/services/switchXboostService.js +33 -0
  37. package/dist/accessories/batteries/delta2/services/switchXboostService.js.map +1 -0
  38. package/dist/accessories/batteries/delta2/services/switchXboostService.spec.d.ts +1 -0
  39. package/dist/accessories/batteries/delta2/simulations/delta2Simulator.d.ts +6 -0
  40. package/dist/accessories/batteries/delta2/simulations/delta2Simulator.js +73 -0
  41. package/dist/accessories/batteries/delta2/simulations/delta2Simulator.js.map +1 -0
  42. package/dist/accessories/batteries/deltapro/deltaProAccessory.d.ts +3 -0
  43. package/dist/accessories/batteries/deltapro/deltaProAccessory.js +8 -0
  44. package/dist/accessories/batteries/deltapro/deltaProAccessory.js.map +1 -0
  45. package/dist/accessories/batteries/{batteryAccessoryBase.d.ts → deltapro/deltaProAccessoryBase.d.ts} +8 -9
  46. package/dist/accessories/batteries/deltapro/deltaProAccessoryBase.js +119 -0
  47. package/dist/accessories/batteries/deltapro/deltaProAccessoryBase.js.map +1 -0
  48. package/dist/accessories/batteries/deltapro/deltaProAccessoryBase.spec.d.ts +1 -0
  49. package/dist/accessories/batteries/{interfaces/httpApiBatteryContracts.d.ts → deltapro/interfaces/deltaProHttpApiContracts.d.ts} +10 -8
  50. package/dist/accessories/batteries/deltapro/interfaces/deltaProHttpApiContracts.js +3 -0
  51. package/dist/accessories/batteries/deltapro/interfaces/deltaProHttpApiContracts.js.map +1 -0
  52. package/dist/accessories/batteries/deltapro/interfaces/deltaProMqttApiContracts.d.ts +30 -0
  53. package/dist/accessories/batteries/deltapro/interfaces/deltaProMqttApiContracts.js +3 -0
  54. package/dist/accessories/batteries/deltapro/interfaces/deltaProMqttApiContracts.js.map +1 -0
  55. package/dist/accessories/batteries/deltapro/services/deltaProOutletServiceBase.d.ts +5 -0
  56. package/dist/accessories/batteries/deltapro/services/deltaProOutletServiceBase.js +17 -0
  57. package/dist/accessories/batteries/deltapro/services/deltaProOutletServiceBase.js.map +1 -0
  58. package/dist/accessories/batteries/deltapro/services/outletAcService.d.ts +8 -0
  59. package/dist/accessories/batteries/deltapro/services/outletAcService.js +20 -0
  60. package/dist/accessories/batteries/deltapro/services/outletAcService.js.map +1 -0
  61. package/dist/accessories/batteries/deltapro/services/outletAcService.spec.d.ts +1 -0
  62. package/dist/accessories/batteries/deltapro/services/outletCarService.d.ts +7 -0
  63. package/dist/accessories/batteries/deltapro/services/outletCarService.js +19 -0
  64. package/dist/accessories/batteries/deltapro/services/outletCarService.js.map +1 -0
  65. package/dist/accessories/batteries/deltapro/services/outletCarService.spec.d.ts +1 -0
  66. package/dist/accessories/batteries/deltapro/services/outletUsbService.d.ts +7 -0
  67. package/dist/accessories/batteries/deltapro/services/outletUsbService.js +14 -0
  68. package/dist/accessories/batteries/deltapro/services/outletUsbService.js.map +1 -0
  69. package/dist/accessories/batteries/deltapro/services/outletUsbService.spec.d.ts +1 -0
  70. package/dist/accessories/batteries/deltapro/services/switchXboostService.d.ts +9 -0
  71. package/dist/accessories/batteries/deltapro/services/switchXboostService.js +31 -0
  72. package/dist/accessories/batteries/deltapro/services/switchXboostService.js.map +1 -0
  73. package/dist/accessories/batteries/deltapro/services/switchXboostService.spec.d.ts +1 -0
  74. package/dist/accessories/batteries/deltapro/simulations/deltaProSimulator.d.ts +6 -0
  75. package/dist/accessories/batteries/deltapro/simulations/deltaProSimulator.js +48 -0
  76. package/dist/accessories/batteries/deltapro/simulations/deltaProSimulator.js.map +1 -0
  77. package/dist/accessories/batteries/deltaproultra/deltaProUltraAccessory.d.ts +28 -0
  78. package/dist/accessories/batteries/deltaproultra/deltaProUltraAccessory.js +123 -0
  79. package/dist/accessories/batteries/deltaproultra/deltaProUltraAccessory.js.map +1 -0
  80. package/dist/accessories/batteries/deltaproultra/deltaProUltraAccessory.spec.d.ts +1 -0
  81. package/dist/accessories/batteries/deltaproultra/interfaces/deltaProUltraHttpApiContracts.d.ts +48 -0
  82. package/dist/accessories/batteries/deltaproultra/interfaces/deltaProUltraHttpApiContracts.js +10 -0
  83. package/dist/accessories/batteries/deltaproultra/interfaces/deltaProUltraHttpApiContracts.js.map +1 -0
  84. package/dist/accessories/batteries/deltaproultra/interfaces/deltaProUltraMqttApiContracts.d.ts +33 -0
  85. package/dist/accessories/batteries/deltaproultra/interfaces/deltaProUltraMqttApiContracts.js +15 -0
  86. package/dist/accessories/batteries/deltaproultra/interfaces/deltaProUltraMqttApiContracts.js.map +1 -0
  87. package/dist/accessories/batteries/deltaproultra/services/deltaProUltraOutletServiceBase.d.ts +5 -0
  88. package/dist/accessories/batteries/deltaproultra/services/deltaProUltraOutletServiceBase.js +17 -0
  89. package/dist/accessories/batteries/deltaproultra/services/deltaProUltraOutletServiceBase.js.map +1 -0
  90. package/dist/accessories/batteries/deltaproultra/services/outletAcService.d.ts +8 -0
  91. package/dist/accessories/batteries/deltaproultra/services/outletAcService.js +14 -0
  92. package/dist/accessories/batteries/deltaproultra/services/outletAcService.js.map +1 -0
  93. package/dist/accessories/batteries/deltaproultra/services/outletAcService.spec.d.ts +1 -0
  94. package/dist/accessories/batteries/deltaproultra/services/outletUsbService.d.ts +8 -0
  95. package/dist/accessories/batteries/deltaproultra/services/outletUsbService.js +18 -0
  96. package/dist/accessories/batteries/deltaproultra/services/outletUsbService.js.map +1 -0
  97. package/dist/accessories/batteries/deltaproultra/services/outletUsbService.spec.d.ts +1 -0
  98. package/dist/accessories/batteries/deltaproultra/services/switchXboostService.d.ts +9 -0
  99. package/dist/accessories/batteries/deltaproultra/services/switchXboostService.js +31 -0
  100. package/dist/accessories/batteries/deltaproultra/services/switchXboostService.js.map +1 -0
  101. package/dist/accessories/batteries/deltaproultra/services/switchXboostService.spec.d.ts +1 -0
  102. package/dist/accessories/batteries/deltaproultra/simulations/deltaProUltraSimulator.d.ts +6 -0
  103. package/dist/accessories/batteries/deltaproultra/simulations/deltaProUltraSimulator.js +50 -0
  104. package/dist/accessories/batteries/deltaproultra/simulations/deltaProUltraSimulator.js.map +1 -0
  105. package/dist/accessories/batteries/interfaces/batteryHttpApiContracts.d.ts +20 -0
  106. package/dist/accessories/batteries/interfaces/batteryHttpApiContracts.js +28 -0
  107. package/dist/accessories/batteries/interfaces/batteryHttpApiContracts.js.map +1 -0
  108. package/dist/accessories/ecoFlowAccessoryBase.js +3 -1
  109. package/dist/accessories/ecoFlowAccessoryBase.js.map +1 -1
  110. package/dist/accessories/powerstream/interfaces/powerStreamHttpApiContracts.d.ts +21 -0
  111. package/dist/accessories/powerstream/interfaces/powerStreamHttpApiContracts.js +9 -0
  112. package/dist/accessories/powerstream/interfaces/powerStreamHttpApiContracts.js.map +1 -0
  113. package/dist/accessories/powerstream/interfaces/powerStreamMqttApiContracts.d.ts +44 -0
  114. package/dist/accessories/powerstream/interfaces/powerStreamMqttApiContracts.js +21 -0
  115. package/dist/accessories/powerstream/interfaces/powerStreamMqttApiContracts.js.map +1 -0
  116. package/dist/accessories/powerstream/powerStreamAccessory.d.ts +3 -2
  117. package/dist/accessories/powerstream/powerStreamAccessory.js +15 -12
  118. package/dist/accessories/powerstream/powerStreamAccessory.js.map +1 -1
  119. package/dist/accessories/powerstream/services/outletInvService.d.ts +2 -1
  120. package/dist/accessories/powerstream/services/outletInvService.js +2 -2
  121. package/dist/accessories/powerstream/services/outletInvService.js.map +1 -1
  122. package/dist/accessories/powerstream/services/outletService.d.ts +3 -2
  123. package/dist/accessories/powerstream/services/outletService.js +2 -2
  124. package/dist/accessories/powerstream/services/outletService.js.map +1 -1
  125. package/dist/accessories/powerstream/services/powerDemandService.js +2 -2
  126. package/dist/accessories/powerstream/simulations/powerStreamSimulator.d.ts +3 -3
  127. package/dist/accessories/powerstream/simulations/powerStreamSimulator.js +5 -4
  128. package/dist/accessories/powerstream/simulations/powerStreamSimulator.js.map +1 -1
  129. package/dist/apis/containers/mqttClientContainer.js +5 -0
  130. package/dist/apis/containers/mqttClientContainer.js.map +1 -1
  131. package/dist/apis/containers/mqttDevice.js +1 -1
  132. package/dist/apis/containers/mqttDevice.js.map +1 -1
  133. package/dist/apis/interfaces/mqttApiContracts.d.ts +15 -4
  134. package/dist/apis/interfaces/mqttApiContracts.js.map +1 -1
  135. package/dist/config.d.ts +3 -1
  136. package/dist/config.js +4 -0
  137. package/dist/config.js.map +1 -1
  138. package/dist/helpers/batteryStatusProvider.d.ts +4 -0
  139. package/dist/helpers/batteryStatusProvider.js +12 -0
  140. package/dist/helpers/batteryStatusProvider.js.map +1 -0
  141. package/dist/helpers/batteryStatusProvider.spec.d.ts +1 -0
  142. package/dist/homebridge-ui/public/index.html +1 -1
  143. package/dist/homebridge-ui/public/index.js +1 -1
  144. package/dist/homebridge-ui/public/renderers/pluginConfigDevicesRenderer.d.ts +2 -0
  145. package/dist/platform.d.ts +1 -0
  146. package/dist/platform.js +20 -9
  147. package/dist/platform.js.map +1 -1
  148. package/dist/services/batteryStatusService.d.ts +5 -3
  149. package/dist/services/batteryStatusService.js +8 -9
  150. package/dist/services/batteryStatusService.js.map +1 -1
  151. package/dist/services/outletServiceBase.d.ts +6 -2
  152. package/dist/services/outletServiceBase.js +19 -8
  153. package/dist/services/outletServiceBase.js.map +1 -1
  154. package/dist/services/switchXboostServiceBase.d.ts +9 -0
  155. package/dist/services/switchXboostServiceBase.js +23 -0
  156. package/dist/services/switchXboostServiceBase.js.map +1 -0
  157. package/dist/services/switchXboostServiceBase.spec.d.ts +1 -0
  158. package/junit.xml +757 -343
  159. package/package.json +1 -1
  160. package/dist/accessories/batteries/batteryAccessoryBase.js.map +0 -1
  161. package/dist/accessories/batteries/delta2Accessory.d.ts +0 -3
  162. package/dist/accessories/batteries/delta2Accessory.js +0 -8
  163. package/dist/accessories/batteries/delta2Accessory.js.map +0 -1
  164. package/dist/accessories/batteries/delta2maxAccessory.d.ts +0 -3
  165. package/dist/accessories/batteries/delta2maxAccessory.js +0 -8
  166. package/dist/accessories/batteries/delta2maxAccessory.js.map +0 -1
  167. package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.js.map +0 -1
  168. package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.d.ts +0 -36
  169. package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.js +0 -18
  170. package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.js.map +0 -1
  171. package/dist/accessories/batteries/services/outletAcService.d.ts +0 -8
  172. package/dist/accessories/batteries/services/outletAcService.js +0 -24
  173. package/dist/accessories/batteries/services/outletAcService.js.map +0 -1
  174. package/dist/accessories/batteries/services/outletBatteryServiceBase.d.ts +0 -5
  175. package/dist/accessories/batteries/services/outletBatteryServiceBase.js.map +0 -1
  176. package/dist/accessories/batteries/services/outletCarService.d.ts +0 -6
  177. package/dist/accessories/batteries/services/outletCarService.js +0 -17
  178. package/dist/accessories/batteries/services/outletCarService.js.map +0 -1
  179. package/dist/accessories/batteries/services/outletUsbService.d.ts +0 -6
  180. package/dist/accessories/batteries/services/outletUsbService.js +0 -15
  181. package/dist/accessories/batteries/services/outletUsbService.js.map +0 -1
  182. package/dist/accessories/batteries/simulations/batterySimulator.d.ts +0 -6
  183. package/dist/accessories/batteries/simulations/batterySimulator.js +0 -60
  184. package/dist/accessories/batteries/simulations/batterySimulator.js.map +0 -1
  185. /package/dist/accessories/batteries/{batteryAccessoryBase.spec.d.ts → delta2/delta2Accessory.spec.d.ts} +0 -0
  186. /package/dist/accessories/batteries/{services/outletAcService.spec.d.ts → delta2/delta2AccessoryBase.spec.d.ts} +0 -0
  187. /package/dist/accessories/batteries/{services/outletCarService.spec.d.ts → delta2/delta2MaxAccessory.spec.d.ts} +0 -0
  188. /package/dist/accessories/batteries/{services/outletUsbService.spec.d.ts → delta2/services/outletAcService.spec.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PowerDemandService = void 0;
4
- const mqttApiPowerStreamContracts_1 = require("@ecoflow/accessories/powerstream/interfaces/mqttApiPowerStreamContracts");
4
+ const powerStreamMqttApiContracts_1 = require("@ecoflow/accessories/powerstream/interfaces/powerStreamMqttApiContracts");
5
5
  const fanServiceBase_1 = require("@ecoflow/services/fanServiceBase");
6
6
  class PowerDemandService extends fanServiceBase_1.FanServiceBase {
7
7
  constructor(ecoFlowAccessory, maxPowerDemand) {
@@ -15,7 +15,7 @@ class PowerDemandService extends fanServiceBase_1.FanServiceBase {
15
15
  const message = {
16
16
  id: 0,
17
17
  version: '',
18
- cmdCode: mqttApiPowerStreamContracts_1.MqttPowerStreamSetCmdCodeType.WN511_SET_PERMANENT_WATTS_PACK,
18
+ cmdCode: powerStreamMqttApiContracts_1.PowerStreamMqttSetCmdCodeType.WN511_SET_PERMANENT_WATTS_PACK,
19
19
  params: {
20
20
  permanentWatts: value,
21
21
  },
@@ -1,6 +1,6 @@
1
- import { MqttPowerStreamSetMessage } from '@ecoflow/accessories/powerstream/interfaces/mqttApiPowerStreamContracts';
1
+ import { PowerStreamMqttSetMessage } from '@ecoflow/accessories/powerstream/interfaces/powerStreamMqttApiContracts';
2
2
  import { SimulatorTyped } from '@ecoflow/apis/simulations/simulator';
3
- export declare class PowerStreamSimulator extends SimulatorTyped<MqttPowerStreamSetMessage> {
3
+ export declare class PowerStreamSimulator extends SimulatorTyped<PowerStreamMqttSetMessage> {
4
4
  generateQuota(): object;
5
- generateSetReplyTyped(message: MqttPowerStreamSetMessage): object;
5
+ generateSetReplyTyped(message: PowerStreamMqttSetMessage): object;
6
6
  }
@@ -1,20 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PowerStreamSimulator = void 0;
4
- const mqttApiPowerStreamContracts_1 = require("@ecoflow/accessories/powerstream/interfaces/mqttApiPowerStreamContracts");
4
+ const batteryHttpApiContracts_1 = require("@ecoflow/accessories/batteries/interfaces/batteryHttpApiContracts");
5
+ const powerStreamMqttApiContracts_1 = require("@ecoflow/accessories/powerstream/interfaces/powerStreamMqttApiContracts");
5
6
  const simulator_1 = require("@ecoflow/apis/simulations/simulator");
6
7
  class PowerStreamSimulator extends simulator_1.SimulatorTyped {
7
8
  generateQuota() {
8
9
  const quota = {
9
- cmdFunc: mqttApiPowerStreamContracts_1.MqttPowerStreamMessageFuncType.Func20,
10
- cmdId: mqttApiPowerStreamContracts_1.MqttPowerStreamMessageType.Heartbeat,
10
+ cmdFunc: powerStreamMqttApiContracts_1.PowerStreamMqttMessageFuncType.Func20,
11
+ cmdId: powerStreamMqttApiContracts_1.PowerStreamMqttMessageType.Heartbeat,
11
12
  param: {
12
13
  pv1InputWatts: this.getRandomNumber(1, 3000),
13
14
  pv2InputWatts: this.getRandomNumber(1, 3000),
14
15
  batInputWatts: this.getRandomNumber(-6000, 6000),
15
16
  batSoc: this.getRandomNumber(0, 100),
16
17
  invOutputWatts: this.getRandomNumber(-6000, 6000),
17
- invOnOff: this.getRandomBoolean(),
18
+ invOnOff: this.getRandomBoolean() ? batteryHttpApiContracts_1.EnableType.On : batteryHttpApiContracts_1.EnableType.Off,
18
19
  supplyPriority: Math.floor(this.getRandomNumber(0, 1)),
19
20
  permanentWatts: this.getRandomNumber(0, 6000),
20
21
  upperLimit: Math.floor(this.getRandomNumber(1, 30)),
@@ -1 +1 @@
1
- {"version":3,"file":"powerStreamSimulator.js","sourceRoot":"","sources":["../../../../src/accessories/powerstream/simulations/powerStreamSimulator.ts"],"names":[],"mappings":";;;AACA,yHAKiF;AAEjF,mEAAqE;AAErE,MAAa,oBAAqB,SAAQ,0BAAyC;IACjE,aAAa;QAC3B,MAAM,KAAK,GAAqD;YAC9D,OAAO,EAAE,4DAA8B,CAAC,MAAM;YAC9C,KAAK,EAAE,wDAA0B,CAAC,SAAS;YAC3C,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC5C,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC5C,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;gBAChD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;gBACpC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;gBACjD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACjC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC7C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACrD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aACzD;SACF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAEe,qBAAqB,CAAC,OAAkC;QACtE,MAAM,KAAK,GAAwB;YACjC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE;gBACJ,GAAG,EAAE,KAAK;aACX;SACF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhCD,oDAgCC"}
1
+ {"version":3,"file":"powerStreamSimulator.js","sourceRoot":"","sources":["../../../../src/accessories/powerstream/simulations/powerStreamSimulator.ts"],"names":[],"mappings":";;;AAAA,+GAA+F;AAE/F,yHAKiF;AAEjF,mEAAqE;AAErE,MAAa,oBAAqB,SAAQ,0BAAyC;IACjE,aAAa;QAC3B,MAAM,KAAK,GAAqD;YAC9D,OAAO,EAAE,4DAA8B,CAAC,MAAM;YAC9C,KAAK,EAAE,wDAA0B,CAAC,SAAS;YAC3C,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC5C,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC5C,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;gBAChD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC;gBACpC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;gBACjD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,oCAAU,CAAC,EAAE,CAAC,CAAC,CAAC,oCAAU,CAAC,GAAG;gBAClE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC7C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACrD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aACzD;SACF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAEe,qBAAqB,CAAC,OAAkC;QACtE,MAAM,KAAK,GAAwB;YACjC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE;gBACJ,GAAG,EAAE,KAAK;aACX;SACF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhCD,oDAgCC"}
@@ -30,6 +30,11 @@ class MqttClientContainer {
30
30
  if (!(config.serialNumber in this.devicesCache)) {
31
31
  this.devicesCache[config.serialNumber] = [];
32
32
  }
33
+ const devices = this.devicesCache[config.serialNumber];
34
+ if (devices.find(d => d.config.name === config.name)) {
35
+ // Ignore adding the same device multiple times
36
+ return;
37
+ }
33
38
  this.devicesCache[config.serialNumber].push(new mqttDevice_1.MqttDevice(config, log));
34
39
  }
35
40
  getAllDevices() {
@@ -1 +1 @@
1
- {"version":3,"file":"mqttClientContainer.js","sourceRoot":"","sources":["../../../src/apis/containers/mqttClientContainer.ts"],"names":[],"mappings":";;;AAAA,oEAAiE;AAMjE,MAAa,mBAAmB;IAIF;IAHpB,OAAO,GAA2B,IAAI,CAAC;IAC9B,YAAY,GAAuC,EAAE,CAAC;IAEvE,YAA4B,eAAuC;QAAvC,oBAAe,GAAf,eAAe,CAAwB;IAAG,CAAC;IAEvE,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,MAAM,CAAC,UAA2B;QAC3C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,WAAW;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,UAAU,CAAC,YAA2B;QAC3C,IAAI,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,MAAwB,EAAE,GAAY;QACrD,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,uBAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,aAAa;QAClB,MAAM,UAAU,GAAiB,EAAE,CAAC;QACpC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA1CD,kDA0CC"}
1
+ {"version":3,"file":"mqttClientContainer.js","sourceRoot":"","sources":["../../../src/apis/containers/mqttClientContainer.ts"],"names":[],"mappings":";;;AAAA,oEAAiE;AAMjE,MAAa,mBAAmB;IAIF;IAHpB,OAAO,GAA2B,IAAI,CAAC;IAC9B,YAAY,GAAuC,EAAE,CAAC;IAEvE,YAA4B,eAAuC;QAAvC,oBAAe,GAAf,eAAe,CAAwB;IAAG,CAAC;IAEvE,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,MAAM,CAAC,UAA2B;QAC3C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,WAAW;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,UAAU,CAAC,YAA2B;QAC3C,IAAI,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,MAAwB,EAAE,GAAY;QACrD,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,+CAA+C;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,uBAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,aAAa;QAClB,MAAM,UAAU,GAAiB,EAAE,CAAC;QACpC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA/CD,kDA+CC"}
@@ -15,7 +15,7 @@ class MqttDevice {
15
15
  this.log = log;
16
16
  }
17
17
  processReceivedMessage(topicType, message) {
18
- this.log.debug(`Received message: ${JSON.stringify(message, null, 2)}`);
18
+ this.log.debug(`Received message (topic: ${topicType}): ${JSON.stringify(message, null, 2)}`);
19
19
  switch (topicType) {
20
20
  case mqttApiContracts_1.MqttTopicType.Quota:
21
21
  this.quotaSubject.next(message);
@@ -1 +1 @@
1
- {"version":3,"file":"mqttDevice.js","sourceRoot":"","sources":["../../../src/apis/containers/mqttDevice.ts"],"names":[],"mappings":";;;AAAA,gFAKmD;AAGnD,+BAAyD;AAEzD,MAAa,UAAU;IAOZ;IACS;IAPD,YAAY,GAA8B,IAAI,cAAO,EAAoB,CAAC;IAC1E,eAAe,GAAiC,IAAI,cAAO,EAAuB,CAAC;IACnF,MAAM,GAAiC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IACxE,SAAS,GAAoC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;IAElG,YACS,MAAwB,EACf,GAAY;QADrB,WAAM,GAAN,MAAM,CAAkB;QACf,QAAG,GAAH,GAAG,CAAS;IAC3B,CAAC;IAEG,sBAAsB,CAAC,SAAwB,EAAE,OAAoB;QAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,gCAAa,CAAC,KAAK;gBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAA2B,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,gCAAa,CAAC,QAAQ;gBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAA8B,CAAC,CAAC;gBAC1D,MAAM;YACR;gBACE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEM,kBAAkB,CACvB,SAAwB,EACxB,QAAqC;QAErC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,gCAAa,CAAC,KAAK;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAmB,CAAC,CAAC,CAAC;YACzE,KAAK,gCAAa,CAAC,QAAQ;gBACzB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAmB,CAAC,CAAC,CAAC;YAC5E;gBACE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,SAAS,CAAC,CAAC;gBACrE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAvCD,gCAuCC"}
1
+ {"version":3,"file":"mqttDevice.js","sourceRoot":"","sources":["../../../src/apis/containers/mqttDevice.ts"],"names":[],"mappings":";;;AAAA,gFAKmD;AAGnD,+BAAyD;AAEzD,MAAa,UAAU;IAOZ;IACS;IAPD,YAAY,GAA8B,IAAI,cAAO,EAAoB,CAAC;IAC1E,eAAe,GAAiC,IAAI,cAAO,EAAuB,CAAC;IACnF,MAAM,GAAiC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IACxE,SAAS,GAAoC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;IAElG,YACS,MAAwB,EACf,GAAY;QADrB,WAAM,GAAN,MAAM,CAAkB;QACf,QAAG,GAAH,GAAG,CAAS;IAC3B,CAAC;IAEG,sBAAsB,CAAC,SAAwB,EAAE,OAAoB;QAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,gCAAa,CAAC,KAAK;gBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAA2B,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,gCAAa,CAAC,QAAQ;gBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAA8B,CAAC,CAAC;gBAC1D,MAAM;YACR;gBACE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEM,kBAAkB,CACvB,SAAwB,EACxB,QAAqC;QAErC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,gCAAa,CAAC,KAAK;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAmB,CAAC,CAAC,CAAC;YACzE,KAAK,gCAAa,CAAC,QAAQ;gBACzB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAmB,CAAC,CAAC,CAAC;YAC5E;gBACE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,SAAS,CAAC,CAAC;gBACrE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAvCD,gCAuCC"}
@@ -8,6 +8,9 @@ export interface MqttQuotaMessageWithParams<TParams> extends MqttQuotaMessage {
8
8
  export interface MqttQuotaMessageWithParam<TParams> extends MqttQuotaMessage {
9
9
  param: TParams;
10
10
  }
11
+ export interface MqttQuotaMessageWithData<TParams> extends MqttQuotaMessage {
12
+ data: TParams;
13
+ }
11
14
  export interface MqttSetMessage extends MqttMessage {
12
15
  id: number;
13
16
  version: string;
@@ -15,10 +18,18 @@ export interface MqttSetMessage extends MqttMessage {
15
18
  export interface MqttSetMessageWithParams<TParams> extends MqttSetMessage {
16
19
  params: TParams;
17
20
  }
18
- export interface MqttSetReplyMessage extends MqttSetMessage {
19
- data: {
20
- ack: boolean;
21
- };
21
+ export interface MqttAckSetReplyMessageData {
22
+ ack?: boolean;
23
+ }
24
+ export interface MqttResultSetReplyMessageData {
25
+ result?: boolean;
26
+ }
27
+ export interface MqttSetReplyMessageData extends MqttAckSetReplyMessageData, MqttResultSetReplyMessageData {
28
+ }
29
+ export interface MqttSetReplyMessage extends MqttSetReplyMessageWithData<MqttSetReplyMessageData> {
30
+ }
31
+ export interface MqttSetReplyMessageWithData<TData extends MqttSetReplyMessageData> extends MqttSetMessage {
32
+ data: TData;
22
33
  }
23
34
  export declare enum MqttTopicType {
24
35
  Quota = "quota",
@@ -1 +1 @@
1
- {"version":3,"file":"mqttApiContracts.js","sourceRoot":"","sources":["../../../src/apis/interfaces/mqttApiContracts.ts"],"names":[],"mappings":";;;AA2BA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,uCAAsB,CAAA;AACxB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
1
+ {"version":3,"file":"mqttApiContracts.js","sourceRoot":"","sources":["../../../src/apis/interfaces/mqttApiContracts.ts"],"names":[],"mappings":";;;AAyCA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,uCAAsB,CAAA;AACxB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
package/dist/config.d.ts CHANGED
@@ -38,7 +38,9 @@ export interface BatteryDeviceConfig {
38
38
  export declare enum AdditionalBatteryCharacteristicType {
39
39
  BatteryLevel = "Battery Level, %",
40
40
  InputConsumptionInWatts = "Input Consumption, W",
41
- OutputConsumptionInWatts = "Output Consumption, W"
41
+ OutputConsumptionInWatts = "Output Consumption, W",
42
+ ChargingState = "Charging State",
43
+ StatusLowBattery = "Status Low Battery"
42
44
  }
43
45
  export declare enum PowerStreamConsumptionType {
44
46
  W600 = 600,
package/dist/config.js CHANGED
@@ -5,6 +5,8 @@ var DeviceModel;
5
5
  (function (DeviceModel) {
6
6
  DeviceModel["Delta2Max"] = "Delta 2 Max";
7
7
  DeviceModel["Delta2"] = "Delta 2";
8
+ // DeltaPro = 'Delta Pro',
9
+ // DeltaProUltra = 'Delta Pro Ultra',
8
10
  DeviceModel["PowerStream"] = "PowerStream";
9
11
  })(DeviceModel || (exports.DeviceModel = DeviceModel = {}));
10
12
  var LocationType;
@@ -17,6 +19,8 @@ var AdditionalBatteryCharacteristicType;
17
19
  AdditionalBatteryCharacteristicType["BatteryLevel"] = "Battery Level, %";
18
20
  AdditionalBatteryCharacteristicType["InputConsumptionInWatts"] = "Input Consumption, W";
19
21
  AdditionalBatteryCharacteristicType["OutputConsumptionInWatts"] = "Output Consumption, W";
22
+ AdditionalBatteryCharacteristicType["ChargingState"] = "Charging State";
23
+ AdditionalBatteryCharacteristicType["StatusLowBattery"] = "Status Low Battery";
20
24
  })(AdditionalBatteryCharacteristicType || (exports.AdditionalBatteryCharacteristicType = AdditionalBatteryCharacteristicType = {}));
21
25
  var PowerStreamConsumptionType;
22
26
  (function (PowerStreamConsumptionType) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAOA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,iCAAkB,CAAA;IAClB,0CAA2B,CAAA;AAC7B,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yBAAS,CAAA;IACT,yBAAS,CAAA;AACX,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AA8BD,IAAY,mCAIX;AAJD,WAAY,mCAAmC;IAC7C,wEAAiC,CAAA;IACjC,uFAAgD,CAAA;IAChD,yFAAkD,CAAA;AACpD,CAAC,EAJW,mCAAmC,mDAAnC,mCAAmC,QAI9C;AAED,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,6EAAU,CAAA;IACV,6EAAU,CAAA;AACZ,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAOA,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,iCAAkB,CAAA;IAClB,0BAA0B;IAC1B,qCAAqC;IACrC,0CAA2B,CAAA;AAC7B,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yBAAS,CAAA;IACT,yBAAS,CAAA;AACX,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AA8BD,IAAY,mCAMX;AAND,WAAY,mCAAmC;IAC7C,wEAAiC,CAAA;IACjC,uFAAgD,CAAA;IAChD,yFAAkD,CAAA;IAClD,uEAAgC,CAAA;IAChC,8EAAuC,CAAA;AACzC,CAAC,EANW,mCAAmC,mDAAnC,mCAAmC,QAM9C;AAED,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,6EAAU,CAAA;IACV,6EAAU,CAAA;AACZ,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC"}
@@ -0,0 +1,4 @@
1
+ import { EcoFlowCharacteristic } from '@ecoflow/platform';
2
+ export declare class BatteryStatusProvider {
3
+ getStatusLowBattery(characteristic: EcoFlowCharacteristic, batteryLevel: number, dischargeLimit: number): number;
4
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BatteryStatusProvider = void 0;
4
+ class BatteryStatusProvider {
5
+ getStatusLowBattery(characteristic, batteryLevel, dischargeLimit) {
6
+ return batteryLevel < dischargeLimit + 5
7
+ ? characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
8
+ : characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
9
+ }
10
+ }
11
+ exports.BatteryStatusProvider = BatteryStatusProvider;
12
+ //# sourceMappingURL=batteryStatusProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batteryStatusProvider.js","sourceRoot":"","sources":["../../src/helpers/batteryStatusProvider.ts"],"names":[],"mappings":";;;AAEA,MAAa,qBAAqB;IACzB,mBAAmB,CACxB,cAAqC,EACrC,YAAoB,EACpB,cAAsB;QAEtB,OAAO,YAAY,GAAG,cAAc,GAAG,CAAC;YACtC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB;YACnD,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IAC3D,CAAC;CACF;AAVD,sDAUC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -3,4 +3,4 @@
3
3
  if (typeof renderEcoFlowPluginConfig === 'function') {
4
4
  renderEcoFlowPluginConfig(homebridge);
5
5
  }
6
- });</script><script defer="defer" src="./index.js?q=c634f5b376ebee080d80"></script>
6
+ });</script><script defer="defer" src="./index.js?q=019bc1170b56d7572cf0"></script>
@@ -1 +1 @@
1
- (()=>{"use strict";var e={999:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ComponentRenderer=void 0,n.ComponentRenderer=class{renderTextBox(e,n,i,r,t){const o='\n <div class="form-group">\n <label for="device{id}" class="{requiredClass}">{title}</label>\n <input type="text" class="form-control" id="device{id}" placeholder="{description}" required="{required}" />\n </div>'.replace(/{id}/g,n).replace(/{title}/g,i.title).replace(/{description}/g,i.description??"").replace(/{requiredClass}/g,i.required?"required-label":"").replace(/{required}/g,(i.required??!1).toString());e.append(o);const a=e.find(`#device${n}`);a.val(r),a.on("change",(()=>t(a.val()?.toString()||"")))}renderDropDown(e,n,i,r,t){const o='\n <div class="form-group">\n <label for="device{id}" class="{requiredClass}">{title}</label>\n <select class="form-control" id="device{id}" required="{required}"></select>\n </div>'.replace(/{id}/g,n).replace(/{title}/g,i.title).replace(/{requiredClass}/g,i.required?"required-label":"").replace(/{required}/g,(i.required??!1).toString());e.append(o);const a=e.find(`#device${n}`);i.enum.forEach((e=>{const n=$("<option>").val(e).text(e);a.append(n)})),a.val(r),a.on("change",(()=>t(a.val()?.toString()||"")))}}},84:(e,n,i)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.PluginConfigDevicesRenderer=void 0;const r=i(536);class t extends r.PluginConfigRendererBase{form;$tabs;$tabPanels;constructor(e){super(e),this.$tabs=$("#devicesTabs"),this.$tabPanels=$("#devicesPanels")}render(e){this.renderDevicesSettings({homebridgeProvider:e.homebridgeProvider,configSchema:e.configSchema,configuration:e.configuration,hideDeviceSettingsPerModel:{"Delta 2":["powerStream"],"Delta 2 Max":["powerStream"],PowerStream:["battery"]}})}renderDevicesSettings(e,n){$("#devicesLabel").text(e.configSchema.schema.properties.devices.title);const i=!n||n<0?0:n;this.renderDeviceTabs(e,i)}renderDeviceTabs(e,n){this.clearDeviceTabs();const i='\n <li class="nav-item">\n <a class="nav-link {activeClass}" data-toggle="tab" href="#deviceTabPanel{index}" id="deviceTab{index}">{name}</a>\n </li>\n ';e.configuration.devices.forEach(((r,t)=>{const o=i.replace(/{activeClass}/g,t===n?"active":"").replace(/{index}/g,t.toString()).replace(/{name}/g,r.name??`Device${t+1}`);this.$tabs.append(o),this.renderDeviceTabPanel(e,r,t,n,this.$tabs.find(`#deviceTab${t}`))})),this.renderAddNewDeviceTab(i,e)}clearDeviceTabs(){this.$tabs.empty(),this.$tabPanels.empty(),this.form?.end()}renderAddNewDeviceTab(e,n){const i=e.replace(/{activeClass}/g,"").replace(/{index}/g,"Add").replace(/{name}/g,"Add Device");this.$tabs.append(i),this.$tabs.find("#deviceTabAdd").on("click",(()=>{n.configuration.devices.push(this.getDefaultDeviceConfiguration(n.configSchema)),this.renderDevicesSettings(n,n.configuration.devices.length-1)}))}renderDeviceTabPanel(e,n,i,r,t){const o='\n <div class="tab-pane container fade {activeClass} card card-body list-group-item" id="deviceTabPanel{index}">\n <button type="button" class="close pull-right" id="deviceTabPanelClose{index}">\n <span>×</span>\n <span class="sr-only">Close</span>\n </button>\n </div>\n '.replace(/{activeClass}/g,i===r?"in show active":"").replace(/{index}/g,i.toString());this.$tabPanels.append(o);const a=this.$tabPanels.find(`#deviceTabPanel${i}`),s=this.clone(e.configSchema.schema.properties.devices.items),d=s.properties.model;this.renderModelDropDown(t,a,i,e,s,d,n),this.renderRemoveButton(a,i,e),this.renderForm(t,i,r,e,s,n)}renderModelDropDown(e,n,i,r,t,o,a){this.componentRenderer.renderDropDown(n,"model"+i,o,a.model,(n=>{a.model=n,this.renderForm(e,i,i,r,t,a)}))}renderRemoveButton(e,n,i){e.find(`#deviceTabPanelClose${n}`).on("click",(()=>{i.configuration.devices.splice(n,1),this.renderDevicesSettings(i,n-1)}))}renderForm(e,n,i,r,t,o){delete(t=this.clone(t)).properties.model,r.hideDeviceSettingsPerModel[o.model].forEach((e=>{delete t.properties[e]})),e.off("click").on("click",(()=>{this.form?.end(),this.form=r.homebridgeProvider.createForm({schema:t},o),this.form.onChange((async i=>{const t=r.configuration.devices[n].name;this.applyChanges(r.configuration.devices[n],i,["model"]),await this.updatePluginConfig(r),i.name!==t&&e.text(i.name)}))})),n===i&&e.trigger("click")}getDefaultDeviceConfiguration(e){const n={},i=e.schema.properties.devices.items.properties;return Object.keys(i).filter((e=>!!i[e]?.default)).forEach((e=>{n[e]=i[e]?.default})),n}applyChanges(e,n,i){Object.assign(e,n);for(const r in e)void 0!==n[r]||i.includes(r)||delete e[r]}}n.PluginConfigDevicesRenderer=t},102:(e,n,i)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.PluginConfigNameRenderer=void 0;const r=i(536);class t extends r.PluginConfigRendererBase{render(e){this.componentRenderer.renderTextBox($("#generalSettings"),"name",e.configSchema.schema.properties.name,e.configuration.name,(async n=>{e.configuration.name=n,await this.updatePluginConfig(e)}))}}n.PluginConfigNameRenderer=t},653:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.PluginConfigRenderer=void 0,n.PluginConfigRenderer=class{renderers;constructor(e){this.renderers=e}render(e){void 0===e.configuration&&(e.configuration={name:void 0,devices:[]}),this.renderers.forEach((n=>n.render(e)))}}},536:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.PluginConfigRendererBase=void 0,n.PluginConfigRendererBase=class{componentRenderer;constructor(e){this.componentRenderer=e}async updatePluginConfig(e){const n=this.clone(e.configuration);delete n.platform,await e.homebridgeProvider.updatePluginConfig([n])}clone(e){return JSON.parse(JSON.stringify(e))}}}},n={};function i(r){var t=n[r];if(void 0!==t)return t.exports;var o=n[r]={exports:{}};return e[r](o,o.exports,i),o.exports}(()=>{const e=i(999),n=i(84),r=i(102),t=i(653);window.renderEcoFlowPluginConfig=async function(i){const o=await i.getPluginConfig(),a=await i.getPluginConfigSchema(),s=o[0],d=new e.ComponentRenderer;new t.PluginConfigRenderer([new r.PluginConfigNameRenderer(d),new n.PluginConfigDevicesRenderer(d)]).render({homebridgeProvider:i,configuration:s,configSchema:a})}})()})();
1
+ (()=>{"use strict";var e={999:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ComponentRenderer=void 0,i.ComponentRenderer=class{renderTextBox(e,i,n,r,t){const o='\n <div class="form-group">\n <label for="device{id}" class="{requiredClass}">{title}</label>\n <input type="text" class="form-control" id="device{id}" placeholder="{description}" required="{required}" />\n </div>'.replace(/{id}/g,i).replace(/{title}/g,n.title).replace(/{description}/g,n.description??"").replace(/{requiredClass}/g,n.required?"required-label":"").replace(/{required}/g,(n.required??!1).toString());e.append(o);const a=e.find(`#device${i}`);a.val(r),a.on("change",(()=>t(a.val()?.toString()||"")))}renderDropDown(e,i,n,r,t){const o='\n <div class="form-group">\n <label for="device{id}" class="{requiredClass}">{title}</label>\n <select class="form-control" id="device{id}" required="{required}"></select>\n </div>'.replace(/{id}/g,i).replace(/{title}/g,n.title).replace(/{requiredClass}/g,n.required?"required-label":"").replace(/{required}/g,(n.required??!1).toString());e.append(o);const a=e.find(`#device${i}`);n.enum.forEach((e=>{const i=$("<option>").val(e).text(e);a.append(i)})),a.val(r),a.on("change",(()=>t(a.val()?.toString()||"")))}}},84:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.PluginConfigDevicesRenderer=void 0;const r=n(536);class t extends r.PluginConfigRendererBase{form;$tabs;$tabPanels;_hideDeviceSettingsPerModel;constructor(e){super(e),this.$tabs=$("#devicesTabs"),this.$tabPanels=$("#devicesPanels"),this._hideDeviceSettingsPerModel={"Delta 2":["powerStream"],"Delta 2 Max":["powerStream"],"Delta Pro":["powerStream"],"Delta Pro Ultra":["powerStream"],PowerStream:["battery"]}}get hideDeviceSettingsPerModel(){return this._hideDeviceSettingsPerModel}render(e){this.renderDevicesSettings({homebridgeProvider:e.homebridgeProvider,configSchema:e.configSchema,configuration:e.configuration,hideDeviceSettingsPerModel:this.hideDeviceSettingsPerModel})}renderDevicesSettings(e,i){$("#devicesLabel").text(e.configSchema.schema.properties.devices.title);const n=!i||i<0?0:i;this.renderDeviceTabs(e,n)}renderDeviceTabs(e,i){this.clearDeviceTabs();const n='\n <li class="nav-item">\n <a class="nav-link {activeClass}" data-toggle="tab" href="#deviceTabPanel{index}" id="deviceTab{index}">{name}</a>\n </li>\n ';e.configuration.devices.forEach(((r,t)=>{const o=n.replace(/{activeClass}/g,t===i?"active":"").replace(/{index}/g,t.toString()).replace(/{name}/g,r.name??`Device${t+1}`);this.$tabs.append(o),this.renderDeviceTabPanel(e,r,t,i,this.$tabs.find(`#deviceTab${t}`))})),this.renderAddNewDeviceTab(n,e)}clearDeviceTabs(){this.$tabs.empty(),this.$tabPanels.empty(),this.form?.end()}renderAddNewDeviceTab(e,i){const n=e.replace(/{activeClass}/g,"").replace(/{index}/g,"Add").replace(/{name}/g,"Add Device");this.$tabs.append(n),this.$tabs.find("#deviceTabAdd").on("click",(()=>{i.configuration.devices.push(this.getDefaultDeviceConfiguration(i.configSchema)),this.renderDevicesSettings(i,i.configuration.devices.length-1)}))}renderDeviceTabPanel(e,i,n,r,t){const o='\n <div class="tab-pane container fade {activeClass} card card-body list-group-item" id="deviceTabPanel{index}">\n <button type="button" class="close pull-right" id="deviceTabPanelClose{index}">\n <span>×</span>\n <span class="sr-only">Close</span>\n </button>\n </div>\n '.replace(/{activeClass}/g,n===r?"in show active":"").replace(/{index}/g,n.toString());this.$tabPanels.append(o);const a=this.$tabPanels.find(`#deviceTabPanel${n}`),s=this.clone(e.configSchema.schema.properties.devices.items),d=s.properties.model;this.renderModelDropDown(t,a,n,e,s,d,i),this.renderRemoveButton(a,n,e),this.renderForm(t,n,r,e,s,i)}renderModelDropDown(e,i,n,r,t,o,a){this.componentRenderer.renderDropDown(i,"model"+n,o,a.model,(i=>{a.model=i,this.renderForm(e,n,n,r,t,a)}))}renderRemoveButton(e,i,n){e.find(`#deviceTabPanelClose${i}`).on("click",(()=>{n.configuration.devices.splice(i,1),this.renderDevicesSettings(n,i-1)}))}renderForm(e,i,n,r,t,o){delete(t=this.clone(t)).properties.model,r.hideDeviceSettingsPerModel[o.model].forEach((e=>{delete t.properties[e]})),e.off("click").on("click",(()=>{this.form?.end(),this.form=r.homebridgeProvider.createForm({schema:t},o),this.form.onChange((async n=>{const t=r.configuration.devices[i].name;this.applyChanges(r.configuration.devices[i],n,["model"]),await this.updatePluginConfig(r),n.name!==t&&e.text(n.name)}))})),i===n&&e.trigger("click")}getDefaultDeviceConfiguration(e){const i={},n=e.schema.properties.devices.items.properties;return Object.keys(n).filter((e=>!!n[e]?.default)).forEach((e=>{i[e]=n[e]?.default})),i}applyChanges(e,i,n){Object.assign(e,i);for(const r in e)void 0!==i[r]||n.includes(r)||delete e[r]}}i.PluginConfigDevicesRenderer=t},102:(e,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.PluginConfigNameRenderer=void 0;const r=n(536);class t extends r.PluginConfigRendererBase{render(e){this.componentRenderer.renderTextBox($("#generalSettings"),"name",e.configSchema.schema.properties.name,e.configuration.name,(async i=>{e.configuration.name=i,await this.updatePluginConfig(e)}))}}i.PluginConfigNameRenderer=t},653:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.PluginConfigRenderer=void 0,i.PluginConfigRenderer=class{renderers;constructor(e){this.renderers=e}render(e){void 0===e.configuration&&(e.configuration={name:void 0,devices:[]}),this.renderers.forEach((i=>i.render(e)))}}},536:(e,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.PluginConfigRendererBase=void 0,i.PluginConfigRendererBase=class{componentRenderer;constructor(e){this.componentRenderer=e}async updatePluginConfig(e){const i=this.clone(e.configuration);delete i.platform,await e.homebridgeProvider.updatePluginConfig([i])}clone(e){return JSON.parse(JSON.stringify(e))}}}},i={};function n(r){var t=i[r];if(void 0!==t)return t.exports;var o=i[r]={exports:{}};return e[r](o,o.exports,n),o.exports}(()=>{const e=n(999),i=n(84),r=n(102),t=n(653);window.renderEcoFlowPluginConfig=async function(n){const o=await n.getPluginConfig(),a=await n.getPluginConfigSchema(),s=o[0],d=new e.ComponentRenderer;new t.PluginConfigRenderer([new r.PluginConfigNameRenderer(d),new i.PluginConfigDevicesRenderer(d)]).render({homebridgeProvider:n,configuration:s,configSchema:a})}})()})();
@@ -5,7 +5,9 @@ export declare class PluginConfigDevicesRenderer extends PluginConfigRendererBas
5
5
  private form;
6
6
  private readonly $tabs;
7
7
  private readonly $tabPanels;
8
+ private readonly _hideDeviceSettingsPerModel;
8
9
  constructor(componentRenderer: ComponentRenderer);
10
+ get hideDeviceSettingsPerModel(): Record<string, string[]>;
9
11
  render(context: IContext): void;
10
12
  private renderDevicesSettings;
11
13
  private renderDeviceTabs;
@@ -16,6 +16,7 @@ export declare class EcoFlowHomebridgePlatform implements DynamicPlatformPlugin
16
16
  readonly accessories: PlatformAccessory[];
17
17
  private readonly httpApiManager;
18
18
  private readonly mqttApiManager;
19
+ private readonly batteryStatusProvider;
19
20
  constructor(commonLog: Logging, config: PlatformConfig, api: API);
20
21
  static InitCustomCharacteristics(hap: HAP): void;
21
22
  /**
package/dist/platform.js CHANGED
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EcoFlowHomebridgePlatform = void 0;
4
- const delta2Accessory_1 = require("@ecoflow/accessories/batteries/delta2Accessory");
5
- const delta2maxAccessory_1 = require("@ecoflow/accessories/batteries/delta2maxAccessory");
6
- const batterySimulator_1 = require("@ecoflow/accessories/batteries/simulations/batterySimulator");
4
+ const delta2Accessory_1 = require("@ecoflow/accessories/batteries/delta2/delta2Accessory");
5
+ const delta2MaxAccessory_1 = require("@ecoflow/accessories/batteries/delta2/delta2MaxAccessory");
6
+ const delta2Simulator_1 = require("@ecoflow/accessories/batteries/delta2/simulations/delta2Simulator");
7
7
  const powerStreamAccessory_1 = require("@ecoflow/accessories/powerstream/powerStreamAccessory");
8
8
  const powerStreamSimulator_1 = require("@ecoflow/accessories/powerstream/simulations/powerStreamSimulator");
9
9
  const ecoFlowHttpApiManager_1 = require("@ecoflow/apis/ecoFlowHttpApiManager");
10
10
  const ecoFlowMqttApiManager_1 = require("@ecoflow/apis/ecoFlowMqttApiManager");
11
11
  const customCharacteristic_1 = require("@ecoflow/characteristics/customCharacteristic");
12
12
  const config_1 = require("@ecoflow/config");
13
+ const batteryStatusProvider_1 = require("@ecoflow/helpers/batteryStatusProvider");
13
14
  const logger_1 = require("@ecoflow/helpers/logger");
14
15
  const machineIdProvider_1 = require("@ecoflow/helpers/machineIdProvider");
15
16
  const settings_1 = require("@ecoflow/settings");
@@ -24,6 +25,7 @@ class EcoFlowHomebridgePlatform {
24
25
  accessories = [];
25
26
  httpApiManager = new ecoFlowHttpApiManager_1.EcoFlowHttpApiManager();
26
27
  mqttApiManager = new ecoFlowMqttApiManager_1.EcoFlowMqttApiManager(this.httpApiManager, new machineIdProvider_1.MachineIdProvider());
28
+ batteryStatusProvider = new batteryStatusProvider_1.BatteryStatusProvider();
27
29
  constructor(commonLog, config, api) {
28
30
  this.commonLog = commonLog;
29
31
  this.config = config;
@@ -160,13 +162,21 @@ class EcoFlowHomebridgePlatform {
160
162
  let EcoFlowAccessorySimulatorType = undefined;
161
163
  switch (config.model) {
162
164
  case config_1.DeviceModel.Delta2Max:
163
- EcoFlowAccessoryType = delta2maxAccessory_1.Delta2MaxAccessory;
164
- EcoFlowAccessorySimulatorType = batterySimulator_1.BatterySimulator;
165
+ EcoFlowAccessoryType = delta2MaxAccessory_1.Delta2MaxAccessory;
166
+ EcoFlowAccessorySimulatorType = delta2Simulator_1.Delta2Simulator;
165
167
  break;
166
168
  case config_1.DeviceModel.Delta2:
167
169
  EcoFlowAccessoryType = delta2Accessory_1.Delta2Accessory;
168
- EcoFlowAccessorySimulatorType = batterySimulator_1.BatterySimulator;
170
+ EcoFlowAccessorySimulatorType = delta2Simulator_1.Delta2Simulator;
169
171
  break;
172
+ // case DeviceModel.DeltaPro:
173
+ // EcoFlowAccessoryType = DeltaProAccessory;
174
+ // EcoFlowAccessorySimulatorType = DeltaProSimulator;
175
+ // break;
176
+ // case DeviceModel.DeltaProUltra:
177
+ // EcoFlowAccessoryType = DeltaProUltraAccessory;
178
+ // EcoFlowAccessorySimulatorType = DeltaProUltraSimulator;
179
+ // break;
170
180
  case config_1.DeviceModel.PowerStream:
171
181
  EcoFlowAccessoryType = powerStreamAccessory_1.PowerStreamAccessory;
172
182
  EcoFlowAccessorySimulatorType = powerStreamSimulator_1.PowerStreamSimulator;
@@ -175,9 +185,10 @@ class EcoFlowHomebridgePlatform {
175
185
  log.warn(`"${config.model}" is not supported. Ignoring the device`);
176
186
  }
177
187
  config.simulator = EcoFlowAccessorySimulatorType;
178
- return EcoFlowAccessoryType === null
179
- ? null
180
- : new EcoFlowAccessoryType(this, accessory, config, log, this.httpApiManager, this.mqttApiManager);
188
+ if (EcoFlowAccessoryType === null) {
189
+ return null;
190
+ }
191
+ return new EcoFlowAccessoryType(this, accessory, config, log, this.httpApiManager, this.mqttApiManager, this.batteryStatusProvider);
181
192
  }
182
193
  }
183
194
  exports.EcoFlowHomebridgePlatform = EcoFlowHomebridgePlatform;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;AAYA,2FAAwF;AACxF,iGAA8F;AAC9F,uGAAoG;AAEpG,gGAA6F;AAC7F,4GAAyG;AACzG,+EAA4E;AAC5E,+EAA4E;AAE5E,wFAIuD;AACvD,4CAA2E;AAC3E,kFAA+E;AAC/E,oDAAiD;AACjD,0EAAuE;AACvE,gDAA+D;AAU/D,MAAa,yBAAyB;IAiBjB;IACD;IACA;IAlBD,aAAa,CAAgB;IAC9B,OAAO,CAAiB;IACxB,cAAc,CAAwB;IAEtD,oDAAoD;IACpC,WAAW,GAAwB,EAAE,CAAC;IAErC,cAAc,GAA0B,IAAI,6CAAqB,EAAE,CAAC;IACpE,cAAc,GAA0B,IAAI,6CAAqB,CAChF,IAAI,CAAC,cAAc,EACnB,IAAI,qCAAiB,EAAE,CACxB,CAAC;IAEe,qBAAqB,GAA0B,IAAI,6CAAqB,EAAE,CAAC;IAE5F,YACmB,SAAkB,EACnB,MAAsB,EACtB,GAAQ;QAFP,cAAS,GAAT,SAAS,CAAS;QACnB,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAK;QAExB,yBAAyB,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAuB,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG;YACpB,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc;YACzB,GAAG,4CAAqB;SACW,CAAC;QAEtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE9E,8FAA8F;QAC9F,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1C,CAAC;QAED,8FAA8F;QAC9F,4FAA4F;QAC5F,2FAA2F;QAC3F,yCAAyC;QACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,GAAQ;QAC9C,4CAAqB,CAAC,gBAAgB,CAAC,qBAAqB,GAAG,IAAA,kDAA2B,EAAC,GAAG,CAAC,CAAC;QAChG,4CAAqB,CAAC,gBAAgB,CAAC,sBAAsB,GAAG,IAAA,mDAA4B,EAAC,GAAG,CAAC,CAAC;IACpG,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,SAA4B;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5E,yGAAyG;QACzG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAEO,oBAAoB,CAAC,MAAoB;QAC/C,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,oCAAoC,CAAC;QAC9C,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,4CAA4C,CAAC;QACtD,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,yCAAyC,CAAC;QACnD,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,yCAAyC,CAAC;QACnD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe;QACrB,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,MAAM,qBAAqB,GAAwB,EAAE,CAAC;QACtD,MAAM,4BAA4B,GAA2B,EAAE,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,eAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,uBAAuB,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,CAClD,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CACjF,CAAC;YACF,IAAI,iBAAiB,EAAE,CAAC;gBACtB,GAAG,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,YAAY,uCAAuC,CAAC,CAAC;gBACjG,SAAS;YACX,CAAC;YAED,uEAAuE;YACvE,0EAA0E;YAC1E,wBAAwB;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAE7D,uFAAuF;YACvF,wEAAwE;YACxE,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC5E,IAAI,gBAAgB,GAAgC,IAAI,CAAC;YACzD,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBACpD,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,gBAAgB,EAAE,CAAC;gBACrB,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;IAEO,YAAY,CAClB,GAAY,EACZ,MAAoB,EACpB,IAAY;QAEZ,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEtE,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,sBAAW,EAAE,wBAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAEO,cAAc,CACpB,qBAA0C,EAC1C,4BAAoD,EACpD,IAA6B;QAE7B,MAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW;aACb,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAC/D,OAAO,CAAC,SAAS,CAAC,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,sBAAW,EAAE,wBAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAChF,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACL,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,MAAM,CAC5D,gBAAgB,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAC7E,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,WAAmC,EAAE,IAA6B;QACzF,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrE,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACvC,MAAM,SAAS,CAAC,uBAAuB,EAAE,CAAC;YAC5C,CAAC;YACD,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,SAA4C,EAC5C,MAAoB,EACpB,GAAY;QAEZ,IAAI,oBAAoB,GAAgC,IAAI,CAAC;QAC7D,IAAI,6BAA6B,GAA8C,SAAS,CAAC;QACzF,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,oBAAW,CAAC,SAAS;gBACxB,oBAAoB,GAAG,uCAAkB,CAAC;gBAC1C,6BAA6B,GAAG,iCAAe,CAAC;gBAChD,MAAM;YACR,KAAK,oBAAW,CAAC,MAAM;gBACrB,oBAAoB,GAAG,iCAAe,CAAC;gBACvC,6BAA6B,GAAG,iCAAe,CAAC;gBAChD,MAAM;YACR,6BAA6B;YAC7B,6CAA6C;YAC7C,sDAAsD;YACtD,UAAU;YACV,kCAAkC;YAClC,mDAAmD;YACnD,4DAA4D;YAC5D,WAAW;YACX,KAAK,oBAAW,CAAC,WAAW;gBAC1B,oBAAoB,GAAG,2CAAoB,CAAC;gBAC5C,6BAA6B,GAAG,2CAAoB,CAAC;gBACrD,MAAM;YACR;gBACE,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,yCAAyC,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,CAAC,SAAS,GAAG,6BAA6B,CAAC;QACjD,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,oBAAoB,CAC7B,IAAI,EACJ,SAAS,EACT,MAAM,EACN,GAAG,EACH,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,qBAAqB,CAC3B,CAAC;IACJ,CAAC;CACF;AAhOD,8DAgOC"}
@@ -1,11 +1,13 @@
1
1
  import { EcoFlowAccessoryBase } from '@ecoflow/accessories/ecoFlowAccessoryBase';
2
+ import { BatteryStatusProvider } from '@ecoflow/helpers/batteryStatusProvider';
2
3
  import { ServiceBase } from '@ecoflow/services/serviceBase';
3
4
  import { Characteristic } from 'homebridge';
4
5
  export declare class BatteryStatusService extends ServiceBase {
5
6
  protected readonly ecoFlowAccessory: EcoFlowAccessoryBase;
6
- constructor(ecoFlowAccessory: EcoFlowAccessoryBase, serviceSubType?: string);
7
+ private readonly batteryStatusProvider;
8
+ constructor(ecoFlowAccessory: EcoFlowAccessoryBase, batteryStatusProvider: BatteryStatusProvider, serviceSubType?: string);
7
9
  protected addCharacteristics(): Characteristic[];
8
- updateBatteryLevel(batteryLevel: number): void;
9
- updateChargingState(chargingPower: number): void;
10
+ updateBatteryLevel(batteryLevel: number, dischargeLimit: number): void;
11
+ updateChargingState(isCharging: boolean): void;
10
12
  private updateStatusLowBattery;
11
13
  }
@@ -4,9 +4,11 @@ exports.BatteryStatusService = void 0;
4
4
  const serviceBase_1 = require("@ecoflow/services/serviceBase");
5
5
  class BatteryStatusService extends serviceBase_1.ServiceBase {
6
6
  ecoFlowAccessory;
7
- constructor(ecoFlowAccessory, serviceSubType) {
7
+ batteryStatusProvider;
8
+ constructor(ecoFlowAccessory, batteryStatusProvider, serviceSubType) {
8
9
  super(ecoFlowAccessory.platform.Service.Battery, ecoFlowAccessory, serviceSubType);
9
10
  this.ecoFlowAccessory = ecoFlowAccessory;
11
+ this.batteryStatusProvider = batteryStatusProvider;
10
12
  }
11
13
  addCharacteristics() {
12
14
  return [
@@ -15,18 +17,15 @@ class BatteryStatusService extends serviceBase_1.ServiceBase {
15
17
  this.addCharacteristic(this.platform.Characteristic.ChargingState),
16
18
  ];
17
19
  }
18
- updateBatteryLevel(batteryLevel) {
20
+ updateBatteryLevel(batteryLevel, dischargeLimit) {
19
21
  this.updateCharacteristic(this.platform.Characteristic.BatteryLevel, 'BatteryLevel', batteryLevel);
20
- this.updateStatusLowBattery(batteryLevel);
22
+ this.updateStatusLowBattery(batteryLevel, dischargeLimit);
21
23
  }
22
- updateChargingState(chargingPower) {
23
- const isCharging = chargingPower > 0;
24
+ updateChargingState(isCharging) {
24
25
  this.updateCharacteristic(this.platform.Characteristic.ChargingState, 'ChargingState', isCharging);
25
26
  }
26
- updateStatusLowBattery(batteryLevel) {
27
- const statusLowBattery = batteryLevel < 20
28
- ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
29
- : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
27
+ updateStatusLowBattery(batteryLevel, dischargeLimit) {
28
+ const statusLowBattery = this.batteryStatusProvider.getStatusLowBattery(this.platform.Characteristic, batteryLevel, dischargeLimit);
30
29
  this.updateCharacteristic(this.platform.Characteristic.StatusLowBattery, 'StatusLowBattery', statusLowBattery);
31
30
  }
32
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batteryStatusService.js","sourceRoot":"","sources":["../../src/services/batteryStatusService.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAG5D,MAAa,oBAAqB,SAAQ,yBAAW;IAE9B;IADrB,YACqB,gBAAsC,EACzD,cAAuB;QAEvB,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAHhE,qBAAgB,GAAhB,gBAAgB,CAAsB;IAI3D,CAAC;IAEkB,kBAAkB;QACnC,OAAO;YACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC;YACjE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;SACnE,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,YAAoB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACnG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEM,mBAAmB,CAAC,aAAqB;QAC9C,MAAM,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IACrG,CAAC;IAEO,sBAAsB,CAAC,YAAoB;QACjD,MAAM,gBAAgB,GACpB,YAAY,GAAG,EAAE;YACf,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB;YACjE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;QACzE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IACjH,CAAC;CACF;AAjCD,oDAiCC"}
1
+ {"version":3,"file":"batteryStatusService.js","sourceRoot":"","sources":["../../src/services/batteryStatusService.ts"],"names":[],"mappings":";;;AAEA,+DAA4D;AAG5D,MAAa,oBAAqB,SAAQ,yBAAW;IAE9B;IACF;IAFnB,YACqB,gBAAsC,EACxC,qBAA4C,EAC7D,cAAuB;QAEvB,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAJhE,qBAAgB,GAAhB,gBAAgB,CAAsB;QACxC,0BAAqB,GAArB,qBAAqB,CAAuB;IAI/D,CAAC;IAEkB,kBAAkB;QACnC,OAAO;YACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC;YACjE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;SACnE,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,YAAoB,EAAE,cAAsB;QACpE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACnG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;IAEM,mBAAmB,CAAC,UAAmB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IACrG,CAAC;IAEO,sBAAsB,CAAC,YAAoB,EAAE,cAAsB;QACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CACrE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAC5B,YAAY,EACZ,cAAc,CACf,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IACjH,CAAC;CACF;AAlCD,oDAkCC"}
@@ -1,16 +1,20 @@
1
1
  import { EcoFlowAccessoryBase } from '@ecoflow/accessories/ecoFlowAccessoryBase';
2
2
  import { AdditionalBatteryCharacteristicType as CharacteristicType } from '@ecoflow/config';
3
+ import { BatteryStatusProvider } from '@ecoflow/helpers/batteryStatusProvider';
3
4
  import { ServiceBase } from '@ecoflow/services/serviceBase';
4
5
  import { Characteristic } from 'homebridge';
5
6
  export declare abstract class OutletServiceBase extends ServiceBase {
7
+ private readonly batteryStatusProvider;
6
8
  private readonly additionalCharacteristics?;
7
- constructor(ecoFlowAccessory: EcoFlowAccessoryBase, serviceSubType: string, additionalCharacteristics?: CharacteristicType[] | undefined);
9
+ constructor(ecoFlowAccessory: EcoFlowAccessoryBase, batteryStatusProvider: BatteryStatusProvider, serviceSubType: string, additionalCharacteristics?: CharacteristicType[] | undefined);
8
10
  updateState(state: boolean): void;
9
11
  updateOutputConsumption(watt: number): void;
10
12
  updateInputConsumption(watt: number): void;
11
- updateBatteryLevel(batteryLevel: number): void;
13
+ updateBatteryLevel(batteryLevel: number, dischargeLimit: number): void;
14
+ updateChargingState(isCharging: boolean): void;
12
15
  protected addCharacteristics(): Characteristic[];
13
16
  protected abstract setOn(value: boolean, revert: () => void): Promise<void>;
17
+ private updateStatusLowBattery;
14
18
  private tryAddCustomCharacteristic;
15
19
  private updateCustomCharacteristic;
16
20
  }
@@ -4,9 +4,11 @@ exports.OutletServiceBase = void 0;
4
4
  const config_1 = require("@ecoflow/config");
5
5
  const serviceBase_1 = require("@ecoflow/services/serviceBase");
6
6
  class OutletServiceBase extends serviceBase_1.ServiceBase {
7
+ batteryStatusProvider;
7
8
  additionalCharacteristics;
8
- constructor(ecoFlowAccessory, serviceSubType, additionalCharacteristics) {
9
+ constructor(ecoFlowAccessory, batteryStatusProvider, serviceSubType, additionalCharacteristics) {
9
10
  super(ecoFlowAccessory.platform.Service.Outlet, ecoFlowAccessory, serviceSubType);
11
+ this.batteryStatusProvider = batteryStatusProvider;
10
12
  this.additionalCharacteristics = additionalCharacteristics;
11
13
  }
12
14
  updateState(state) {
@@ -14,17 +16,21 @@ class OutletServiceBase extends serviceBase_1.ServiceBase {
14
16
  }
15
17
  updateOutputConsumption(watt) {
16
18
  this.updateCharacteristic(this.platform.Characteristic.OutletInUse, 'InUse', watt > 0);
17
- this.updateCustomCharacteristic(this.platform.Characteristic.PowerConsumption.OutputConsumptionWatts, 'Output Consumption, W', watt, config_1.AdditionalBatteryCharacteristicType.OutputConsumptionInWatts);
19
+ this.updateCustomCharacteristic(this.platform.Characteristic.PowerConsumption.OutputConsumptionWatts, 'Output Consumption, W', () => watt, config_1.AdditionalBatteryCharacteristicType.OutputConsumptionInWatts);
18
20
  }
19
21
  updateInputConsumption(watt) {
20
- this.updateCustomCharacteristic(this.platform.Characteristic.PowerConsumption.InputConsumptionWatts, 'Input Consumption, W', watt, config_1.AdditionalBatteryCharacteristicType.InputConsumptionInWatts);
22
+ this.updateCustomCharacteristic(this.platform.Characteristic.PowerConsumption.InputConsumptionWatts, 'Input Consumption, W', () => watt, config_1.AdditionalBatteryCharacteristicType.InputConsumptionInWatts);
21
23
  }
22
- updateBatteryLevel(batteryLevel) {
23
- this.updateCustomCharacteristic(this.platform.Characteristic.BatteryLevel, 'Battery Level, %', batteryLevel, config_1.AdditionalBatteryCharacteristicType.BatteryLevel);
24
+ updateBatteryLevel(batteryLevel, dischargeLimit) {
25
+ this.updateCustomCharacteristic(this.platform.Characteristic.BatteryLevel, 'Battery Level, %', () => batteryLevel, config_1.AdditionalBatteryCharacteristicType.BatteryLevel);
26
+ this.updateStatusLowBattery(batteryLevel, dischargeLimit);
27
+ }
28
+ updateChargingState(isCharging) {
29
+ this.updateCustomCharacteristic(this.platform.Characteristic.ChargingState, 'ChargingState', () => isCharging, config_1.AdditionalBatteryCharacteristicType.ChargingState);
24
30
  }
25
31
  addCharacteristics() {
26
32
  const onCharacteristic = this.addCharacteristic(this.platform.Characteristic.On);
27
- onCharacteristic.onSet(value => {
33
+ onCharacteristic.onSet((value) => {
28
34
  const newValue = value;
29
35
  this.setOn(newValue, () => this.updateState(!newValue));
30
36
  });
@@ -34,19 +40,24 @@ class OutletServiceBase extends serviceBase_1.ServiceBase {
34
40
  this.tryAddCustomCharacteristic(this.platform.Characteristic.PowerConsumption.InputConsumptionWatts, config_1.AdditionalBatteryCharacteristicType.InputConsumptionInWatts),
35
41
  this.tryAddCustomCharacteristic(this.platform.Characteristic.PowerConsumption.OutputConsumptionWatts, config_1.AdditionalBatteryCharacteristicType.OutputConsumptionInWatts),
36
42
  this.tryAddCustomCharacteristic(this.platform.Characteristic.BatteryLevel, config_1.AdditionalBatteryCharacteristicType.BatteryLevel),
43
+ this.tryAddCustomCharacteristic(this.platform.Characteristic.ChargingState, config_1.AdditionalBatteryCharacteristicType.ChargingState),
44
+ this.tryAddCustomCharacteristic(this.platform.Characteristic.StatusLowBattery, config_1.AdditionalBatteryCharacteristicType.StatusLowBattery),
37
45
  ];
38
46
  this.service.setCharacteristic(this.platform.Characteristic.Name, this.serviceName);
39
47
  return characteristics.filter(characteristic => characteristic !== null);
40
48
  }
49
+ updateStatusLowBattery(batteryLevel, dischargeLimit) {
50
+ this.updateCustomCharacteristic(this.platform.Characteristic.StatusLowBattery, 'StatusLowBattery', () => this.batteryStatusProvider.getStatusLowBattery(this.platform.Characteristic, batteryLevel, dischargeLimit), config_1.AdditionalBatteryCharacteristicType.StatusLowBattery);
51
+ }
41
52
  tryAddCustomCharacteristic(characteristic, characteristicType) {
42
53
  if (this.additionalCharacteristics?.includes(characteristicType)) {
43
54
  return this.addCharacteristic(characteristic);
44
55
  }
45
56
  return null;
46
57
  }
47
- updateCustomCharacteristic(characteristic, name, value, characteristicType) {
58
+ updateCustomCharacteristic(characteristic, name, valueFunc, characteristicType) {
48
59
  if (this.additionalCharacteristics?.includes(characteristicType)) {
49
- this.updateCharacteristic(characteristic, name, value);
60
+ this.updateCharacteristic(characteristic, name, valueFunc());
50
61
  }
51
62
  }
52
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"outletServiceBase.js","sourceRoot":"","sources":["../../src/services/outletServiceBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outletServiceBase.js","sourceRoot":"","sources":["../../src/services/outletServiceBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { EcoFlowAccessoryBase } from '@ecoflow/accessories/ecoFlowAccessoryBase';
2
+ import { ServiceBase } from '@ecoflow/services/serviceBase';
3
+ import { Characteristic } from 'homebridge';
4
+ export declare abstract class SwitchXboostServiceBase extends ServiceBase {
5
+ constructor(ecoFlowAccessory: EcoFlowAccessoryBase);
6
+ updateState(state: boolean): void;
7
+ protected addCharacteristics(): Characteristic[];
8
+ protected abstract setOn(value: boolean, revert: () => void): Promise<void>;
9
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwitchXboostServiceBase = void 0;
4
+ const serviceBase_1 = require("@ecoflow/services/serviceBase");
5
+ class SwitchXboostServiceBase extends serviceBase_1.ServiceBase {
6
+ constructor(ecoFlowAccessory) {
7
+ super(ecoFlowAccessory.platform.Service.Switch, ecoFlowAccessory, 'X-Boost');
8
+ }
9
+ updateState(state) {
10
+ this.updateCharacteristic(this.platform.Characteristic.On, 'State', state);
11
+ }
12
+ addCharacteristics() {
13
+ const onCharacteristic = this.addCharacteristic(this.platform.Characteristic.On);
14
+ onCharacteristic.onSet((value) => {
15
+ const newValue = value;
16
+ this.setOn(newValue, () => this.updateState(!newValue));
17
+ });
18
+ this.service.setCharacteristic(this.platform.Characteristic.Name, this.serviceName);
19
+ return [onCharacteristic];
20
+ }
21
+ }
22
+ exports.SwitchXboostServiceBase = SwitchXboostServiceBase;
23
+ //# sourceMappingURL=switchXboostServiceBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switchXboostServiceBase.js","sourceRoot":"","sources":["../../src/services/switchXboostServiceBase.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAG5D,MAAsB,uBAAwB,SAAQ,yBAAW;IAC/D,YAAY,gBAAsC;QAChD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC/E,CAAC;IAEM,WAAW,CAAC,KAAc;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IAEkB,kBAAkB;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACjF,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAA0B,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,KAAgB,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpF,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;CAGF;AArBD,0DAqBC"}
@@ -0,0 +1 @@
1
+ export {};