M-TEC M-TEC Energy Butler GEN3 (battery) Modbus TCP template

M-TEC Energy Butler GEN3 (battery)

The M-TEC Energy Butler GEN3 is a modular hybrid battery storage system with an integrated inverter, designed for residential and small commercial PV installations. This template communicates over Modbus TCP using RTU framing over the device's built-in network interface. It reads battery power (charge and discharge direction via sign) and state of charge, and exposes a writable battery mode register that lets your portal control operating behaviour. Connecting the Energy Butler GEN3 to ModbusCloud gives installers and asset managers live battery telemetry and remote mode control from a single dashboard.

Protocol
Modbus TCP
Connection
Ethernet, Modbus TCP
Registers
3, read and write
Brand
M-TEC
Last updated

Registers (3)

2 read, 1 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
powerWRead
soc%Read
batterymodeWrite

Loading registers…

Send your device list

If a device is not in the library yet, we build the template for free as soon as we have the register data.

Number of installations (optional)

Use cases

  • Monitor battery state of charge continuously to detect capacity loss across charging seasons.
  • Track the power register sign to verify whether the battery is charging from PV surplus or discharging to loads.
  • Alert on state of charge dropping below a defined threshold during extended periods of low solar yield.
  • Write the batterymode register from the portal to switch between self-consumption and forced-charge modes during cheap-tariff windows.
  • Compare daily charge and discharge cycles against expected values to flag abnormal battery behaviour early.

Installation

  1. Connect the ModbusCloud Gateway to the same LAN segment as the Energy Butler GEN3. The device exposes a built-in Modbus TCP server on its network interface; no RS485 adapter is required for TCP access. Note the device's IP address.

  2. In the ModbusCloud portal, add a new device, select TCP protocol, enter the Energy Butler GEN3's IP address, and set the Modbus port. The default port is 5743 on older firmware; devices running firmware V27.52.4.0 or newer use port 502. Set the slave ID to 252.

  3. Import the M-TEC Energy Butler GEN3 (battery) template from the template library with one click, then assign it to the Gateway entry you created. Verify that function code 3 is used for reading and function code 16 for writing.

  4. Spot-check the soc register (address 33000) in the live register view of your portal and confirm the value matches the state of charge shown on the device's local display or app before enabling any write operations.

Things to watch for

The gateway connects but all register values read as zero or timeout.

The Energy Butler GEN3 exposes Modbus over its built-in Wi-Fi or LAN interface using RTU framing encapsulated in TCP. Confirm you are using RTU-over-TCP framing, not plain Modbus TCP. Also verify the slave ID is set to 252 and the correct port (5743 for firmware below V27.52.4.0, or 502 for V27.52.4.0 and above).

Why does the power register at address 30258 show unexpected large values?

Address 30258 is a GEN3 input register range (30000s), decoded as a signed int32 across two consecutive 16-bit registers. Ensure your Modbus client reads two registers starting at 30258 and decodes them as a single int32. A mismatch in register count or byte order will produce garbage values. Positive values indicate discharge; negative values indicate charge.

The soc register reads a value that looks like a raw integer, not a percentage.

Register 33000 returns a uint16. Community integrations have reported that M-TEC applies a scaling factor of 0.01 on the SOC raw value in some firmware versions, producing a raw value of e.g. 9000 for 90%. Verify against the local display and apply the appropriate scale in your portal channel configuration if the raw value is out of the expected 0-100 range.

Is it safe to write to the batterymode register during normal operation?

Use caution when writing to register 50000 (batterymode). Sending an unsupported mode value or switching modes too rapidly can cause the inverter to trip protective limits or enter an unexpected operating state. Always verify the valid mode values in the M-TEC documentation for your firmware version before enabling automated writes, and test manually first.

Want to see how it works?

Electrician working in an open distribution board