Prolink UPS Modbus/Serial Interface
Foreword
This is a work in progress, but I wanted to post in case someone else is looking to do something similar and it saves some time reverse-engineering in the interface.
Caution: It looks like the UART interface isn't isolated on the UPS mainboard, rather on the USB communications board, which we are bypassing. This *may* mean that there is a risk of dangerous voltages being present on the UART interface.
Many (most?) prosumer Prolink UPS models include a USB port for management, but the Viewpower software they come with is a little clunky.
When connected via USB, the UPS enumerates as a USB HID device, but internally, the communication board at the back just has a UART interface to the main UPS control/inverter board. I soldered some wires to bring the interface out, and after a bit of poking around, I was able to query the UPS from Realterm. The interface runs at 2400 8N1, and has a simple command set that I'm planning to duplicate on an Arduino. The Arduino will then act as a Modbus RTU device, allowing the UPS to be monitored from a Modbus RTU master.
Command Set
When the Viewpower software sends "QS" followed by a carriage return, the UPS answers with a series of values including the input voltage, output voltage, and line voltage.
Wires soldered on to UART interface on the UPS USB communications card