Troubleshooting Victron ESS Mode 3 Modbus TCP Bidirectional Control

Updated 6 September 2026 · By SolarNevs Research Desk, Dealer surveys + verified sources · 1 source · Method ↗

Key Takeaways

  • Victron ESS Mode 3 requires direct Modbus TCP control of your inverter/charger.
  • Incorrect Modbus unit IDs (246 for CCGX, 242 for Venus-GX) are a common setup error.
  • Your external control loop must manage battery discharge limits; the battery's BMS limits are ignored for discharge.
  • Always verify Modbus register settings for grid power (37, 40, 41) to ensure correct power flow.

Why is my Victron ESS Mode 3 not controlling grid power via Modbus TCP?

Victron ESS Mode 3 allows you to take direct control of your Multi or Quattro inverter/charger using Modbus TCP. If your system is not responding as expected, the most common causes are incorrect Modbus unit IDs, misconfigured power setpoint registers, or a control loop that does not properly calculate the power equation. The first thing to check is your GX device's Modbus unit ID and the specific registers you are writing to.

Diagnosis

Follow these steps to diagnose issues with your Victron ESS Mode 3 Modbus TCP setup.

  1. Verify GX Device Unit ID:
    • Check: Identify which GX device you are using (CCGX or Venus-GX).
    • Meaning: The Modbus unit ID must match your GX device. For a CCGX, use unit-id 246. For a Venus-GX, use unit-id 242. An incorrect unit ID will prevent any communication.
  1. Confirm Modbus TCP Register for Grid Power Setpoint:
    • Check: Determine if your system is single-phase or multiphase.
    • Meaning: For single-phase systems, or for L1 in multiphase systems, the grid power setpoint is controlled by Modbus-TCP register 37. For multiphase systems, registers 40 and 41 control L2 and L3 respectively. Ensure you are writing to the correct register for your configuration. Positive values take power from the grid, while negative values send power to the grid. These registers have a range of -32768W to 32767W.
  1. Review Your Control Loop's Power Calculation:
    • Check: Examine the logic of your external control system.
    • Meaning: In Mode 3, you are responsible for creating your own control loop. The power flowing to the battery (or DC system) is equal to the AC-In power minus the AC-Out power. Your control loop must frequently update the set-point based on this calculation to achieve desired power flow.
  1. Understand Managed Battery Behavior in Mode 3:
    • Check: If you are using a managed battery (e.g., a lithium battery with its own BMS).
    • Meaning: When using Mode 3 with a managed battery, the maximum discharge current sent by the battery will be ignored by the Victron system. Your implemented control loop must explicitly take care of discharge limits communicated by the battery. However, the maximum charge current sent by a managed battery is always heeded and cannot be overruled by the setpoint.
  1. Confirm Necessary Equipment:
    • Check: Ensure you have the required Victron components.
    • Meaning: ESS Mode 3 requires a Multi or Quattro inverter/charger and a GX device. No AC sensor is necessary, as the inverter/charger acts as a 'dumb' bi-directional unit, responding directly to external commands.

Cause/fix table section

Symptom detail

Likely cause

Fix

Modbus TCP communication fails or is unresponsive

Incorrect Modbus unit ID for GX device

Use unit-id 246 for CCGX; use unit-id 242 for Venus-GX.

Grid power not controlled on single-phase or L1

Incorrect Modbus register for L1 setpoint

Adjust Modbus-TCP register 37.

Grid power not controlled on L2 or L3 in multiphase

Incorrect Modbus registers for L2/L3 setpoints

Adjust Modbus-TCP registers 40 and 41.

Battery over-discharging despite BMS limits

External control loop not managing battery discharge limits

Implement control loop to respect battery's communicated discharge limits.

Battery not charging at expected maximum rate

Attempting to override battery's communicated charge limits

The battery's maximum charge current is always heeded and cannot be overruled by the setpoint.

Inverter/charger not responding to power commands

Control loop not updating setpoint frequently enough

Ensure your control loop updates the set-point frequently based on the AC-In minus AC-Out power equation.

ESS Mode 3 Control Fundamentals

Victron ESS Mode 3 offers granular control over your energy system, allowing for custom automation and integration with external systems. It fundamentally treats the inverter/charger as a "dumb" bi-directional device that executes commands sent via Modbus TCP.

Modbus TCP Protocol Basics: Modbus TCP is a communication protocol used to control and monitor industrial equipment. In the context of Victron ESS Mode 3, your external controller (e.g., a home automation system, PLC, or custom script) sends commands to the GX device, which then relays them to the Multi or Quattro inverter/charger. These commands are typically write operations to specific Modbus registers, which correspond to settings or setpoints within the Victron system.

Key Control Points:

  • Unit ID: As noted, the correct Modbus unit ID is crucial for establishing communication. Unit-id 246 is for the CCGX VE.Bus port, and unit-id 242 is for the Venus-GX.
  • Grid Power Setpoints: Registers 37, 40, and 41 are central to controlling grid interaction. Register 37 manages the power setpoint for single-phase systems or L1 in multiphase configurations. Registers 40 and 41 manage L2 and L3 respectively. These registers accept values from -32768W to 32767W, where positive values draw power from the grid and negative values feed power to the grid.
  • Power Equation: Your control loop must continuously calculate the desired power flow. The power flowing to the DC system (and thus the battery) is determined by the AC-In power minus the AC-Out power. This dynamic calculation is essential for effective Mode 3 operation.
  • Battery Management: While Mode 3 provides direct control, it's important to understand its interaction with managed batteries. The system will ignore maximum discharge current limits communicated by the battery's BMS. This means your external control loop must actively monitor and enforce these limits to prevent battery damage. Conversely, the maximum charge current sent by a managed battery is always respected by the Victron system and cannot be overridden.
  • Inverter/Charger Role: The Multi or Quattro inverter/charger acts as a "dumb" bi-directional unit. It simply executes the power commands it receives via the GX device. This means there is no need for an AC sensor, as the inverter/charger is not autonomously deciding power flow based on external measurements.

Safety: Programming and Battery Management

While troubleshooting Modbus TCP settings primarily involves software, incorrect programming can lead to significant safety risks, particularly concerning battery health and grid interaction.

  • Battery Protection: When implementing your control loop, rigorously ensure that it respects the battery's voltage and current limits for both charging and discharging. As noted, Mode 3 ignores battery-communicated discharge limits, placing the responsibility entirely on your external control. Over-discharging a battery can lead to irreversible damage and potential safety hazards.
  • Grid Interaction: Incorrect grid power setpoints can lead to unintended power flows, potentially overloading your grid connection or causing instability. Always double-check your register values and the logic that generates them.
  • System Stability: Frequent or erratic changes to setpoints can destabilize the inverter/charger's operation. Design your control loop with appropriate delays and smoothing to ensure stable system performance.

When to call a technician instead

If you are unfamiliar with Modbus TCP communication, programming external control systems, or if your Victron system exhibits unexpected behavior after attempting these troubleshooting steps, it is best to consult a qualified Victron Energy installer or technician. Complex interactions between your external control system, the GX device, and the inverter/charger may require specialized knowledge to diagnose and resolve. Attempting advanced programming without sufficient understanding can lead to system instability or damage.

Frequently asked questions

What does Victron ESS Mode 3 mean?

Mode 3 allows direct control of the Multi or Quattro inverter/charger, setting the power it should take or feed back on its AC input. It provides full control over the inverter/charger and the power from and to the battery.

Which Modbus unit ID should I use for Victron ESS Mode 3?

For a CCGX, use unit-id 246. If you are using a Venus-GX, the correct unit-id is 242.

How do I control grid power in Victron ESS Mode 3?

Grid power is controlled using Modbus-TCP registers. Register 37 controls the setpoint for single-phase systems or L1 in multiphase systems. Registers 40 and 41 control L2 and L3 respectively.

Does Victron ESS Mode 3 respect battery discharge limits?

When using Mode 3 with a managed battery, the maximum discharge current sent by the battery will be ignored. Your implemented control loop must manage these discharge limits.

What Victron equipment is necessary for ESS Mode 3?

You need a Multi or Quattro inverter/charger and a GX device. An AC sensor is not necessary because the inverter/charger acts as a 'dumb' bi-directional unit.

References

Related guides

More from inverter errors & fixes.