@pietrolubini/homebridge-ecoflow 1.2.0 → 1.3.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 (205) hide show
  1. package/.gitattributes +7 -0
  2. package/.prettierrc.json +1 -0
  3. package/README.md +154 -24
  4. package/config.schema.json +73 -2
  5. package/dist/accessories/batteries/batteryAccessoryBase.d.ts +26 -0
  6. package/dist/accessories/batteries/batteryAccessoryBase.js +126 -0
  7. package/dist/accessories/batteries/batteryAccessoryBase.js.map +1 -0
  8. package/dist/accessories/batteries/batteryAccessoryBase.spec.d.ts +1 -0
  9. package/dist/accessories/batteries/delta2Accessory.d.ts +2 -2
  10. package/dist/accessories/batteries/delta2Accessory.js +6 -2
  11. package/dist/accessories/batteries/delta2Accessory.js.map +1 -1
  12. package/dist/accessories/batteries/delta2maxAccessory.d.ts +2 -2
  13. package/dist/accessories/batteries/delta2maxAccessory.js +6 -2
  14. package/dist/accessories/batteries/delta2maxAccessory.js.map +1 -1
  15. package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.d.ts +33 -0
  16. package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.js +3 -0
  17. package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.js.map +1 -0
  18. package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.d.ts +36 -0
  19. package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.js +18 -0
  20. package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.js.map +1 -0
  21. package/dist/accessories/batteries/services/outletAcService.d.ts +8 -0
  22. package/dist/accessories/batteries/services/outletAcService.js +24 -0
  23. package/dist/accessories/batteries/services/outletAcService.js.map +1 -0
  24. package/dist/accessories/batteries/services/outletAcService.spec.d.ts +1 -0
  25. package/dist/accessories/batteries/services/outletBatteryServiceBase.d.ts +5 -0
  26. package/dist/accessories/batteries/services/outletBatteryServiceBase.js +18 -0
  27. package/dist/accessories/batteries/services/outletBatteryServiceBase.js.map +1 -0
  28. package/dist/accessories/batteries/services/outletCarService.d.ts +6 -0
  29. package/dist/accessories/batteries/services/outletCarService.js +17 -0
  30. package/dist/accessories/batteries/services/outletCarService.js.map +1 -0
  31. package/dist/accessories/batteries/services/outletCarService.spec.d.ts +1 -0
  32. package/dist/accessories/batteries/services/outletUsbService.d.ts +6 -0
  33. package/dist/accessories/batteries/services/outletUsbService.js +15 -0
  34. package/dist/accessories/batteries/services/outletUsbService.js.map +1 -0
  35. package/dist/accessories/batteries/services/outletUsbService.spec.d.ts +1 -0
  36. package/dist/accessories/batteries/simulations/batterySimulator.d.ts +6 -0
  37. package/dist/accessories/batteries/simulations/batterySimulator.js +60 -0
  38. package/dist/accessories/batteries/simulations/batterySimulator.js.map +1 -0
  39. package/dist/accessories/ecoFlowAccessoryBase.d.ts +41 -0
  40. package/dist/accessories/ecoFlowAccessoryBase.js +114 -0
  41. package/dist/accessories/ecoFlowAccessoryBase.js.map +1 -0
  42. package/dist/accessories/ecoFlowAccessoryBase.spec.d.ts +1 -0
  43. package/dist/accessories/ecoFlowAccessoryWithQuotaBase.d.ts +15 -0
  44. package/dist/accessories/ecoFlowAccessoryWithQuotaBase.js +34 -0
  45. package/dist/accessories/ecoFlowAccessoryWithQuotaBase.js.map +1 -0
  46. package/dist/accessories/ecoFlowAccessoryWithQuotaBase.spec.d.ts +1 -0
  47. package/dist/accessories/powerstream/interfaces/httpApiPowerStreamContracts.d.ts +16 -0
  48. package/dist/accessories/powerstream/interfaces/httpApiPowerStreamContracts.js +3 -0
  49. package/dist/accessories/powerstream/interfaces/httpApiPowerStreamContracts.js.map +1 -0
  50. package/dist/accessories/powerstream/interfaces/mqttApiPowerStreamContracts.d.ts +41 -0
  51. package/dist/accessories/powerstream/interfaces/mqttApiPowerStreamContracts.js +21 -0
  52. package/dist/accessories/powerstream/interfaces/mqttApiPowerStreamContracts.js.map +1 -0
  53. package/dist/accessories/powerstream/powerStreamAccessory.d.ts +26 -0
  54. package/dist/accessories/powerstream/powerStreamAccessory.js +113 -0
  55. package/dist/accessories/powerstream/powerStreamAccessory.js.map +1 -0
  56. package/dist/accessories/powerstream/powerStreamAccessory.spec.d.ts +1 -0
  57. package/dist/accessories/powerstream/services/brightnessService.d.ts +7 -0
  58. package/dist/accessories/powerstream/services/brightnessService.js +27 -0
  59. package/dist/accessories/powerstream/services/brightnessService.js.map +1 -0
  60. package/dist/accessories/powerstream/services/brightnessService.spec.d.ts +1 -0
  61. package/dist/accessories/powerstream/services/outletInvService.d.ts +7 -0
  62. package/dist/accessories/powerstream/services/outletInvService.js +14 -0
  63. package/dist/accessories/powerstream/services/outletInvService.js.map +1 -0
  64. package/dist/accessories/powerstream/services/outletInvService.spec.d.ts +1 -0
  65. package/dist/accessories/powerstream/services/outletService.d.ts +8 -0
  66. package/dist/accessories/powerstream/services/outletService.js +14 -0
  67. package/dist/accessories/powerstream/services/outletService.js.map +1 -0
  68. package/dist/accessories/powerstream/services/outletService.spec.d.ts +1 -0
  69. package/dist/accessories/powerstream/services/powerDemandService.d.ts +7 -0
  70. package/dist/accessories/powerstream/services/powerDemandService.js +27 -0
  71. package/dist/accessories/powerstream/services/powerDemandService.js.map +1 -0
  72. package/dist/accessories/powerstream/services/powerDemandService.spec.d.ts +1 -0
  73. package/dist/accessories/powerstream/simulations/powerStreamSimulator.d.ts +6 -0
  74. package/dist/accessories/powerstream/simulations/powerStreamSimulator.js +39 -0
  75. package/dist/accessories/powerstream/simulations/powerStreamSimulator.js.map +1 -0
  76. package/dist/apis/containers/deviceInfo.d.ts +13 -0
  77. package/dist/apis/containers/deviceInfo.js +23 -0
  78. package/dist/apis/containers/deviceInfo.js.map +1 -0
  79. package/dist/apis/containers/deviceInfo.spec.d.ts +1 -0
  80. package/dist/apis/containers/mqttClientContainer.d.ts +17 -0
  81. package/dist/apis/containers/mqttClientContainer.js +45 -0
  82. package/dist/apis/containers/mqttClientContainer.js.map +1 -0
  83. package/dist/apis/containers/mqttClientContainer.spec.d.ts +1 -0
  84. package/dist/apis/containers/mqttDevice.d.ts +15 -0
  85. package/dist/apis/containers/mqttDevice.js +43 -0
  86. package/dist/apis/containers/mqttDevice.js.map +1 -0
  87. package/dist/apis/containers/mqttDevice.spec.d.ts +1 -0
  88. package/dist/apis/ecoFlowHttpApiManager.d.ts +13 -0
  89. package/dist/apis/{ecoFlowHttpApi.js → ecoFlowHttpApiManager.js} +58 -44
  90. package/dist/apis/ecoFlowHttpApiManager.js.map +1 -0
  91. package/dist/apis/ecoFlowHttpApiManager.spec.d.ts +1 -0
  92. package/dist/apis/ecoFlowMqttApiManager.d.ts +25 -0
  93. package/dist/apis/ecoFlowMqttApiManager.js +152 -0
  94. package/dist/apis/ecoFlowMqttApiManager.js.map +1 -0
  95. package/dist/apis/ecoFlowMqttApiManager.spec.d.ts +1 -0
  96. package/dist/apis/interfaces/httpApiContracts.d.ts +30 -0
  97. package/dist/apis/interfaces/httpApiContracts.js +9 -0
  98. package/dist/apis/interfaces/httpApiContracts.js.map +1 -0
  99. package/dist/apis/interfaces/mqttApiContracts.d.ts +26 -0
  100. package/dist/apis/interfaces/mqttApiContracts.js +9 -0
  101. package/dist/apis/interfaces/mqttApiContracts.js.map +1 -0
  102. package/dist/apis/simulations/mockMqttClient.d.ts +15 -0
  103. package/dist/apis/simulations/mockMqttClient.js +59 -0
  104. package/dist/apis/simulations/mockMqttClient.js.map +1 -0
  105. package/dist/apis/simulations/mockMqttClient.spec.d.ts +1 -0
  106. package/dist/apis/simulations/simulator.d.ts +13 -0
  107. package/dist/apis/simulations/simulator.js +26 -0
  108. package/dist/apis/simulations/simulator.js.map +1 -0
  109. package/dist/characteristics/customCharacteristic.d.ts +18 -0
  110. package/dist/characteristics/customCharacteristic.js +94 -0
  111. package/dist/characteristics/customCharacteristic.js.map +1 -0
  112. package/dist/characteristics/customCharacteristic.spec.d.ts +1 -0
  113. package/dist/config.d.ts +33 -4
  114. package/dist/config.js +18 -4
  115. package/dist/config.js.map +1 -1
  116. package/dist/helpers/logger.js +5 -1
  117. package/dist/helpers/logger.js.map +1 -1
  118. package/dist/helpers/logger.spec.d.ts +1 -0
  119. package/dist/helpers/machineIdProvider.d.ts +4 -0
  120. package/dist/helpers/machineIdProvider.js +19 -0
  121. package/dist/helpers/machineIdProvider.js.map +1 -0
  122. package/dist/helpers/machineIdProvider.spec.d.ts +1 -0
  123. package/dist/helpers/tests/accessoryTestHelper.d.ts +5 -0
  124. package/dist/helpers/tests/serviceTestHelper.d.ts +6 -0
  125. package/dist/helpers/tests/sleep.d.ts +1 -0
  126. package/dist/homebridge-ui/public/index.d.ts +2 -0
  127. package/dist/homebridge-ui/public/index.html +6 -0
  128. package/dist/homebridge-ui/public/index.js +1 -0
  129. package/dist/homebridge-ui/public/index.spec.d.ts +1 -0
  130. package/dist/homebridge-ui/public/interfaces/contracts.d.ts +13 -0
  131. package/dist/homebridge-ui/public/interfaces/homebridge.d.ts +52 -0
  132. package/dist/homebridge-ui/public/renderers/componentRenderer.d.ts +6 -0
  133. package/dist/homebridge-ui/public/renderers/componentRenderer.spec.d.ts +1 -0
  134. package/dist/homebridge-ui/public/renderers/pluginConfigDevicesRenderer.d.ts +20 -0
  135. package/dist/homebridge-ui/public/renderers/pluginConfigDevicesRenderer.spec.d.ts +1 -0
  136. package/dist/homebridge-ui/public/renderers/pluginConfigNameRenderer.d.ts +5 -0
  137. package/dist/homebridge-ui/public/renderers/pluginConfigNameRenderer.spec.d.ts +1 -0
  138. package/dist/homebridge-ui/public/renderers/pluginConfigRenderer.d.ts +6 -0
  139. package/dist/homebridge-ui/public/renderers/pluginConfigRenderer.spec.d.ts +1 -0
  140. package/dist/homebridge-ui/public/renderers/pluginConfigRendererBase.d.ts +9 -0
  141. package/dist/index.js +7 -4
  142. package/dist/index.js.map +1 -1
  143. package/dist/index.spec.d.ts +1 -0
  144. package/dist/platform.d.ts +12 -8
  145. package/dist/platform.js +91 -30
  146. package/dist/platform.js.map +1 -1
  147. package/dist/platform.spec.d.ts +1 -0
  148. package/dist/services/accessoryInformationService.d.ts +5 -3
  149. package/dist/services/accessoryInformationService.js +15 -12
  150. package/dist/services/accessoryInformationService.js.map +1 -1
  151. package/dist/services/accessoryInformationService.spec.d.ts +1 -0
  152. package/dist/services/batteryStatusService.d.ts +6 -4
  153. package/dist/services/batteryStatusService.js +19 -17
  154. package/dist/services/batteryStatusService.js.map +1 -1
  155. package/dist/services/batteryStatusService.spec.d.ts +1 -0
  156. package/dist/services/fanServiceBase.d.ts +16 -0
  157. package/dist/services/fanServiceBase.js +42 -0
  158. package/dist/services/fanServiceBase.js.map +1 -0
  159. package/dist/services/fanServiceBase.spec.d.ts +1 -0
  160. package/dist/services/lightBulbServiceBase.d.ts +16 -0
  161. package/dist/services/lightBulbServiceBase.js +42 -0
  162. package/dist/services/lightBulbServiceBase.js.map +1 -0
  163. package/dist/services/lightBulbServiceBase.spec.d.ts +1 -0
  164. package/dist/services/outletServiceBase.d.ts +7 -15
  165. package/dist/services/outletServiceBase.js +20 -28
  166. package/dist/services/outletServiceBase.js.map +1 -1
  167. package/dist/services/outletServiceBase.spec.d.ts +1 -0
  168. package/dist/services/serviceBase.d.ts +10 -5
  169. package/dist/services/serviceBase.js +31 -8
  170. package/dist/services/serviceBase.js.map +1 -1
  171. package/dist/settings.js +5 -2
  172. package/dist/settings.js.map +1 -1
  173. package/docs/images/plugin_icon.png +0 -0
  174. package/jest.config.ts +46 -0
  175. package/junit.xml +843 -0
  176. package/package.json +42 -12
  177. package/tsconfig.build.json +5 -0
  178. package/tsconfig.spec.json +8 -0
  179. package/dist/accessories/batteries/batteryAccessory.d.ts +0 -59
  180. package/dist/accessories/batteries/batteryAccessory.js +0 -120
  181. package/dist/accessories/batteries/batteryAccessory.js.map +0 -1
  182. package/dist/accessories/ecoFlowAccessory.d.ts +0 -42
  183. package/dist/accessories/ecoFlowAccessory.js +0 -116
  184. package/dist/accessories/ecoFlowAccessory.js.map +0 -1
  185. package/dist/apis/ecoFlowHttpApi.d.ts +0 -46
  186. package/dist/apis/ecoFlowHttpApi.js.map +0 -1
  187. package/dist/apis/ecoFlowMqttApi.d.ts +0 -53
  188. package/dist/apis/ecoFlowMqttApi.js +0 -100
  189. package/dist/apis/ecoFlowMqttApi.js.map +0 -1
  190. package/dist/characteristics/CustomCharacteristic.d.ts +0 -16
  191. package/dist/characteristics/CustomCharacteristic.js +0 -78
  192. package/dist/characteristics/CustomCharacteristic.js.map +0 -1
  193. package/dist/helpers/machineId.d.ts +0 -2
  194. package/dist/helpers/machineId.js +0 -15
  195. package/dist/helpers/machineId.js.map +0 -1
  196. package/dist/helpers/machineIdHelper.cjs +0 -5
  197. package/dist/services/outletAcService.d.ts +0 -8
  198. package/dist/services/outletAcService.js +0 -17
  199. package/dist/services/outletAcService.js.map +0 -1
  200. package/dist/services/outletCarService.d.ts +0 -6
  201. package/dist/services/outletCarService.js +0 -12
  202. package/dist/services/outletCarService.js.map +0 -1
  203. package/dist/services/outletUsbService.d.ts +0 -6
  204. package/dist/services/outletUsbService.js +0 -10
  205. package/dist/services/outletUsbService.js.map +0 -1
@@ -1,100 +0,0 @@
1
- import mqtt from 'mqtt';
2
- import { Subject } from 'rxjs';
3
- import { getMachineId } from '../helpers/machineId.js';
4
- export var MqttMessageType;
5
- (function (MqttMessageType) {
6
- MqttMessageType["PD"] = "pdStatus";
7
- MqttMessageType["MPPT"] = "mpptStatus";
8
- MqttMessageType["INV"] = "invStatus";
9
- MqttMessageType["BMS"] = "bmsStatus";
10
- MqttMessageType["EMS"] = "emsStatus";
11
- })(MqttMessageType || (MqttMessageType = {}));
12
- export var MqttTopicType;
13
- (function (MqttTopicType) {
14
- MqttTopicType["Quota"] = "quota";
15
- MqttTopicType["SetReply"] = "set_reply";
16
- })(MqttTopicType || (MqttTopicType = {}));
17
- export class EcoFlowMqttApi {
18
- httpApi;
19
- log;
20
- client = null;
21
- certificateData = null;
22
- quotaSubject = new Subject();
23
- setReplySubject = new Subject();
24
- quota$ = this.quotaSubject.asObservable();
25
- setReply$ = this.setReplySubject.asObservable();
26
- constructor(httpApi, log) {
27
- this.httpApi = httpApi;
28
- this.log = log;
29
- }
30
- async destroy() {
31
- await this.client?.unsubscribeAsync('#');
32
- this.log.debug('Unsubscribed from all topics');
33
- await this.client?.end();
34
- this.log.info('Disconnected from EcoFlow MQTT Service');
35
- }
36
- subscribeOnQuota(serialNumber) {
37
- return this.subscribe(serialNumber, MqttTopicType.Quota);
38
- }
39
- subscribeOnSetReply(serialNumber) {
40
- return this.subscribe(serialNumber, MqttTopicType.SetReply);
41
- }
42
- async sendSetCommand(serialNumber, message) {
43
- const client = await this.connect();
44
- if (client) {
45
- const topic = `/open/${this.certificateData.certificateAccount}/${serialNumber}/set`;
46
- await client.publishAsync(topic, JSON.stringify(message));
47
- this.log.debug(`Published to topic '${topic}':`, message);
48
- }
49
- }
50
- async connect() {
51
- if (!this.client) {
52
- const certificateData = await this.acquireCertificate();
53
- if (certificateData) {
54
- const clientId = `HOMEBRIDGE_${(await getMachineId(this.log)).toUpperCase()}`;
55
- this.client = await mqtt.connectAsync(`${certificateData.protocol}://${certificateData.url}:${certificateData.port}`, {
56
- username: `${certificateData.certificateAccount}`,
57
- password: `${certificateData.certificatePassword}`,
58
- clientId,
59
- protocolVersion: 5,
60
- });
61
- this.log.info('Connected to EcoFlow MQTT Service');
62
- this.client.on('message', (topic, message) => {
63
- const mqttMessage = JSON.parse(message.toString());
64
- this.processReceivedMessage(topic, (topic.split('/').pop() || ''), mqttMessage);
65
- });
66
- }
67
- }
68
- return this.client;
69
- }
70
- async subscribe(serialNumber, topicType) {
71
- const client = await this.connect();
72
- if (client) {
73
- const topic = `/open/${this.certificateData.certificateAccount}/${serialNumber}/${topicType}`;
74
- await client.subscribeAsync(topic);
75
- this.log.debug('Subscribed to topic:', topic);
76
- return true;
77
- }
78
- return false;
79
- }
80
- processReceivedMessage(topic, topicType, message) {
81
- switch (topicType) {
82
- case MqttTopicType.Quota:
83
- this.quotaSubject.next(message);
84
- break;
85
- case MqttTopicType.SetReply:
86
- this.log.debug(`Read from topic '${topic}':`, message);
87
- this.setReplySubject.next(message);
88
- break;
89
- default:
90
- this.log.warn('Received message for unsupported topic:', topicType);
91
- }
92
- }
93
- async acquireCertificate() {
94
- if (!this.certificateData) {
95
- this.certificateData = await this.httpApi.acquireCertificate();
96
- }
97
- return this.certificateData;
98
- }
99
- }
100
- //# sourceMappingURL=ecoFlowMqttApi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecoFlowMqttApi.js","sourceRoot":"","sources":["../../src/apis/ecoFlowMqttApi.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { Characteristic } from 'hap-nodejs';
2
- export declare class InputConsumptionWatt extends Characteristic {
3
- static readonly UUID: string;
4
- constructor();
5
- }
6
- export declare class OutputConsumptionWatt extends Characteristic {
7
- static readonly UUID: string;
8
- constructor();
9
- }
10
- export declare class PowerConsumption {
11
- static readonly InputConsumptionWatts: typeof InputConsumptionWatt;
12
- static readonly OutputConsumptionWatts: typeof OutputConsumptionWatt;
13
- }
14
- export declare class CustomCharacteristic {
15
- static readonly PowerConsumption: typeof PowerConsumption;
16
- }
@@ -1,78 +0,0 @@
1
- import { Characteristic } from 'hap-nodejs';
2
- export class InputConsumptionWatt extends Characteristic {
3
- static UUID = '13172B0A-D346-4730-9732-32EF5B6EF8B7';
4
- constructor() {
5
- super('Input Consumption', InputConsumptionWatt.UUID, {
6
- description: 'Input Consumption, W',
7
- format: "float" /* Formats.FLOAT */,
8
- perms: ["ev" /* Perms.NOTIFY */, "pr" /* Perms.PAIRED_READ */],
9
- minValue: 0,
10
- minStep: 1,
11
- unit: "celsius" /* Units.CELSIUS */, // To allow setting numeric value for conditions in ShortCuts
12
- });
13
- this.value = this.getDefaultValue();
14
- }
15
- }
16
- export class OutputConsumptionWatt extends Characteristic {
17
- // Eve characteristic
18
- static UUID = 'E863F10D-079E-48FF-8F27-9C2605A29F52';
19
- constructor() {
20
- super('Output Consumption', OutputConsumptionWatt.UUID, {
21
- description: 'Output Consumption, W',
22
- format: "float" /* Formats.FLOAT */,
23
- perms: ["ev" /* Perms.NOTIFY */, "pr" /* Perms.PAIRED_READ */],
24
- unit: "celsius" /* Units.CELSIUS */, // To allow setting numeric value for conditions in ShortCuts
25
- minValue: 0,
26
- minStep: 1,
27
- });
28
- this.value = this.getDefaultValue();
29
- }
30
- }
31
- // https://gist.github.com/simont77/3f4d4330fa55b83f8ca96388d9004e7d
32
- // export class PowerConsumptionVolt extends Characteristic {
33
- // public static readonly UUID: string = 'E863F10A-079E-48FF-8F27-9C2605A29F52';
34
- // constructor() {
35
- // super('Voltage', PowerConsumptionVolt.UUID, {
36
- // description: '"Voltage, V" in Eve App',
37
- // format: Formats.FLOAT,
38
- // perms: [Perms.NOTIFY, Perms.PAIRED_READ],
39
- // minValue: 0,
40
- // maxValue: 300,
41
- // });
42
- // this.value = this.getDefaultValue();
43
- // }
44
- // }
45
- // export class PowerConsumptionAmpere extends Characteristic {
46
- // public static readonly UUID: string = 'E863F126-079E-48FF-8F27-9C2605A29F52';
47
- // constructor() {
48
- // super('Current', PowerConsumptionAmpere.UUID, {
49
- // description: '"Current, A" in Eve App',
50
- // format: Formats.FLOAT,
51
- // perms: [Perms.NOTIFY, Perms.PAIRED_READ],
52
- // minValue: 0,
53
- // maxValue: 100,
54
- // });
55
- // this.value = this.getDefaultValue();
56
- // }
57
- // }
58
- // export class PowerConsumptionKilowattHour extends Characteristic {
59
- // public static readonly UUID: string = 'E863F10C-079E-48FF-8F27-9C2605A29F52';
60
- // constructor() {
61
- // super('Total Consumption', PowerConsumptionKilowattHour.UUID, {
62
- // description: '"Total Consumption, kW/h" in Eve App',
63
- // format: Formats.FLOAT,
64
- // perms: [Perms.NOTIFY, Perms.PAIRED_READ],
65
- // minValue: 0,
66
- // maxValue: 50,
67
- // });
68
- // this.value = this.getDefaultValue();
69
- // }
70
- // }
71
- export class PowerConsumption {
72
- static InputConsumptionWatts = InputConsumptionWatt;
73
- static OutputConsumptionWatts = OutputConsumptionWatt;
74
- }
75
- export class CustomCharacteristic {
76
- static PowerConsumption = PowerConsumption;
77
- }
78
- //# sourceMappingURL=CustomCharacteristic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomCharacteristic.js","sourceRoot":"","sources":["../../src/characteristics/CustomCharacteristic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAC/C,MAAM,CAAU,IAAI,GAAW,sCAAsC,CAAC;IAC7E;QACE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,EAAE;YACpD,WAAW,EAAE,sBAAsB;YACnC,MAAM,6BAAe;YACrB,KAAK,EAAE,uDAAiC;YACxC,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,IAAI,+BAAe,EAAE,6DAA6D;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;;AAGH,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD,qBAAqB;IACd,MAAM,CAAU,IAAI,GAAW,sCAAsC,CAAC;IAC7E;QACE,KAAK,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,IAAI,EAAE;YACtD,WAAW,EAAE,uBAAuB;YACpC,MAAM,6BAAe;YACrB,KAAK,EAAE,uDAAiC;YACxC,IAAI,+BAAe,EAAE,6DAA6D;YAClF,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;;AAGH,oEAAoE;AACpE,6DAA6D;AAC7D,kFAAkF;AAClF,oBAAoB;AACpB,oDAAoD;AACpD,gDAAgD;AAChD,+BAA+B;AAC/B,kDAAkD;AAClD,qBAAqB;AACrB,uBAAuB;AACvB,UAAU;AACV,2CAA2C;AAC3C,MAAM;AACN,IAAI;AAEJ,+DAA+D;AAC/D,kFAAkF;AAClF,oBAAoB;AACpB,sDAAsD;AACtD,gDAAgD;AAChD,+BAA+B;AAC/B,kDAAkD;AAClD,qBAAqB;AACrB,uBAAuB;AACvB,UAAU;AACV,2CAA2C;AAC3C,MAAM;AACN,IAAI;AAEJ,qEAAqE;AACrE,kFAAkF;AAClF,oBAAoB;AACpB,sEAAsE;AACtE,6DAA6D;AAC7D,+BAA+B;AAC/B,kDAAkD;AAClD,qBAAqB;AACrB,sBAAsB;AACtB,UAAU;AACV,2CAA2C;AAC3C,MAAM;AACN,IAAI;AAEJ,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAU,qBAAqB,GAAgC,oBAAoB,CAAC;IAC1F,MAAM,CAAU,sBAAsB,GAAiC,qBAAqB,CAAC;;AAGtG,MAAM,OAAO,oBAAoB;IACxB,MAAM,CAAU,gBAAgB,GAA4B,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Logging } from 'homebridge';
2
- export declare function getMachineId(log: Logging): Promise<string>;
@@ -1,15 +0,0 @@
1
- import { createRequire } from 'module';
2
- import { v4 as uuidV4 } from 'uuid';
3
- const require = createRequire(import.meta.url);
4
- const { machineId } = require('./machineIdHelper.cjs');
5
- export async function getMachineId(log) {
6
- try {
7
- const id = await machineId();
8
- return id;
9
- }
10
- catch (error) {
11
- log.warn('Can not get Machine ID. Using UUID instead', error);
12
- return uuidV4();
13
- }
14
- }
15
- //# sourceMappingURL=machineId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"machineId.js","sourceRoot":"","sources":["../../src/helpers/machineId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- const { machineId } = require('node-machine-id');
2
-
3
- module.exports = {
4
- machineId,
5
- };
@@ -1,8 +0,0 @@
1
- import { BatteryAllQuotaData } from 'accessories/batteries/batteryAccessory.js';
2
- import { EcoFlowAccessoryWithQuota } from '../accessories/ecoFlowAccessory.js';
3
- import { OutletsServiceBase } from './outletServiceBase.js';
4
- export declare class OutletAcService<TAllQuotaData extends BatteryAllQuotaData> extends OutletsServiceBase {
5
- protected readonly ecoFlowAccessory: EcoFlowAccessoryWithQuota<TAllQuotaData>;
6
- constructor(ecoFlowAccessory: EcoFlowAccessoryWithQuota<TAllQuotaData>);
7
- protected setOn(value: boolean, revert: () => void): Promise<void>;
8
- }
@@ -1,17 +0,0 @@
1
- import { OutletsServiceBase } from './outletServiceBase.js';
2
- export class OutletAcService extends OutletsServiceBase {
3
- ecoFlowAccessory;
4
- constructor(ecoFlowAccessory) {
5
- super('AC', ecoFlowAccessory);
6
- this.ecoFlowAccessory = ecoFlowAccessory;
7
- }
8
- setOn(value, revert) {
9
- return this.sendOn(3, 'acOutCfg', {
10
- out_voltage: this.ecoFlowAccessory.quota.inv.cfgAcOutVol,
11
- out_freq: this.ecoFlowAccessory.quota.inv.cfgAcOutFreq,
12
- xboost: Number(this.ecoFlowAccessory.quota.inv.cfgAcXboost !== undefined ? this.ecoFlowAccessory.quota.inv.cfgAcXboost : true),
13
- enabled: Number(value),
14
- }, revert);
15
- }
16
- }
17
- //# sourceMappingURL=outletAcService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletAcService.js","sourceRoot":"","sources":["../../src/services/outletAcService.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,OAAO,eAA2D,SAAQ,kBAAkB;IACjE;IAA/B,YAA+B,gBAA0D;QACvF,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QADD,qBAAgB,GAAhB,gBAAgB,CAA0C;IAEzF,CAAC;IAEkB,KAAK,CAAC,KAAc,EAAE,MAAkB;QACzD,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,EACD,UAAU,EACV;YACE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAY;YACzD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAa;YACvD,MAAM,EAAE,MAAM,CACZ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAC/G;YACD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACvB,EACD,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- import { EcoFlowAccessory } from '../accessories/ecoFlowAccessory.js';
2
- import { OutletsServiceBase } from './outletServiceBase.js';
3
- export declare class OutletCarService extends OutletsServiceBase {
4
- constructor(ecoFlowAccessory: EcoFlowAccessory);
5
- protected setOn(value: boolean, revert: () => void): Promise<void>;
6
- }
@@ -1,12 +0,0 @@
1
- import { OutletsServiceBase } from './outletServiceBase.js';
2
- export class OutletCarService extends OutletsServiceBase {
3
- constructor(ecoFlowAccessory) {
4
- super('CAR', ecoFlowAccessory);
5
- }
6
- setOn(value, revert) {
7
- return this.sendOn(5, 'mpptCar', {
8
- enabled: Number(value),
9
- }, revert);
10
- }
11
- }
12
- //# sourceMappingURL=outletCarService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletCarService.js","sourceRoot":"","sources":["../../src/services/outletCarService.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IACtD,YAAY,gBAAkC;QAC5C,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAEkB,KAAK,CAAC,KAAc,EAAE,MAAkB;QACzD,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,EACD,SAAS,EACT;YACE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACvB,EACD,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- import { EcoFlowAccessory } from '../accessories/ecoFlowAccessory.js';
2
- import { OutletsServiceBase } from './outletServiceBase.js';
3
- export declare class OutletUsbService extends OutletsServiceBase {
4
- constructor(ecoFlowAccessory: EcoFlowAccessory);
5
- protected setOn(value: boolean, revert: () => void): Promise<void>;
6
- }
@@ -1,10 +0,0 @@
1
- import { OutletsServiceBase } from './outletServiceBase.js';
2
- export class OutletUsbService extends OutletsServiceBase {
3
- constructor(ecoFlowAccessory) {
4
- super('USB', ecoFlowAccessory);
5
- }
6
- setOn(value, revert) {
7
- return this.sendOn(1, 'dcOutCfg', { enabled: Number(value) }, revert);
8
- }
9
- }
10
- //# sourceMappingURL=outletUsbService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletUsbService.js","sourceRoot":"","sources":["../../src/services/outletUsbService.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IACtD,YAAY,gBAAkC;QAC5C,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAEkB,KAAK,CAAC,KAAc,EAAE,MAAkB;QACzD,OAAO,IAAI,CAAC,MAAM,CAA8B,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACrG,CAAC;CACF"}