Profile
Back to NewsBack
GitHub Trending 15 min
Reader Mode
rabits/ha-ef-ble: Unofficial EcoFlow BLE Home Assistant integration

rabits/ha-ef-ble: Unofficial EcoFlow BLE Home Assistant integration

23 hours ago


Overview

This integration enables local communication with EcoFlow power stations, EV chargers, and accessories through Bluetooth LE, allowing you to:

  • Monitor battery levels, power flow, and device status
  • Control outputs, charging parameters, and device settings
  • Integrate seamlessly with Home Assistant automations
  • Operate independently without cloud connectivity

Supported Devices

Click on any device below to see available sensors, switches, and controls:


Smart Home Panel 2


| Sensors | Switches | Sliders | Selects | |--------------------------------------------|-------------------------------------|----------------------|-------------------| | Battery Level | Channel On/Off (Each Channel) | AC Charge Speed | Smart Backup Mode | | Input Power | Channel Force Charge (Each Channel) | Backup Reserve Level | | | Output Power | Circuit On/Off (Each Circuit) | Max Charge Level | | | Grid Power | | | | | Power In Use | | | | | Power Status (grid, battery, oil, etc.) | | | | | Grid Status (grid outage) | | | | | Storm Made | | | | | Circuit Power (Each Circuit) | | | | | Circuit Power (Each Circuit) | | | | | Circuit Current (Each Circuit) | | | | | Channel Power (Each Channel) | | | | | Channel Battery Level (Each Channel) | | | | | Channel Battery Temperature (Each Channel) | | | | | Channel Connected (Each Channel) | | | | | Channel Control Status (Each Channel) | | | | | Channel Enabled (Each Channel) | | | | | Channel Force Charge (Each Channel) | | | | | Channel Output Power (Each Channel) | | | | | Channel PV HV Input Power (Each Channel) | | | | | Channel PV LV Input Power (Each Channel) | | | |

📝 Note: Using an ESPHome bluetooth proxy connection with a Smart Home Panel 2 can result in
slow performance and dropped packets at this time. Please see the
Issue #221 for tracking.

Smart Home Panel 3


| Sensors | Switches | Sliders | Selects | |------------------------------------|-------------------------------------|----------------------|----------------| | Battery Level | Circuit On/Off (Each Circuit) | Charge Limit | Operating Mode | | Battery Power | Channel On/Off (Each Channel) | Discharge Limit | | | System Load | Storm Guard | Backup Reserve Level | | | Load From Grid | EPS Mode | AC Charging Speed | | | PV Power Total | Channel Force Charge (Each Channel) | | | | Grid Connection Status | | | | | Grid Energized | | | | | Charge Time Remaining | | | | | Discharge Time Remaining | | | | | L1 / L2 / L3 Power | | | | | L1 / L2 / L3 Voltage | | | | | L1 / L2 / L3 Current | | | | | Circuit Power (Each Circuit) | | | | | Circuit Current (Each Circuit) | | | | | Circuit Voltage (Each Circuit) | | | | | Circuit Status (Each Circuit) | | | | | Channel Type (Each Channel) | | | | | Channel Signal Line (Each Channel) | | | |

📝 Note: Using an ESPHome bluetooth proxy connection with a Smart Home Panel 3 can
result in slow performance and dropped packets at this time. Please see the
Issue #221 for tracking.

Delta Pro Ultra


| Sensors | Switches | Sliders | Selects | Buttons | |-----------------------------------|------------|-----------------------|----------------|---------------| | AC 5P8 In Power | AC Ports | AC 5P8 Charging Power | Operating Mode | Unpause Solar | | AC 5P8 Out Power | DC Ports | AC C20 Charging Power | | | | AC C20 In Power | | Backup Reserve Level | | | | AC L1 (1) Out Power | | Charge Limit | | | | AC L1 (2) Out Power | | Discharge Limit | | | | AC L2 (1) Out Power | | | | | | AC L2 (2) Out Power | | | | | | AC L14 Out Power | | | | | | AC TT Out Power | | | | | | Anderson Out Power | | | | | | Battery Level | | | | | | Battery Level (each battery) ¹ | | | | | | Cell Temperature (each battery) ¹ | | | | | | HV Solar Power | | | | | | LV Solar Power | | | | | | Output Power | | | | | | USB-C (1) Out Power | | | | | | USB-C (2) Out Power | | | | | | USB (1) Out Power | | | | | | USB (2) Out Power | | | | | | AC 5P8 In Current | | | | | | AC 5P8 In Voltage | | | | | | AC 5P8 In Type | | | | | | AC 5P8 Out Current | | | | | | AC 5P8 Out Power Factor | | | | | | AC 5P8 Out Type | | | | | | AC 5P8 Out Voltage | | | | | | AC 5P8 Work Mode | | | | | | AC Allowed | | | | | | AC C20 In Current | | | | | | AC C20 In Voltage | | | | | | AC C20 Input Type | | | | | | AC L1 (1) Out Current | | | | | | AC L1 (1) Out Power Factor | | | | | | AC L1 (1) Out Voltage | | | | | | AC L1 (2) Out Current | | | | | | AC L1 (2) Out Power Factor | | | | | | AC L1 (2) Out Voltage | | | | | | AC L2 (1) Out Current | | | | | | AC L2 (1) Out Power Factor | | | | | | AC L2 (1) Out Voltage | | | | | | AC L2 (2) Out Current | | | | | | AC L2 (2) Out Power Factor | | | | | | AC L2 (2) Out Voltage | | | | | | AC L14 Out Current | | | | | | AC L14 Out Power Factor | | | | | | AC L14 Out Voltage | | | | | | AC TT Out Current | | | | | | AC TT Out Power Factor | | | | | | AC TT Out Voltage | | | | | | Anderson Out Current | | | | | | Anderson Out Error Code | | | | | | Anderson Out Voltage | | | | | | Battery Current | | | | | | Battery Input Power | | | | | | Battery Output Power | | | | | | Battery Voltage | | | | | | HV Solar Current | | | | | | HV Solar Error Code | | | | | | HV Solar Temperature | | | | | | HV Solar Voltage | | | | | | HV Solar Voltage Low | | | | | | Is Charging | | | | | | LV Solar Current | | | | | | LV Solar Error Code | | | | | | LV Solar Temperature | | | | | | LV Solar Voltage | | | | | | LV Solar Voltage Low | | | | | | AC Inverter Error Code | | | | | | AC Inverter Temperature | | | | | | DC Inverter Error Code | | | | | | DC Inverter Temperature | | | | | | Slow Charging Switch | | | | | | System Temperature | | | | | | USB-C (1) Out Current | | | | | | USB-C (1) Out Voltage | | | | | | USB-C (2) Out Current | | | | | | USB-C (2) Out Voltage | | | | | | USB (1) Out Current | | | | | | USB (1) Out Voltage | | | | | | USB (2) Out Current | | | | | | USB (2) Out Voltage | | | | | | Weak HV Solar Source | | | | | | Weak LV Solar Source | | | | |

¹ Per extra battery (up to 5)

📝 Note: Extra batteries are detected when the integration is set up. If you
connect or disconnect a battery, you can reconfigure the integration to update
the registered devices.

Delta Pro Ultra X


| Sensors | |-------------------------------------| | Battery Level | | Input Power Total | | Output Power Total | | AC Input Power | | AC Input Voltage | | AC Input Current | | Solar Input Power | | Solar Input Power 2 | | PV Voltage 1 | | PV Voltage 2 | | PV Current 1 | | PV Current 2 | | AC Plugged In | | Storm Mode | | Cell Temperature (disabled) | | Charge Time Remaining (disabled) | | Discharge Time Remaining (disabled) | | Error Occurred (disabled) ¹ | | Sleep State (disabled) | | WiFi RSSI (disabled) |

¹ Includes error code as an extra attribute

📝 Note: Delta Pro Ultra X does not expose energy sensors. To use with the energy
dashboard, you must create them yourself. See the Home Assistant FAQ
for instructions.

River 3 (Plus, UPS, Plus Wireless)


| Sensors | Switches | Sliders | Selects | |-------------------------------------|----------------|----------------------|------------------| | AC Input Energy | AC Port | Backup Reserve Level | Led Mode⁺ | | AC Input Power | DC Port | Max Charge Limit | DC Charging Type | | AC Output Energy | Backup Reserve | Min Discharge Limit | | | AC Output Power | | AC Charging Speed | | | Main Battery Level ⁺ | | DC Charging Max Amps | | | Battery Level | | | | | Extra Battery Level ¹ | | | | | Extra Battery Temperature ¹ | | | | | DC 12V Port Output Energy | | | | | DC 12V Port Output Power | | | | | DC Input Energy | | | | | DC Input Power | | | | | Input Energy Total | | | | | Input Power Total | | | | | Output Energy Total | | | | | Output Power Total | | | | | USB A Output Energy | | | | | USB A Output Power | | | | | USB C Output Energy | | | | | USB C Output Power | | | | | Battery Input Power (disabled) | | | | | Battery Output Power (disabled) | | | | | Cell Temperature (disabled) | | | | | Charge Time Remaining (disabled) | | | | | Discharge Time Remaining (disabled) | | | |

⁺ Only available on Plus variant
¹ Per extra battery (up to 2)

📝 Note: Extra batteries are detected when the integration is set up. If you
connect or disconnect a battery, you can reconfigure the integration to update
the registered devices.
📝 Note: AC Input Energy sensor is not working as intended - this is a firmware
bug. If you need this sensor, create an integral helper from AC Input Power instead. See
issue #73 for details.
⚠️ Warning: This integration allows setting Backup Reserve Limit to Min Discharge
Limit, which may cause AC ports to turn off when hitting this limit. The official
application allows the same behavior, but this is most likely a bug. See
issue #78 for more info.

Delta 3 (Classic, Plus, Max, Max Plus, Ultra, Ultra Plus, Air)


| Sensors | Switches | Sliders | |--------------------------------------|---------------------------------|----------------------------| | Main Battery Level | AC Ports | Backup Reserve Level ² | | Battery Level | AC Ports (2) ³⁴ | Max Charge Limit | | AC Input Power | DC Ports ² | Min Discharge Limit | | AC Output Power | Backup Reserve ² | AC Charging Speed | | AC (1, 2) Power ³ | USB Ports ¹² | DC Charging Max Amps | | AC (1-1, 1-2, 2-1, 2-2, 2-3) Power ⁴ | Disable Grid Bypass ²(disabled) | DC (2) Charging Max Amps ⁺ | | DC 12V Port Output Power ² | | | | DC Port Input Power | | | | DC Port Input State | | | | DC Port (2) Input Power ⁺ | | | | DC Port (2) Input State ⁺ | | | | Solar Power | | | | Solar Power (2) ⁺ | | | | Input Power Total | | | | Output Power Total | | | | USB A Output Power | | | | USB A (2) Output Power | | | | USB C Output Power | | | | USB C (2) Output Power | | | | USB C (3) Output Power ³⁴ | | | | AC Plugged In | | | | Battery Input Power (disabled) | | | | Battery Output Power (disabled) | | | | Cell Temperature (disabled) | | | | Charge Time Remaining (disabled) | | | | Discharge Time Remaining (disabled) | | |

⁺ Only available on Plus variant
¹ Not available on Classic
² Not available on Air
³ Only available on Max Plus
⁴ Only available on Ultra Plus

📝 Note: Delta 3 models do not expose energy sensors. To use with the Energy
dashboard, you must create them yourself. See the
Home Assistant FAQ
for instructions.

Delta Pro 3


| Sensors | Switches | Sliders | |-------------------------------------|----------------|----------------------| | Main Battery Level | AC Ports | Backup Reserve Level | | Battery Level | DC Ports | Max Charge Limit | | Extra Battery Level ¹ | USB Ports | Min Discharge Limit | | Extra Battery Temperature ¹ | Backup Reserve | AC Charging Speed | | AC Input Power | | | | AC LV Output Power | | | | AC HV Output Power | | | | DC 12V Output Power | | | | DC LV Input Power | | | | DC LV Input State | | | | DC HV Input Power | | | | DC HV Input State | | | | Solar LV Power | | | | Solar HV Power | | | | Input Power Total | | | | Output Power Total | | | | USB A Output Power | | | | USB A (2) Output Power | | | | USB C Output Power | | | | USB C (2) Output Power | | | | AC Plugged In | | | | Cell Temperature (disabled) | | | | State of Health (disabled) | | | | Battery Input Power (disabled) | | | | Battery Output Power (disabled) | | | | AC 5P8 In Power | | | | AC 5P8 Out Power | | | | AC LV TT-30 Output Power (disabled) | | | | Charge Time Remaining (disabled) | | | | Discharge Time Remaining (disabled) | | | | Error Occurred (disabled) ² | | | | BMS Run State (disabled) | | | | Fan Running (disabled) | | |

¹ Per extra battery (up to 2) ² Includes error code as an extra attribute

📝 Note: Extra batteries are detected when the integration is set up. If you
connect or disconnect a battery, you can reconfigure the integration to update
the registered devices.
📝 Note: Delta Pro 3 does not expose energy sensors. To use with the Energy
dashboard, you must create them yourself. See the
Home Assistant FAQ
for instructions.

Smart Generator (3000, 4000)


| Sensors | Switches | Sliders | Selects | |------------------------|----------------------|------------------|------------------| | Output Power | Engine | Gas Weight | Performance Mode | | AC Output Power | Self Start | DC Output Power⁴ | Gas Unit | | Engine State | LPG Level Monitoring | | | | Fuel Type | AC Ports | | | | Gas Consumption | | | | | Abnormal State | | | | | Internal Battery Power | | | | | Internal Battery State | | | | | XT150 Battery Level ⁴ | | | | | XT150 Charge Type ⁴ | | | |

⁴ Only available on 4000 variant

Alternator Charger


| Sensors | Switches | Sliders | Selects | |---------------------|----------------------------|--------------------------|--------------| | Battery Level | Charger | Start Voltage | Charger Mode | | Battery Temperature | Emergency Reverse Charging | Reverse Charging Current | | | DC Power | | Charging Current | | | Battery Voltage | | Power Limit | |

STREAM (AC, AC Pro, Max, Pro, Ultra, Ultra X)


| Sensors | Switches | Sliders | Selects | |-------------------------------------|--------------------|---------------------------|-----------------| | Battery Level | Feed Grid | Feed Grid Power Limit | Energy Strategy | | Main Battery Level | AC (1) ᴬᴹᴾᵁ | Backup Reserve Level | | | Battery Power | AC (2) ᴬᴾᵁ | Charge Limit | | | Grid Power | Charging Task ² | Discharge Limit | | | Grid Voltage | Discharging Task ³ | Base Load Power ¹ | | | Grid Frequency | | Grid Input Power Limit | | | Load from Battery | | Charging Power Limit ² | | | Load from Grid | | Charging Target SOC ² | | | Load from PV ᴹᴾᵁ | | Discharging Power Limit ³ | | | AC (1) Power ᴬᴹᴾᵁ | | | | | AC (2) Power ᴬᴾᵁ | | | | | PV (1) Power ᴹᴾᵁ | | | | | PV (2) Power ᴹᴾᵁ | | | | | PV (3) Power ᴾᵁ | | | | | PV (4) Power ᵁ | | | | | PV Power Total ᴹᴾᵁ | | | | | Cell Temperature (disabled) | | | | | Charge Time Remaining (disabled) | | | | | Discharge Time Remaining (disabled) | | | |

ᴬ Only available on AC Pro variant
ᴹ Only available on Max variant
ᴾ Only available on Pro variant
ᵁ Only available on Ultra and Ultra X variants
¹ Not available when there's no base load timeframe or more than 1 timeframe configured
² Only available when a charging timer task is configured
³ Only available when a discharging timer task is configured

STREAM Microinverter


| Sensors | Sliders | |-----------------------------------|----------------------| | Grid Power | Maximum Output Power | | Grid Voltage | | | Grid Current | | | Grid Frequency | | | Grid Connection Status | | | PV (1) Power | | | PV (1) Current | | | PV (1) Voltage | | | PV (2) Power | | | PV (2) Current | | | PV (2) Voltage | | | WiFi RSSI (disabled) | |

PowerStream


| Sensors | Sliders | Selects | |----------------------|------------------|-----------------------| | Battery Level | Load Power | Power Supply Priority | | Battery Power | Charge Limit | | | Battery Temperature | Discharge Limit | | | PV (1) Power | | | | PV (1) Voltage | | | | PV (1) Current | | | | PV (1) Temperature | | | | PV (2) Power | | | | PV (2) Voltage | | | | PV (2) Current | | | | PV (2) Temperature | | | | Inverter Power | | | | Inverter Voltage | | | | Inverter Current | | | | Inverter Frequency | | | | Inverter Temperature | | | | LLC Temperature | | |

PowerPulse EV Charger (7-22 kW)


| Sensors | |------------------------------| | Output Power | | AC Output Voltage (disabled) | | AC Output Current (disabled) | | AC Plug State |

Wave 3


| Sensors | Climate | Switches | Selects | |-------------------------------|----------------------------------------|---------------|-------------------| | Battery Level | HVAC (Off, Cool, Heat, Fan, Dry, Auto) | Pet Care Mode | Operating Submode | | Ambient Temperature | Target Temperature | | | | Ambient Humidity | Fan Speed | | | | Condensate Water Level | | | | | Cell Temperature (disabled) | | | | | Sleep State | | | | | In Drainage | | | | | Drainage Mode | | | | | Input Power | | | | | Output Power | | | | | AC Input Power | | | | | Battery Power | | | | | Indoor Supply Air Temperature | | | |

Smart Meter


| Sensors | |-----------------------| | Grid Power | | Grid Energy | | L1 Power (disabled) | | L1 Current (disabled) | | L1 Voltage (disabled) | | L1 Energy (disabled) | | L2 Power (disabled) | | L2 Current (disabled) | | L2 Voltage (disabled) | | L2 Energy (disabled) | | L3 Power (disabled) | | L3 Current (disabled) | | L3 Voltage (disabled) | | L3 Energy (disabled) |

Delta Pro


| Sensors | Switches | Sliders | |-----------------------------|-------------|-------------------| | Battery Level | AC Ports | AC Charging Speed | | Input Power | DC 12V Port | Backup Reserve | | Output Power | | Charge Limit | | AC Input Power | | Discharge Limit | | AC Input Voltage | | | | AC Input Current | | | | AC Output Power | | | | DC Output Power | | | | USB C Output Power | | | | USB C (2) Output Power | | | | USB A Output Power | | | | USB A (2) Output Power | | | | USB A QC (1) Power | | | | USB A QC (2) Power | | | | Extra Battery Level ¹ | | | | Extra Battery Temperature ¹ | | |

¹ Per extra battery (up to 2)

📝 Note: Extra batteries are detected when the integration is set up. If you
connect or disconnect a battery, you can reconfigure the integration to update
the registered devices.

Delta 2 (Max, Black (E980), Delta 3 1500)


| Sensors | Switches | Sliders | |-------------------------------------|----------------------------------|---------------------| | Battery Level | AC Ports | Max Charge Limit | | Main Battery Level | DC 12V Port | Min Discharge Limit | | Extra Battery Level ³ | USB Ports | Energy Backup | | Extra Battery Temperature ³ | Backup Reserve | AC Charging Speed | | Input Power | Disable Grid Bypass ¹ (disabled) | | | Output Power | | | | AC Input Power | | | | AC Input Voltage (disabled) | | | | AC Input Current (disabled) | | | | AC Output Power | | | | DC Output Power | | | | DC 12V Output Voltage (disabled) | | | | DC 12V Output Current (disabled) | | | | XT60 Input Power ¹ | | | | XT60 (1) Input Power ² | | | | XT60 (2) Input Power ² | | | | DC Input Voltage (disabled) | | | | DC Input Current (disabled) | | | | USB A (1) Output Power | | | | USB A (2) Output Power | | | | USB A QC (1) Output Power | | | | USB A QC (2) Output Power | | | | USB C (1) Output Power | | | | USB C (2) Output Power | | | | Cell Temperature (disabled) | | | | Charge Time Remaining (disabled) | | | | Discharge Time Remaining (disabled) | | |

¹ Only available on Delta 2 and Delta 3 1500
² Only available on Delta 2 Max
³ Per extra battery (up to 2)

📝 Note: Extra batteries are detected when the integration is set up. If you
connect or disconnect a battery, you can reconfigure the integration to update
the registered devices.

River 2 (Pro, Max)


| Sensors | Switches | Sliders | Selects | |-------------------------------------|----------------|----------------------|-----------| | Battery Level | AC Ports | Max Charge Limit | DC Mode | | Input Power | DC 12V Port | Min Discharge Limit | | | Output Power | USB Ports | AC Charging Speed | | | AC Input Power | Backup Reserve | DC Charging Max Amps | | | AC Output Power | | Backup Reserve Level | | | DC 12V Output Power | | | | | DC Output Power | | | | | USB A Output Power | | | | | USB C Output Power | | | | | Solar Input Power | | | | | Cell Temperature (disabled) | | | | | Charge Time Remaining (disabled) | | | | | Discharge Time Remaining (disabled) | | | |

Wave 2


| Sensors | Switches | Sliders | Selects | |--------------------|-----------------|-------------|------------| | Battery Level | Automatic Drain | Temperature | Power Mode | | Battery Power | Ambient Light | | Main Mode | | MPPT Power | | | Sub Mode | | PSDR Power | | | Fan Speed | | Outlet Temperature | | | Drain Mode | | Water Level | | | |


[!NOTE]
This integration focuses on implementing the most useful sensors and controls rather than
achieving 100% completeness. While all sensors and controls available in the EcoFlow app can
technically be implemented, we prioritize commonly used features. If you're missing a sensor
or control that's important for your use case, please
create an issue to request it.
[!IMPORTANT]
Bluetooth LE Limitation: EcoFlow devices support only **one BLE connection at a
time**. If you want to manage your device via the EcoFlow mobile app, you must
temporarily disable this integration in Home Assistant, then re-enable it afterward to
resume data collection. This is an EcoFlow device limitation.

Support & Warranty

[!CAUTION]
Limited Support • No Warranty • Use at Your Own Risk
> - This is an unofficial integration with no warranty of any kind
- The author takes no responsibility for your actions or device behavior
- EcoFlow products involve dangerous voltages and energy storage that can cause
injury or death
- EcoFlow support may not help if you experience issues after using this integration
- The author is not affiliated with EcoFlow in any way
> Proceed only if you fully understand the risks and know what you are doing.
[!WARNING]
Firmware Updates May Break This Integration
> This integration relies on reverse-engineered Bluetooth protocols. **Future EcoFlow firmware
updates may change these protocols and break compatibility.** If everything is working
correctly, do not update your device firmware unless you're willing to wait for this
integration to be updated to support the new firmware version.

Installation

Prerequisites

  • Home Assistant with Bluetooth support
  • Your device must be bound to your account through the EcoFlow app before setup
  • Your User ID from the EcoFlow app (can be retrieved via the config flow login form
during setup)
  • HACS installed (recommended method)

Method 1: HACS Installation (Recommended)

This integration is available in the default HACS repository.

Quick Install: Click the badge below to open this repository directly in HACS:

Open in HACS</a>

Manual steps:

  1. Open HACS in your Home Assistant instance
  2. Go to Integrations
  3. Click the menu (three dots) in the top right
  4. Select Custom repositories
  5. Add this repository URL: https://github.com/rabits/ha-ef-ble
  6. Select category: Integration
  7. Click Add
  8. Search for "EcoFlow BLE" in HACS
  9. Click Download
  10. Restart Home Assistant

Method 2: Manual Installation

  1. Download the latest release from
GitHub Releases
  1. Extract the custom_components/ef_ble folder
  2. Copy it to your Home Assistant config/custom_components/ directory
  3. Restart Home Assistant

Configuration

After installation, the integration will automatically discover supported EcoFlow devices via Bluetooth LE.

[!TIP]
For detailed configuration help, FAQ, and troubleshooting common issues (like BLE
disconnections), see the Wiki

Development

Reverse Engineering

Curious about how this integration was created? Check out the reverse engineering process: ef-ble-reverse

Contributing

Contributions are welcome! If you'd like to help improve this integration, please read CONTRIBUTING.md first - it covers development setup, running tests, code style, and the PR workflow.

Short version:

  1. Open an issue first to discuss non-trivial changes
  2. Make sure your changes align with the integration's purpose
  3. Submit a pull request with a clear description and, where applicable,
tests and README updates

Requesting Support for New Devices

Have an EcoFlow device that isn't listed in Supported Devices?

You can help add support! Starting from version v0.6.0, this integration can connect to unsupported devices to collect diagnostic data.

**👉 See the Requesting Support for New Devices wiki page** for step-by-step instructions.

The process is straightforward:

  1. Add your unsupported device through this integrat
... (README truncated for length)
Chat with me