What is EOS Connect?
A comprehensive energy management platform — from data collection to intelligent control
The Evolution: From Gateway to Full Solution
EOS Connect has evolved. Originally designed as a "data gateway" to bridge hardware with external optimizers, it is now a complete energy management system (EMS). While it retains its open architecture and support for external backends, its core strength now lies in its fully integrated MILP optimizer (local_evopt) which provides a high-performance, self-contained solution for energy optimization.
- Zero Dependency: No need for external servers, containers, or network connectivity beyond your local environment.
- Performance: Tighter integration between data fetching and optimization means faster cycles and more reactive control.
- Ease of Use: One setup, one configuration, one interface. The Setup Wizard handles everything from hardware connection to optimization tuning.
- Privacy: All your energy data and optimization logic stays local on your system.
Optimization options:
- Local EVopt (Recommended Default) — Built-in Linear Programming (MILP) optimizer. Based on the proven evcc-io/optimizer engine. Optimized specifically for the EOS Connect ecosystem.
- Akkudoktor EOS — Full-featured external optimization engine - GitHub
- EVopt — Lightweight external alternative - GitHub
How It Works
The Intelligent Control Cycle
EOS Connect acts as the central brain of your energy installation, operating in a continuous loop:
- Data Collection: Real-time monitoring of battery SOC, PV production, and household load.
- Forecast Integration: Aggregating PV generation forecasts and dynamic electricity prices for the next 24-48 hours.
- Integrated Optimization: Processing all variables locally (or delegating to a chosen server) to calculate the most cost-effective power strategy for every moment.
- Device Control: Executing the strategy by sending precise power commands to your inverters, batteries, and wallboxes.
- Monitoring: Visualizing the process and results in real-time through the web dashboard and MQTT.
Figure: EOS Connect process flow diagram
refresh_time minutes (default: 3 minutes) with configurable time frame granularity (15 minutes or hourly).
Core Features
Battery Management
SOC Monitoring
Real-time State of Charge tracking with remaining energy calculation
Charge/Discharge Control
Automated modes: grid charging, PV-only, discharge allowed, idle
Dynamic Charging Curve
SOC-based power reduction (100% → 5% as battery fills)
Temperature Protection
Automatic power reduction in extreme cold/heat (-30°C to +70°C)
Dynamic Price Calculation
Analyzes charging history to determine real cost of stored energy
Smart Sensor Detection
Automatically detects battery/grid sensor polarity to ensure correct PV vs Grid attribution
Efficiency Settings
Configurable charge/discharge efficiency for accurate calculations
Temperature-Based Protection Details
When a battery temperature sensor is configured, EOS Connect applies a generic temperature derating curve derived from BYD HVM battery thermal specifications. This manufacturer-validated approach ensures safe charging across all temperature ranges for any battery system:
| Temperature Range | Charging Power | Purpose |
|---|---|---|
| < -10°C | 0% (Locked) | Cell damage protection - no charging allowed |
| -10°C to 0°C | 7.5% → 50% | Lithium-plating protection in extreme cold |
| 0°C to 5°C | 50% | Moderate cold derating |
| 5°C to 12°C | 50% → 77% | Light derating - battery warming gradually |
| 12°C to 40°C | 100% (SOC-based only) | Optimal operating range - full charging capacity |
| 40°C to 50°C | 100% → 50% | Thermal derating - heat protection begins |
| 50°C to 60°C | 50% → 0% | Severe derating - critical heat protection |
| > 60°C | 0% (Locked) | Overheat protection - no charging allowed |
Solar Forecasting
Multiple provider support for accurate PV generation predictions:
| Provider | Description | Requirements |
|---|---|---|
| Akkudoktor | Default, free, comprehensive forecasts | Location, tilt, azimuth, power |
| Solcast | High accuracy, commercial provider | API key, resource ID (10 calls/day limit) |
| OpenMeteo | Weather-based forecasting | Location, system specs |
| Forecast.Solar | Free solar forecasting | Location, basic system info |
| EVCC | Use existing EVCC forecasts | Running EVCC instance |
Multi-Installation Support
Configure multiple PV installations with different orientations:
- South-facing roof (180°, 25° tilt, 5 kW)
- East garage (90°, 15° tilt, 2.5 kW)
- West carport (270°, 10° tilt, 3 kW)
EOS Connect aggregates all forecasts for total system prediction.
Cost Optimization
Dynamic Electricity Pricing
Supports multiple price providers for real-time market rates:
- Tibber: Scandinavian/European dynamic pricing
- smartenergy.at: Austrian market prices
- Stromligning.dk: Danish electricity pricing
- Fixed 24h: Custom hourly price array
- Default: Uses Akkudoktor pricing data
Price Modifiers
- Fixed Adder: Add fixed costs (grid fees, taxes) in ct/kWh
- Relative Multiplier: Apply percentage markup (e.g., 5%)
Dynamic Feed-In Pricing
New: Optimize battery discharge timing based on dynamic export prices, not just purchase prices:
- Fixed Feed-In: Configure a static export rate (simplest option)
- Elpris DK: Real-time Danish spot prices for exports (DK1/DK2 zones)
- EPEX-Spot: European spot market prices via Akkudoktor API (updated every 15 minutes)
- Adjustments: Apply static adder (transport costs) and multiplier (discount/premium strategy)
Example: Instead of discharging to save €0.25/kWh purchase cost, EOS Connect now also considers you earn €0.40/kWh by exporting — leading to smarter discharge timing that increases your revenue.
Battery Price Calculation (LIFO)
EOS Connect can analyze your charging history to determine the real cost of energy stored in your battery:
- Scans last 48-96 hours of power data
- Identifies charging events (battery power > threshold)
- Attributes energy to either:
- Grid charging at market price
- PV surplus at €0 (free solar energy) — or optionally at the feed-in tariff rate as opportunity cost (see
battery_price_include_feedin)
- Uses Last-In-First-Out (LIFO) valuation for current SOC
- Updates optimizer with real battery energy cost
Update Notifications
Docker Image Users: EOS Connect automatically checks for available updates from GitHub Container Registry (GHCR).
Update System Features
- Automatic Detection: Checks for updates every 12 hours in the background
- Branch Awareness: Detects whether you're on stable or develop branch and only shows matching updates
- Smart Notifications:
- Blue dot notification on web interface menu
- Slide-down banner showing version information
- Dismissible per version (remembers your choice)
- Zero Configuration: Works automatically without any setup
- MQTT Integration: Publishes update status for Home Assistant automations
- REST API: Check update status programmatically
How It Works
- On startup, EOS Connect detects if running as Docker image or HA Add-on
- For Docker users, it queries GHCR every 12 hours for new releases
- Compares latest available version with your current version
- Shows notification banner and blue dot when update is available
- You can dismiss the notification per version (it won't show again for that version)
- Access detailed information via the Info page in the web interface
Integration Capabilities
Smart Home Platforms
Home Assistant
- MQTT Auto Discovery
- Sensor integration
- Control via entities
- Native add-on available
OpenHAB
- Item-based integration
- MQTT publishing
- MQTT Auto Discovery (via MQTT binding)
- REST API access
- Full sensor support
Inverter Control
Fronius GEN24 Support:
- Enhanced Interface (Default): Automatic firmware detection, universal compatibility
- Legacy Interface: Available for corner cases
- Supported Actions:
- Grid charge power setting
- Discharge control
- SOC monitoring
- Real-time status
EVCC External Battery Control:
- Universal interface for all EVCC-supported inverters
- Battery management without direct inverter connection
- Note: Dynamic max charge power not currently supported by EVCC
API-Only Mode:
- Disable direct inverter control
- Get optimization results via MQTT/REST API
- Implement control in your own automation
Electric Vehicle Charging (EVCC)
Modes & Control
- PV Mode: Charge only from solar surplus
- Min+PV Mode: Minimum grid + solar surplus
- Fast Charge: Maximum power from grid
- Off: No charging
Multi-EVCC Support
Control multiple EVCC instances:
- Home wallbox (main garage)
- Guest wallbox (driveway)
- Workshop charger
Integration with Optimization
EOS Connect coordinates battery and EV charging:
- Prioritizes PV surplus distribution
- Avoids simultaneous grid charging
- Respects battery SOC limits
- Considers electricity price forecasts
Optimization Backends
Local EVopt — Built-in (Default)
- Built-in: Runs in-process — no external server to install or maintain
- MILP solver: Uses PuLP/CBC to find the globally cost-optimal dispatch plan
- Configurable strategies: Charging (charge before export, maximise self-consumption, attenuate grid peaks) and discharging (discharge before import, emergency reserve)
- Hot-reloadable: Strategy changes take effect immediately and trigger a new optimization run
- 15-minute resolution: Supports both 3600 s (hourly) and 900 s (15-minute) time frames
- Based on: evcc-io/optimizer (MIT license)
Akkudoktor EOS Server
- Full-featured: Complex optimization algorithms
- Comprehensive: Considers all system parameters including temperature forecasts
- Flexible: Highly configurable
- Server: Runs on port 8503 (external process)
- GitHub: Akkudoktor-EOS/EOS
EVopt (Lightweight External)
- Fast: Very quick optimization calculations
- Lightweight: Lower resource requirements
- Simple: Easier to set up and maintain
- Server: Runs on port 7050 (external process)
- Source: Available via EVCC discussions
eos.source in the web UI ( Settings → EOS). Options: local_evopt (default, built-in), eos_server, or evopt.
⏱️ Time Frame & Refresh Configuration
Time Frame (Optimization Granularity)
Backend-Specific Capabilities:
- Local EVopt (built-in): Supports both
3600(hourly) and900(15-minute). Runs in-process — no external calls during optimization. - EOS Server: Only supports
3600seconds (hourly). 15-minute intervals are not available with this backend. - EVopt: Supports both
3600(hourly) and900(15-minute). Use 900 for more precise, dynamic optimization.
Misconfiguration Handling: If you mistakenly set time_frame: 900 with EOS server, it will be automatically corrected to 3600 at startup with a warning message.
Refresh Time
How often EOS Connect sends optimization requests:
- Default: 3 minutes
- Recommended Range: 1-5 minutes
- Considerations: More frequent updates = more solver runs (built-in) or API calls (external backends)
Benefits Summary
Cost Savings
Minimize electricity bills by optimizing when to charge from grid and when to use battery
Self-Sufficiency
Maximize PV self-consumption, reduce grid dependency
Battery Health
Protect your investment with intelligent charging curves and temperature protection
Automation
Set it and forget it - automatic optimization every few minutes
Insights
Understand your energy system with detailed monitoring and analytics
Flexibility
Easy integration with existing smart home systems and custom automation
Web Dashboard
EOS Connect provides a comprehensive web interface for real-time monitoring and control:
Figure: EOS Connect web dashboard showing real-time energy management
Dashboard Features
Main Dashboard
Real-time overview of PV, Load, Battery, and Optimization states with dynamic charts
Battery Overview
Real-time battery status including charge power, temperature monitoring with thermal protection indicators, historical charging sessions, and cost analysis. Includes mobile-responsive temperature display with color-coded status indicators.
Log Viewer
Real-time application logs with component-based filtering
Manual Controls
Override system modes and set charging parameters directly
Next Steps
Ready to get started? Choose your path:
Install EOS Connect on your system
Learn how to configure all features
Explore API, MQTT, and automation