Unofficial Bluetooth LE Integration for Home Assistant
Monitor and control your EcoFlow devices locally via Bluetooth
No internet connection required • Real-time status updates • Full local control
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
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.
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.
- 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)
This integration is available in the default HACS repository.
Quick Install: Click the badge below to open this repository directly in HACS:
Manual steps:
- Open HACS in your Home Assistant instance
- Go to Integrations
- Click the ⋮ menu (three dots) in the top right
- Select Custom repositories
- Add this repository URL:
https://github.com/rabits/ha-ef-ble - Select category: Integration
- Click Add
- Search for "EcoFlow BLE" in HACS
- Click Download
- Restart Home Assistant
- Download the latest release from GitHub Releases
- Extract the
custom_components/ef_blefolder - Copy it to your Home Assistant
config/custom_components/directory - Restart Home Assistant
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
Curious about how this integration was created? Check out the reverse engineering process: ef-ble-reverse
Contributions are welcome! If you'd like to help improve this integration:
- Open an issue first to discuss your proposed changes
- Make sure your changes align with the integration's purpose
- Submit a pull request with clear descriptions
This helps ensure your contributions can be successfully integrated.
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:
- Add your unsupported device through this integration
- Let it collect diagnostic data while using different ports/features
- 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.
This repository is not for sale.
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
- 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
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