@pietrolubini/homebridge-ecoflow 1.0.3 → 1.2.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 (86) hide show
  1. package/.prettierrc.json +2 -1
  2. package/README.md +32 -0
  3. package/config.schema.json +18 -1
  4. package/dist/accessories/batteries/batteryAccessory.d.ts +59 -0
  5. package/dist/accessories/batteries/batteryAccessory.js +120 -0
  6. package/dist/accessories/batteries/batteryAccessory.js.map +1 -0
  7. package/dist/accessories/batteries/delta2Accessory.d.ts +3 -0
  8. package/dist/accessories/batteries/delta2Accessory.js +4 -0
  9. package/dist/accessories/batteries/delta2Accessory.js.map +1 -0
  10. package/dist/accessories/batteries/delta2maxAccessory.d.ts +3 -0
  11. package/dist/accessories/batteries/delta2maxAccessory.js +4 -0
  12. package/dist/accessories/batteries/delta2maxAccessory.js.map +1 -0
  13. package/dist/accessories/ecoFlowAccessory.d.ts +19 -11
  14. package/dist/accessories/ecoFlowAccessory.js +49 -8
  15. package/dist/accessories/ecoFlowAccessory.js.map +1 -1
  16. package/dist/apis/ecoFlowHttpApi.d.ts +46 -0
  17. package/dist/{accessories/apis → apis}/ecoFlowHttpApi.js +31 -6
  18. package/dist/apis/ecoFlowHttpApi.js.map +1 -0
  19. package/dist/apis/ecoFlowMqttApi.d.ts +53 -0
  20. package/dist/apis/ecoFlowMqttApi.js +100 -0
  21. package/dist/apis/ecoFlowMqttApi.js.map +1 -0
  22. package/dist/characteristics/CustomCharacteristic.d.ts +16 -0
  23. package/dist/characteristics/CustomCharacteristic.js +78 -0
  24. package/dist/characteristics/CustomCharacteristic.js.map +1 -0
  25. package/dist/config.d.ts +11 -1
  26. package/dist/config.js +7 -0
  27. package/dist/config.js.map +1 -1
  28. package/dist/helpers/logger.js +6 -6
  29. package/dist/helpers/logger.js.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/platform.d.ts +7 -4
  33. package/dist/platform.js +29 -13
  34. package/dist/platform.js.map +1 -1
  35. package/dist/{accessories/services → services}/accessoryInformationService.d.ts +2 -1
  36. package/dist/services/accessoryInformationService.js +32 -0
  37. package/dist/services/accessoryInformationService.js.map +1 -0
  38. package/dist/{accessories/services/batteryService.d.ts → services/batteryStatusService.d.ts} +3 -2
  39. package/dist/services/batteryStatusService.js +32 -0
  40. package/dist/services/batteryStatusService.js.map +1 -0
  41. package/dist/services/outletAcService.d.ts +8 -0
  42. package/dist/services/outletAcService.js +17 -0
  43. package/dist/services/outletAcService.js.map +1 -0
  44. package/dist/{accessories/services → services}/outletCarService.d.ts +2 -2
  45. package/dist/{accessories/services → services}/outletCarService.js +4 -2
  46. package/dist/services/outletCarService.js.map +1 -0
  47. package/dist/services/outletServiceBase.d.ts +24 -0
  48. package/dist/services/outletServiceBase.js +62 -0
  49. package/dist/services/outletServiceBase.js.map +1 -0
  50. package/dist/{accessories/services → services}/outletUsbService.d.ts +2 -2
  51. package/dist/{accessories/services → services}/outletUsbService.js +2 -2
  52. package/dist/services/outletUsbService.js.map +1 -0
  53. package/dist/services/serviceBase.d.ts +24 -0
  54. package/dist/services/serviceBase.js +52 -0
  55. package/dist/services/serviceBase.js.map +1 -0
  56. package/docs/images/BatteryAdditionalCharacteristics.jpg +0 -0
  57. package/package.json +3 -1
  58. package/dist/accessories/apis/ecoFlowHttpApi.d.ts +0 -16
  59. package/dist/accessories/apis/ecoFlowHttpApi.js.map +0 -1
  60. package/dist/accessories/apis/ecoFlowMqttApi.d.ts +0 -23
  61. package/dist/accessories/apis/ecoFlowMqttApi.js +0 -94
  62. package/dist/accessories/apis/ecoFlowMqttApi.js.map +0 -1
  63. package/dist/accessories/apis/interfaces/ecoFlowHttpContacts.d.ts +0 -47
  64. package/dist/accessories/apis/interfaces/ecoFlowHttpContacts.js +0 -6
  65. package/dist/accessories/apis/interfaces/ecoFlowHttpContacts.js.map +0 -1
  66. package/dist/accessories/apis/interfaces/ecoFlowMqttContacts.d.ts +0 -68
  67. package/dist/accessories/apis/interfaces/ecoFlowMqttContacts.js +0 -9
  68. package/dist/accessories/apis/interfaces/ecoFlowMqttContacts.js.map +0 -1
  69. package/dist/accessories/delta2maxAccessory.d.ts +0 -24
  70. package/dist/accessories/delta2maxAccessory.js +0 -117
  71. package/dist/accessories/delta2maxAccessory.js.map +0 -1
  72. package/dist/accessories/services/accessoryInformationService.js +0 -24
  73. package/dist/accessories/services/accessoryInformationService.js.map +0 -1
  74. package/dist/accessories/services/batteryService.js +0 -29
  75. package/dist/accessories/services/batteryService.js.map +0 -1
  76. package/dist/accessories/services/outletAcService.d.ts +0 -6
  77. package/dist/accessories/services/outletAcService.js +0 -15
  78. package/dist/accessories/services/outletAcService.js.map +0 -1
  79. package/dist/accessories/services/outletCarService.js.map +0 -1
  80. package/dist/accessories/services/outletServiceBase.d.ts +0 -15
  81. package/dist/accessories/services/outletServiceBase.js +0 -44
  82. package/dist/accessories/services/outletServiceBase.js.map +0 -1
  83. package/dist/accessories/services/outletUsbService.js.map +0 -1
  84. package/dist/accessories/services/serviceBase.d.ts +0 -11
  85. package/dist/accessories/services/serviceBase.js +0 -17
  86. package/dist/accessories/services/serviceBase.js.map +0 -1
@@ -1,117 +0,0 @@
1
- import { EcoFlowAccessoryWithQuota } from './ecoFlowAccessory.js';
2
- import { BatteryService } from './services/batteryService.js';
3
- import { OutletUsbService } from './services/outletUsbService.js';
4
- import { OutletCarService } from './services/outletCarService.js';
5
- import { OutletAcService } from './services/outletAcService.js';
6
- import { MqttMessageType, } from './apis/interfaces/ecoFlowMqttContacts.js';
7
- export class Delta2MaxAccessory extends EcoFlowAccessoryWithQuota {
8
- batteryService;
9
- outletUsbService;
10
- outletAcService;
11
- outletCarService;
12
- constructor(platform, accessory, config, log) {
13
- super(platform, accessory, config, log);
14
- this.batteryService = new BatteryService(this);
15
- this.outletUsbService = new OutletUsbService(this);
16
- this.outletAcService = new OutletAcService(this);
17
- this.outletCarService = new OutletCarService(this);
18
- }
19
- getServices() {
20
- return [this.batteryService, this.outletUsbService, this.outletAcService, this.outletCarService];
21
- }
22
- updateInitialValues(initialData) {
23
- this.updateBmsInitialValues(initialData);
24
- this.updateInvInitialValues(initialData);
25
- this.updatePdInitialValues(initialData);
26
- }
27
- subscribeOnParameterUpdates() {
28
- return [
29
- this.mqttApi.bmsParams$.subscribe(params => this.updateBmsValues(params)),
30
- this.mqttApi.invParams$.subscribe(params => this.updateInvValues(params)),
31
- this.mqttApi.pdParams$.subscribe(params => this.updatePdValues(params)),
32
- ];
33
- }
34
- updateBmsInitialValues(initialData) {
35
- const bmsMessage = {
36
- typeCode: MqttMessageType.BMS,
37
- params: {
38
- f32ShowSoc: initialData['bms_bmsStatus.f32ShowSoc'],
39
- },
40
- };
41
- this.mqttApi.processMqttMessage(bmsMessage);
42
- }
43
- updateInvInitialValues(initialData) {
44
- const invMessage = {
45
- typeCode: MqttMessageType.INV,
46
- params: {
47
- inputWatts: initialData['inv.inputWatts'],
48
- outputWatts: initialData['inv.outputWatts'],
49
- cfgAcEnabled: initialData['inv.cfgAcEnabled'],
50
- },
51
- };
52
- this.mqttApi.processMqttMessage(invMessage);
53
- }
54
- updatePdInitialValues(initialData) {
55
- const pdMessage = {
56
- typeCode: MqttMessageType.PD,
57
- params: {
58
- carState: initialData['pd.carState'],
59
- carWatts: initialData['pd.carWatts'],
60
- dcOutState: initialData['pd.dcOutState'],
61
- usb1Watts: initialData['pd.usb1Watts'],
62
- usb2Watts: initialData['pd.usb2Watts'],
63
- qcUsb1Watts: initialData['pd.qcUsb1Watts'],
64
- qcUsb2Watts: initialData['pd.qcUsb2Watts'],
65
- typec1Watts: initialData['pd.typec1Watts'],
66
- typec2Watts: initialData['pd.typec2Watts'],
67
- },
68
- };
69
- this.mqttApi.processMqttMessage(pdMessage);
70
- }
71
- updateBmsValues(params) {
72
- if (params.f32ShowSoc !== undefined) {
73
- this.batteryService.updateStatusLowBattery(params.f32ShowSoc);
74
- this.batteryService.updateBatteryLevel(params.f32ShowSoc);
75
- }
76
- }
77
- updateInvValues(params) {
78
- if (params.inputWatts !== undefined) {
79
- this.batteryService.updateChargingState(params.inputWatts);
80
- }
81
- if (params.cfgAcEnabled !== undefined) {
82
- this.outletAcService.updateState(params.cfgAcEnabled);
83
- }
84
- if (params.outputWatts !== undefined) {
85
- this.outletAcService.updateInUse(params.outputWatts > 0);
86
- }
87
- }
88
- updatePdValues(params) {
89
- if (params.carState !== undefined) {
90
- this.outletCarService.updateState(params.carState);
91
- }
92
- if (params.carWatts !== undefined) {
93
- this.outletCarService.updateInUse(params.carWatts > 0);
94
- }
95
- if (params.dcOutState !== undefined) {
96
- this.outletUsbService.updateState(params.dcOutState);
97
- }
98
- if (params.usb1Watts !== undefined ||
99
- params.usb2Watts !== undefined ||
100
- params.qcUsb1Watts !== undefined ||
101
- params.qcUsb2Watts !== undefined ||
102
- params.typec1Watts !== undefined ||
103
- params.typec2Watts !== undefined) {
104
- const usbWatts = this.getUsbWatts(params.usb1Watts, params.usb2Watts, params.qcUsb1Watts, params.qcUsb2Watts, params.typec1Watts, params.typec2Watts);
105
- this.outletUsbService.updateInUse(usbWatts > 0);
106
- }
107
- }
108
- getUsbWatts(usb1Watts, usb2Watts, qcUsb1Watts, qcUsb2Watts, typec1Watts, typec2Watts) {
109
- return ((usb1Watts ?? 0) +
110
- (usb2Watts ?? 0) +
111
- (qcUsb1Watts ?? 0) +
112
- (qcUsb2Watts ?? 0) +
113
- (typec1Watts ?? 0) +
114
- (typec2Watts ?? 0));
115
- }
116
- }
117
- //# sourceMappingURL=delta2maxAccessory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delta2maxAccessory.js","sourceRoot":"","sources":["../../src/accessories/delta2maxAccessory.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { ServiceBase } from './serviceBase.js';
2
- import { fileURLToPath } from 'url';
3
- import path from 'path';
4
- import fs from 'fs';
5
- export class AccessoryInformationService extends ServiceBase {
6
- createService() {
7
- const service = this.ecoFlowAccessory.accessory.getService(this.ecoFlowAccessory.platform.Service.AccessoryInformation) ||
8
- this.ecoFlowAccessory.accessory.addService(this.ecoFlowAccessory.platform.Service.AccessoryInformation);
9
- service
10
- .setCharacteristic(this.ecoFlowAccessory.platform.Characteristic.Manufacturer, 'EcoFlow')
11
- .setCharacteristic(this.ecoFlowAccessory.platform.Characteristic.Model, this.ecoFlowAccessory.config.model)
12
- .setCharacteristic(this.ecoFlowAccessory.platform.Characteristic.SerialNumber, this.ecoFlowAccessory.config.serialNumber)
13
- .setCharacteristic(this.ecoFlowAccessory.platform.Characteristic.FirmwareRevision, this.getVersion());
14
- return service;
15
- }
16
- getVersion() {
17
- const filename = fileURLToPath(import.meta.url);
18
- const dirname = path.dirname(filename);
19
- const packageJsonPath = path.resolve(dirname, '../../../package.json');
20
- const packageData = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
21
- return packageData?.version;
22
- }
23
- }
24
- //# sourceMappingURL=accessoryInformationService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessoryInformationService.js","sourceRoot":"","sources":["../../../src/accessories/services/accessoryInformationService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,OAAO,2BAA4B,SAAQ,WAAW;IACvC,aAAa;QAC9B,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACvG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAE1G,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC;aACxF,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;aAC1G,iBAAiB,CAChB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAC1C;aACA,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxG,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,UAAU;QAChB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACzE,OAAO,WAAW,EAAE,OAAO,CAAC;IAC9B,CAAC;CACF"}
@@ -1,29 +0,0 @@
1
- import { ServiceBase } from './serviceBase.js';
2
- export class BatteryService extends ServiceBase {
3
- createService() {
4
- const service = this.ecoFlowAccessory.accessory.getService(this.ecoFlowAccessory.platform.Service.Battery) ||
5
- this.ecoFlowAccessory.accessory.addService(this.ecoFlowAccessory.platform.Service.Battery, this.ecoFlowAccessory.config.name);
6
- return service;
7
- }
8
- updateStatusLowBattery(batteryLevel) {
9
- const statusLowBattery = batteryLevel < 20;
10
- this.log.debug('Status Low Battery ->', statusLowBattery);
11
- this.service
12
- .getCharacteristic(this.ecoFlowAccessory.platform.Characteristic.StatusLowBattery)
13
- .updateValue(statusLowBattery
14
- ? this.ecoFlowAccessory.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
15
- : this.ecoFlowAccessory.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
16
- }
17
- updateBatteryLevel(batteryLevel) {
18
- this.log.debug('BatteryLevel ->', batteryLevel);
19
- this.service
20
- .getCharacteristic(this.ecoFlowAccessory.platform.Characteristic.BatteryLevel)
21
- .updateValue(batteryLevel);
22
- }
23
- updateChargingState(chargingPower) {
24
- const isCharging = chargingPower > 0;
25
- this.log.debug('ChargingState ->', isCharging);
26
- this.service.getCharacteristic(this.ecoFlowAccessory.platform.Characteristic.ChargingState).updateValue(isCharging);
27
- }
28
- }
29
- //# sourceMappingURL=batteryService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batteryService.js","sourceRoot":"","sources":["../../../src/accessories/services/batteryService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC1B,aAAa;QAC9B,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAC1F,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAC9C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAClC,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,sBAAsB,CAAC,YAAoB;QAChD,MAAM,gBAAgB,GAAG,YAAY,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC;aACjF,WAAW,CACV,gBAAgB;YACd,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB;YAClF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CACxF,CAAC;IACN,CAAC;IAEM,kBAAkB,CAAC,YAAoB;QAC5C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC;aAC7E,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAEM,mBAAmB,CAAC,aAAqB;QAC9C,MAAM,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtH,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- import { OutletsServiceBase } from './outletServiceBase.js';
2
- import { EcoFlowAccessory } from 'accessories/ecoFlowAccessory.js';
3
- export declare class OutletAcService extends OutletsServiceBase {
4
- constructor(ecoFlowAccessory: EcoFlowAccessory);
5
- protected setOn(value: boolean): Promise<void>;
6
- }
@@ -1,15 +0,0 @@
1
- import { OutletsServiceBase } from './outletServiceBase.js';
2
- export class OutletAcService extends OutletsServiceBase {
3
- constructor(ecoFlowAccessory) {
4
- super('AC', ecoFlowAccessory);
5
- }
6
- setOn(value) {
7
- return this.publishEnabled(3, 'acOutCfg', {
8
- out_voltage: 4294967295,
9
- out_freq: 1,
10
- xboost: Number(true),
11
- enabled: Number(value),
12
- });
13
- }
14
- }
15
- //# sourceMappingURL=outletAcService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletAcService.js","sourceRoot":"","sources":["../../../src/accessories/services/outletAcService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IACrD,YAAY,gBAAkC;QAC5C,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChC,CAAC;IAEkB,KAAK,CAAC,KAAc;QACrC,OAAO,IAAI,CAAC,cAAc,CAAgC,CAAC,EAAE,UAAU,EAAE;YACvE,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletCarService.js","sourceRoot":"","sources":["../../../src/accessories/services/outletCarService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IACtD,YAAY,gBAAkC;QAC5C,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAEkB,KAAK,CAAC,KAAc;QACrC,OAAO,IAAI,CAAC,cAAc,CAA8B,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;CACF"}
@@ -1,15 +0,0 @@
1
- import { Service } from 'homebridge';
2
- import { ServiceBase } from './serviceBase.js';
3
- import { MqttSetMessageParams } from 'accessories/apis/interfaces/ecoFlowMqttContacts.js';
4
- import { EcoFlowAccessory } from 'accessories/ecoFlowAccessory.js';
5
- export declare abstract class OutletsServiceBase extends ServiceBase {
6
- private readonly serviceSubType;
7
- constructor(serviceSubType: string, ecoFlowAccessory: EcoFlowAccessory);
8
- updateState(state: boolean): void;
9
- updateInUse(isInUse: boolean): void;
10
- protected createService(): Service;
11
- protected abstract setOn(value: boolean): Promise<void>;
12
- protected publishEnabled<TParams extends MqttSetMessageParams>(moduleType: number, operateType: string, params: TParams): Promise<void>;
13
- private addCharacteristics;
14
- private getOrAddService;
15
- }
@@ -1,44 +0,0 @@
1
- import { ServiceBase } from './serviceBase.js';
2
- export class OutletsServiceBase extends ServiceBase {
3
- serviceSubType;
4
- constructor(serviceSubType, ecoFlowAccessory) {
5
- super(ecoFlowAccessory);
6
- this.serviceSubType = serviceSubType;
7
- }
8
- updateState(state) {
9
- this.log.debug(`${this.serviceSubType} State ->`, state);
10
- this.service.getCharacteristic(this.ecoFlowAccessory.platform.Characteristic.On).updateValue(state);
11
- }
12
- updateInUse(isInUse) {
13
- this.log.debug(`${this.serviceSubType} InUse ->`, isInUse);
14
- this.service.getCharacteristic(this.ecoFlowAccessory.platform.Characteristic.OutletInUse).updateValue(isInUse);
15
- }
16
- createService() {
17
- const service = this.getOrAddService(this.ecoFlowAccessory.config.name, this.serviceSubType);
18
- this.addCharacteristics(service);
19
- return service;
20
- }
21
- async publishEnabled(moduleType, operateType, params) {
22
- const data = {
23
- id: Math.floor(Math.random() * 1000000),
24
- version: '1.0',
25
- moduleType,
26
- operateType,
27
- params,
28
- };
29
- await this.ecoFlowAccessory.mqttApi.publish('/open/<certificateAccount>/<sn>/set', this.ecoFlowAccessory.config.serialNumber, data);
30
- }
31
- addCharacteristics(service) {
32
- service
33
- .getCharacteristic(this.ecoFlowAccessory.platform.Characteristic.On)
34
- .onSet(value => this.setOn(value));
35
- }
36
- getOrAddService(deviceName, serviceSubType) {
37
- const serviceName = deviceName + ' ' + serviceSubType;
38
- const service = this.ecoFlowAccessory.accessory.getServiceById(this.ecoFlowAccessory.platform.Service.Outlet, serviceSubType) ||
39
- this.ecoFlowAccessory.accessory.addService(this.ecoFlowAccessory.platform.Service.Outlet, serviceName, serviceSubType);
40
- service.setCharacteristic(this.ecoFlowAccessory.platform.Characteristic.Name, serviceName);
41
- return service;
42
- }
43
- }
44
- //# sourceMappingURL=outletServiceBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletServiceBase.js","sourceRoot":"","sources":["../../../src/accessories/services/outletServiceBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,MAAM,OAAgB,kBAAmB,SAAQ,WAAW;IAC7B;IAA7B,YAA6B,cAAsB,EAAE,gBAAkC;QACrF,KAAK,CAAC,gBAAgB,CAAC,CAAC;QADG,mBAAc,GAAd,cAAc,CAAQ;IAEnD,CAAC;IAEM,WAAW,CAAC,KAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,WAAW,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC;IAEM,WAAW,CAAC,OAAgB;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACjH,CAAC;IAEkB,aAAa;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAIS,KAAK,CAAC,cAAc,CAC5B,UAAkB,EAClB,WAAmB,EACnB,MAAe;QAEf,MAAM,IAAI,GAA4B;YACpC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;YACvC,OAAO,EAAE,KAAK;YACd,UAAU;YACV,WAAW;YACX,MAAM;SACP,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CACzC,qCAAqC,EACrC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,EACzC,IAAI,CACL,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,OAAgB;QACzC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aACnE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAgB,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,eAAe,CAAC,UAAkB,EAAE,cAAsB;QAChE,MAAM,WAAW,GAAG,UAAU,GAAG,GAAG,GAAG,cAAc,CAAC;QACtD,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;YAC7G,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAC7C,WAAW,EACX,cAAc,CACf,CAAC;QAEJ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAE3F,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"outletUsbService.js","sourceRoot":"","sources":["../../../src/accessories/services/outletUsbService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IACtD,YAAY,gBAAkC;QAC5C,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAEkB,KAAK,CAAC,KAAc;QACrC,OAAO,IAAI,CAAC,cAAc,CAA8B,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- import { Logging, Service } from 'homebridge';
2
- import { EcoFlowAccessory } from 'accessories/ecoFlowAccessory.js';
3
- export declare abstract class ServiceBase {
4
- protected ecoFlowAccessory: EcoFlowAccessory;
5
- protected readonly log: Logging;
6
- private _service;
7
- constructor(ecoFlowAccessory: EcoFlowAccessory);
8
- initialize(): void;
9
- get service(): Service;
10
- protected abstract createService(): Service;
11
- }
@@ -1,17 +0,0 @@
1
- export class ServiceBase {
2
- ecoFlowAccessory;
3
- log;
4
- _service = null;
5
- constructor(ecoFlowAccessory) {
6
- this.ecoFlowAccessory = ecoFlowAccessory;
7
- this.log = ecoFlowAccessory.log;
8
- }
9
- initialize() {
10
- this._service = this.createService();
11
- }
12
- // Getter for service
13
- get service() {
14
- return this._service;
15
- }
16
- }
17
- //# sourceMappingURL=serviceBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serviceBase.js","sourceRoot":"","sources":["../../../src/accessories/services/serviceBase.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,WAAW;IAIT;IAHH,GAAG,CAAU;IACxB,QAAQ,GAAmB,IAAI,CAAC;IAExC,YAAsB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QACtD,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAClC,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,qBAAqB;IACrB,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAS,CAAC;IACxB,CAAC;CAGF"}