# EcoFlow Binding
This binding provides integration for power stations and micro inverters made by EcoFlow (https://www.ecoflow.com/ (opens new window)). It discovers devices and communicates to them by using the cloud services provided by EcoFLow.
# Supported Things
- EcoFlow cloud API (
ecoflow-api
) - Delta 2 power station (
delta2
) - Delta 2 Max power station (
delta2-max
) - PowerStream micro inverter (
powerstream
)
# Discovery
At first, you need to manually create the bridge thing for the cloud API. Once that is done, you can initiate a device scan and supported devices will be automatically discovered and added to the inbox.
# Thing Configuration
For the cloud API thing (ecoflow-api
), you need to register for a developer account at EcoFlow's developer page (opens new window).
Once that registration is approved, you can create access credentials under the IoT Background
tab on that page, which you need for the thing configuration:
Config | Description |
---|---|
accessKey | The access key obtained as described above |
secretKey | The secret key obtained as described above |
Please note that the developer account can not be used multiple times in parallel, as doing so will disturb event updates.
For the device things, there is no required configuration (when using discovery). The following parameters exist:
Config | Description |
---|---|
serialNumber | Required: The device's serial number. Filled automatically when using discovery. |
# Delta 2 Channels
The list below lists all channels supported for both the Delta 2 and Delta 2 Max power stations.
Channel | Type | Description | Read Only | Remarks |
---|---|---|---|---|
status#battery-level | Number | Battery charge level (0-100%) | Yes | |
status#input-power | Number:Power | Total battery input power | Yes | |
status#output-power | Number:Power | Total battery output power | Yes | |
status#remaining-charge-time | Number:Time | Remaining charge time as calculated by device | Yes | [1] |
status#remaining-discharge-time | Number:Time | Remaining discharge time as calculated by device | Yes | [1] |
battery#temperature | Number:Temperature | Battery temperature | Yes | |
battery#voltage | Number:ElectricPotential | Battery voltage | Yes | |
battery#current | Number:ElectricCurrent | Battery input/output current | Yes | |
battery#charger-type | String | Type of currently active charger | Yes | [2] |
battery#charge-limit | Dimmer | Upper charge limit (0-100%) | Yes | |
battery#discharge-limit | Dimmer | Lower discharge limit (0-100%) | Yes | |
battery#extra-battery-power | Number:Power | Power fed into / drawn from extra battery port | Yes | |
ac-input#set-charging-power | Number:Power | AC charge power target | No | [3] |
ac-input#voltage | Number:ElectricPotential | AC input voltage | Yes | |
ac-input#current | Number:ElectricCurrent | AC input current | Yes | |
ac-input#power | Number:Power | AC input power | Yes | |
ac-input#frequency | Number:Frequency | AC input frequency | Yes | |
ac-input#total-energy | Number:Energy | Amount of energy drawn from AC input | Yes | [4] |
ac-output#enabled | Switch | Whether inverter / AC output is enabled | No | |
ac-output#xboost-enabled | Switch | Whether X-Boost is enabled on AC output | No | |
ac-output#voltage | Number:ElectricPotential | Inverter output voltage | Yes | |
ac-output#current | Number:ElectricCurrent | Inverter output current | Yes | |
ac-output#power | Number:Power | Inverter output power | Yes | |
ac-output#frequency | Number:Frequency | Inverter output frequency | Yes | |
ac-output#temperature | Number:Temperature | Inverter temperature | Yes | |
ac-output#total-energy | Number:Energy | Amount of energy provided by inverter | Yes | [4] |
dc-output#usb-enabled | Switch | Whether USB output is enabled | No | |
dc-output#12v-enabled | Switch | Whether 12V car jack output is enabled | No | |
dc-output#usb1-power | Number:Power | Power drawn from left USB-A output | Yes | |
dc-output#usb2-power | Number:Power | Power drawn from right USB-A output | Yes | |
dc-output#qc-usb1-power | Number:Power | Power drawn from left quick charge USB-A output | Yes | |
dc-output#qc-usb2-power | Number:Power | Power drawn from right quick charge USB-A output | Yes | |
dc-output#usbc1-power | Number:Power | Power drawn from left USB-C output | Yes | |
dc-output#usbc2-power | Number:Power | Power drawn from right USB-C output | Yes | |
dc-output#12v-out-voltage | Number:ElectricPotential | 12V car jack output voltage | Yes | |
dc-output#12v-out-current | Number:ElectricCurrent | 12V car jack output current | Yes | |
dc-output#12v-out-power | Number:Power | 12 V car jack output power | Yes | |
dc-output#total-energy | Number:Energy | Total amount of energy drawn from DC outputs | Yes | [4] |
solar-input#voltage | Number:ElectricPotential | PV(1) input voltage | Yes | |
solar-input#current | Number:ElectricCurrent | PV(1) input current | Yes | |
solar-input#power | Number:Power | PV(1) input power | Yes | |
solar-input#charge-state | String | PV(1) charge state | Yes | [5] |
solar-input#total-energy | Number:Energy | Total amount of energy provided by solar input(s) | Yes |
Since the number of solar inputs and additional battery inputs varies between devices, the Delta 2 Max supports some additional channels:
Channel | Type | Description | Read Only | Remarks |
---|---|---|---|---|
battery#extra-battery2-power | Number:Power | Power fed into / drawn from second battery port | Yes | |
solar-input#voltage2 | Number:ElectricPotential | PV2 input voltage | Yes | |
solar-input#current2 | Number:ElectricCurrent | PV2 input current | Yes | |
solar-input#power2 | Number:Power | PV2 input power | Yes | |
solar-input#charge-state2 | String | PV2 charge state | Yes | [5] |
Remarks:
- [1] If non applicable (charge time without charger or discharge time without load) the device reports those times as 5999 minutes.
- [2] Possible states: 'ac', 'dc' and 'solar'.
- [3] The range of valid values is 100..600 W. Smaller charge powers do not seem to work.
- [4] Storing those values in the device seems to be buggy, so it's possible (and was seen in the wild) for those counters to not increase monotonically.
- [5] Possible states: 'disabled', 'charging' and 'standby'. 'standby' happens in case of solar and AC charging both being active, AC gets priority in that case.
# PowerStream channels
The list below lists all channels supported for both the PowerStream micro inverter.
Channel | Type | Description | Read Only | Remarks |
---|---|---|---|---|
inverter#status | String | Inverter grid synchronization status | Yes | [1] |
inverter#input-voltage | Number:ElectricPotential | AC voltage | Yes | |
inverter#input-frequency | Number:Frequency | AC frequency | Yes | |
inverter#output-power | Number:Power | AC output power | Yes | |
inverter#output-target-power | Number:Power | AC output power target | No | [2] |
inverter#supply-priority | String | Whether charging or discharging is preferred | No | [3] |
battery-input#voltage | Number:ElectricPotential | Voltage of connected battery | Yes | |
battery-input#current | Number:ElectricCurrent | Current flow out of / into battery | Yes | |
battery-input#power | Number:Power | Power drawn from / fed into battery | Yes | |
battery-input#temperature | Number:Temperature | Battery temperature | Yes | |
battery-input#active | Switch | Whether battery input is active | Yes | |
battery-input#battery-level | Number | Charge level (0-100%) of connected battery | Yes | |
battery-input#charge-limit | Dimmer | Upper battery charge limit (0-100%) | No | |
battery-input#discharge-limit | Dimmer | Lower battery discharge limit (0-100%) | No | |
pv1-input#voltage | Number:ElectricPotential | Panel 1 voltage | Yes | |
pv1-input#voltage-target | Number:ElectricPotential | Panel 1 MPPT target voltage | Yes | |
pv1-input#current | Number:ElectricCurrent | Panel 1 current | Yes | |
pv1-input#power | Number:Power | Panel 1 power | Yes | |
pv1-input#mppt-active | Switch | Whether panel 1 MPPT is active | Yes | |
pv2-input#voltage | Number:ElectricPotential | Panel 2 voltage | Yes | |
pv2-input#voltage-target | Number:ElectricPotential | Panel 2 MPPT target voltage | Yes | |
pv2-input#current | Number:ElectricCurrent | Panel 2 current | Yes | |
pv2-input#power | Number:Power | Panel 2 power | Yes | |
pv2-input#mppt-active | Switch | Whether panel 2 MPPT is active | Yes |
Remarks:
- [1] Possible states: 'idle', 'starting', 'synchronized' and 'disconnected'.
- [2] The range of valid values is 0..600/800 W. The upper limit depends on inverter type.
- [3] Possible states: 'prioIsSupply' (prefer AC output over battery storage), 'prioIsStorage' (prefer battery storage over AC output)
# Thing Configuration
If you want to create the API bridge in a .things file, the entry has to look as follows:
Bridge ecoflow:ecoflow-api:ecoflowapi [ accessKey="YOUR_ACCESS_KEY", secretKey="YOUR_SECRET_KEY" ]
The devices are detected automatically. If you also want to enter those manually, the syntax is as follows:
Bridge ecoflow:ecoflow-api:ecoflowapi [ accessKey="YOUR_ACCESS_KEY", secretKey="YOUR_SECRET_KEY" ]
{
Thing delta2-max myPowerStation "EcoFlow power station" [ serialNumber="serial number as printed on device" ]
}
# Item Configuration
You can link the channels listed above to items via the UI. If you want to do it via an .items
file in your $OPENHAB_CONF/items
folder, the syntax looks like this:
Number Delta2BatteryLevel "Delta 2 Battery Level" { channel="ecoflow:delta2-max:ecoflowapi:myPowerStation:status#battery-level" }
Switch Delta2UsbEnabled "Delta 2 USB Enabled" { channel="ecoflow:delta2-max:ecoflowapi:myPowerStation:dc-output#usb-enabled" }
[...]