Real-time Streaming
Delta and Stream devices get real-time MQTT push in Standard Mode out of the box. Enhanced Mode adds ~3-second WSS streaming for PowerOcean. Both modes are configurable per device.
704 entities across eleven device families. Real-time MQTT streaming, native Energy Dashboard integration, and control wherever the device allows it.
The official Developer Portal provides HTTP polling at ~30-second intervals. Too coarse for meaningful automations or real-time energy monitoring. Modbus access is not available for these devices.
EcoFlow Energy works around this with dual connection modes. Standard Mode uses the official IoT API with HTTP polling and real-time MQTT push. Enhanced Mode uses a community-driven WSS bridge for ~2-3 second Protobuf-encoded updates, with no Developer API keys required. All connections work independently of the EcoFlow portal. The integration does not compete with your mobile app for a session slot.
If the connection drops, a 4-tier reconnect strategy kicks in automatically. In Enhanced Mode, entities degrade gracefully through defined stages while retaining last-known-good values. Data collection resumes without manual intervention. Set it up once.
Auto-discovery, dual connection modes, and sensors that map directly to the HA Energy Dashboard. No YAML required.
Delta and Stream devices get real-time MQTT push in Standard Mode out of the box. Enhanced Mode adds ~3-second WSS streaming for PowerOcean. Both modes are configurable per device.
All energy sensors use total_increasing state class. Solar, grid, battery, and home consumption map directly into the HA Energy Dashboard.
Enter your EcoFlow API credentials once. All devices bound to your account are discovered automatically, and multiple devices are managed within a single integration instance.
Toggle outputs, set charge limits, and configure SoC thresholds. Switches, selects, and number entities across seven of eleven device families.
4-tier MQTT reconnect strategy with graduated availability degradation. If the real-time stream drops, entities retain last-known-good values while the connection recovers through defined stages.
Download HA diagnostics with full device state. Credentials are automatically redacted. Debug with confidence.
Home batteries, plug-in and whole-home batteries, portable power stations, an air conditioner, a wallbox, a plug, a meter, a microinverter, and a solar tracker. 704 entities total. Multi-device configurations supported natively.
Home Battery System
Plug-in / Balcony Battery
Whole-home AC-coupled Battery
Portable Power Station
Portable Power Station
Smart Energy Plug
Portable Air Conditioner
EV Wallbox
Sensors, no controls
Three automations running in production. Each uses entity data from this integration, standard Home Assistant triggers, and zero custom code.
Solar Cascade Charging: three device types, one integration, zero grid export.
PowerOcean hits 98% SoC. Smart Plug turns on. Delta 2 Max charges from solar surplus instead of exporting to the grid. Plug turns off when Delta reaches 99% or PowerOcean drops below 50%.
Three device types coordinated through one integration. No solar energy wasted on feed-in.
Delta 2 Max powers office equipment via AC output. When SoC drops below 20%, a push notification fires. Solar surplus charges it back to 80% via max_charge_soc.
AC output off at 23:00, on at 07:00. Standby timeout configured through the number entity. Set it, forget it.
PowerOcean grid export exceeds 1000W for 5 minutes. Push notification with current export value. Shift the dishwasher, laundry, or EV charger into the solar window.
Not automation for its own sake. Actionable awareness that turns monitoring into lower grid bills.
A campsite pillar is fused anywhere from 2 to 16 amps, and a caravan running an air conditioner alongside a kettle can ask for more than that on one circuit. Three control layers sit between the two on my caravan, acting in order, so the pillar sees a steady draw instead of a spike.
Shore power control chain: the plug enforces the limit, the battery buffers the load, the fridge keeps running.
Current and power limits follow the hookup size in use. A charge power setpoint is a target for the battery, not a ceiling on the wire. At a 500 W setpoint with the air conditioner running, the grid pull measured 1415 W.
The plug is set to trip before the pillar's breaker sees that number. The Delta is already in bypass mode, so fridge and lights keep running from the battery while the switch resets from Home Assistant instead of a walk to the reception.
Every two minutes the regulation subtracts the caravan's own load and a reserve from the budget, then writes what is left to the Delta's charge power.
It reads a ten-minute rolling average rather than the instant number, so an air conditioner compressor cycling on and off looks like one steady draw. None of it has any effect unless the Delta's own Charge Speed switch sits on ADJUST.
Below 30 percent Home Assistant sheds the second AC outlet and sends a notification. Below 20 percent the Delta marks that same outlet non-essential and sheds it on its own, no network required.
Below 10 percent the discharge limit takes over on the device itself. The fridge, the cooler, and the air conditioner on the first outlet are never shed by the automation, only flagged.
This is the same integration behind the automations above, on my own caravan, against a harder constraint: a fuse that trips once and stays tripped until someone finds the reset. The full package, the YAML, and the two approaches that did not work are in the repository.
Caravan guide on GitHubStandard Mode uses the official EcoFlow IoT API with HTTP polling and MQTT push. Enhanced Mode uses a community-driven WSS bridge for ~2-3s real-time updates across all devices, with graduated availability degradation instead of HTTP fallback.
| Aspect | Standard | Enhanced |
|---|---|---|
| API | Official IoT Developer API | Community-driven WSS bridge |
| Update rate | ~30s HTTP polling + real-time MQTT push | ~2s Delta, ~3s PowerOcean/Smart Plug |
| Credentials | Access Key + Secret Key | Email + Password only |
| Stability | Stable (official API) | May break with EcoFlow updates |
| Applies to | PowerOcean, Stream, Stream AC 5000, Delta, Smart Plug | All of them, and required for PowerOcean Plus and the single-phase variants |
| Best for | Users preferring official API stability | Users needing ~2-3s real-time updates |
Side-by-side with alternative EcoFlow integrations for Home Assistant.
| Feature | EcoFlow Energy | Alternatives |
|---|---|---|
| Data source | MQTT push for all devices (Enhanced), graduated availability with last-known-good data | HTTP polling (10–30s) or basic TCP MQTT |
| Cloud dependency | No portal login required | Required, or HTTP-only fallback |
| Connection resilience | 4-tier reconnect, graduated availability degradation | Simple reconnect, no fallback |
| Control | Switches, charge speed, SoC limits, thermostat card, optimistic lock | Switches and sliders, depending on project |
| Entity depth | 267 (PowerOcean), 113 (Delta 2 Max), 70 (Delta 3), 68 (Stream AC 5000), 63 (Stream), 38 (WAVE 3), 25 (PowerStream), 21 (Smart Meter), 18 (PowerPulse 2), 15 (Smart Plug), 6 (Solar Tracker) | Varies widely by project and device |
| Mobile tolerance | Offline = expected state | Offline = error condition |
These differences compound. An integration that handles one device cleanly is useful. One that handles device families, connection failures, and a van-mounted battery going offline for three days takes deliberate architecture.
Install via HACS, add your EcoFlow credentials, and your devices appear automatically.
Open HACS in Home Assistant. Search for EcoFlow Energy, download, and restart.
Add the integration in Settings. Enter your Access Key and Secret Key from the EcoFlow Developer Portal.
Devices are auto-discovered. Entities appear in your dashboards, Energy Dashboard sensors are ready to map.
A focused stack for reliability. Reverse-engineered protocols, typed Python, and a test suite that covers every parser.
EcoFlow Energy was built by one person with a clear division of responsibility: architectural decisions, domain knowledge, and protocol understanding stay with the human. Test generation, code review, schema analysis, and scaffolding are delegated to a coordinated set of AI agents.
This is not a solo project that used AI as a productivity tool. It is a different development model. One architect setting direction, agents executing with precision. The 2942-test suite covering every parser edge case was not written by hand. It was specified, reviewed, and shipped through that workflow.
The result is public and auditable. If you want to see what this model produces in practice, start with the repository.
EcoFlow Energy exists because the existing options were shallow. The reverse engineering, the Protobuf parsers, the reconnect logic, the multi-device architecture. None of that was required to ship something functional. It was required to ship something reliable.
This is how I approach every technical problem. The code is public. Draw your own conclusions.
Buy me a coffee