Skip to content

rabits/ha-ef-ble

Repository files navigation

🔋 EcoFlow BLE

Unofficial Bluetooth LE Integration for Home Assistant

HACS hassfest HACS Validation


Monitor and control your EcoFlow devices locally via Bluetooth

No internet connection required • Real-time status updates • Full local control

Supported DevicesInstallationDevelopment


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.

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.

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 ¹ Backup Reserve Min Discharge Limit
Extra Battery Temperature ¹ 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)
Charge Time Remaining (disabled)
Discharge Time Remaining (disabled)

¹ 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: 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 Discharge Limit
Grid Voltage Base Load Power ¹
Grid Frequency Grid Input Power Limit
Load from Battery Charging Power Limit ²ꜝ
Load from Grid Charging Target SOC ²ꜝ
Load from PV ᴹᴾᵁ
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 works if timer task with charging power limit is configured and only works for the first charging task

❗ Important: When changing limits or target SOC using automations, wait at least 1 second between each set, otherwise the last one will override all previous ones. This is a current limitation that will be addressed in a future update.

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 Sliders Switches
Battery Level Charge Limit Power
Ambient Temperature Discharge Limit
Ambient Humidity
Operating Mode
Condensate Water Level
Cell Temperature (disabled)
Fan Level
Drainage Mode
In Drainage
Display Temperature Type
Input Power
Output Power
Indoor Supply Air Temperature
Indoor Return Air Temperature
Outdoor Ambient Temperature
Condenser Temperature
Evaporator Temperature
Compressor Discharge Temperature
Sleep State
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, 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
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 2 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

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
  2. Extract the custom_components/ef_ble folder
  3. Copy it to your Home Assistant config/custom_components/ directory
  4. 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:

  1. Open an issue first to discuss your proposed changes
  2. Make sure your changes align with the integration's purpose
  3. Submit a pull request with clear descriptions

This helps ensure your contributions can be successfully integrated.

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 integration
  2. Let it collect diagnostic data while using different ports/features
  3. Download and share the diagnostics file (note: may contain personal info - see wiki for privacy options)

Important

Some devices may not be able to provide diagnostics. This integration works with most 3rd generation and some 2nd generation devices. If your device cannot connect for diagnostics collection, please open an issue with your device model and firmware version - adding support is possible but may require additional reverse engineering work.


Legal

This repository is not for sale.

Purpose & Motivation

This integration was created to enable local device control in disaster scenarios:

  • Internet outages or EcoFlow server unavailability
  • The official EcoFlow app requires server login, even for Bluetooth connections
  • No server access = no control, which is unacceptable for critical power equipment

Background

  • Support requests to EcoFlow are typically ignored or handled inadequately
  • This motivated independent development using reverse engineering
  • Intent: Enable safe, reliable local control in emergencies - not to cause harm

Declaration

This work is provided for safety and resilience in critical situations. There is no intention to harm any individual or entity.


Stay charged. Stay connected. Stay in control.

Because when the cloud goes down, your smart home shouldn't follow.


Built by the community, for the community

About

Unofficial EcoFlow BLE Home Assistant integration

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages