Epilykos Wiki
Data sources

Modbus

Read an inverter or charge controller over RS-485 or Modbus-TCP.

Most hybrid inverters and charge controllers share their readings through Modbus registers. The Modbus (RS485 or TCP) source reads them: pick the profile that matches your model, and Epilykos already knows which registers to ask for.

Ways to connect

ConnectionWhen to use itWhat you need
Serial (RS485 / Modbus-RTU)The inverter is close to the computer running EpilykosA USB to RS-485 adapter, wired to the inverter's RS-485 port
TCP (Modbus-TCP)The device speaks Modbus-TCP itself (like a Victron GX), or you use a gatewayIts IP address and port (usually 502)

You can also reach an RS-485 inverter over the network with an RS-485 to Ethernet or Wi-Fi gateway, such as an Elfin EW11, a USR-TCP232 or a Waveshare RS232/485 to WiFi/ETH. Choose TCP, enter the gateway's address, and tell Epilykos how the gateway passes data on:

  • Gateway converts to Modbus-TCP, which is what most gateways do, or
  • Transparent gateway (RTU over TCP).

A gateway is also the easiest option if Epilykos runs on Docker Desktop, where USB adapters take extra steps. On Docker, a USB adapter has to be passed into the container; see Install with Docker.

Profiles

InverterProfile
SRNE / PowMr / EASunSRNE Inverter (V1.96 / Latest Protocol) or SRNE All-in-One Inverter (Modbus RTU)
Growatt SPF 3500–6000 ESGrowatt SPF Series (Modbus RTU)
Voltronic / Axpert / MPP SolarVoltronic Axpert / MPP Solar (P00-P09 Modbus)
Felicity IVEM6048Felicity IVEM6048 Series (Modbus RTU)
Felicity T-REX 5KFelicity T-REX 5K (Modbus RTU) - P1G01
Felicity T-REX 10KFelicity T-REX 10K (Modbus RTU) - P3G01
Felicity T-REX 25K/50KFelicity T-REX 25K/50K (Modbus RTU) - HP3G01
Felicity IVPS10048Felicity IVPS10048 (Modbus RTU) - 10kVA
Deye HybridDeye Hybrid Inverter
Solis HybridSolis Hybrid Inverter (Ver3.2 / RHI Series)
Solis StringSolis String Inverter (Ver19 / 3-Phase)
Victron GX deviceVictron CCGX / Venus OS (Modbus TCP)
Generic MPPT (EPever, Tracer, Renogy)Generic MPPT Charge Controller (EPever/Tracer/Renogy)

The Victron profile is the only one that speaks Modbus-TCP natively; the rest are maps for RS-485.

LuxPower inverters aren't read over Modbus. Connect their Wi-Fi or Bluetooth dongle instead; see Inverter dongles.

Set up a Modbus device

In Settings → Sources, add a Modbus device and give it a name.

Choose how it connects and fill in the details:

  • TCP: the host name or IP address, and the port (usually 502).
  • Serial: the serial port (for example /dev/ttyUSB0), and the baud rate, data bits, parity and stop bits from your inverter's manual.

Then set the Unit ID. Most inverters use 1; the Victron profile uses 100 by default.

Pick the profile for your hardware, press 📥 Load Profile Registers, and give each register a metric name (or keep the suggested ones). 📋 Fetch Profile Entities lists every register in the profile, and + Add Mapping adds a single row.

Press Test Modbus to check that it reads, then Save changes.

Poll (s) sets how often the device is read.

Troubleshooting

SymptomLikely causeFix
Connection refusedThe IP address or port is wrongCheck that the address answers (ping <ip>) and that port 502 is open.
TimeoutThe unit ID is wrongMost inverters use unit ID 1; your inverter's manual will say.
No data on the dashboardThe registers aren't mappedPress Load Profile Registers and make sure every register has a metric name.
CRC or checksum errorsThe baud rate doesn't matchMatch it to the inverter: 9600 for most, 2400 for Voltronic.
Port not foundThe USB adapter is unplugged, or its driver is missingCheck ls /dev/ttyUSB*, and install the CH340 or FTDI driver if needed.
Permission deniedEpilykos isn't allowed to use the serial portOn Docker, add dialout under group_add:. Without Docker, run sudo usermod -a -G dialout $USER, then log out and back in.

Last updated on

On this page