<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hello,</div><div class="gmail_default" style="font-size:small">I have completed and tested a new generic modbus driver for UPS devices with contact signaling. I have also posted the corresponding pull request:</div><div class="gmail_default" style="font-size:small"><br></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div dir="ltr"><div class="gmail_default" style="font-size:small">(<a href="https://github.com/networkupstools/nut/pull/1052">https://github.com/networkupstools/nut/pull/1052</a>)</div></div></blockquote><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">kind regards,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Dimitris Economou</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">---</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This is a generic modbus driver expected to work with contact (direct) signal UPS devices, connected via modbus RIO (remote I/O) either serial or TCP/IP. The driver has been tested against PULS UPS (model UB40.241) via MOXA ioLogikR1212 (RS485) and ioLogikE1212 (TCP/IP).<br><br>The PULS UPS UB40.241 supports the following signals:<br><br>Ready contact (DO) <--> HB<br>Buffering contact (DO) <--> OL | OB<br>Battery-low (DO) <--> LB<br>Replace Battery (DO) <--> RB<br>Inhibit (DI) <--> FSD<br>DO and DI assumes device perspective<br><br>The driver's concept is to map the UPS states (as defined in nut) onto UPS contacts' states<br><br>The driver has an extended configuration interface implemented using variables defined in ups.conf.<br><br><font face="monospace">[generic_modbus]<br># info parameters<br>driver = generic_modbus<br>port = /dev/ttyUSB0<br># port = 192.168.2.104<br># port = <a href="http://192.168.2.104:1502">192.168.2.104:1502</a><br>desc = "generic ups driver"<br># device info<br>device_mfr = "PULS"<br>device_model = "UB40.241"<br># serial settings<br>ser_baud_rate = 9600<br>ser_parity = N<br>ser_data_bit = 8<br>ser_stop_bit = 1<br>modbus slave id<br>rio_slave_id = 5<br># UPS signal state attributes<br>OB_addr = 0x0<br>OB_regtype = 1<br>OB_noro = 0<br>LB_addr = 0x1<br>LB_regtype = 1<br>HB_addr = 0x2<br>HB_regtype = 1<br>RB_addr = 0x3<br>RB_regtype = 1<br># CHRG_addr = 0x0<br># CHRG_regtype = 1<br># CHRG_noro = 1<br>DISCHRG_addr = 0x0<br>DISCHRG_regtype = 1<br>DISCHRG_noro = 0<br>FSD_addr = 0x140<br>FSD_regtype = 0<br>FSD_pulse_duration = 180<br></font><br><i>XXX_addr</i> denotes the modbus address of RIO where the XXX UPS signal is connected<br><i>XXX_regtype</i> is the type of modbus register (0:COIL, 1:INPUT_B, 2:INPUT_R, 3:HOLDING)<br><i>XXX_noro</i> is the configuration for NO/NC (normally open, normally closed contact)<br><i>FSD_pulse_duration</i> defines the duration in ms of the inhibit pulse. if it's not defined, the signal has only one transition depending on noro configuration.</div></div></div>