diff --git a/html/images/os/generex-ups.png b/html/images/os/generex-ups.png
new file mode 100644
index 0000000000..10478cf8fb
Binary files /dev/null and b/html/images/os/generex-ups.png differ
diff --git a/html/images/os/multimatic.png b/html/images/os/multimatic.png
deleted file mode 100644
index 5080c4dcb0..0000000000
Binary files a/html/images/os/multimatic.png and /dev/null differ
diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php
index a21d5f6223..75edd18195 100644
--- a/includes/defaults.inc.php
+++ b/includes/defaults.inc.php
@@ -746,9 +746,9 @@ $config['modules_compat']['rfc1628']['liebert'] = 1;
$config['modules_compat']['rfc1628']['netmanplus'] = 1;
$config['modules_compat']['rfc1628']['deltaups'] = 1;
$config['modules_compat']['rfc1628']['poweralert'] = 1;
-$config['modules_compat']['rfc1628']['multimatic'] = 1;
$config['modules_compat']['rfc1628']['webpower'] = 1;
$config['modules_compat']['rfc1628']['huaweiups'] = 1;
+$config['modules_compat']['rfc1628']['generex-ups'] = 1;
// Enable daily updates
$config['update'] = 1;
diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php
index ccda565799..da306206da 100644
--- a/includes/definitions.inc.php
+++ b/includes/definitions.inc.php
@@ -2470,14 +2470,36 @@ $config['os'][$os]['over'][0]['text'] = 'Device Traffic';
$config['os'][$os]['icon'] = 'enterasys';
$config['os'][$os]['ifname'] = 1;
-// Multimatic UPS (Generex CS121 SNMP Adapter)
-$os = 'multimatic';
-$config['os'][$os]['text'] = 'Multimatic UPS';
-$config['os'][$os]['type'] = 'power';
-$config['os'][$os]['icon'] = 'multimatic';
-$config['os'][$os]['poller_modules']['ospf'] = 0;
-$config['os'][$os]['poller_modules']['ntp'] = 0;
-$config['os'][$os]['poller_modules']['services'] = 0;
+// Generex CS121 / CS141 UPS SNMP Adapter
+$os = 'generex-ups';
+$config['os'][$os]['text'] = 'Generex UPS SNMP adapter';
+$config['os'][$os]['type'] = 'power';
+$config['os'][$os]['icon'] = 'generex-ups';
+$config['os'][$os]['discovery_modules']['storage'] = 0;
+$config['os'][$os]['discovery_modules']['bgp-peers'] = 0;
+$config['os'][$os]['discovery_modules']['ntp'] = 0;
+$config['os'][$os]['discovery_modules']['stp'] = 0;
+$config['os'][$os]['discovery_modules']['diskio'] = 0;
+$config['os'][$os]['discovery_modules']['vlans'] = 0;
+$config['os'][$os]['discovery_modules']['arp-table'] = 0;
+$config['os'][$os]['discovery_modules']['discovery-protocols'] = 0;
+$config['os'][$os]['discovery_modules']['hr-device'] = 0;
+$config['os'][$os]['discovery_modules']['mempools'] = 0;
+$config['os'][$os]['discovery_modules']['entity-physical'] = 0;
+$config['os'][$os]['discovery_modules']['ports-stack'] = 0;
+$config['os'][$os]['discovery_modules']['ucd-diskio'] = 0;
+$config['os'][$os]['discovery_modules']['processors'] = 0;
+$config['os'][$os]['poller_modules']['ospf'] = 0;
+$config['os'][$os]['poller_modules']['ntp'] = 0;
+$config['os'][$os]['poller_modules']['services'] = 0;
+$config['os'][$os]['poller_modules']['ntp'] = 0;
+$config['os'][$os]['poller_modules']['ospf'] = 0;
+$config['os'][$os]['poller_modules']['services'] = 0;
+$config['os'][$os]['poller_modules']['storage'] = 0;
+$config['os'][$os]['over'][0]['graph'] = 'device_voltage';
+$config['os'][$os]['over'][0]['text'] = 'Voltage';
+$config['os'][$os]['over'][1]['graph'] = 'sensor_voltage';
+$config['os'][$os]['over'][1]['text'] = 'Battery Voltage';
// Huawei UPS
$os = 'huaweiups';
diff --git a/includes/discovery/os/generex-ups.inc.php b/includes/discovery/os/generex-ups.inc.php
new file mode 100644
index 0000000000..59923fc2c9
--- /dev/null
+++ b/includes/discovery/os/generex-ups.inc.php
@@ -0,0 +1,5 @@
+checkOS('gamatronicups');
}
+ public function testGenerexUps()
+ {
+ $this->checkOS('generex-ups');
+ $this->checkOS('generex-ups', 'generex-ups1');
+ $this->checkOS('generex-ups', 'generex-ups2');
+ }
+
public function testHikvision()
{
$this->checkOS('hikvision');
@@ -885,12 +892,6 @@ class DiscoveryTest extends \PHPUnit_Framework_TestCase
$this->checkOS('mrvld');
}
- public function testMultimatic()
- {
- $this->checkOS('multimatic');
- $this->checkOS('multimatic', 'multimatic1');
- }
-
public function testNetapp()
{
$this->checkOS('netapp');
diff --git a/tests/snmpsim/generex-ups.snmprec b/tests/snmpsim/generex-ups.snmprec
new file mode 100644
index 0000000000..d0cd46b203
--- /dev/null
+++ b/tests/snmpsim/generex-ups.snmprec
@@ -0,0 +1,2 @@
+1.3.6.1.2.1.1.1.0|4|"CS121 v 5.14.50"
+1.3.6.1.2.1.1.2.0|4|.1.3.6.1.2.1.33
diff --git a/tests/snmpsim/multimatic.snmprec b/tests/snmpsim/generex-ups1.snmprec
similarity index 63%
rename from tests/snmpsim/multimatic.snmprec
rename to tests/snmpsim/generex-ups1.snmprec
index fee593a920..3194d12776 100644
--- a/tests/snmpsim/multimatic.snmprec
+++ b/tests/snmpsim/generex-ups1.snmprec
@@ -1,2 +1,3 @@
1.3.6.1.2.1.1.1.0|4|CS121
+1.3.6.1.2.1.1.2.0|4|.1.3.6.1.2.1.33
1.3.6.1.2.1.33.1.1.1.0|4|Multimatic
diff --git a/tests/snmpsim/multimatic1.snmprec b/tests/snmpsim/generex-ups2.snmprec
similarity index 60%
rename from tests/snmpsim/multimatic1.snmprec
rename to tests/snmpsim/generex-ups2.snmprec
index bf30cbbc01..7d056129e0 100644
--- a/tests/snmpsim/multimatic1.snmprec
+++ b/tests/snmpsim/generex-ups2.snmprec
@@ -1,2 +1,3 @@
1.3.6.1.2.1.1.1.0|4|CS121
+1.3.6.1.2.1.1.2.0|4|.1.3.6.1.2.1.33
1.3.6.1.2.1.33.1.1.1.0|4|S2S