Modbus
Read an inverter or charge controller over RS-485 or Modbus-TCP.
Inverter dongles and Bluetooth modules
Read an inverter through its Wi-Fi logger stick or its Bluetooth module.
Waveshare RS232/485 to WiFi/ETH
Connect an RS-485 inverter or battery to Epilykos with a Waveshare serial server.
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
| Connection | When to use it | What you need |
|---|---|---|
| Serial (RS485 / Modbus-RTU) | The inverter is close to the computer running Epilykos | A 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 gateway | Its 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
| Inverter | Profile |
|---|---|
| SRNE / PowMr / EASun | SRNE Inverter (V1.96 / Latest Protocol) or SRNE All-in-One Inverter (Modbus RTU) |
| Growatt SPF 3500–6000 ES | Growatt SPF Series (Modbus RTU) |
| Voltronic / Axpert / MPP Solar | Voltronic Axpert / MPP Solar (P00-P09 Modbus) |
| Felicity IVEM6048 | Felicity IVEM6048 Series (Modbus RTU) |
| Felicity T-REX 5K | Felicity T-REX 5K (Modbus RTU) - P1G01 |
| Felicity T-REX 10K | Felicity T-REX 10K (Modbus RTU) - P3G01 |
| Felicity T-REX 25K/50K | Felicity T-REX 25K/50K (Modbus RTU) - HP3G01 |
| Felicity IVPS10048 | Felicity IVPS10048 (Modbus RTU) - 10kVA |
| Deye Hybrid | Deye Hybrid Inverter |
| Solis Hybrid | Solis Hybrid Inverter (Ver3.2 / RHI Series) |
| Solis String | Solis String Inverter (Ver19 / 3-Phase) |
| Victron GX device | Victron 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
| Symptom | Likely cause | Fix |
|---|---|---|
| Connection refused | The IP address or port is wrong | Check that the address answers (ping <ip>) and that port 502 is open. |
| Timeout | The unit ID is wrong | Most inverters use unit ID 1; your inverter's manual will say. |
| No data on the dashboard | The registers aren't mapped | Press Load Profile Registers and make sure every register has a metric name. |
| CRC or checksum errors | The baud rate doesn't match | Match it to the inverter: 9600 for most, 2400 for Voltronic. |
| Port not found | The USB adapter is unplugged, or its driver is missing | Check ls /dev/ttyUSB*, and install the CH340 or FTDI driver if needed. |
| Permission denied | Epilykos isn't allowed to use the serial port | On Docker, add dialout under group_add:. Without Docker, run sudo usermod -a -G dialout $USER, then log out and back in. |
Last updated on