Epilykos Wiki
Data sources

RS232 serial

Read inverters that talk over a serial cable in their own protocol.

Some inverters don't speak Modbus. They talk over a serial cable in a protocol of their own, either plain text commands or a binary format. The RS232 serial source handles these: connect the inverter to the computer running Epilykos with a USB-to-serial adapter, pick your inverter's profile, and Epilykos takes care of the rest.

What you need

  • A USB-to-serial adapter with a working driver (CH340, FTDI and CP2102 chips are the common ones), or the cable that came with your inverter.
  • Permission to use the serial port:
    • On Docker, pass the adapter into the container and add the dialout group. See Install with Docker.
    • Without Docker, add your user to dialout with sudo usermod -a -G dialout $USER, then log out and back in.

Protocols

ProtocolInvertersProfileSerial settings
Voltronic QPIGSVoltronic, Axpert, Infinisolar, MUST, SakoVoltronic / Axpert (QPIGS ASCII), Infinisolar (Voltronic QPIGS)2400 8N1
PhocosPhocos Any-Grid PSW-H, firmware 06.11 or laterPhocos Any-Grid PSW-H (RS-232 / RS-485)2400 8N1
Victron VE.DirectSmartSolar, BMV and MultiPlus, with a VE.Direct cableVictron VE.Direct19200 8N1, streaming
SolaX AA55 (binary)SolaX X1 and X3 series, with a USB-to-TTL adapterSolaX Pocket USB (AA55 Binary)9600 8N1
Modbus-RTUFor example the Anern EVO4200L over RS-485Anern EVO4200L (24V Hybrid, Modbus RTU)2400 8N1

"2400 8N1" means 2400 baud, 8 data bits, no parity and 1 stop bit.

Set up an RS232 device

In Settings → Sources, add an RS232 device and give it a name you'll recognise.

Pick the serial port. Epilykos lists the ports it finds, so you usually just choose yours from the list. Then set the baud rate and the other serial settings to match the profile (see the table above).

Pick the profile and press 📥 Load Profile Fields. Each row is one reading; keep the suggested metric name or type your own. If you want every field the profile knows about, use 📋 Fetch Profile Entities, and + Add Mapping adds a single row by hand.

Press Test RS232 to check that the inverter answers, then Save changes.

Read all RS232 devices every … seconds controls how often Epilykos asks. The default is every 30 seconds.

Phocos Any-Grid

Epilykos speaks Phocos's own serial protocol, so it can read a Phocos Any-Grid PSW-H directly (firmware 06.11 or newer). It only reads: nothing on the inverter is ever changed from here.

On every read you get what's happening right now: the live readings and PV power, the operating mode, any fault code (with its name, so you don't have to look it up), and status flags that tell you whether the MPPT is tracking, the battery is charging, and AC power is coming in or going out. You also get the running totals and the charging currents the inverter is set to.

Less often, Epilykos also picks up the things that rarely change: the ratings and settings (such as the charger priority, shown as CSO, SNU or OSO, and the battery type), the factory defaults, the charging currents you can choose from, the inverter's date and time, its serial number, and the firmware versions of its main board, display and Bluetooth module.

Several inverters in parallel

If you run up to nine inverters in parallel, each one's readings get their own prefix, from unit1_… to unit9_…. Epilykos only asks a unit for data once you've mapped at least one of its fields, and if a unit doesn't answer, it stops asking for a while before trying again.

The inverters number themselves, and those numbers can change after a restart. To be sure which physical inverter you're looking at, go by its serial number rather than its unit number.

Use the cable that came with the inverter. Other cables can damage it.

To read the same inverter over Bluetooth instead, see Inverter dongles.

Troubleshooting

SymptomLikely causeFix
Permission deniedEpilykos isn't allowed to use the serial portAdd the dialout group, as described above.
No ports foundThe adapter is unplugged, or not passed into the containerCheck ls /dev/ttyUSB* and reseat the cable. On Docker, check the devices: lines.
Read timeoutThe baud rate doesn't matchUse the profile's speed: 2400 for Voltronic, 9600 for SolaX, 19200 for VE.Direct.

Last updated on

On this page