-
-
Save nickma82/f2efdb9cd37f1d3aab28 to your computer and use it in GitHub Desktop.
## Voltronic power infini inverter snmp protocol analysis | |
## Protocol Support SNMP-V1, SNMP-V2c | |
## Supported MIB RFC1213, RFC1628, Voltronic MIB | |
# | |
# @WARNING: some of the commands are *not working* with snmpget but only with snmpwalk! | |
# if triggered with snmpget they are returning '0'. This seems to be an implementation issue in the device | |
# @note: always terminating with an .0 which is not listed below | |
# | |
# @usage: example to obtain the generator power | |
# snmpwalk -v2c -cprivate <targetIP> .1.3.6.1.4.1.21111.1.2.6.3.1.3 | |
# inverter version | |
iso.3.6.1.2.1.33.1.1.2.0 = STRING: "PV3K" | |
iso.3.6.1.2.1.33.1.1.3.0 = STRING: "00003.10" | |
iso.3.6.1.2.1.33.1.1.4.0 = STRING: "1.0" | |
# [DOMAIN] inverter version/serial data | |
iso.3.6.1.4.1.21111.1.2.1.* | |
# [DOMAIN] paramter settings | |
iso.3.6.1.4.1.21111.1.2.9.* | |
iso.3.6.1.4.1.21111.1.2.14.* | |
# [DOMAIN] power parameter | |
iso.3.6.1.4.1.21111.1.1.2.* | |
iso.3.6.1.4.1.21111.1.2.2.* | |
# get protocol version | |
# @retval 0,1,2,3,9,10,13,14,99,80 | |
.1.3.6.1.4.1.21111.1.1.1.2 (but returned 16) | |
# set date | |
SimpleDateFormat d = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); | |
Date myDate = new Date(); | |
".1.3.6.1.4.1.21111.1.1.9.1", d.format(myDate) | |
# dateTime | |
iso.3.6.1.4.1.21111.1.1.9.1.0 | |
# work mode (note: always returns 0, try with snmpwalk again) | |
.1.3.6.1.4.1.21111.1.1.5.1 | |
if ("2".equals(workMode)) { | |
this.workInfo.setWorkMode("Standby mode"); | |
this.isBatMod = false; | |
} else if ("4".equals(workMode)) { | |
this.workInfo.setWorkMode("Bypass mode"); | |
this.isBatMod = false; | |
} else if ("3".equals(workMode)) { | |
this.workInfo.setWorkMode("Line mode"); | |
this.isBatMod = false; | |
} else if ("5".equals(workMode)) { | |
this.isBatMod = true; | |
this.workInfo.setWorkMode("Battery mode"); | |
} else if ("8".equals(workMode)) { | |
this.workInfo.setWorkMode("Battery test mode"); | |
} else if ("9".equals(workMode)) { | |
this.workInfo.setWorkMode("Fault mode"); | |
} else if ("10".equals(workMode)) { | |
this.workInfo.setWorkMode("ECO mode"); | |
} else if ("11".equals(workMode)) { | |
this.workInfo.setWorkMode("Converter mode"); | |
} | |
# backup time, remaining battery time | |
# @retval "999999999" ... not supported | |
.1.3.6.1.4.1.21111.1.1.3.3 | |
# temperatur (*0.1) | |
.1.3.6.1.4.1.21111.1.1.3.13 | |
# inputV (*0.1) | |
.1.3.6.1.4.1.21111.1.2.4.8.1.2.0 | |
# ouputV (*0.1) | |
.1.3.6.1.4.1.21111.1.1.2.2 | |
# get frequency (*0.1) | |
.1.3.6.1.4.1.21111.1.1.2.3 | |
# pv input power (*0.1 Watts) (not working with snmpget) | |
iso.3.6.1.4.1.21111.1.2.6.3.1.3.0 | |
# battery charging current (*0.1) | |
iso.3.6.1.4.1.21111.1.1.3.9.0 | |
# POSSIBLE battery voltages | |
iso.3.6.1.4.1.21111.1.1.3.5.0 = INTEGER: 554 | |
iso.3.6.1.4.1.21111.1.2.3.5.0 = INTEGER: 554 + | |
iso.3.6.1.4.1.21111.1.2.9.26.0 = INTEGER: 550 | |
# POSSIBLE battery percent | |
iso.3.6.1.4.1.21111.1.1.3.4.0 | |
iso.3.6.1.4.1.21111.1.2.3.4.0 | |
# battery capacity (*0.1) | |
.1.3.6.1.4.1.21111.1.1.3.4 | |
Unfortunately I can't remember that anymore
I ended up connecting with USB and implementing the readout into NetworkUpsTools (NUT) OSS. https://github.com/nickma82/nut/tree/voltronic-inverter
files changed: networkupstools/nut@master...nickma82:nut:voltronic-inverter
Readout was possible approximately every ~30sek. But it worked.
Thank you for your assistance, Nick. It appears that the device may have been sourced from a single point and rebranded under different names. I managed to locate the Voltronic MIB; however, it seems that most of the data does not yield accurate results for version 1.0. While you may not require or utilize this information, I wanted to share the MIB with you just in case. You can access it via the following link: Powershield SNMPv4 MIB Files
Our Winner Pro answers both on (21111) https://www.circitor.fr/Mibs/Html/N/NextUPSSystems.php and on (43943) content seems largly the same ...
Hello, some of the oids works however some doesn't. How did you reverse engineer them I am trying SNMP walk however some values doesn't come up like .1.3.6.1.4.1.21111.1.1.2.2. Can you help?