diff --git a/includes/discovery/sensors/power/microsemipdsine.inc.php b/includes/discovery/sensors/power/microsemipdsine.inc.php new file mode 100644 index 0000000000..8746f8f1c8 --- /dev/null +++ b/includes/discovery/sensors/power/microsemipdsine.inc.php @@ -0,0 +1,40 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2017 Lorenzo Zafra + * @author Lorenzo Zafra + */ + +// Power consumption per port +$oids = snmpwalk_cache_oid_num($device, '1.3.6.1.4.1.7428.1.2.1.1.1.3.1', array()); + +foreach ($oids as $oid => $data) { + $current_id = substr($oid, strrpos($oid, '.') + 1); + $current_oid = ".$oid"; + + $descr = 'Power Consumption Port ' . $current_id; + $divisor = 1; + $type = 'microsemipdsine'; + $current = current($data) / $divisor; + $index = '1.1.3.1.' . $current_id; + + discover_sensor($valid['sensor'], 'power', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); +} diff --git a/includes/discovery/sensors/temperature/microsemipdsine.inc.php b/includes/discovery/sensors/temperature/microsemipdsine.inc.php new file mode 100644 index 0000000000..2f0cffa579 --- /dev/null +++ b/includes/discovery/sensors/temperature/microsemipdsine.inc.php @@ -0,0 +1,45 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2017 Lorenzo Zafra + * @author Lorenzo Zafra + */ + +// temperature + +$temperature_unit = trim(snmp_get($device, '.1.3.6.1.4.1.7428.1.2.2.1.1.12.1', '-Oqv'), '" '); +$temperature = trim(snmp_get($device, '.1.3.6.1.4.1.7428.1.2.2.1.1.11.1', '-Oqv'), '" '); + +if (!empty($temperature_unit) && !empty($temperature)) { + // If fahrenheit convert to celcius + if ($temperature_unit == "2") { + $temperature = ($temperature - 32) / 1.8; + } + + $divisor = 1; + $index = '11.1'; + $descr = 'Unit Temperature'; + $type = 'microsemipdsine'; + $oid = '.1.3.6.1.4.1.7428.1.2.2.1.1.11.1'; + $current_value = $temperature / $divisor; + + discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current_value); +} diff --git a/includes/discovery/sensors/voltage/microsemipdsine.inc.php b/includes/discovery/sensors/voltage/microsemipdsine.inc.php new file mode 100644 index 0000000000..fae00ba409 --- /dev/null +++ b/includes/discovery/sensors/voltage/microsemipdsine.inc.php @@ -0,0 +1,39 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2017 Lorenzo Zafra + * @author Lorenzo Zafra + */ + +// voltage + +$mainVoltage = trim(snmp_get($device, '.1.3.6.1.4.1.7428.1.2.2.1.1.2.1', '-Oqv'), '" '); + +if (!empty($mainVoltage)) { + $divisor = 1; + $index = '2.1'; + $descr = 'Power Supply Voltage'; + $type = 'microsemipdsine'; + $oid = '.1.3.6.1.4.1.7428.1.2.2.1.1.2.1'; + $current_value = $mainVoltage / $divisor; + + discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current_value); +}