The Marstek Venus Energy Manager is a comprehensive Home Assistant integration designed to monitor and control Marstek Venus E series batteries (v2 and v3) and Venus D and Venus A series batteries via Modbus TCP. It provides advanced energy management features including predictive grid charging, customizable time slots for discharge control, and device load exclusion logic.
Caution
LIABILITY DISCLAIMER: This software is provided "as is", without warranty of any kind, express or implied. By using this integration, you acknowledge and agree that:
- Use is at your own risk. The developer(s) assume NO RESPONSIBILITY or LIABILITY for any damage, loss, or harm resulting from the use of this software.
- This includes, but is not limited to: damage to your batteries, inverters, home appliances, electrical system, fire, financial loss, or personal injury.
- You are solely responsible for ensuring that your hardware is compatible and safely configured.
- Interacting with high-voltage battery systems and Modbus registers always carries inherent risks. Incorrect settings or commands could potentially damage hardware.
If you do not agree to these terms, DO NOT install or use this integration.
If you find this integration useful, you can support my work:
Full documentation (configuration, features, entities, troubleshooting) is available at:
https://ffunes.github.io/Marstek-Venus-Energy-Manager/
- Zero Export/Import PD Controller: Keeps grid exchange near zero using a Proportional-Derivative algorithm.
- Oscillation Prevention: Deadband and derivative gain prevent rapid charge/discharge cycling.
- Multi-Battery Support: Manage up to 6 batteries with intelligent load sharing and SOC-based priority.
- Predictive Grid Charging: Automatically charges from the grid when solar forecast + battery won't cover tomorrow's consumption. Supports fixed time slots, dynamic pricing, and real-time pricing modes.
- Discharge Time Slots: Restrict or allow discharge during specific hours and days.
- Weekly Full Charge: Forces 100% SOC once a week for LFP cell balancing.
- Solar-Aware Charge Delay: Holds back grid charging while solar can still cover the required energy.
- Peak Shaving: Reserves battery capacity to cover demand spikes above a configurable power threshold, keeping energy in reserve rather than covering all consumption.
- Load Exclusion: Mask high-power devices (e.g. EV chargers) so the battery doesn't try to cover them.
| Requirement | Details |
|---|---|
| Battery | Marstek Venus E v2/v3, Venus A or Venus D |
| Modbus bridge | Elfin-EW11 or compatible RS485-to-TCP converter — Venus E v2 only. Venus E v3, Venus A and Venus D connect via Ethernet with native Modbus TCP support. |
| Grid sensor | HA sensor measuring total grid consumption (e.g. Shelly EM3, Neurio, smart meter) |
| Network | Battery reachable by IP from Home Assistant |
| Home Assistant | Recent version (tested on 2024.x+) |
| Solar forecast (optional) | Sensor providing tomorrow's production in kWh (Solcast, Forecast.Solar, …) |
HACS (Recommended)
Search for "Marstek Venus Energy Manager", install, and restart Home Assistant.
Manual
Download the release zip, extract the marstek_venus_energy_manager folder, copy it to your Home Assistant custom_components directory, and restart.
- Batteries: 2× Marstek Venus E v2 and 2× v3.
- Connectivity: Elfin-EW11 Modbus to WiFi converter.
- Metering: Shelly Pro 3EM Energy Meter.
Special thanks to ViperRNMC/marstek_venus_modbus for the Modbus register documentation that made this integration possible.