@pietrolubini/homebridge-ecoflow
is a plugin for homebridge which allows you to control EcoFlow devices!
The goal is to add HomeKit support to EcoFlow devices and make them fully controllable from the native HomeKit iOS app and Siri.
Feedback and contribution is helpful and will improve the plugin!
If your device is not supported please create a request and specify the device model and type. Additional collaboration may be required to perform testing of new device.
- Integrates EcoFlow devices into HomeKit
- Fully customizable HomeKit accessories
- HomeKit automations for your EcoFlow devices
For a full list of devices that could be potentially added check here
If you are new to homebridge, please first read the homebridge documentation. If you are running on a Raspberry, you will find a tutorial in the homebridge wiki.
Install homebridge-ecoflow:
sudo npm install -g @pietrolubini/homebridge-ecoflow
Add the EcoFlowHomebridge
platform in config.json
in your home directory inside .homebridge
. Add your devices in the devices
array. Example of configuration:
{
"platforms": [
{
"devices": [
{
"disabled": false,
"name": "Battery",
"model": "Delta 2 Max",
"serialNumber": "R123ABCDEGHI321",
"location": "EU",
"accessKey": "IROcwtlejtHj4qY4MRgCZW0CxoCdPVs3",
"secretKey": "yBwYgZWqNnAlULKmF1Qrydy2Iheexj22"
}
],
"name": "Homebridge EcoFlow",
"platform": "EcoFlowHomebridge"
}
]
}
For the plugin to work EcoFlow account's AccessKey
and SecretKey
is required. To retrieve them
- Register on EcoFlow IoT Developer Platform
- Wait until your request will be approved
- Generate
AccessKey
/SecretKey
pair here
It is possible to simulate accessory by adding simulate
property to device's configuration (accessKey
and secretKey
could contain mock values).
Quota is sent every 10 seconds with random values in this mode.
π Each simulated device should have fake unique
serialNumber
,accessKey
andsecretKey
{
"platforms": [
{
"devices": [
{
"disabled": false,
"name": "Battery",
"model": "Delta 2 Max",
"serialNumber": "R123ABCDEGHI321",
"accessKey": "key1",
"secretKey": "key2",
"simulate": true
}
],
"name": "Homebridge EcoFlow",
"platform": "EcoFlowHomebridge"
}
]
}
EcoFlow Parameter | Service | Characteristic | Standard | Permission |
---|---|---|---|---|
Battery Level | Battery | BatteryLevel | β | Read |
Input | Battery | ChargingState | β | Read |
Battery Level | Battery | StatusLowBattery | β | Read |
AC | Outlet AC | On | β | Read/Write |
AC Output | Outlet AC | OutletInUse | β | Read |
Battery Level | Outlet AC | Battery Level, % | π² | Read |
Input | Outlet AC | Input Consumption, W | π² | Read |
Output | Outlet AC | Output Consumption, W | π² | Read |
12V DC | Outlet CAR | On | β | Read/Write |
12V DC Output | Outlet CAR | OutletInUse | β | Read |
Battery Level | Outlet CAR | Battery Level, % | π² | Read |
Input | Outlet CAR | Input Consumption, W | π² | Read |
Output | Outlet CAR | Output Consumption, W | π² | Read |
USB | Outlet USB | On | β | Read/Write |
USB Output | Outlet USB | OutletInUse | β | Read |
Battery Level | Outlet USB | Battery Level, % | π² | Read |
Input | Outlet USB | Input Consumption, W | π² | Read |
Output | Outlet USB | Output Consumption, W | π² | Read |
The following additional characteristics is available:
- Input Consumption, W
- Output Consumption, W
- Battery Level, %
{
...
"devices": [
{
...
"model": "Delta 2 Max",
"battery": {
"additionalCharacteristics": [
"Battery Level, %",
"Input Consumption, W",
"Output Consumption, W"
]
}
}
],
}
The characteristics could be used as conditions in HomeKit Automation that uses Shortcuts:
Supported services and configuration are the same as for Delta 2
EcoFlow Parameter | Service | Characteristic | Standard | Permission |
---|---|---|---|---|
Inverter | Outlet INV | On | β | Read (Inverter AC Output > 0: ON) |
Inverter AC Output | Outlet INV | OutletInUse | β | Read |
Inverter AC Input | Outlet INV | Input Consumption, W | π² | Read |
Inverter AC Output | Outlet INV | Output Consumption, W | π² | Read |
Solar | Outlet PV | On | β | Read (Solar Generation > 0: ON) |
Solar Generation | Outlet PV | OutletInUse | β | Read |
Solar Generation | Outlet PV | Output Consumption, W | π² | Read |
Battery | Outlet BAT | On | β | Read (Battery Discharging > 0: ON) |
Battery Discharging | Outlet BAT | OutletInUse | β | Read |
Battery Level | Outlet BAT | Battery Level, % | π² | Read |
Battery Charging | Outlet BAT | Input Consumption, W | π² | Read |
Battery Discharging | Outlet BAT | Output Consumption, W | π² | Read |
Lighting brightness | Lightbulb | On | β | Read (> 0%: ON; 0%: OFF) / write (ON: 100%; OFF: 0%) |
Lighting brightness | Lightbulb | Brightness | β | Read/write |
Power demand | Fan | On | β | Read (> 0%: ON; 0%: OFF) / write (ON: 100%; OFF: 0%) |
Power demand | Fan | RotationSpeed | β | Read/write |
The following additional characteristics is available:
- type (600, 800)
- battery:
- Input Consumption, W
- Output Consumption, W
- Battery Level, %
- pv:
- Output Consumption, W
- inverter:
- Input Consumption, W
- Output Consumption, W
{
...
"devices": [
{
...
"model": "PowerStream",
"powerStream": {
"type": "800",
"batteryAdditionalCharacteristics": [
"Battery Level, %",
"Input Consumption, W",
"Output Consumption, W"
],
"pvAdditionalCharacteristics": [
"Output Consumption, W"
],
"inverterAdditionalCharacteristics": [
"Input Consumption, W",
"Output Consumption, W"
]
}
}
],
}
If you have any issues with the plugin or device services then you can run homebridge in debug mode, which will provide some additional information. This might be useful for debugging issues.
Homebridge debug mode:
homebridge -D
Deep debug log, add the following to your config.json:
"deepDebugLog": true
This will enable additional extra log which might be helpful to debug all kind of issues.