@pietrolubini/homebridge-ecoflow 1.2.1 → 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.
- package/.gitattributes +7 -0
- package/.prettierrc.json +1 -0
- package/README.md +153 -24
- package/config.schema.json +65 -2
- package/dist/accessories/batteries/batteryAccessoryBase.d.ts +26 -0
- package/dist/accessories/batteries/batteryAccessoryBase.js +126 -0
- package/dist/accessories/batteries/batteryAccessoryBase.js.map +1 -0
- package/dist/accessories/batteries/batteryAccessoryBase.spec.d.ts +1 -0
- package/dist/accessories/batteries/delta2Accessory.d.ts +2 -2
- package/dist/accessories/batteries/delta2Accessory.js +6 -2
- package/dist/accessories/batteries/delta2Accessory.js.map +1 -1
- package/dist/accessories/batteries/delta2maxAccessory.d.ts +2 -2
- package/dist/accessories/batteries/delta2maxAccessory.js +6 -2
- package/dist/accessories/batteries/delta2maxAccessory.js.map +1 -1
- package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.d.ts +33 -0
- package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.js +3 -0
- package/dist/accessories/batteries/interfaces/httpApiBatteryContracts.js.map +1 -0
- package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.d.ts +36 -0
- package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.js +18 -0
- package/dist/accessories/batteries/interfaces/mqttApiBatteryContracts.js.map +1 -0
- package/dist/accessories/batteries/services/outletAcService.d.ts +8 -0
- package/dist/accessories/batteries/services/outletAcService.js +24 -0
- package/dist/accessories/batteries/services/outletAcService.js.map +1 -0
- package/dist/accessories/batteries/services/outletAcService.spec.d.ts +1 -0
- package/dist/accessories/batteries/services/outletBatteryServiceBase.d.ts +5 -0
- package/dist/accessories/batteries/services/outletBatteryServiceBase.js +18 -0
- package/dist/accessories/batteries/services/outletBatteryServiceBase.js.map +1 -0
- package/dist/accessories/batteries/services/outletCarService.d.ts +6 -0
- package/dist/accessories/batteries/services/outletCarService.js +17 -0
- package/dist/accessories/batteries/services/outletCarService.js.map +1 -0
- package/dist/accessories/batteries/services/outletCarService.spec.d.ts +1 -0
- package/dist/accessories/batteries/services/outletUsbService.d.ts +6 -0
- package/dist/accessories/batteries/services/outletUsbService.js +15 -0
- package/dist/accessories/batteries/services/outletUsbService.js.map +1 -0
- package/dist/accessories/batteries/services/outletUsbService.spec.d.ts +1 -0
- package/dist/accessories/batteries/simulations/batterySimulator.d.ts +6 -0
- package/dist/accessories/batteries/simulations/batterySimulator.js +60 -0
- package/dist/accessories/batteries/simulations/batterySimulator.js.map +1 -0
- package/dist/accessories/ecoFlowAccessoryBase.d.ts +41 -0
- package/dist/accessories/ecoFlowAccessoryBase.js +114 -0
- package/dist/accessories/ecoFlowAccessoryBase.js.map +1 -0
- package/dist/accessories/ecoFlowAccessoryBase.spec.d.ts +1 -0
- package/dist/accessories/ecoFlowAccessoryWithQuotaBase.d.ts +15 -0
- package/dist/accessories/ecoFlowAccessoryWithQuotaBase.js +34 -0
- package/dist/accessories/ecoFlowAccessoryWithQuotaBase.js.map +1 -0
- package/dist/accessories/ecoFlowAccessoryWithQuotaBase.spec.d.ts +1 -0
- package/dist/accessories/powerstream/interfaces/httpApiPowerStreamContracts.d.ts +16 -0
- package/dist/accessories/powerstream/interfaces/httpApiPowerStreamContracts.js +3 -0
- package/dist/accessories/powerstream/interfaces/httpApiPowerStreamContracts.js.map +1 -0
- package/dist/accessories/powerstream/interfaces/mqttApiPowerStreamContracts.d.ts +41 -0
- package/dist/accessories/powerstream/interfaces/mqttApiPowerStreamContracts.js +21 -0
- package/dist/accessories/powerstream/interfaces/mqttApiPowerStreamContracts.js.map +1 -0
- package/dist/accessories/powerstream/powerStreamAccessory.d.ts +26 -0
- package/dist/accessories/powerstream/powerStreamAccessory.js +113 -0
- package/dist/accessories/powerstream/powerStreamAccessory.js.map +1 -0
- package/dist/accessories/powerstream/powerStreamAccessory.spec.d.ts +1 -0
- package/dist/accessories/powerstream/services/brightnessService.d.ts +7 -0
- package/dist/accessories/powerstream/services/brightnessService.js +27 -0
- package/dist/accessories/powerstream/services/brightnessService.js.map +1 -0
- package/dist/accessories/powerstream/services/brightnessService.spec.d.ts +1 -0
- package/dist/accessories/powerstream/services/outletInvService.d.ts +7 -0
- package/dist/accessories/powerstream/services/outletInvService.js +14 -0
- package/dist/accessories/powerstream/services/outletInvService.js.map +1 -0
- package/dist/accessories/powerstream/services/outletInvService.spec.d.ts +1 -0
- package/dist/accessories/powerstream/services/outletService.d.ts +8 -0
- package/dist/accessories/powerstream/services/outletService.js +14 -0
- package/dist/accessories/powerstream/services/outletService.js.map +1 -0
- package/dist/accessories/powerstream/services/outletService.spec.d.ts +1 -0
- package/dist/accessories/powerstream/services/powerDemandService.d.ts +7 -0
- package/dist/accessories/powerstream/services/powerDemandService.js +27 -0
- package/dist/accessories/powerstream/services/powerDemandService.js.map +1 -0
- package/dist/accessories/powerstream/services/powerDemandService.spec.d.ts +1 -0
- package/dist/accessories/powerstream/simulations/powerStreamSimulator.d.ts +6 -0
- package/dist/accessories/powerstream/simulations/powerStreamSimulator.js +39 -0
- package/dist/accessories/powerstream/simulations/powerStreamSimulator.js.map +1 -0
- package/dist/apis/containers/deviceInfo.d.ts +13 -0
- package/dist/apis/containers/deviceInfo.js +23 -0
- package/dist/apis/containers/deviceInfo.js.map +1 -0
- package/dist/apis/containers/deviceInfo.spec.d.ts +1 -0
- package/dist/apis/containers/mqttClientContainer.d.ts +17 -0
- package/dist/apis/containers/mqttClientContainer.js +45 -0
- package/dist/apis/containers/mqttClientContainer.js.map +1 -0
- package/dist/apis/containers/mqttClientContainer.spec.d.ts +1 -0
- package/dist/apis/containers/mqttDevice.d.ts +15 -0
- package/dist/apis/containers/mqttDevice.js +43 -0
- package/dist/apis/containers/mqttDevice.js.map +1 -0
- package/dist/apis/containers/mqttDevice.spec.d.ts +1 -0
- package/dist/apis/ecoFlowHttpApiManager.d.ts +13 -0
- package/dist/apis/{ecoFlowHttpApi.js → ecoFlowHttpApiManager.js} +55 -45
- package/dist/apis/ecoFlowHttpApiManager.js.map +1 -0
- package/dist/apis/ecoFlowHttpApiManager.spec.d.ts +1 -0
- package/dist/apis/ecoFlowMqttApiManager.d.ts +25 -0
- package/dist/apis/ecoFlowMqttApiManager.js +152 -0
- package/dist/apis/ecoFlowMqttApiManager.js.map +1 -0
- package/dist/apis/ecoFlowMqttApiManager.spec.d.ts +1 -0
- package/dist/apis/interfaces/httpApiContracts.d.ts +30 -0
- package/dist/apis/interfaces/httpApiContracts.js +9 -0
- package/dist/apis/interfaces/httpApiContracts.js.map +1 -0
- package/dist/apis/interfaces/mqttApiContracts.d.ts +26 -0
- package/dist/apis/interfaces/mqttApiContracts.js +9 -0
- package/dist/apis/interfaces/mqttApiContracts.js.map +1 -0
- package/dist/apis/simulations/mockMqttClient.d.ts +15 -0
- package/dist/apis/simulations/mockMqttClient.js +59 -0
- package/dist/apis/simulations/mockMqttClient.js.map +1 -0
- package/dist/apis/simulations/mockMqttClient.spec.d.ts +1 -0
- package/dist/apis/simulations/simulator.d.ts +13 -0
- package/dist/apis/simulations/simulator.js +26 -0
- package/dist/apis/simulations/simulator.js.map +1 -0
- package/dist/characteristics/{CustomCharacteristic.js → customCharacteristic.js} +18 -11
- package/dist/characteristics/customCharacteristic.js.map +1 -0
- package/dist/characteristics/customCharacteristic.spec.d.ts +1 -0
- package/dist/config.d.ts +28 -4
- package/dist/config.js +15 -6
- package/dist/config.js.map +1 -1
- package/dist/helpers/logger.js +5 -1
- package/dist/helpers/logger.js.map +1 -1
- package/dist/helpers/logger.spec.d.ts +1 -0
- package/dist/helpers/machineIdProvider.d.ts +4 -0
- package/dist/helpers/machineIdProvider.js +19 -0
- package/dist/helpers/machineIdProvider.js.map +1 -0
- package/dist/helpers/machineIdProvider.spec.d.ts +1 -0
- package/dist/helpers/tests/accessoryTestHelper.d.ts +5 -0
- package/dist/helpers/tests/serviceTestHelper.d.ts +6 -0
- package/dist/helpers/tests/sleep.d.ts +1 -0
- package/dist/homebridge-ui/public/index.d.ts +2 -0
- package/dist/homebridge-ui/public/index.html +6 -0
- package/dist/homebridge-ui/public/index.js +1 -0
- package/dist/homebridge-ui/public/index.spec.d.ts +1 -0
- package/dist/homebridge-ui/public/interfaces/contracts.d.ts +13 -0
- package/dist/homebridge-ui/public/interfaces/homebridge.d.ts +52 -0
- package/dist/homebridge-ui/public/renderers/componentRenderer.d.ts +6 -0
- package/dist/homebridge-ui/public/renderers/componentRenderer.spec.d.ts +1 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigDevicesRenderer.d.ts +20 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigDevicesRenderer.spec.d.ts +1 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigNameRenderer.d.ts +5 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigNameRenderer.spec.d.ts +1 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigRenderer.d.ts +6 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigRenderer.spec.d.ts +1 -0
- package/dist/homebridge-ui/public/renderers/pluginConfigRendererBase.d.ts +9 -0
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/index.spec.d.ts +1 -0
- package/dist/platform.d.ts +11 -8
- package/dist/platform.js +88 -32
- package/dist/platform.js.map +1 -1
- package/dist/platform.spec.d.ts +1 -0
- package/dist/services/accessoryInformationService.d.ts +5 -3
- package/dist/services/accessoryInformationService.js +15 -12
- package/dist/services/accessoryInformationService.js.map +1 -1
- package/dist/services/accessoryInformationService.spec.d.ts +1 -0
- package/dist/services/batteryStatusService.d.ts +6 -4
- package/dist/services/batteryStatusService.js +19 -17
- package/dist/services/batteryStatusService.js.map +1 -1
- package/dist/services/batteryStatusService.spec.d.ts +1 -0
- package/dist/services/fanServiceBase.d.ts +16 -0
- package/dist/services/fanServiceBase.js +42 -0
- package/dist/services/fanServiceBase.js.map +1 -0
- package/dist/services/fanServiceBase.spec.d.ts +1 -0
- package/dist/services/lightBulbServiceBase.d.ts +16 -0
- package/dist/services/lightBulbServiceBase.js +42 -0
- package/dist/services/lightBulbServiceBase.js.map +1 -0
- package/dist/services/lightBulbServiceBase.spec.d.ts +1 -0
- package/dist/services/outletServiceBase.d.ts +7 -15
- package/dist/services/outletServiceBase.js +20 -28
- package/dist/services/outletServiceBase.js.map +1 -1
- package/dist/services/outletServiceBase.spec.d.ts +1 -0
- package/dist/services/serviceBase.d.ts +10 -5
- package/dist/services/serviceBase.js +31 -8
- package/dist/services/serviceBase.js.map +1 -1
- package/dist/settings.js +5 -2
- package/dist/settings.js.map +1 -1
- package/docs/images/plugin_icon.png +0 -0
- package/jest.config.ts +46 -0
- package/junit.xml +843 -0
- package/package.json +42 -12
- package/tsconfig.build.json +5 -0
- package/tsconfig.spec.json +8 -0
- package/dist/accessories/batteries/batteryAccessory.d.ts +0 -59
- package/dist/accessories/batteries/batteryAccessory.js +0 -120
- package/dist/accessories/batteries/batteryAccessory.js.map +0 -1
- package/dist/accessories/ecoFlowAccessory.d.ts +0 -42
- package/dist/accessories/ecoFlowAccessory.js +0 -122
- package/dist/accessories/ecoFlowAccessory.js.map +0 -1
- package/dist/apis/ecoFlowHttpApi.d.ts +0 -47
- package/dist/apis/ecoFlowHttpApi.js.map +0 -1
- package/dist/apis/ecoFlowMqttApi.d.ts +0 -53
- package/dist/apis/ecoFlowMqttApi.js +0 -100
- package/dist/apis/ecoFlowMqttApi.js.map +0 -1
- package/dist/characteristics/CustomCharacteristic.js.map +0 -1
- package/dist/helpers/machineId.d.ts +0 -2
- package/dist/helpers/machineId.js +0 -15
- package/dist/helpers/machineId.js.map +0 -1
- package/dist/helpers/machineIdHelper.cjs +0 -5
- package/dist/services/outletAcService.d.ts +0 -8
- package/dist/services/outletAcService.js +0 -17
- package/dist/services/outletAcService.js.map +0 -1
- package/dist/services/outletCarService.d.ts +0 -6
- package/dist/services/outletCarService.js +0 -12
- package/dist/services/outletCarService.js.map +0 -1
- package/dist/services/outletUsbService.d.ts +0 -6
- package/dist/services/outletUsbService.js +0 -10
- package/dist/services/outletUsbService.js.map +0 -1
- /package/dist/characteristics/{CustomCharacteristic.d.ts → customCharacteristic.d.ts} +0 -0
package/.gitattributes
ADDED
package/.prettierrc.json
CHANGED
package/README.md
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
<span align="center">
|
|
2
2
|
|
|
3
|
-
# homebridge-ecoflow
|
|
3
|
+
# @pietrolubini/homebridge-ecoflow
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/@pietrolubini/homebridge-ecoflow/v/latest)
|
|
6
|
+
[](https://www.npmjs.com/package/@pietrolubini/homebridge-ecoflow/v/beta)
|
|
7
|
+
[](https://www.npmjs.com/package/@pietrolubini/homebridge-ecoflow)
|
|
8
|
+
[](https://github.com/pietrolubini/homebridge-ecoflow/actions/workflows/build.yml)
|
|
9
|
+
[](https://github.com/pietrolubini/homebridge-ecoflow/blob/main/LICENSE)
|
|
10
|
+
[](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
|
|
11
|
+
[](https://commerce.coinbase.com/checkout/d56df2da-7609-41a3-af91-289cb6ec4d9b)
|
|
7
12
|
|
|
8
13
|
</span>
|
|
9
14
|
|
|
10
|
-
|
|
15
|
+
`@pietrolubini/homebridge-ecoflow` is a plugin for homebridge which allows you to control EcoFlow devices!
|
|
11
16
|
The goal is to add HomeKit support to EcoFlow devices and make them fully controllable from the native HomeKit iOS app and Siri.
|
|
12
17
|
|
|
13
18
|
> Feedback and contribution is helpful and will improve the plugin!
|
|
@@ -20,10 +25,11 @@ The goal is to add HomeKit support to EcoFlow devices and make them fully contro
|
|
|
20
25
|
- Fully customizable HomeKit accessories
|
|
21
26
|
- HomeKit automations for your EcoFlow devices
|
|
22
27
|
|
|
23
|
-
## Supported
|
|
28
|
+
## Supported Device Types
|
|
24
29
|
|
|
25
|
-
- Delta 2
|
|
26
|
-
- Delta 2 Max
|
|
30
|
+
- [Delta 2](#delta-2)
|
|
31
|
+
- [Delta 2 Max](#delta-2-max)
|
|
32
|
+
- [PowerStream Micro-inverter](#powerstream-micro-inverter)
|
|
27
33
|
|
|
28
34
|
For a full list of devices that could be potentially added check [here](https://developer-eu.ecoflow.com/us/document/introduction)
|
|
29
35
|
|
|
@@ -39,18 +45,15 @@ sudo npm install -g @pietrolubini/homebridge-ecoflow
|
|
|
39
45
|
|
|
40
46
|
## Configuration
|
|
41
47
|
|
|
42
|
-
Add the `EcoFlowHomebridge` platform in `config.json` in your home directory inside `.homebridge`.
|
|
48
|
+
Add the `EcoFlowHomebridge` platform in `config.json` in your home directory inside `.homebridge`. Add your devices in the `devices` array. Example of configuration:
|
|
43
49
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Example configuration:
|
|
47
|
-
|
|
48
|
-
```js
|
|
50
|
+
```json
|
|
49
51
|
{
|
|
50
52
|
"platforms": [
|
|
51
53
|
{
|
|
52
54
|
"devices": [
|
|
53
55
|
{
|
|
56
|
+
"disabled": false,
|
|
54
57
|
"name": "Battery",
|
|
55
58
|
"model": "Delta 2 Max",
|
|
56
59
|
"serialNumber": "R123ABCDEGHI321",
|
|
@@ -59,26 +62,91 @@ Example configuration:
|
|
|
59
62
|
"secretKey": "yBwYgZWqNnAlULKmF1Qrydy2Iheexj22"
|
|
60
63
|
}
|
|
61
64
|
],
|
|
62
|
-
"
|
|
65
|
+
"name": "Homebridge EcoFlow",
|
|
66
|
+
"platform": "EcoFlowHomebridge"
|
|
63
67
|
}
|
|
64
68
|
]
|
|
65
69
|
}
|
|
66
70
|
```
|
|
67
71
|
|
|
68
|
-
###
|
|
72
|
+
### AccessKey and SecretKey
|
|
73
|
+
|
|
74
|
+
For the plugin to work EcoFlow account's `AccessKey` and `SecretKey` is required. To retrieve them
|
|
75
|
+
|
|
76
|
+
- Register on [EcoFlow IoT Developer Platform](https://developer-eu.ecoflow.com/)
|
|
77
|
+
- Wait until your request will be approved
|
|
78
|
+
- Generate `AccessKey`/`SecretKey` pair [here](https://developer-eu.ecoflow.com/us/security)
|
|
79
|
+
|
|
80
|
+
### Simulate Accessory
|
|
69
81
|
|
|
70
|
-
|
|
82
|
+
It is possible to simulate accessory by adding `simulate` property to device's configuration (`accessKey` and `secretKey` could contain mock values).
|
|
83
|
+
Quota is sent every 10 seconds with random values in this mode.
|
|
84
|
+
|
|
85
|
+
> 🛈 Each simulated device should have fake unique `serialNumber`, `accessKey` and `secretKey`
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"platforms": [
|
|
90
|
+
{
|
|
91
|
+
"devices": [
|
|
92
|
+
{
|
|
93
|
+
"disabled": false,
|
|
94
|
+
"name": "Battery",
|
|
95
|
+
"model": "Delta 2 Max",
|
|
96
|
+
"serialNumber": "R123ABCDEGHI321",
|
|
97
|
+
"accessKey": "key1",
|
|
98
|
+
"secretKey": "key2",
|
|
99
|
+
"simulate": true
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"name": "Homebridge EcoFlow",
|
|
103
|
+
"platform": "EcoFlowHomebridge"
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Supported Devices
|
|
110
|
+
|
|
111
|
+
### Delta 2
|
|
112
|
+
|
|
113
|
+
#### Services
|
|
114
|
+
|
|
115
|
+
| EcoFlow Parameter | Service | Characteristic | Standard | Permission |
|
|
116
|
+
| ----------------- | ---------- | --------------------- | -------- | ---------- |
|
|
117
|
+
| Battery Level | Battery | BatteryLevel | ✅ | Read |
|
|
118
|
+
| Input | Battery | ChargingState | ✅ | Read |
|
|
119
|
+
| Battery Level | Battery | StatusLowBattery | ✅ | Read |
|
|
120
|
+
| AC | Outlet AC | On | ✅ | Read/Write |
|
|
121
|
+
| AC Output | Outlet AC | OutletInUse | ✅ | Read |
|
|
122
|
+
| Battery Level | Outlet AC | Battery Level, % | 🔲 | Read |
|
|
123
|
+
| Input | Outlet AC | Input Consumption, W | 🔲 | Read |
|
|
124
|
+
| Output | Outlet AC | Output Consumption, W | 🔲 | Read |
|
|
125
|
+
| 12V DC | Outlet CAR | On | ✅ | Read/Write |
|
|
126
|
+
| 12V DC Output | Outlet CAR | OutletInUse | ✅ | Read |
|
|
127
|
+
| Battery Level | Outlet CAR | Battery Level, % | 🔲 | Read |
|
|
128
|
+
| Input | Outlet CAR | Input Consumption, W | 🔲 | Read |
|
|
129
|
+
| Output | Outlet CAR | Output Consumption, W | 🔲 | Read |
|
|
130
|
+
| USB | Outlet USB | On | ✅ | Read/Write |
|
|
131
|
+
| USB Output | Outlet USB | OutletInUse | ✅ | Read |
|
|
132
|
+
| Battery Level | Outlet USB | Battery Level, % | 🔲 | Read |
|
|
133
|
+
| Input | Outlet USB | Input Consumption, W | 🔲 | Read |
|
|
134
|
+
| Output | Outlet USB | Output Consumption, W | 🔲 | Read |
|
|
135
|
+
|
|
136
|
+
#### Configuration
|
|
137
|
+
|
|
138
|
+
The following additional characteristics is available:
|
|
71
139
|
|
|
72
140
|
- Input Consumption, W
|
|
73
141
|
- Output Consumption, W
|
|
74
142
|
- Battery Level, %
|
|
75
143
|
|
|
76
|
-
```
|
|
144
|
+
```json
|
|
77
145
|
{
|
|
78
146
|
...
|
|
79
147
|
"devices": [
|
|
80
148
|
{
|
|
81
|
-
|
|
149
|
+
...
|
|
82
150
|
"model": "Delta 2 Max",
|
|
83
151
|
"battery": {
|
|
84
152
|
"additionalCharacteristics": [
|
|
@@ -96,13 +164,74 @@ The characteristics could be used as conditions in HomeKit Automation that uses
|
|
|
96
164
|
|
|
97
165
|
<img src="docs/images/BatteryAdditionalCharacteristics.jpg" alt="Battery Additional Characteristics" width="300">
|
|
98
166
|
|
|
99
|
-
###
|
|
167
|
+
### Delta 2 Max
|
|
168
|
+
|
|
169
|
+
Supported services and configuration are the same as for [Delta 2](#delta-2)
|
|
170
|
+
|
|
171
|
+
### PowerStream Micro-inverter
|
|
172
|
+
|
|
173
|
+
#### Services
|
|
174
|
+
|
|
175
|
+
| EcoFlow Parameter | Service | Characteristic | Standard | Permission |
|
|
176
|
+
| ------------------- | ---------- | --------------------- | -------- | ---------------------------------------------------- |
|
|
177
|
+
| Inverter | Outlet INV | On | ✅ | Read (Inverter AC Output > 0: ON) |
|
|
178
|
+
| Inverter AC Output | Outlet INV | OutletInUse | ✅ | Read |
|
|
179
|
+
| Inverter AC Input | Outlet INV | Input Consumption, W | 🔲 | Read |
|
|
180
|
+
| Inverter AC Output | Outlet INV | Output Consumption, W | 🔲 | Read |
|
|
181
|
+
| Solar | Outlet PV | On | ✅ | Read (Solar Generation > 0: ON) |
|
|
182
|
+
| Solar Generation | Outlet PV | OutletInUse | ✅ | Read |
|
|
183
|
+
| Solar Generation | Outlet PV | Output Consumption, W | 🔲 | Read |
|
|
184
|
+
| Battery | Outlet BAT | On | ✅ | Read (Battery Discharging > 0: ON) |
|
|
185
|
+
| Battery Discharging | Outlet BAT | OutletInUse | ✅ | Read |
|
|
186
|
+
| Battery Level | Outlet BAT | Battery Level, % | 🔲 | Read |
|
|
187
|
+
| Battery Charging | Outlet BAT | Input Consumption, W | 🔲 | Read |
|
|
188
|
+
| Battery Discharging | Outlet BAT | Output Consumption, W | 🔲 | Read |
|
|
189
|
+
| Lighting brightness | Lightbulb | On | ✅ | Read (> 0%: ON; 0%: OFF) / write (ON: 100%; OFF: 0%) |
|
|
190
|
+
| Lighting brightness | Lightbulb | Brightness | ✅ | Read/write |
|
|
191
|
+
| Power demand | Fan | On | ✅ | Read (> 0%: ON; 0%: OFF) / write (ON: 100%; OFF: 0%) |
|
|
192
|
+
| Power demand | Fan | RotationSpeed | ✅ | Read/write |
|
|
193
|
+
|
|
194
|
+
#### Configuration
|
|
195
|
+
|
|
196
|
+
The following additional characteristics is available:
|
|
197
|
+
|
|
198
|
+
- type (600, 800)
|
|
199
|
+
- battery:
|
|
200
|
+
- Input Consumption, W
|
|
201
|
+
- Output Consumption, W
|
|
202
|
+
- Battery Level, %
|
|
203
|
+
- pv:
|
|
204
|
+
- Output Consumption, W
|
|
205
|
+
- inverter:
|
|
206
|
+
- Input Consumption, W
|
|
207
|
+
- Output Consumption, W
|
|
100
208
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
...
|
|
212
|
+
"devices": [
|
|
213
|
+
{
|
|
214
|
+
...
|
|
215
|
+
"model": "PowerStream",
|
|
216
|
+
"powerStream": {
|
|
217
|
+
"type": "800",
|
|
218
|
+
"batteryAdditionalCharacteristics": [
|
|
219
|
+
"Battery Level, %",
|
|
220
|
+
"Input Consumption, W",
|
|
221
|
+
"Output Consumption, W"
|
|
222
|
+
],
|
|
223
|
+
"pvAdditionalCharacteristics": [
|
|
224
|
+
"Output Consumption, W"
|
|
225
|
+
],
|
|
226
|
+
"inverterAdditionalCharacteristics": [
|
|
227
|
+
"Input Consumption, W",
|
|
228
|
+
"Output Consumption, W"
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
}
|
|
234
|
+
```
|
|
106
235
|
|
|
107
236
|
## Troubleshooting
|
|
108
237
|
|
package/config.schema.json
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
"pluginAlias": "EcoFlowHomebridge",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
+
"customUi": true,
|
|
6
|
+
"customUiPath": "./dist/homebridge-ui",
|
|
5
7
|
"schema": {
|
|
6
8
|
"type": "object",
|
|
7
9
|
"properties": {
|
|
@@ -12,6 +14,7 @@
|
|
|
12
14
|
"required": true
|
|
13
15
|
},
|
|
14
16
|
"devices": {
|
|
17
|
+
"title": "Devices",
|
|
15
18
|
"type": "array",
|
|
16
19
|
"required": true,
|
|
17
20
|
"uniqueItems": true,
|
|
@@ -27,8 +30,9 @@
|
|
|
27
30
|
"model": {
|
|
28
31
|
"title": "Model",
|
|
29
32
|
"type": "string",
|
|
33
|
+
"default": "Delta 2",
|
|
30
34
|
"required": true,
|
|
31
|
-
"enum": ["Delta 2", "Delta 2 Max"]
|
|
35
|
+
"enum": ["Delta 2", "Delta 2 Max", "PowerStream"]
|
|
32
36
|
},
|
|
33
37
|
"serialNumber": {
|
|
34
38
|
"title": "Serial Number",
|
|
@@ -56,12 +60,24 @@
|
|
|
56
60
|
"required": true,
|
|
57
61
|
"description": "Secret Key from \"EcoFlow IoT Developer Platform\" (https://developer-eu.ecoflow.com)"
|
|
58
62
|
},
|
|
63
|
+
"disabled": {
|
|
64
|
+
"title": "Disabled",
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"required": false,
|
|
67
|
+
"description": "A value indicating whether device should be ignored"
|
|
68
|
+
},
|
|
69
|
+
"simulate": {
|
|
70
|
+
"title": "Simulate",
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"required": false,
|
|
73
|
+
"description": "A value indicating whether device should be simulated"
|
|
74
|
+
},
|
|
59
75
|
"battery": {
|
|
60
76
|
"title": "Battery Settings",
|
|
61
77
|
"type": "object",
|
|
62
78
|
"properties": {
|
|
63
79
|
"additionalCharacteristics": {
|
|
64
|
-
"title": "Additional
|
|
80
|
+
"title": "Battery Additional Characteristics",
|
|
65
81
|
"description": "List of additional characteristics for battery",
|
|
66
82
|
"type": "array",
|
|
67
83
|
"uniqueItems": true,
|
|
@@ -72,6 +88,53 @@
|
|
|
72
88
|
}
|
|
73
89
|
}
|
|
74
90
|
}
|
|
91
|
+
},
|
|
92
|
+
"powerStream": {
|
|
93
|
+
"title": "PowerStream Settings",
|
|
94
|
+
"type": "object",
|
|
95
|
+
"properties": {
|
|
96
|
+
"type": {
|
|
97
|
+
"title": "Type",
|
|
98
|
+
"type": "string",
|
|
99
|
+
"required": true,
|
|
100
|
+
"default": "600",
|
|
101
|
+
"enum": ["600", "800"],
|
|
102
|
+
"description": "Maximum power, W"
|
|
103
|
+
},
|
|
104
|
+
"batteryAdditionalCharacteristics": {
|
|
105
|
+
"title": "Battery Additional Characteristics",
|
|
106
|
+
"description": "List of additional characteristics for Battery connected to PowerStream",
|
|
107
|
+
"type": "array",
|
|
108
|
+
"uniqueItems": true,
|
|
109
|
+
"items": {
|
|
110
|
+
"title": "Characteristic",
|
|
111
|
+
"type": "string",
|
|
112
|
+
"enum": ["Battery Level, %", "Input Consumption, W", "Output Consumption, W"]
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"pvAdditionalCharacteristics": {
|
|
116
|
+
"title": "PV Additional Characteristics",
|
|
117
|
+
"description": "List of additional characteristics for PVs connected for PowerStream",
|
|
118
|
+
"type": "array",
|
|
119
|
+
"uniqueItems": true,
|
|
120
|
+
"items": {
|
|
121
|
+
"title": "Characteristic",
|
|
122
|
+
"type": "string",
|
|
123
|
+
"enum": ["Output Consumption, W"]
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"inverterAdditionalCharacteristics": {
|
|
127
|
+
"title": "Inverter Additional Characteristics",
|
|
128
|
+
"description": "List of additional characteristics for PowerStream",
|
|
129
|
+
"type": "array",
|
|
130
|
+
"uniqueItems": true,
|
|
131
|
+
"items": {
|
|
132
|
+
"title": "Characteristic",
|
|
133
|
+
"type": "string",
|
|
134
|
+
"enum": ["Input Consumption, W", "Output Consumption, W"]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
75
138
|
}
|
|
76
139
|
}
|
|
77
140
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BatteryAllQuotaData } from '@ecoflow/accessories/batteries/interfaces/httpApiBatteryContracts';
|
|
2
|
+
import { EcoFlowAccessoryWithQuotaBase } from '@ecoflow/accessories/ecoFlowAccessoryWithQuotaBase';
|
|
3
|
+
import { EcoFlowHttpApiManager } from '@ecoflow/apis/ecoFlowHttpApiManager';
|
|
4
|
+
import { EcoFlowMqttApiManager } from '@ecoflow/apis/ecoFlowMqttApiManager';
|
|
5
|
+
import { MqttQuotaMessage } from '@ecoflow/apis/interfaces/mqttApiContracts';
|
|
6
|
+
import { DeviceConfig } from '@ecoflow/config';
|
|
7
|
+
import { EcoFlowHomebridgePlatform } from '@ecoflow/platform';
|
|
8
|
+
import { ServiceBase } from '@ecoflow/services/serviceBase';
|
|
9
|
+
import { Logging, PlatformAccessory } from 'homebridge';
|
|
10
|
+
export declare abstract class BatteryAccessoryBase extends EcoFlowAccessoryWithQuotaBase<BatteryAllQuotaData> {
|
|
11
|
+
private readonly batteryService;
|
|
12
|
+
private readonly outletUsbService;
|
|
13
|
+
private readonly outletAcService;
|
|
14
|
+
private readonly outletCarService;
|
|
15
|
+
constructor(platform: EcoFlowHomebridgePlatform, accessory: PlatformAccessory, config: DeviceConfig, log: Logging, httpApiManager: EcoFlowHttpApiManager, mqttApiManager: EcoFlowMqttApiManager);
|
|
16
|
+
protected getServices(): ServiceBase[];
|
|
17
|
+
protected processQuotaMessage(message: MqttQuotaMessage): void;
|
|
18
|
+
protected initializeQuota(quota: BatteryAllQuotaData | null): BatteryAllQuotaData;
|
|
19
|
+
protected updateInitialValues(initialData: BatteryAllQuotaData): void;
|
|
20
|
+
private updateEmsInitialValues;
|
|
21
|
+
private updateInvInitialValues;
|
|
22
|
+
private updatePdInitialValues;
|
|
23
|
+
private updateEmsValues;
|
|
24
|
+
private updateInvValues;
|
|
25
|
+
private updatePdValues;
|
|
26
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BatteryAccessoryBase = void 0;
|
|
4
|
+
const mqttApiBatteryContracts_1 = require("@ecoflow/accessories/batteries/interfaces/mqttApiBatteryContracts");
|
|
5
|
+
const outletAcService_1 = require("@ecoflow/accessories/batteries/services/outletAcService");
|
|
6
|
+
const outletCarService_1 = require("@ecoflow/accessories/batteries/services/outletCarService");
|
|
7
|
+
const outletUsbService_1 = require("@ecoflow/accessories/batteries/services/outletUsbService");
|
|
8
|
+
const ecoFlowAccessoryWithQuotaBase_1 = require("@ecoflow/accessories/ecoFlowAccessoryWithQuotaBase");
|
|
9
|
+
const batteryStatusService_1 = require("@ecoflow/services/batteryStatusService");
|
|
10
|
+
class BatteryAccessoryBase extends ecoFlowAccessoryWithQuotaBase_1.EcoFlowAccessoryWithQuotaBase {
|
|
11
|
+
batteryService;
|
|
12
|
+
outletUsbService;
|
|
13
|
+
outletAcService;
|
|
14
|
+
outletCarService;
|
|
15
|
+
constructor(platform, accessory, config, log, httpApiManager, mqttApiManager) {
|
|
16
|
+
super(platform, accessory, config, log, httpApiManager, mqttApiManager);
|
|
17
|
+
this.batteryService = new batteryStatusService_1.BatteryStatusService(this);
|
|
18
|
+
this.outletUsbService = new outletUsbService_1.OutletUsbService(this);
|
|
19
|
+
this.outletAcService = new outletAcService_1.OutletAcService(this);
|
|
20
|
+
this.outletCarService = new outletCarService_1.OutletCarService(this);
|
|
21
|
+
}
|
|
22
|
+
getServices() {
|
|
23
|
+
return [this.batteryService, this.outletUsbService, this.outletAcService, this.outletCarService];
|
|
24
|
+
}
|
|
25
|
+
processQuotaMessage(message) {
|
|
26
|
+
const batteryMessage = message;
|
|
27
|
+
if (batteryMessage.typeCode === mqttApiBatteryContracts_1.MqttBatteryMessageType.EMS) {
|
|
28
|
+
const emsStatus = message.params;
|
|
29
|
+
Object.assign(this.quota.bms_emsStatus, emsStatus);
|
|
30
|
+
this.updateEmsValues(emsStatus);
|
|
31
|
+
}
|
|
32
|
+
else if (batteryMessage.typeCode === mqttApiBatteryContracts_1.MqttBatteryMessageType.INV) {
|
|
33
|
+
const invStatus = message.params;
|
|
34
|
+
Object.assign(this.quota.inv, invStatus);
|
|
35
|
+
this.updateInvValues(invStatus);
|
|
36
|
+
}
|
|
37
|
+
else if (batteryMessage.typeCode === mqttApiBatteryContracts_1.MqttBatteryMessageType.PD) {
|
|
38
|
+
const pdStatus = message.params;
|
|
39
|
+
Object.assign(this.quota.pd, pdStatus);
|
|
40
|
+
this.updatePdValues(pdStatus);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
initializeQuota(quota) {
|
|
44
|
+
const result = quota ?? {};
|
|
45
|
+
if (!result.bms_emsStatus) {
|
|
46
|
+
result.bms_emsStatus = {};
|
|
47
|
+
}
|
|
48
|
+
if (!result.inv) {
|
|
49
|
+
result.inv = {};
|
|
50
|
+
}
|
|
51
|
+
if (!result.pd) {
|
|
52
|
+
result.pd = {};
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
updateInitialValues(initialData) {
|
|
57
|
+
this.updateEmsInitialValues(initialData.bms_emsStatus);
|
|
58
|
+
this.updateInvInitialValues(initialData.inv);
|
|
59
|
+
this.updatePdInitialValues(initialData.pd);
|
|
60
|
+
}
|
|
61
|
+
updateEmsInitialValues(params) {
|
|
62
|
+
const message = {
|
|
63
|
+
typeCode: mqttApiBatteryContracts_1.MqttBatteryMessageType.EMS,
|
|
64
|
+
params,
|
|
65
|
+
};
|
|
66
|
+
this.processQuotaMessage(message);
|
|
67
|
+
}
|
|
68
|
+
updateInvInitialValues(params) {
|
|
69
|
+
const message = {
|
|
70
|
+
typeCode: mqttApiBatteryContracts_1.MqttBatteryMessageType.INV,
|
|
71
|
+
params,
|
|
72
|
+
};
|
|
73
|
+
this.processQuotaMessage(message);
|
|
74
|
+
}
|
|
75
|
+
updatePdInitialValues(params) {
|
|
76
|
+
const message = {
|
|
77
|
+
typeCode: mqttApiBatteryContracts_1.MqttBatteryMessageType.PD,
|
|
78
|
+
params,
|
|
79
|
+
};
|
|
80
|
+
this.processQuotaMessage(message);
|
|
81
|
+
}
|
|
82
|
+
updateEmsValues(params) {
|
|
83
|
+
if (params.f32LcdShowSoc !== undefined) {
|
|
84
|
+
this.batteryService.updateBatteryLevel(params.f32LcdShowSoc);
|
|
85
|
+
this.outletAcService.updateBatteryLevel(params.f32LcdShowSoc);
|
|
86
|
+
this.outletUsbService.updateBatteryLevel(params.f32LcdShowSoc);
|
|
87
|
+
this.outletCarService.updateBatteryLevel(params.f32LcdShowSoc);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
updateInvValues(params) {
|
|
91
|
+
if (params.inputWatts !== undefined) {
|
|
92
|
+
this.batteryService.updateChargingState(params.inputWatts);
|
|
93
|
+
this.outletAcService.updateInputConsumption(params.inputWatts);
|
|
94
|
+
this.outletUsbService.updateInputConsumption(params.inputWatts);
|
|
95
|
+
this.outletCarService.updateInputConsumption(params.inputWatts);
|
|
96
|
+
}
|
|
97
|
+
if (params.cfgAcEnabled !== undefined) {
|
|
98
|
+
this.outletAcService.updateState(params.cfgAcEnabled);
|
|
99
|
+
}
|
|
100
|
+
if (params.outputWatts !== undefined) {
|
|
101
|
+
this.outletAcService.updateOutputConsumption(params.outputWatts);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
updatePdValues(params) {
|
|
105
|
+
if (params.carState !== undefined) {
|
|
106
|
+
this.outletCarService.updateState(params.carState);
|
|
107
|
+
}
|
|
108
|
+
if (params.carWatts !== undefined) {
|
|
109
|
+
this.outletCarService.updateOutputConsumption(params.carWatts);
|
|
110
|
+
}
|
|
111
|
+
if (params.dcOutState !== undefined) {
|
|
112
|
+
this.outletUsbService.updateState(params.dcOutState);
|
|
113
|
+
}
|
|
114
|
+
if (params.usb1Watts !== undefined ||
|
|
115
|
+
params.usb2Watts !== undefined ||
|
|
116
|
+
params.qcUsb1Watts !== undefined ||
|
|
117
|
+
params.qcUsb2Watts !== undefined ||
|
|
118
|
+
params.typec1Watts !== undefined ||
|
|
119
|
+
params.typec2Watts !== undefined) {
|
|
120
|
+
const usbWatts = this.sum(params.usb1Watts, params.usb2Watts, params.qcUsb1Watts, params.qcUsb2Watts, params.typec1Watts, params.typec2Watts);
|
|
121
|
+
this.outletUsbService.updateOutputConsumption(usbWatts);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.BatteryAccessoryBase = BatteryAccessoryBase;
|
|
126
|
+
//# sourceMappingURL=batteryAccessoryBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batteryAccessoryBase.js","sourceRoot":"","sources":["../../../src/accessories/batteries/batteryAccessoryBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class Delta2Accessory extends
|
|
1
|
+
import { BatteryAccessoryBase } from '@ecoflow/accessories/batteries/batteryAccessoryBase';
|
|
2
|
+
export declare class Delta2Accessory extends BatteryAccessoryBase {
|
|
3
3
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Delta2Accessory = void 0;
|
|
4
|
+
const batteryAccessoryBase_1 = require("@ecoflow/accessories/batteries/batteryAccessoryBase");
|
|
5
|
+
class Delta2Accessory extends batteryAccessoryBase_1.BatteryAccessoryBase {
|
|
3
6
|
}
|
|
7
|
+
exports.Delta2Accessory = Delta2Accessory;
|
|
4
8
|
//# sourceMappingURL=delta2Accessory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta2Accessory.js","sourceRoot":"","sources":["../../../src/accessories/batteries/delta2Accessory.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"delta2Accessory.js","sourceRoot":"","sources":["../../../src/accessories/batteries/delta2Accessory.ts"],"names":[],"mappings":";;;AAAA,8FAA2F;AAE3F,MAAa,eAAgB,SAAQ,2CAAoB;CAAG;AAA5D,0CAA4D"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class Delta2MaxAccessory extends
|
|
1
|
+
import { BatteryAccessoryBase } from '@ecoflow/accessories/batteries/batteryAccessoryBase';
|
|
2
|
+
export declare class Delta2MaxAccessory extends BatteryAccessoryBase {
|
|
3
3
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Delta2MaxAccessory = void 0;
|
|
4
|
+
const batteryAccessoryBase_1 = require("@ecoflow/accessories/batteries/batteryAccessoryBase");
|
|
5
|
+
class Delta2MaxAccessory extends batteryAccessoryBase_1.BatteryAccessoryBase {
|
|
3
6
|
}
|
|
7
|
+
exports.Delta2MaxAccessory = Delta2MaxAccessory;
|
|
4
8
|
//# sourceMappingURL=delta2maxAccessory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta2maxAccessory.js","sourceRoot":"","sources":["../../../src/accessories/batteries/delta2maxAccessory.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"delta2maxAccessory.js","sourceRoot":"","sources":["../../../src/accessories/batteries/delta2maxAccessory.ts"],"names":[],"mappings":";;;AAAA,8FAA2F;AAE3F,MAAa,kBAAmB,SAAQ,2CAAoB;CAAG;AAA/D,gDAA+D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface EmsStatus {
|
|
2
|
+
f32LcdShowSoc?: number;
|
|
3
|
+
}
|
|
4
|
+
export interface InvStatusAc {
|
|
5
|
+
outputWatts?: number;
|
|
6
|
+
cfgAcEnabled?: boolean;
|
|
7
|
+
cfgAcXboost?: boolean;
|
|
8
|
+
cfgAcOutFreq?: number;
|
|
9
|
+
cfgAcOutVol?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface InvStatus extends InvStatusAc {
|
|
12
|
+
inputWatts?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface PdStatusCar {
|
|
15
|
+
carState?: boolean;
|
|
16
|
+
carWatts?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface PdStatusUsb {
|
|
19
|
+
dcOutState?: boolean;
|
|
20
|
+
usb1Watts?: number;
|
|
21
|
+
usb2Watts?: number;
|
|
22
|
+
qcUsb1Watts?: number;
|
|
23
|
+
qcUsb2Watts?: number;
|
|
24
|
+
typec1Watts?: number;
|
|
25
|
+
typec2Watts?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface PdStatus extends PdStatusUsb, PdStatusCar {
|
|
28
|
+
}
|
|
29
|
+
export interface BatteryAllQuotaData {
|
|
30
|
+
bms_emsStatus: EmsStatus;
|
|
31
|
+
inv: InvStatus;
|
|
32
|
+
pd: PdStatus;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpApiBatteryContracts.js","sourceRoot":"","sources":["../../../../src/accessories/batteries/interfaces/httpApiBatteryContracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MqttQuotaMessage, MqttQuotaMessageWithParams, MqttSetMessage, MqttSetMessageWithParams, MqttSetReplyMessage } from '@ecoflow/apis/interfaces/mqttApiContracts';
|
|
2
|
+
export declare enum MqttBatteryMessageType {
|
|
3
|
+
PD = "pdStatus",
|
|
4
|
+
MPPT = "mpptStatus",
|
|
5
|
+
INV = "invStatus",
|
|
6
|
+
BMS = "bmsStatus",
|
|
7
|
+
EMS = "emsStatus"
|
|
8
|
+
}
|
|
9
|
+
export interface MqttBatteryQuotaMessage extends MqttQuotaMessage {
|
|
10
|
+
typeCode: MqttBatteryMessageType;
|
|
11
|
+
}
|
|
12
|
+
export interface MqttBatteryQuotaMessageWithParams<TParams> extends MqttQuotaMessageWithParams<TParams>, MqttBatteryQuotaMessage {
|
|
13
|
+
}
|
|
14
|
+
export declare enum MqttBatterySetOperationType {
|
|
15
|
+
MpptCar = "mpptCar",
|
|
16
|
+
DcOutCfg = "dcOutCfg",
|
|
17
|
+
AcOutCfg = "acOutCfg"
|
|
18
|
+
}
|
|
19
|
+
export interface MqttBatterySetMessage extends MqttSetMessage {
|
|
20
|
+
operateType: MqttBatterySetOperationType;
|
|
21
|
+
moduleType: number;
|
|
22
|
+
}
|
|
23
|
+
export interface MqttBatterySetMessageWithParams<TParams> extends MqttSetMessageWithParams<TParams>, MqttBatterySetMessage {
|
|
24
|
+
}
|
|
25
|
+
export interface MqttBatterySetOnMessageParams {
|
|
26
|
+
enabled: number;
|
|
27
|
+
}
|
|
28
|
+
export interface MqttBatterySetAcOnMessageParams extends MqttBatterySetOnMessageParams {
|
|
29
|
+
out_voltage: number;
|
|
30
|
+
out_freq: number;
|
|
31
|
+
xboost: number;
|
|
32
|
+
}
|
|
33
|
+
export interface MqttBatterySetReplyMessage extends MqttSetReplyMessage {
|
|
34
|
+
operateType: MqttBatterySetOperationType;
|
|
35
|
+
moduleType: number;
|
|
36
|
+
}
|