New OS: Schleifenbauer, entity-physical improvements, various html page fixes (#9471)

* Fix some comment and documentation typos.

* Fix various entphysical page display issues.

- Resolve flickering during loading (missing liClosed for nested items).
- Clicking a sensor actually takes you to the matching graph now.

* Add a few nicecase() calls to clean up html page display.

* Create discover_entity_physical() function

- Add discover_entity_physical() function into includes/discovery/functions.inc.php
- This allows for an easy implementation of OS-specific entity-physical discovery.
- Update includes/discovery/entity-physical/entity-physical.inc.php to use the new function.

* Add power_consumed and power_factor sensors.

* Two new icons, make more entPhysical data visible.

* Pre-commit fix: blank line found at end of control structure.

* Add Schleifenbauer OS support.

* Now really fix the comment typo.

* Fix parsing mistakes.

* Add a generic count sensor.

* Make the Schleifenbauer discovery use count instead of state sensors.

* Don't place count sensor at the top, add sane limits for Schleifenbauer

* Finetuning the rrd_options, changing Schleifenbauer sensor names.

* Update schleifenbauer.svg

* optimize logo too

* add test data

* fix sensor value display (spaces break it)

* update entPhysicalIndex
This commit is contained in:
Martijn Schmidt 2019-01-20 19:24:11 +01:00 committed by Tony Murray
parent ef41c9fd7d
commit e0da083f5c
51 changed files with 3580 additions and 76 deletions

View File

@ -184,7 +184,7 @@ class OS implements ProcessorDiscovery
}
}
d_echo("OS initilized as Generic\n");
d_echo("OS initialized as Generic\n");
return new Generic($device);
}

View File

@ -76,6 +76,6 @@ class StringHelpers
'zfs' => 'ZFS',
];
return isset($replacements[$string]) ? $replacements[$string] : ucfirst($string);
return isset($replacements[$string]) ? $replacements[$string] : ucwords(str_replace(['_', '-'], ' ', $string));
}
}

View File

@ -14,6 +14,7 @@ Currently we have support for the following health metrics along with the values
| charge | % |
| chromatic_disperision | ps/nm |
| cooling | W |
| count | # |
| current | A |
| dbm | dBm |
| delay | s |
@ -23,6 +24,8 @@ Currently we have support for the following health metrics along with the values
| humidity | % |
| load | % |
| power | W |
| power_consumed | kWh |
| power_factor | ratio |
| pressure | kPa |
| quality_factor | dB |
| runtime | Min |

View File

@ -64,11 +64,11 @@ $config['geoloc']['api_key'] = "abcdefghijklmnopqrstuvwxyz";
```
Google:
Pros: fast, accurate
Cons: requares a credit card even for free account
Cons: requires a credit card even for a free account
MapQuest:
Pros: free, no credit card required
Cons: inaccurate: most addresses are retured location at center of US
Cons: inaccurate: most addresses are returned as locations at the center of the US
Bing:
Pros: free, no credit card required, accurate

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 61.184 60.719"><text y="167.216" x="-420.657" style="-inkscape-font-specification:SourceSansPro-Regular" font-weight="400" font-size="12" font-family="Source Sans Pro" fill="#fff" stroke-width="1.333"><tspan y="167.216" x="-420.6568 -414.24881 -407.39679 -399.57278 -393.74078 -387.41681 -384.2608 -378.33279 -372.00879 -364.24481 -357.18881 -350.84079 -343.1008 -336.77679 -329.94879 -327.5488 -320.75677 -313.9288 -305.96078 -298.58078 -290.84079 -284.2048 -278.22879 -271.8208 -269.42078 -262.4368 -256.25681">SCHLEIFENBAUER PRODUCTS BV</tspan></text><text y="167.216" x="-253.871" style="-inkscape-font-specification:HelveticaNeue-Light" font-weight="300" font-size="9.333" font-family="GSGEOZ +HelveticaNeue-Light" fill="#fff" stroke-width="1.333"><tspan y="167.216" x="-253.87094 -249.20427"></tspan></text><text y="167.216" x="-246.609" style="-inkscape-font-specification:SourceSansPro-Regular" font-weight="400" font-size="12" font-family="Source Sans Pro" fill="#fff" stroke-width="1.333"><tspan y="167.216" x="-246.60934 -237.99333 -229.37733 -221.24133 -218.25334 -213.22534 -207.75334 -201.22534 -198.16534 -192.21335 -189.26134 -185.87733 -179.92534 -173.36133 -166.89334 -160.84534 -154.31732 -148.36536 -144.87335 -142.01733 -136.06534 -129.53735">www.schleifenbauer.eu</tspan></text><text y="167.216" x="-127.164" style="-inkscape-font-specification:HelveticaNeue-Light" font-weight="300" font-size="9.333" font-family="GSGEOZ +HelveticaNeue-Light" fill="#fff" stroke-width="1.333"><tspan y="167.216" x="-127.16399 -122.49734"></tspan></text><text y="167.216" x="-119.902" style="-inkscape-font-specification:SourceSansPro-Regular" font-weight="400" font-size="12" font-family="Source Sans Pro" fill="#fff" stroke-width="1.333"><tspan y="167.216" x="-119.90228 -116.95025 -110.38625 -106.99026 -100.48626 -90.322258 -85.294273 -79.822258 -73.294273 -70.234276 -64.282249 -61.330257 -57.934261 -51.982265 -45.41827 -38.950253 -32.902279 -26.374264 -20.422268 -16.942257 -14.074276 -8.1222801 -1.5942646">info@schleifenbauer.eu</tspan></text><path d="M20.899 59.172c9.805-4.634 14.548-12.628 17.774-21.883 1.355-3.884 3.03-7.659 4.58-11.475 1.415-3.481 4.152-4.961 7.78-5.162 3.082-.172 4.368-1.404 4.303-3.94-.064-2.442-1.493-3.48-4.644-3.564C44.593 12.982 40 15.685 37.31 20.96c-2.553 5.01-4.316 10.417-6.694 15.524-1.692 3.63-3.51 7.287-5.854 10.508-2.869 3.945-7.108 6.05-12.068 5.98-1.413-.02-3.213-.724-4.154-1.743C.695 42.744-1.928 32.78 1.433 21.68 4.865 10.348 12.724 3.406 24.223.744c5.033-1.166 10.11-.976 15.37.674-.36.402-.522.718-.78.85-7.62 3.918-12.116 10.429-15.133 18.176-1.723 4.424-3.472 8.838-5.177 13.268-1.582 4.106-4.396 6.364-8.94 6.409-2.5.025-3.81 1.564-3.682 3.964.13 2.401 1.48 3.417 3.85 3.521 6.134.266 11.014-2.056 13.837-7.474 2.513-4.824 4.239-10.051 6.541-14.995 1.77-3.797 3.56-7.665 5.944-11.079 2.98-4.258 7.46-6.41 12.73-6.313 1.262.023 2.857.66 3.706 1.57 8.06 8.61 10.664 18.745 7.192 30.015-3.418 11.096-11.194 17.958-22.45 20.623-5.19 1.23-10.48.988-16.332-.781" fill="#4cb7dd"/></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -64,7 +64,7 @@ function data_uri($file, $mime)
function nicecase($item)
{
return \LibreNMS\Util\StringHelpers::niceCase($item);
}//end nicecase()
}
function toner2colour($descr, $percent)

View File

@ -0,0 +1,8 @@
<?php
$class = 'count';
$unit = '';
$unit_long = '';
$rrd_options .= " -o";
require 'includes/graphs/device/sensor.inc.php';

View File

@ -0,0 +1,7 @@
<?php
$class = 'power_consumed';
$unit = 'kWh';
$unit_long = 'Kilowatt Hour';
require 'includes/graphs/device/sensor.inc.php';

View File

@ -0,0 +1,8 @@
<?php
$class = 'power_factor';
$unit = '';
$unit_long = '';
$rrd_options .= " -o";
require 'includes/graphs/device/sensor.inc.php';

View File

@ -0,0 +1,18 @@
<?php
require 'includes/graphs/common.inc.php';
$rrd_options .= " COMMENT:' Min Max Last\\n'";
$rrd_options .= " DEF:sensor=$rrd_filename:sensor:AVERAGE";
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape($sensor['sensor_descr'], 30)."'";
$rrd_options .= ' GPRINT:sensor:MIN:%8.0lf';
$rrd_options .= ' GPRINT:sensor:MAX:%8.0lf';
$rrd_options .= ' GPRINT:sensor:LAST:%8.0lf\l';
if (is_numeric($sensor['sensor_limit'])) {
$rrd_options .= ' HRULE:'.$sensor['sensor_limit'].'#999999::dashes';
}
if (is_numeric($sensor['sensor_limit_low'])) {
$rrd_options .= ' HRULE:'.$sensor['sensor_limit_low'].'#999999::dashes';
}

View File

@ -0,0 +1,17 @@
<?php
require 'includes/graphs/common.inc.php';
$rrd_options .= " COMMENT:' Min Max\\n'";
$rrd_options .= " DEF:sensor=$rrd_filename:sensor:AVERAGE";
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape($sensor['sensor_descr'], 34)."'";
$rrd_options .= ' GPRINT:sensor:MIN:%8.0lfkWh';
$rrd_options .= ' GPRINT:sensor:MAX:%8.0lfkWh\l';
if (is_numeric($sensor['sensor_limit'])) {
$rrd_options .= ' HRULE:'.$sensor['sensor_limit'].'#999999::dashes';
}
if (is_numeric($sensor['sensor_limit_low'])) {
$rrd_options .= ' HRULE:'.$sensor['sensor_limit_low'].'#999999::dashes';
}

View File

@ -0,0 +1,25 @@
<?php
// Power factor can be positive (drawing power from a source) or negative (feeding power to a sink).
// However, most equipment only deals with power in a single direction so we can overwrite the defaults where relevant.
is_numeric($sensor['sensor_limit_low']) ? $scale_min = $sensor['sensor_limit_low'] : $scale_min = '-1';
is_numeric($sensor['sensor_limit']) ? $scale_max = $sensor['sensor_limit'] : $scale_max = '1';
require 'includes/graphs/common.inc.php';
$rrd_options .= " COMMENT:' Min Max Last\\n'";
$rrd_options .= " DEF:sensor=$rrd_filename:sensor:AVERAGE";
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape($sensor['sensor_descr'], 30)."'";
$rrd_options .= ' GPRINT:sensor:MIN:%1.4lf';
$rrd_options .= ' GPRINT:sensor:MAX:%1.4lf';
$rrd_options .= ' GPRINT:sensor:LAST:%1.4lf\l';
if (is_numeric($sensor['sensor_limit'])) {
$rrd_options .= ' HRULE:'.$sensor['sensor_limit'].'#999999::dashes';
}
$rrd_options .= ' HRULE:0#999999';
if (is_numeric($sensor['sensor_limit_low'])) {
$rrd_options .= ' HRULE:'.$sensor['sensor_limit_low'].'#999999::dashes';
}

View File

@ -392,8 +392,11 @@ $icons = array(
'current' => 'bolt',
'frequency' => 'line-chart',
'power' => 'power-off',
'power_consumed' => 'plug',
'power_factor' => 'calculator',
'voltage' => 'bolt',
'charge' => 'battery-half',
'count' => 'hashtag',
'dbm' => 'sun-o',
'load' => 'percent',
'runtime' => 'hourglass-half',
@ -424,7 +427,7 @@ if ($sep && array_keys($menu_sensors)) {
$sep = 0;
}
foreach (array('current','frequency','power','voltage') as $item) {
foreach (array('current','frequency','power','voltage','power_consumed','power_factor') as $item) {
if (isset($menu_sensors[$item])) {
echo(' <li><a href="health/metric='.$item.'/"><i class="fa fa-'.$icons[$item].' fa-fw fa-lg" aria-hidden="true"></i> '.nicecase($item).'</a></li>');
unset($menu_sensors[$item]);

View File

@ -21,10 +21,14 @@ function printEntPhysical($device, $ent, $level, $class)
echo '<i class="fa fa-heartbeat fa-lg icon-theme" aria-hidden="true"></i> ';
$sensor = dbFetchRow('SELECT * FROM `sensors` WHERE `device_id` = ? AND (`entPhysicalIndex` = ? OR `sensor_index` = ?)', array($device['device_id'], $ent['entPhysicalIndex'], $ent['entPhysicalIndex']));
if (count($sensor)) {
$link = "<a href='device/device=" . $device['device_id'] . '/tab=health/metric=' . $sensor['sensor_class'] . "/' onmouseover=\"return overlib('<img src=\'graph.php?id=" . $sensor['sensor_id'] . '&amp;type=sensor_' . $sensor['sensor_class'] . '&amp;from=-2d&amp;to=now&amp;width=400&amp;height=150&amp;a=' . $ent['entPhysical_id'] . "\'><img src=\'graph.php?id=" . $sensor['sensor_id'] . '&amp;type=sensor_' . $sensor['sensor_class'] . '&amp;from=-2w&amp;to=now&amp;width=400&amp;height=150&amp;a=' . $ent['entPhysical_id'] . "\'>', LEFT,FGCOLOR,'#e5e5e5', BGCOLOR, '#c0c0c0', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#050505');\" onmouseout=\"return nd();\">";
$link = "<a href='graphs/id=" . $sensor['sensor_id'] . '/type=sensor_' . $sensor['sensor_class'] . "/' onmouseover=\"return overlib('<img src=\'graph.php?id=" . $sensor['sensor_id'] . '&amp;type=sensor_' . $sensor['sensor_class'] . '&amp;from=-2d&amp;to=now&amp;width=400&amp;height=150&amp;a=' . $ent['entPhysical_id'] . "\'><img src=\'graph.php?id=" . $sensor['sensor_id'] . '&amp;type=sensor_' . $sensor['sensor_class'] . '&amp;from=-2w&amp;to=now&amp;width=400&amp;height=150&amp;a=' . $ent['entPhysical_id'] . "\'>', LEFT,FGCOLOR,'#e5e5e5', BGCOLOR, '#c0c0c0', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#050505');\" onmouseout=\"return nd();\">";
}
} elseif ($ent['entPhysicalClass'] == 'backplane') {
echo '<i class="fa fa-bars fa-lg icon-theme" aria-hidden="true"></i> ';
} elseif ($ent['entPhysicalClass'] == 'stack') {
echo '<i class="fa fa-list-ol fa-lg icon-theme" aria-hidden="true"></i> ';
} elseif ($ent['entPhysicalClass'] == 'powerSupply') {
echo '<i class="fa fa-bolt fa-lg icon-theme" aria-hidden="true"></i> ';
}
if ($ent['entPhysicalParentRelPos'] > '-1') {
@ -97,6 +101,14 @@ function printEntPhysical($device, $ent, $level, $class)
echo "<br /><div class='interface-desc' style='margin-left: 20px;'>".$ent['entPhysicalDescr'];
if ($ent['entPhysicalAlias'] && $ent['entPhysicalAssetID']) {
echo " <br />Alias: ".$ent['entPhysicalAlias']." - AssetID: ".$ent['entPhysicalAssetID'];
} elseif ($ent['entPhysicalAlias']) {
echo " <br />Alias: ".$ent['entPhysicalAlias'];
} elseif ($ent['entPhysicalAssetID']) {
echo " <br />AssetID: ".$ent['entPhysicalAssetID'];
}
if ($ent['entPhysicalSerialNum']) {
echo " <br /><span style='color: #000099;'>Serial No. ".$ent['entPhysicalSerialNum'].'</span> ';
}
@ -106,7 +118,7 @@ function printEntPhysical($device, $ent, $level, $class)
$count = dbFetchCell("SELECT COUNT(*) FROM `entPhysical` WHERE device_id = '".$device['device_id']."' AND entPhysicalContainedIn = '".$ent['entPhysicalIndex']."'");
if ($count) {
echo '<ul>';
printEntPhysical($device, $ent['entPhysicalIndex'], ($level + 1), '');
printEntPhysical($device, $ent['entPhysicalIndex'], ($level + 1), 'liClosed');
echo '</ul>';
}

View File

@ -5,7 +5,7 @@ $diskio = get_disks($device['device_id']);
$mempools = dbFetchCell('select count(*) from mempools WHERE device_id = ?', array($device['device_id'])) + count_mib_mempools($device);
$processor = dbFetchCell('select count(*) from processors WHERE device_id = ?', array($device['device_id'])) + count_mib_processors($device);
$charge = dbFetchCell("select count(*) from sensors WHERE sensor_class='charge' AND device_id = ?", array($device['device_id']));
$count = dbFetchCell("select count(*) from sensors WHERE sensor_class='count' AND device_id = ?", array($device['device_id']));
$temperatures = dbFetchCell("select count(*) from sensors WHERE sensor_class='temperature' AND device_id = ?", array($device['device_id']));
$humidity = dbFetchCell("select count(*) from sensors WHERE sensor_class='humidity' AND device_id = ?", array($device['device_id']));
$fans = dbFetchCell("select count(*) from sensors WHERE sensor_class='fanspeed' AND device_id = ?", array($device['device_id']));
@ -14,8 +14,11 @@ $current = dbFetchCell("select count(*) from sensors WHERE sensor_
$freqs = dbFetchCell("select count(*) from sensors WHERE sensor_class='frequency' AND device_id = ?", array($device['device_id']));
$runtime = dbFetchCell("select count(*) from sensors WHERE sensor_class='runtime' AND device_id = ?", array($device['device_id']));
$power = dbFetchCell("select count(*) from sensors WHERE sensor_class='power' AND device_id = ?", array($device['device_id']));
$power_consumed = dbFetchCell("select count(*) from sensors WHERE sensor_class='power_consumed' AND device_id = ?", array($device['device_id']));
$power_factor = dbFetchCell("select count(*) from sensors WHERE sensor_class='power_factor' AND device_id = ?", array($device['device_id']));
$dBm = dbFetchCell("select count(*) from sensors WHERE sensor_class='dBm' AND device_id = ?", array($device['device_id']));
$states = dbFetchCell("select count(*) from sensors WHERE sensor_class='state' AND device_id = ?", array($device['device_id']));
$charge = dbFetchCell("select count(*) from sensors WHERE sensor_class='charge' AND device_id = ?", array($device['device_id']));
$load = dbFetchCell("select count(*) from sensors WHERE sensor_class='load' AND device_id = ?", array($device['device_id']));
$signal = dbFetchCell("select count(*) from sensors WHERE sensor_class='signal' AND device_id = ?", array($device['device_id']));
$airflow = dbFetchCell("select count(*) from sensors WHERE sensor_class='airflow' AND device_id = ?", array($device['device_id']));
@ -83,6 +86,14 @@ if ($power) {
$datas[] = 'power';
}
if ($power_consumed) {
$datas[] = 'power_consumed';
}
if ($power_factor) {
$datas[] = 'power_factor';
}
if ($dBm) {
$datas[] = 'dbm';
}
@ -91,6 +102,10 @@ if ($states) {
$datas[] = 'state';
}
if ($count) {
$datas[] = 'count';
}
if ($load) {
$datas[] = 'load';
}
@ -153,8 +168,11 @@ $type_text['frequency'] = 'Frequency';
$type_text['runtime'] = 'Runtime remaining';
$type_text['current'] = 'Current';
$type_text['power'] = 'Power';
$type_text['power_consumed'] = 'Power Consumed';
$type_text['power_factor'] = 'Power Factor';
$type_text['dbm'] = 'dBm';
$type_text['state'] = 'State';
$type_text['count'] = 'Count';
$type_text['load'] = 'Load';
$type_text['signal'] = 'Signal';
$type_text['airflow'] = 'Airflow';

View File

@ -0,0 +1,7 @@
<?php
$class = 'count';
$unit = '';
$graph_type = 'sensor_count';
require 'sensors.inc.php';

View File

@ -0,0 +1,7 @@
<?php
$class = 'power_consumed';
$unit = 'kWh';
$graph_type = 'sensor_power_consumed';
require 'sensors.inc.php';

View File

@ -0,0 +1,7 @@
<?php
$class = 'power_factor';
$unit = '';
$graph_type = 'sensor_power_factor';
require 'sensors.inc.php';

View File

@ -23,13 +23,13 @@ foreach (dbFetchRows('SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `devi
$sensor_current = get_state_label($sensor['state_generic_value'], $state_translation[0]['state_descr'] . " (".$sensor['sensor_current'].")");
} else {
$current_label = get_sensor_label_color($sensor);
$sensor_current = "<span class='label $current_label'>".format_si($sensor['sensor_current']).$unit."</span>";
$sensor_current = "<span class='label $current_label'>".trim(format_si($sensor['sensor_current']).$unit)."</span>";
}
$sensor_limit = format_si($sensor['sensor_limit']).$unit;
$sensor_limit_low = format_si($sensor['sensor_limit_low']).$unit;
$sensor_limit_warn = format_si($sensor['sensor_limit_warn']).$unit;
$sensor_limit_low_warn = format_si($sensor['sensor_limit_low_warn']).$unit;
$sensor_limit = trim(format_si($sensor['sensor_limit']).$unit);
$sensor_limit_low = trim(format_si($sensor['sensor_limit_low']).$unit);
$sensor_limit_warn = trim(format_si($sensor['sensor_limit_warn']).$unit);
$sensor_limit_low_warn = trim(format_si($sensor['sensor_limit_low_warn']).$unit);
echo "<div class='panel panel-default'>
<div class='panel-heading'>
@ -49,7 +49,7 @@ foreach (dbFetchRows('SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `devi
echo " <span class='label label-default'>high: $sensor_limit</span>";
}
echo "</div></h3>
echo "</div></div>
</div>";
echo "<div class='panel-body'>";

View File

@ -65,9 +65,12 @@ require 'overview/sensors/voltage.inc.php';
require 'overview/sensors/current.inc.php';
require 'overview/sensors/runtime.inc.php';
require 'overview/sensors/power.inc.php';
require 'overview/sensors/power_consumed.inc.php';
require 'overview/sensors/power_factor.inc.php';
require 'overview/sensors/frequency.inc.php';
require 'overview/sensors/load.inc.php';
require 'overview/sensors/state.inc.php';
require 'overview/sensors/count.inc.php';
require 'overview/sensors/signal.inc.php';
require 'overview/sensors/airflow.inc.php';
require 'overview/sensors/snr.inc.php';

View File

@ -34,12 +34,21 @@ if (count($sensors)) {
case "power":
$sensor_fa_icon = "fa-power-off";
break;
case "power_consumed":
$sensor_fa_icon = "fa-plug";
break;
case "power_factor":
$sensor_fa_icon = "fa-calculator";
break;
case "dBm":
$sensor_fa_icon = "fa-signal";
break;
case "state":
$sensor_fa_icon = "fa-bullseye";
break;
case "count":
$sensor_fa_icon = "fa-hashtag";
break;
case "load":
$sensor_fa_icon = "fa-percent";
break;
@ -59,7 +68,7 @@ if (count($sensors)) {
<div class="col-md-12">
<div class="panel panel-default panel-condensed">
<div class="panel-heading">';
echo '<a href="device/device='.$device['device_id'].'/tab=health/metric='.strtolower($sensor_type).'/"><i class="fa '.$sensor_fa_icon.' fa-lg icon-theme" aria-hidden="true"></i><strong> '.$sensor_type.'</strong></a>';
echo '<a href="device/device='.$device['device_id'].'/tab=health/metric='.strtolower($sensor_type).'/"><i class="fa '.$sensor_fa_icon.' fa-lg icon-theme" aria-hidden="true"></i><strong> '.nicecase($sensor_type).'</strong></a>';
echo ' </div>
<table class="table table-hover table-condensed table-striped">';
$group = '';

View File

@ -0,0 +1,8 @@
<?php
$graph_type = 'sensor_count';
$sensor_class = 'count';
$sensor_unit = '';
$sensor_type = 'count';
require 'pages/device/overview/generic/sensor.inc.php';

View File

@ -0,0 +1,8 @@
<?php
$graph_type = 'sensor_power_consumed';
$sensor_class = 'power_consumed';
$sensor_unit = 'kWh';
$sensor_type = 'power_consumed';
require 'pages/device/overview/generic/sensor.inc.php';

View File

@ -0,0 +1,8 @@
<?php
$graph_type = 'sensor_power_factor';
$sensor_class = 'power_factor';
$sensor_unit = '';
$sensor_type = 'power_factor';
require 'pages/device/overview/generic/sensor.inc.php';

View File

@ -43,7 +43,7 @@ if (!$auth) {
if (isset($config['graph_types'][$type][$subtype]['descr'])) {
$title .= " :: " . $config['graph_types'][$type][$subtype]['descr'];
} elseif ($type == "device" && $subtype == "collectd") {
$title .= " :: " . ucfirst($subtype) . " :: " . $vars['c_plugin'];
$title .= " :: " . nicecase($subtype) . " :: " . $vars['c_plugin'];
if (isset($vars['c_plugin_instance'])) {
$title .= " - " . $vars['c_plugin_instance'];
}
@ -52,7 +52,7 @@ if (!$auth) {
$title .= " - " . $vars['c_type_instance'];
}
} else {
$title .= " :: " . ucfirst($subtype);
$title .= " :: " . nicecase($subtype);
}
$graph_array = $vars;

View File

@ -45,6 +45,12 @@ if ($used_sensors['current']) {
if ($used_sensors['power']) {
$datas[] = 'power';
}
if ($used_sensors['power_consumed']) {
$datas[] = 'power_consumed';
}
if ($used_sensors['power_factor']) {
$datas[] = 'power_factor';
}
if ($used_sensors['dbm']) {
$datas[] = 'dbm';
}
@ -54,6 +60,9 @@ if ($used_sensors['load']) {
if ($used_sensors['state']) {
$datas[] = 'state';
}
if ($used_sensors['count']) {
$datas[] = 'count';
}
if ($used_sensors['signal']) {
$datas[] = 'signal';
}
@ -102,10 +111,13 @@ $type_text['frequency'] = "Frequency";
$type_text['runtime'] = "Runtime";
$type_text['current'] = "Current";
$type_text['power'] = "Power";
$type_text['power_consumed'] = "Power Consumed";
$type_text['power_factor'] = "Power Factor";
$type_text['toner'] = "Toner";
$type_text['dbm'] = "dBm";
$type_text['load'] = "Load";
$type_text['state'] = "State";
$type_text['count'] = "Count";
$type_text['signal'] = "Signal";
$type_text['snr'] = "SNR";
$type_text['pressure'] = "Pressure";

View File

@ -0,0 +1,7 @@
<?php
$graph_type = 'sensor_count';
$class = 'count';
$unit = '';
require 'pages/health/sensors.inc.php';

View File

@ -0,0 +1,7 @@
<?php
$graph_type = 'sensor_power_consumed';
$class = 'power_consumed';
$unit = 'kWh';
require 'pages/health/sensors.inc.php';

View File

@ -0,0 +1,7 @@
<?php
$graph_type = 'sensor_power_factor';
$class = 'power_factor';
$unit = '';
require 'pages/health/sensors.inc.php';

View File

@ -0,0 +1,32 @@
mib: SCHLEIFENBAUER-DATABUS-MIB
modules:
sensors:
state:
data:
-
oid: sdbMgmtStsRingState
num_oid: '.1.3.6.1.4.1.31034.12.1.1.1.1.5.{{ $index }}'
entPhysicalIndex: 2
descr: 'Databus Ring State'
index: 'sdbMgmtStsRingState.{{ $index }}'
state_name: sdbMgmtStsRingState
states:
- { value: 0, generic: 2, graph: 0, descr: open }
- { value: 1, generic: 0, graph: 1, descr: closed }
count:
data:
-
oid: sdbMgmtStsDuplicateDevices
num_oid: '.1.3.6.1.4.1.31034.12.1.1.1.1.4.{{ $index }}'
high_limit: '1'
entPhysicalIndex: 3
descr: 'Duplicate Device Addresses'
index: 'sdbMgmtStsDuplicateDevices.{{ $index }}'
-
oid: sdbMgmtStsNewDevices
num_oid: '.1.3.6.1.4.1.31034.12.1.1.1.1.3.{{ $index }}'
warn_limit: 1
high_limit: 2
entPhysicalIndex: 4
descr: 'New Devices'
index: 'sdbMgmtStsNewDevices.{{ $index }}'

View File

@ -0,0 +1,14 @@
os: schleifenbauer
text: 'Schleifenbauer SPDM'
type: power
icon: schleifenbauer
group: schleifenbauer
over:
- { graph: device_current, text: 'Current' }
- { graph: device_voltage, text: 'Voltage' }
- { graph: device_power, text: 'Power' }
mib_dir:
- schleifenbauer
discovery:
- sysObjectID:
- .1.3.6.1.4.1.31034.11.1

View File

@ -10,7 +10,7 @@ if (Config::get('enable_inventory')) {
include Config::get('install_dir') . "/includes/discovery/entity-physical/{$device['os']}.inc.php";
}
// Delete any entries that have not bee accounted for.
// Delete any entries that have not been accounted for.
$sql = 'SELECT * FROM `entPhysical` WHERE `device_id` = ?';
foreach (dbFetchRows($sql, array($device['device_id'])) as $test) {
$id = $test['entPhysicalIndex'];

View File

@ -198,62 +198,7 @@ foreach ($entity_array as $entPhysicalIndex => $entry) {
$entPhysicalModelName = $entPhysicalVendorTypes[$entPhysicalVendorType];
}
// FIXME - dbFacile
if ($entPhysicalDescr || $entPhysicalName) {
$entPhysical_id = dbFetchCell('SELECT entPhysical_id FROM `entPhysical` WHERE device_id = ? AND entPhysicalIndex = ?', array($device['device_id'], $entPhysicalIndex));
if ($entPhysical_id) {
$update_data = array(
'entPhysicalIndex' => $entPhysicalIndex,
'entPhysicalDescr' => $entPhysicalDescr,
'entPhysicalClass' => $entPhysicalClass,
'entPhysicalName' => $entPhysicalName,
'entPhysicalModelName' => $entPhysicalModelName,
'entPhysicalSerialNum' => $entPhysicalSerialNum,
'entPhysicalContainedIn' => $entPhysicalContainedIn,
'entPhysicalMfgName' => $entPhysicalMfgName,
'entPhysicalParentRelPos' => $entPhysicalParentRelPos,
'entPhysicalVendorType' => $entPhysicalVendorType,
'entPhysicalHardwareRev' => $entPhysicalHardwareRev,
'entPhysicalFirmwareRev' => $entPhysicalFirmwareRev,
'entPhysicalSoftwareRev' => $entPhysicalSoftwareRev,
'entPhysicalIsFRU' => $entPhysicalIsFRU,
'entPhysicalAlias' => $entPhysicalAlias,
'entPhysicalAssetID' => $entPhysicalAssetID,
);
dbUpdate($update_data, 'entPhysical', 'device_id=? AND entPhysicalIndex=?', array($device['device_id'], $entPhysicalIndex));
echo '.';
} else {
$insert_data = array(
'device_id' => $device['device_id'],
'entPhysicalIndex' => $entPhysicalIndex,
'entPhysicalDescr' => $entPhysicalDescr,
'entPhysicalClass' => $entPhysicalClass,
'entPhysicalName' => $entPhysicalName,
'entPhysicalModelName' => $entPhysicalModelName,
'entPhysicalSerialNum' => $entPhysicalSerialNum,
'entPhysicalContainedIn' => $entPhysicalContainedIn,
'entPhysicalMfgName' => $entPhysicalMfgName,
'entPhysicalParentRelPos' => $entPhysicalParentRelPos,
'entPhysicalVendorType' => $entPhysicalVendorType,
'entPhysicalHardwareRev' => $entPhysicalHardwareRev,
'entPhysicalFirmwareRev' => $entPhysicalFirmwareRev,
'entPhysicalSoftwareRev' => $entPhysicalSoftwareRev,
'entPhysicalIsFRU' => $entPhysicalIsFRU,
'entPhysicalAlias' => $entPhysicalAlias,
'entPhysicalAssetID' => $entPhysicalAssetID,
);
if (!empty($ifIndex)) {
$insert_data['ifIndex'] = $ifIndex;
}
dbInsert($insert_data, 'entPhysical');
echo '+';
}//end if
$valid[$entPhysicalIndex] = 1;
}//end if
discover_entity_physical($valid, $device, $entPhysicalIndex, $entPhysicalDescr, $entPhysicalClass, $entPhysicalName, $entPhysicalModelName, $entPhysicalSerialNum, $entPhysicalContainedIn, $entPhysicalMfgName, $entPhysicalParentRelPos, $entPhysicalVendorType, $entPhysicalHardwareRev, $entPhysicalFirmwareRev, $entPhysicalSoftwareRev, $entPhysicalIsFRU, $entPhysicalAlias, $entPhysicalAssetID, $ifIndex);
}//end foreach
echo "\n";
unset(

View File

@ -0,0 +1,128 @@
<?php
/*
* LibreNMS entity-physical module for discovery of components in a Schleifenbauer SPDM databus ring
*
* Copyright (c) 2018 Martijn Schmidt <martijn.schmidt@gmail.com>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
// Let's gather some data about the databus ring..
$sdbMgmtStsDevices = snmp_get($device, '.1.3.6.1.4.1.31034.12.1.1.1.1.1.0', '-Oqv', '');
$sdbMgmtDatabusRingDescr = "Schleifenbauer databus ring ($sdbMgmtStsDevices units)";
// Let's gather some data about the units..
$sdbMgmtCtrlDevUnitAddressArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.1.2.4.1.2', 1));
$sdbDevIdNameArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.10', 1));
$sdbDevIdLocationArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.11', 1));
$sdbDevIdVanityTagArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.12', 1));
$sdbDevIdSerialNumberArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.6', 1));
$sdbDevIdFirmwareVersionArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.2', 1));
$sdbDevIdProductIdArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.5', 1));
$sdbDevIdSalesOrderNumberArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.4', 1));
$sdbDevCfMaximumLoadArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.2.1.1.6', 1));
$sdbDevCfOutletsTotalArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.2.1.1.2', 1));
$sdbDevCfSensorsArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.2.1.1.5', 1));
// And let's gather some data about the inputs, outputs, and sensors on those units..
$sdbDevInNameArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.13', 2));
$sdbDevSnsTypeArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.8.2.1.2', 2));
$sdbDevSnsNameArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.8.2.1.4', 2));
// In a large databus ring, snmpwalking this OID may crash the discovery half way through.
// So, we only discover and enumerate outlets if this is a stand-alone, non-databus unit.
if ($sdbMgmtStsDevices == 1) {
$sdbDevOutNameArray = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2', 2));
}
// Only spawn databus ring entities when the device is not stand-alone.
if ($sdbMgmtStsDevices > 1) {
$entPhysicalContainedIn = 1;
discover_entity_physical($valid, $device, 1, $sdbMgmtDatabusRingDescr, 'stack', 'Schleifenbauer Databus', null, null, '0', 'Schleifenbauer Products B.V.', -1, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, 2, 'Databus Ring State Sensor (0 = open, 1 = closed)', 'sensor', 'State Sensor', null, null, '1', 'Schleifenbauer Products B.V.', -1, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, 3, 'Duplicate Device Address Sensor (#)', 'sensor', 'State Sensor', null, null, '1', 'Schleifenbauer Products B.V.', -1, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, 4, 'New Device Detection Sensor (#)', 'sensor', 'State Sensor', null, null, '1', 'Schleifenbauer Products B.V.', -1, null, null, null, null, 'false', null, null, null);
} else {
$entPhysicalContainedIn = 0;
}
foreach ($sdbMgmtCtrlDevUnitAddressArray as $sdbMgmtCtrlDevUnitAddress => $sdbDevIdIndex) {
$entPhysicalDescr = "Schleifenbauer ". count($sdbDevInNameArray[$sdbDevIdIndex]) ."-phase, ". $sdbDevCfOutletsTotalArray[$sdbDevIdIndex] ."-outlet PDU";
$entPhysicalName = "Schleifenbauer PDU - SPDM v". $sdbDevIdFirmwareVersionArray[$sdbDevIdIndex];
$entPhysicalHardwareRev = "SO# ". $sdbDevIdSalesOrderNumberArray[$sdbDevIdIndex];
// We are determining the $entPhysicalAlias for this PDU based on a few optional user-customizable fields.
$entPhysicalAlias = null;
if ($sdbDevIdNameArray[$sdbDevIdIndex] != '') {
$entPhysicalAlias = $sdbDevIdLocationArray[$sdbDevIdIndex] != '' ? $sdbDevIdNameArray[$sdbDevIdIndex] ." @ ". $sdbDevIdLocationArray[$sdbDevIdIndex] : $sdbDevIdNameArray[$sdbDevIdIndex];
} // end of $entPhysicalAlias if-sequence
discover_entity_physical($valid, $device, $sdbMgmtCtrlDevUnitAddress * 10, $entPhysicalDescr, 'chassis', $entPhysicalName, $sdbDevIdProductIdArray[$sdbDevIdIndex], $sdbDevIdSerialNumberArray[$sdbDevIdIndex], $entPhysicalContainedIn, 'Schleifenbauer Products B.V.', $sdbMgmtCtrlDevUnitAddress, null, $entPhysicalHardwareRev, null, $sdbDevIdFirmwareVersionArray[$sdbDevIdIndex], 'true', $entPhysicalAlias, $sdbDevIdVanityTagArray[$sdbDevIdIndex], null);
// Since a fully numerical entPhysicalIndex is only available for the actual PDU, we are calculating a fake entPhysicalIndex to avoid namespace collision. We have an Integer32 of space per IETF RFC6933 anyway.
// The maximum sdbMgmtCtrlDevUnitAddress is 255, but multiplying by 1 million for namespace size. Add +100k for every top-level index below a PDU.
foreach ($sdbDevInNameArray[$sdbDevIdIndex] as $sdbDevInIndex => $sdbDevInName) {
$inputIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 100000 + $sdbDevInIndex * 1000; // +100k for the first top-level namespace. Add 1000 * sdbDevInIndex which goes up to 48. Leave 3 variable digits at the end.
$entPhysicalDescr = $sdbDevCfMaximumLoadArray[$sdbDevIdIndex] ."A input phase";
$entPhysicalName = "Input L". $sdbDevInIndex;
discover_entity_physical($valid, $device, $inputIndex, $entPhysicalDescr, 'powerSupply', $entPhysicalName, null, null, $sdbMgmtCtrlDevUnitAddress * 10, 'Schleifenbauer Products B.V.', $sdbDevInIndex, null, null, null, null, 'false', $sdbDevInName, null, null);
// Enumerate sensors under the Input
discover_entity_physical($valid, $device, $inputIndex + 110, $entPhysicalName .' voltage sensor (V)', 'sensor', 'Voltage Sensor', null, null, $inputIndex, 'Schleifenbauer Products B.V.', 1, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, $inputIndex + 120, $entPhysicalName .' RMS current sensor (A)', 'sensor', 'Current Sensor', null, null, $inputIndex, 'Schleifenbauer Products B.V.', 2, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, $inputIndex + 130, $entPhysicalName .' apparent power sensor (W)', 'sensor', 'Power Sensor', null, null, $inputIndex, 'Schleifenbauer Products B.V.', 3, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, $inputIndex + 140, $entPhysicalName .' lifetime power consumed sensor (kWh)', 'sensor', 'Power Consumed Sensor', null, null, $inputIndex, 'Schleifenbauer Products B.V.', 4, null, null, null, null, 'false', null, null, null);
discover_entity_physical($valid, $device, $inputIndex + 150, $entPhysicalName .' power factor sensor (ratio)', 'sensor', 'Power Factor Sensor', null, null, $inputIndex, 'Schleifenbauer Products B.V.', 5, null, null, null, null, 'false', null, null, null);
} // end Input discovery foreach sdbDevInNameArray
// Only enumerate outlets if this is a stand-alone, non-databus unit.
if ($sdbMgmtStsDevices == 1) {
// Check if we can find any outlets on this PDU..
if ($sdbDevOutNameArray[$sdbDevIdIndex] != '') {
// We found outlets, so let's spawn an Outlet Backplane.
$outletBackplaneIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 200000; // +200k for the second top-level index namespace.
$entPhysicalDescr = $sdbDevCfOutletsTotalArray[$sdbDevIdIndex] ." outlets";
discover_entity_physical($valid, $device, $outletBackplaneIndex, $entPhysicalDescr, 'backplane', 'Outlets', null, null, $sdbMgmtCtrlDevUnitAddress * 10, 'Schleifenbauer Products B.V.', '-1', null, null, null, null, 'false', null, null, null);
foreach ($sdbDevOutNameArray[$sdbDevIdIndex] as $sdbDevOutIndex => $sdbDevOutName) {
$outletIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 200000 + $sdbDevOutIndex * 1000; // +200k for the second top-level index namespace. Add 1000 * sdbDevOutIndex which goes up to 48. Leave 3 variable digits at the end.
$entPhysicalName = "Outlet #". $sdbDevOutIndex;
discover_entity_physical($valid, $device, $outletIndex, 'PDU outlet', 'powerSupply', $entPhysicalName, null, null, $outletBackplaneIndex, 'Schleifenbauer Products B.V.', $sdbDevOutIndex, null, null, null, null, 'false', $sdbDevOutName, null, null);
} // end Outlet discovery foreach sdbDevOutNameArray
} // end of Outlet Backplane detection
}
// Check if we can find any external sensor connections on this PDU..
if ($sdbDevSnsTypeArray[$sdbDevIdIndex] != '') {
// We found at least one sensor connection, so let's spawn a Sensor Container.
$sensorContainerIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 300000; // +300k for the third top-level index namespace.
$entPhysicalDescr = $sdbDevCfSensorsArray[$sdbDevIdIndex] == 1 ? "1 external sensor" : $sdbDevCfSensorsArray[$sdbDevIdIndex] ." external sensors";
discover_entity_physical($valid, $device, $sensorContainerIndex, $entPhysicalDescr, 'container', 'Sensor Container', null, null, $sdbMgmtCtrlDevUnitAddress * 10, 'Schleifenbauer Products B.V.', '-1', null, null, null, null, 'false', null, null, null);
foreach ($sdbDevSnsNameArray[$sdbDevIdIndex] as $sdbDevSnsIndex => $sdbDevSnsName) {
$sensorIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 300000 + $sdbDevSnsIndex * 1000; // +300k for the third top-level index namespace. Add 1000 * sdbDevSnsIndex which goes up to 16. Leave 3 variable digits at the end.
$entPhysicalName = "External Sensor #". $sdbDevSnsIndex;
switch ($sdbDevSnsTypeArray[$sdbDevIdIndex][$sdbDevSnsIndex]) {
case ('T'):
$entPhysicalDescr = "Temperature sensor (°C)";
break;
case ('H'):
$entPhysicalDescr = "Humidity sensor (%)";
break;
case ('I'):
$entPhysicalDescr = "Dry switch contact (binary)";
break;
}
discover_entity_physical($valid, $device, $sensorIndex, $entPhysicalDescr, 'sensor', $entPhysicalName, null, null, $sensorContainerIndex, 'Schleifenbauer Products B.V.', $sdbDevSnsIndex, null, null, null, null, 'true', $sdbDevSnsName, null, null);
} // end external Sensor discovery foreach sdbDevSnsNameArray
} // end of external Sensor Container detection
} // end PDU discovery foreach sdbDevIdNameArray

View File

@ -392,6 +392,7 @@ function sensor_low_limit($class, $current)
case 'humidity':
$limit = 30;
break;
case 'count':
case 'current':
$limit = null;
break;
@ -401,6 +402,10 @@ function sensor_low_limit($class, $current)
case 'power':
$limit = null;
break;
case 'power_consumed':
case 'power_factor':
$limit = -1;
break;
case 'signal':
$limit = -80;
break;
@ -443,10 +448,15 @@ function sensor_limit($class, $current)
case 'humidity':
$limit = 70;
break;
case 'count':
case 'current':
case 'power':
$limit = $current * 1.50;
break;
case 'power_consumed':
case 'power_factor':
$limit = 1;
break;
case 'fanspeed':
$limit = $current * 1.80;
break;
@ -741,6 +751,66 @@ function discover_toner(&$valid, $device, $oid, $index, $type, $descr, $capacity
//end discover_toner()
function discover_entity_physical(&$valid, $device, $entPhysicalIndex, $entPhysicalDescr, $entPhysicalClass, $entPhysicalName, $entPhysicalModelName, $entPhysicalSerialNum, $entPhysicalContainedIn, $entPhysicalMfgName, $entPhysicalParentRelPos, $entPhysicalVendorType, $entPhysicalHardwareRev, $entPhysicalFirmwareRev, $entPhysicalSoftwareRev, $entPhysicalIsFRU, $entPhysicalAlias, $entPhysicalAssetID, $ifIndex)
{
d_echo("Discover Inventory Item: $entPhysicalIndex, $entPhysicalDescr, $entPhysicalClass, $entPhysicalName, $entPhysicalModelName, $entPhysicalSerialNum, $entPhysicalContainedIn, $entPhysicalMfgName, $entPhysicalParentRelPos, $entPhysicalVendorType, $entPhysicalHardwareRev, $entPhysicalFirmwareRev, $entPhysicalSoftwareRev, $entPhysicalIsFRU, $entPhysicalAlias, $entPhysicalAssetID, $ifIndex\n");
if ($entPhysicalDescr || $entPhysicalName) {
if (dbFetchCell('SELECT COUNT(entPhysical_id) FROM `entPhysical` WHERE `device_id` = ? AND `entPhysicalIndex` = ?', array($device['device_id'], $entPhysicalIndex)) == '0') {
$insert_data = array(
'device_id' => $device['device_id'],
'entPhysicalIndex' => $entPhysicalIndex,
'entPhysicalDescr' => $entPhysicalDescr,
'entPhysicalClass' => $entPhysicalClass,
'entPhysicalName' => $entPhysicalName,
'entPhysicalModelName' => $entPhysicalModelName,
'entPhysicalSerialNum' => $entPhysicalSerialNum,
'entPhysicalContainedIn' => $entPhysicalContainedIn,
'entPhysicalMfgName' => $entPhysicalMfgName,
'entPhysicalParentRelPos' => $entPhysicalParentRelPos,
'entPhysicalVendorType' => $entPhysicalVendorType,
'entPhysicalHardwareRev' => $entPhysicalHardwareRev,
'entPhysicalFirmwareRev' => $entPhysicalFirmwareRev,
'entPhysicalSoftwareRev' => $entPhysicalSoftwareRev,
'entPhysicalIsFRU' => $entPhysicalIsFRU,
'entPhysicalAlias' => $entPhysicalAlias,
'entPhysicalAssetID' => $entPhysicalAssetID,
);
if (!empty($ifIndex)) {
$insert_data['ifIndex'] = $ifIndex;
}
$inserted = dbInsert($insert_data, 'entPhysical');
echo '+';
log_event('Inventory Item added: index ' . $entPhysicalIndex . ' descr ' . $entPhysicalDescr, $device, 'entity-physical', 3, $inserted);
} else {
echo '.';
$update_data = array(
'entPhysicalIndex' => $entPhysicalIndex,
'entPhysicalDescr' => $entPhysicalDescr,
'entPhysicalClass' => $entPhysicalClass,
'entPhysicalName' => $entPhysicalName,
'entPhysicalModelName' => $entPhysicalModelName,
'entPhysicalSerialNum' => $entPhysicalSerialNum,
'entPhysicalContainedIn' => $entPhysicalContainedIn,
'entPhysicalMfgName' => $entPhysicalMfgName,
'entPhysicalParentRelPos' => $entPhysicalParentRelPos,
'entPhysicalVendorType' => $entPhysicalVendorType,
'entPhysicalHardwareRev' => $entPhysicalHardwareRev,
'entPhysicalFirmwareRev' => $entPhysicalFirmwareRev,
'entPhysicalSoftwareRev' => $entPhysicalSoftwareRev,
'entPhysicalIsFRU' => $entPhysicalIsFRU,
'entPhysicalAlias' => $entPhysicalAlias,
'entPhysicalAssetID' => $entPhysicalAssetID,
);
dbUpdate($update_data, 'entPhysical', '`device_id`=? AND `entPhysicalIndex`=?', array($device['device_id'], $entPhysicalIndex));
}//end if
$valid[$entPhysicalIndex] = 1;
}//end if
}
//end discover_entity_physical()
function discover_process_ipv6(&$valid, $ifIndex, $ipv6_address, $ipv6_prefixlen, $ipv6_origin, $context_name = '')
{
global $device;

View File

@ -48,9 +48,12 @@ $run_sensors = array(
'humidity',
'load',
'power',
'power_consumed',
'power_factor',
'runtime',
'signal',
'state',
'count',
'temperature',
'voltage',
'snr',

View File

@ -0,0 +1,19 @@
<?php
echo 'Schleifenbauer ';
$divisor = 100;
foreach ($pre_cache['sdbMgmtCtrlDevUnitAddress'] as $sdbMgmtCtrlDevUnitAddress => $sdbDevIdIndex) {
foreach ($pre_cache['sdbDevInActualCurrent'][$sdbDevIdIndex] as $sdbDevInIndex => $sdbDevInActualCurrent) {
$current_oid = ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.$sdbDevIdIndex.$sdbDevInIndex";
$current = $sdbDevInActualCurrent / $divisor;
$serial_input = $pre_cache['sdbDevIdSerialNumber'][$sdbDevIdIndex] ."-L". $sdbDevInIndex;
$descr = "$serial_input RMS Current";
$warn_limit = $pre_cache['sdbDevInMaxAmps'][$sdbDevIdIndex][$sdbDevInIndex] / $divisor;
$high_limit = $pre_cache['sdbDevCfMaximumLoad'][$sdbDevIdIndex];
// See includes/discovery/entity-physical/schleifenbauer.inc.php for an explanation why we set this as the entPhysicalIndex.
$entPhysicalIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 100000 + $sdbDevInIndex * 1000 + 120;
discover_sensor($valid['sensor'], 'current', $device, $current_oid, $serial_input, 'schleifenbauer', $descr, $divisor, '1', null, null, $warn_limit, $high_limit, $current, 'snmp', $entPhysicalIndex);
}
}

View File

@ -0,0 +1,15 @@
<?php
echo 'Schleifenbauer ';
foreach ($pre_cache['sdbMgmtCtrlDevUnitAddress'] as $sdbMgmtCtrlDevUnitAddress => $sdbDevIdIndex) {
foreach ($pre_cache['sdbDevInPowerVoltAmpere'][$sdbDevIdIndex] as $sdbDevInIndex => $sdbDevInPowerVoltAmpere) {
$power_oid = ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.$sdbDevIdIndex.$sdbDevInIndex";
$serial_input = $pre_cache['sdbDevIdSerialNumber'][$sdbDevIdIndex] ."-L". $sdbDevInIndex;
$descr = "$serial_input Apparent Power";
// See includes/discovery/entity-physical/schleifenbauer.inc.php for an explanation why we set this as the entPhysicalIndex.
$entPhysicalIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 100000 + $sdbDevInIndex * 1000 + 130;
discover_sensor($valid['sensor'], 'power', $device, $power_oid, $serial_input, 'schleifenbauer', $descr, '1', '1', null, null, null, null, $sdbDevInPowerVoltAmpere, 'snmp', $entPhysicalIndex);
}
}

View File

@ -0,0 +1,15 @@
<?php
echo 'Schleifenbauer ';
foreach ($pre_cache['sdbMgmtCtrlDevUnitAddress'] as $sdbMgmtCtrlDevUnitAddress => $sdbDevIdIndex) {
foreach ($pre_cache['sdbDevInKWhTotal'][$sdbDevIdIndex] as $sdbDevInIndex => $sdbDevInKWhTotal) {
$power_consumed_oid = ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.$sdbDevIdIndex.$sdbDevInIndex";
$serial_input = $pre_cache['sdbDevIdSerialNumber'][$sdbDevIdIndex] ."-L". $sdbDevInIndex;
$descr = "$serial_input Lifetime kWh Total";
// See includes/discovery/entity-physical/schleifenbauer.inc.php for an explanation why we set this as the entPhysicalIndex.
$entPhysicalIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 100000 + $sdbDevInIndex * 1000 + 140;
discover_sensor($valid['sensor'], 'power_consumed', $device, $power_consumed_oid, $serial_input, 'schleifenbauer', $descr, '1', '1', '0', null, null, '16777215', $sdbDevInKWhTotal, 'snmp', $entPhysicalIndex);
}
}

View File

@ -0,0 +1,17 @@
<?php
echo 'Schleifenbauer ';
$divisor = 10000;
foreach ($pre_cache['sdbMgmtCtrlDevUnitAddress'] as $sdbMgmtCtrlDevUnitAddress => $sdbDevIdIndex) {
foreach ($pre_cache['sdbDevInPowerFactor'][$sdbDevIdIndex] as $sdbDevInIndex => $sdbDevInPowerFactor) {
$power_factor_oid = ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.$sdbDevIdIndex.$sdbDevInIndex";
$power_factor = $sdbDevInPowerFactor / $divisor;
$serial_input = $pre_cache['sdbDevIdSerialNumber'][$sdbDevIdIndex] ."-L". $sdbDevInIndex;
$descr = "$serial_input Power Factor";
// See includes/discovery/entity-physical/schleifenbauer.inc.php for an explanation why we set this as the entPhysicalIndex.
$entPhysicalIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 100000 + $sdbDevInIndex * 1000 + 150;
discover_sensor($valid['sensor'], 'power_factor', $device, $power_factor_oid, $serial_input, 'schleifenbauer', $descr, $divisor, '1', '0', null, null, '1', $power_factor, 'snmp', $entPhysicalIndex);
}
}

View File

@ -0,0 +1,38 @@
<?php
/*
* LibreNMS
*
* Copyright (c) 2018 Martijn Schmidt <martijn.schmidt@gmail.com>
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
echo 'sdbMgmtCtrlDevUnitAddress ';
$pre_cache['sdbMgmtCtrlDevUnitAddress'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.1.2.4.1.2', 1));
echo 'sdbDevIdSerialNumber ';
$pre_cache['sdbDevIdSerialNumber'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.1.1.1.6', 1));
echo 'sdbDevInActualVoltage ';
$pre_cache['sdbDevInActualVoltage'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7', 2));
echo 'sdbDevInActualCurrent ';
$pre_cache['sdbDevInActualCurrent'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5', 2));
echo 'sdbDevInMaxAmps ';
$pre_cache['sdbDevInMaxAmps'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.11', 2));
echo 'sdbDevCfMaximumLoad ';
$pre_cache['sdbDevCfMaximumLoad'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.2.1.1.6', 1));
echo 'sdbDevInPowerVoltAmpere ';
$pre_cache['sdbDevInPowerVoltAmpere'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9', 2));
echo 'sdbDevInKWhTotal ';
$pre_cache['sdbDevInKWhTotal'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2', 2));
echo 'sdbDevInPowerFactor ';
$pre_cache['sdbDevInPowerFactor'] = current(snmpwalk_array_num($device, '.1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4', 2));

View File

@ -0,0 +1,17 @@
<?php
echo 'Schleifenbauer ';
$divisor = 100;
foreach ($pre_cache['sdbMgmtCtrlDevUnitAddress'] as $sdbMgmtCtrlDevUnitAddress => $sdbDevIdIndex) {
foreach ($pre_cache['sdbDevInActualVoltage'][$sdbDevIdIndex] as $sdbDevInIndex => $sdbDevInActualVoltage) {
$voltage_oid = ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.$sdbDevIdIndex.$sdbDevInIndex";
$voltage = $sdbDevInActualVoltage / $divisor;
$serial_input = $pre_cache['sdbDevIdSerialNumber'][$sdbDevIdIndex] ."-L". $sdbDevInIndex;
$descr = "$serial_input Voltage";
// See includes/discovery/entity-physical/schleifenbauer.inc.php for an explanation why we set this as the entPhysicalIndex.
$entPhysicalIndex = $sdbMgmtCtrlDevUnitAddress * 1000000 + 100000 + $sdbDevInIndex * 1000 + 110;
discover_sensor($valid['sensor'], 'voltage', $device, $voltage_oid, $serial_input, 'schleifenbauer', $descr, $divisor, '1', null, null, null, null, $voltage, 'snmp', $entPhysicalIndex);
}
}

View File

@ -0,0 +1,8 @@
<?php
$master_unit = snmp_get($device, ".1.3.6.1.4.1.31034.12.1.1.1.2.4.1.2.1", '-Oqv', '');
$hardware = snmp_get($device, ".1.3.6.1.4.1.31034.12.1.1.2.1.1.1.5.$master_unit", '-Oqv', '');
$firmware = snmp_get($device, ".1.3.6.1.4.1.31034.12.1.1.2.1.1.1.2.$master_unit", '-Oqv', '');
$buildnumber = snmp_get($device, ".1.3.6.1.4.1.31034.12.1.1.2.1.1.1.3.$master_unit", '-Oqv', '');
$serial = snmp_get($device, ".1.3.6.1.4.1.31034.12.1.1.2.1.1.1.6.$master_unit", '-Oqv', '');
$version = "- version $firmware, build $buildnumber";

View File

@ -1697,6 +1697,8 @@ function get_units_from_sensor($sensor)
case 'cooling':
case 'power':
return 'W';
case 'power_consumed':
return 'kWh';
case 'pressure':
return 'kPa';
case 'runtime':

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
-------------------------------------------------------------------------------
--
-- SCHLEIFENBAUER-PRODUCTS-MIB.txt: Schleifenbauer Product Object Identifier Assignments
--
-- October 2015, Marco Veeneman
--
-- Copyright (c) 2015 by Schleifenbauer Holding BV
-- All rights reserved.
--
-------------------------------------------------------------------------------
SCHLEIFENBAUER-PRODUCTS-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY
FROM SNMPv2-SMI
schleifenbauerProducts,
schleifenbauerModules
FROM SCHLEIFENBAUER-SMI;
schleifenbauerProductsMIB MODULE-IDENTITY
LAST-UPDATED
"201510230000Z" -- October 23th, 2015
ORGANIZATION
"Schleifenbauer Engineering"
CONTACT-INFO
"Schleifenbauer Engineering
Alain Schuermans
Chief Technology Officer
Turnhoutseweg 22
5541 NX Reusel
The Netherlands
t. +31 73 5230256
f. +31 73 5212383
alain@schleifenbauer.eu
www.schleifenbauer.eu"
DESCRIPTION
"TODO: description.
Copyright (c) 2015 by Schleifenbauer Products BV
"
REVISION
"201510230000Z" -- October 23th, 2015
DESCRIPTION
"The initial revision of this MIB module"
::= { schleifenbauerModules 2}
hpdu OBJECT IDENTIFIER ::= { schleifenbauerProducts 1 }
dpm3 OBJECT IDENTIFIER ::= { schleifenbauerProducts 2 }
END

View File

@ -0,0 +1,68 @@
-------------------------------------------------------------------------------
--
-- SCHLEIFENBAUER-DATABUS-MIB.txt: Schleifenbauer Enterprise Structure of Management Information
--
-- October 2015, Marco Veeneman
--
-- Copyright (c) 2015 by Schleifenbauer Holding BV
-- All rights reserved.
--
-------------------------------------------------------------------------------
SCHLEIFENBAUER-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
enterprises
FROM SNMPv2-SMI;
schleifenbauer MODULE-IDENTITY
LAST-UPDATED
"201510230000Z" -- October 23th, 2015
ORGANIZATION
"Schleifenbauer Engineering"
CONTACT-INFO
"Schleifenbauer Engineering
Alain Schuermans
Chief Technology Officer
Turnhoutseweg 22
5541 NX Reusel
The Netherlands
t. +31 73 5230256
f. +31 73 5212383
alain@schleifenbauer.eu
www.schleifenbauer.eu"
DESCRIPTION
"The Structure of Management Information for the Schleifenbauer
enterprise.
Copyright (c) 2015 by Schleifenbauer Products BV"
REVISION
"201510230000Z" -- October 23th, 2015
DESCRIPTION
"The initial revision of this MIB module"
::= { enterprises 31034 }
schleifenbauerProducts OBJECT-IDENTITY
STATUS current
DESCRIPTION
"schleifenbauerProducts is the root OBJECT IDENTIFIER from which
sysObjectId values are assigned. Acutal values are defined in
SCHLEIFENBAUER-PRODUCTS-MIB."
::= { schleifenbauer 11 }
schleifenbauerMgmt OBJECT-IDENTITY
STATUS current
DESCRIPTION
"schleifenbauerMgmt is the main subtree for new mib development."
::= { schleifenbauer 12 }
schleifenbauerModules OBJECT-IDENTITY
STATUS current
DESCRIPTION
"schleifenbauerModules provides a root object identifier from which
MODULE-IDENTITY values may be assigned."
::= { schleifenbauer 13 }
END

View File

@ -215,6 +215,12 @@
"string",
"array"
]
},
"entPhysicalIndex": {
"type": ["integer", "string"]
},
"entPhysicalIndex_measured": {
"type": "string"
}
},
"additionalProperties": false,
@ -382,7 +388,7 @@
]
},
"entPhysicalIndex": {
"type": "string"
"type": ["integer", "string"]
},
"entPhysicalIndex_measured": {
"type": "string"

View File

@ -0,0 +1,715 @@
{
"os": {
"discovery": {
"devices": [
{
"sysName": "<private>",
"sysObjectID": ".1.3.6.1.4.1.31034.11.1",
"sysDescr": "Schleifenbauer",
"sysContact": null,
"version": null,
"hardware": null,
"features": null,
"os": "schleifenbauer",
"type": "power",
"serial": null,
"icon": "schleifenbauer.svg",
"location": null
}
]
},
"poller": {
"devices": [
{
"sysName": "<private>",
"sysObjectID": ".1.3.6.1.4.1.31034.11.1",
"sysDescr": "Schleifenbauer",
"sysContact": "<private>",
"version": "- version 250, build 180821PL1736",
"hardware": "SSDCHIN1307-002",
"features": null,
"os": "schleifenbauer",
"type": "power",
"serial": "SVNL00056319",
"icon": "schleifenbauer.svg",
"location": "<private>"
}
]
}
},
"ports": {
"discovery": {
"ports": [
{
"port_descr_type": null,
"port_descr_descr": null,
"port_descr_circuit": null,
"port_descr_speed": null,
"port_descr_notes": null,
"ifDescr": "en",
"ifName": "en",
"portName": null,
"ifIndex": 1,
"ifSpeed": null,
"ifConnectorPresent": null,
"ifPromiscuousMode": null,
"ifHighSpeed": null,
"ifOperStatus": null,
"ifOperStatus_prev": null,
"ifAdminStatus": null,
"ifAdminStatus_prev": null,
"ifDuplex": null,
"ifMtu": null,
"ifType": "ethernetCsmacd",
"ifAlias": "en",
"ifPhysAddress": null,
"ifHardType": null,
"ifLastChange": 0,
"ifVlan": "",
"ifTrunk": null,
"counter_in": null,
"counter_out": null,
"ignore": 0,
"disabled": 0,
"detailed": 0,
"deleted": 0,
"pagpOperationMode": null,
"pagpPortState": null,
"pagpPartnerDeviceId": null,
"pagpPartnerLearnMethod": null,
"pagpPartnerIfIndex": null,
"pagpPartnerGroupIfIndex": null,
"pagpPartnerDeviceName": null,
"pagpEthcOperationMode": null,
"pagpDeviceId": null,
"pagpGroupIfIndex": null,
"ifInUcastPkts": null,
"ifInUcastPkts_prev": null,
"ifInUcastPkts_delta": null,
"ifInUcastPkts_rate": null,
"ifOutUcastPkts": null,
"ifOutUcastPkts_prev": null,
"ifOutUcastPkts_delta": null,
"ifOutUcastPkts_rate": null,
"ifInErrors": null,
"ifInErrors_prev": null,
"ifInErrors_delta": null,
"ifInErrors_rate": null,
"ifOutErrors": null,
"ifOutErrors_prev": null,
"ifOutErrors_delta": null,
"ifOutErrors_rate": null,
"ifInOctets": null,
"ifInOctets_prev": null,
"ifInOctets_delta": null,
"ifInOctets_rate": null,
"ifOutOctets": null,
"ifOutOctets_prev": null,
"ifOutOctets_delta": null,
"ifOutOctets_rate": null,
"poll_prev": null,
"ifInNUcastPkts": null,
"ifInNUcastPkts_prev": null,
"ifInNUcastPkts_delta": null,
"ifInNUcastPkts_rate": null,
"ifOutNUcastPkts": null,
"ifOutNUcastPkts_prev": null,
"ifOutNUcastPkts_delta": null,
"ifOutNUcastPkts_rate": null,
"ifInDiscards": null,
"ifInDiscards_prev": null,
"ifInDiscards_delta": null,
"ifInDiscards_rate": null,
"ifOutDiscards": null,
"ifOutDiscards_prev": null,
"ifOutDiscards_delta": null,
"ifOutDiscards_rate": null,
"ifInUnknownProtos": null,
"ifInUnknownProtos_prev": null,
"ifInUnknownProtos_delta": null,
"ifInUnknownProtos_rate": null,
"ifInBroadcastPkts": null,
"ifInBroadcastPkts_prev": null,
"ifInBroadcastPkts_delta": null,
"ifInBroadcastPkts_rate": null,
"ifOutBroadcastPkts": null,
"ifOutBroadcastPkts_prev": null,
"ifOutBroadcastPkts_delta": null,
"ifOutBroadcastPkts_rate": null,
"ifInMulticastPkts": null,
"ifInMulticastPkts_prev": null,
"ifInMulticastPkts_delta": null,
"ifInMulticastPkts_rate": null,
"ifOutMulticastPkts": null,
"ifOutMulticastPkts_prev": null,
"ifOutMulticastPkts_delta": null,
"ifOutMulticastPkts_rate": null
}
]
},
"poller": {
"ports": [
{
"port_descr_type": null,
"port_descr_descr": null,
"port_descr_circuit": null,
"port_descr_speed": null,
"port_descr_notes": null,
"ifDescr": "en",
"ifName": "en",
"portName": null,
"ifIndex": 1,
"ifSpeed": 100000000,
"ifConnectorPresent": null,
"ifPromiscuousMode": null,
"ifHighSpeed": null,
"ifOperStatus": "up",
"ifOperStatus_prev": null,
"ifAdminStatus": "up",
"ifAdminStatus_prev": null,
"ifDuplex": null,
"ifMtu": 1500,
"ifType": "ethernetCsmacd",
"ifAlias": "en",
"ifPhysAddress": "d02212b07a57",
"ifHardType": null,
"ifLastChange": 204,
"ifVlan": "",
"ifTrunk": null,
"counter_in": null,
"counter_out": null,
"ignore": 0,
"disabled": 0,
"detailed": 0,
"deleted": 0,
"pagpOperationMode": null,
"pagpPortState": null,
"pagpPartnerDeviceId": null,
"pagpPartnerLearnMethod": null,
"pagpPartnerIfIndex": null,
"pagpPartnerGroupIfIndex": null,
"pagpPartnerDeviceName": null,
"pagpEthcOperationMode": null,
"pagpDeviceId": null,
"pagpGroupIfIndex": null,
"ifInUcastPkts": 136133,
"ifInUcastPkts_prev": 0,
"ifInUcastPkts_delta": null,
"ifInUcastPkts_rate": null,
"ifOutUcastPkts": 126378,
"ifOutUcastPkts_prev": 0,
"ifOutUcastPkts_delta": null,
"ifOutUcastPkts_rate": null,
"ifInErrors": 0,
"ifInErrors_prev": 0,
"ifInErrors_delta": null,
"ifInErrors_rate": null,
"ifOutErrors": 0,
"ifOutErrors_prev": 0,
"ifOutErrors_delta": null,
"ifOutErrors_rate": null,
"ifInOctets": 23559478,
"ifInOctets_prev": 0,
"ifInOctets_delta": null,
"ifInOctets_rate": null,
"ifOutOctets": 23203132,
"ifOutOctets_prev": 0,
"ifOutOctets_delta": null,
"ifOutOctets_rate": null,
"poll_prev": null,
"ifInNUcastPkts": 47308,
"ifInNUcastPkts_prev": 0,
"ifInNUcastPkts_delta": null,
"ifInNUcastPkts_rate": null,
"ifOutNUcastPkts": 1563,
"ifOutNUcastPkts_prev": 0,
"ifOutNUcastPkts_delta": null,
"ifOutNUcastPkts_rate": null,
"ifInDiscards": 0,
"ifInDiscards_prev": 0,
"ifInDiscards_delta": null,
"ifInDiscards_rate": null,
"ifOutDiscards": 0,
"ifOutDiscards_prev": 0,
"ifOutDiscards_delta": null,
"ifOutDiscards_rate": null,
"ifInUnknownProtos": 54771,
"ifInUnknownProtos_prev": 0,
"ifInUnknownProtos_delta": null,
"ifInUnknownProtos_rate": null,
"ifInBroadcastPkts": 0,
"ifInBroadcastPkts_prev": 0,
"ifInBroadcastPkts_delta": null,
"ifInBroadcastPkts_rate": null,
"ifOutBroadcastPkts": 0,
"ifOutBroadcastPkts_prev": 0,
"ifOutBroadcastPkts_delta": null,
"ifOutBroadcastPkts_rate": null,
"ifInMulticastPkts": 0,
"ifInMulticastPkts_prev": 0,
"ifInMulticastPkts_delta": null,
"ifInMulticastPkts_rate": null,
"ifOutMulticastPkts": 0,
"ifOutMulticastPkts_prev": 0,
"ifOutMulticastPkts_delta": null,
"ifOutMulticastPkts_rate": null
}
]
}
},
"sensors": {
"discovery": {
"sensors": [
{
"sensor_deleted": 0,
"sensor_class": "count",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.1.1.4.0",
"sensor_index": "sdbMgmtStsDuplicateDevices.0",
"sensor_type": "schleifenbauer",
"sensor_descr": "Duplicate Device Addresses",
"group": "",
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 0,
"sensor_limit": 1,
"sensor_limit_warn": null,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "3",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "count",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.1.1.3.0",
"sensor_index": "sdbMgmtStsNewDevices.0",
"sensor_type": "schleifenbauer",
"sensor_descr": "New Devices",
"group": "",
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 0,
"sensor_limit": 2,
"sensor_limit_warn": 1,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "4",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "current",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.210.1",
"sensor_index": "SVNL00056319-L1",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L1 RMS Current",
"group": null,
"sensor_divisor": 100,
"sensor_multiplier": 1,
"sensor_current": 0.32,
"sensor_limit": 32,
"sensor_limit_warn": 28,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1101120",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "current",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.210.2",
"sensor_index": "SVNL00056319-L2",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L2 RMS Current",
"group": null,
"sensor_divisor": 100,
"sensor_multiplier": 1,
"sensor_current": 0,
"sensor_limit": 32,
"sensor_limit_warn": 28,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1102120",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "current",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.210.3",
"sensor_index": "SVNL00056319-L3",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L3 RMS Current",
"group": null,
"sensor_divisor": 100,
"sensor_multiplier": 1,
"sensor_current": 0.32,
"sensor_limit": 32,
"sensor_limit_warn": 28,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1103120",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.210.1",
"sensor_index": "SVNL00056319-L1",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L1 Apparent Power",
"group": null,
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 70,
"sensor_limit": 105,
"sensor_limit_warn": null,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1101130",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.210.2",
"sensor_index": "SVNL00056319-L2",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L2 Apparent Power",
"group": null,
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 0,
"sensor_limit": 0,
"sensor_limit_warn": null,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1102130",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.210.3",
"sensor_index": "SVNL00056319-L3",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L3 Apparent Power",
"group": null,
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 70,
"sensor_limit": 105,
"sensor_limit_warn": null,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1103130",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power_consumed",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.210.1",
"sensor_index": "SVNL00056319-L1",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L1 Lifetime kWh Total",
"group": null,
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 66,
"sensor_limit": 16777215,
"sensor_limit_warn": null,
"sensor_limit_low": 0,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1101140",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power_consumed",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.210.2",
"sensor_index": "SVNL00056319-L2",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L2 Lifetime kWh Total",
"group": null,
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 0,
"sensor_limit": 16777215,
"sensor_limit_warn": null,
"sensor_limit_low": 0,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1102140",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power_consumed",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.210.3",
"sensor_index": "SVNL00056319-L3",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L3 Lifetime kWh Total",
"group": null,
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 66,
"sensor_limit": 16777215,
"sensor_limit_warn": null,
"sensor_limit_low": 0,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1103140",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power_factor",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.210.1",
"sensor_index": "SVNL00056319-L1",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L1 Power Factor",
"group": null,
"sensor_divisor": 10000,
"sensor_multiplier": 1,
"sensor_current": 0.4594,
"sensor_limit": 1,
"sensor_limit_warn": null,
"sensor_limit_low": 0,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1101150",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power_factor",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.210.2",
"sensor_index": "SVNL00056319-L2",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L2 Power Factor",
"group": null,
"sensor_divisor": 10000,
"sensor_multiplier": 1,
"sensor_current": 1,
"sensor_limit": 1,
"sensor_limit_warn": null,
"sensor_limit_low": 0,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1102150",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "power_factor",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.210.3",
"sensor_index": "SVNL00056319-L3",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L3 Power Factor",
"group": null,
"sensor_divisor": 10000,
"sensor_multiplier": 1,
"sensor_current": 0.4706,
"sensor_limit": 1,
"sensor_limit_warn": null,
"sensor_limit_low": 0,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1103150",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "state",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.1.1.5.0",
"sensor_index": "sdbMgmtStsRingState.0",
"sensor_type": "sdbMgmtStsRingState",
"sensor_descr": "Databus Ring State",
"group": "",
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_current": 1,
"sensor_limit": null,
"sensor_limit_warn": null,
"sensor_limit_low": null,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "2",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": "sdbMgmtStsRingState"
},
{
"sensor_deleted": 0,
"sensor_class": "voltage",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.210.1",
"sensor_index": "SVNL00056319-L1",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L1 Voltage",
"group": null,
"sensor_divisor": 100,
"sensor_multiplier": 1,
"sensor_current": 229,
"sensor_limit": 263.35,
"sensor_limit_warn": null,
"sensor_limit_low": 194.65,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1101110",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "voltage",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.210.2",
"sensor_index": "SVNL00056319-L2",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L2 Voltage",
"group": null,
"sensor_divisor": 100,
"sensor_multiplier": 1,
"sensor_current": 228.6,
"sensor_limit": 262.89,
"sensor_limit_warn": null,
"sensor_limit_low": 194.31,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1102110",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
},
{
"sensor_deleted": 0,
"sensor_class": "voltage",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.210.3",
"sensor_index": "SVNL00056319-L3",
"sensor_type": "schleifenbauer",
"sensor_descr": "SVNL00056319-L3 Voltage",
"group": null,
"sensor_divisor": 100,
"sensor_multiplier": 1,
"sensor_current": 228.78,
"sensor_limit": 263.097,
"sensor_limit_warn": null,
"sensor_limit_low": 194.463,
"sensor_limit_low_warn": null,
"sensor_alert": 1,
"sensor_custom": "No",
"entPhysicalIndex": "1103110",
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": null
}
],
"state_indexes": [
{
"state_name": "sdbMgmtStsRingState",
"state_descr": "open",
"state_draw_graph": 0,
"state_value": 0,
"state_generic_value": 2
},
{
"state_name": "sdbMgmtStsRingState",
"state_descr": "closed",
"state_draw_graph": 1,
"state_value": 1,
"state_generic_value": 0
}
]
},
"poller": "matches discovery"
}
}

View File

@ -0,0 +1,165 @@
1.3.6.1.2.1.1.1.0|4|Schleifenbauer
1.3.6.1.2.1.1.2.0|6|.1.3.6.1.4.1.31034.11.1
1.3.6.1.2.1.1.3.0|67|46996152
1.3.6.1.2.1.1.4.0|4|<private>
1.3.6.1.2.1.1.5.0|4|<private>
1.3.6.1.2.1.1.6.0|4|<private>
1.3.6.1.2.1.2.2.1.1.1|2|1
1.3.6.1.2.1.2.2.1.2.1|4|en
1.3.6.1.2.1.2.2.1.3.1|2|6
1.3.6.1.2.1.2.2.1.4.1|2|1500
1.3.6.1.2.1.2.2.1.5.1|66|100000000
1.3.6.1.2.1.2.2.1.6.1|4x|D02212B07A57
1.3.6.1.2.1.2.2.1.7.1|2|1
1.3.6.1.2.1.2.2.1.8.1|2|1
1.3.6.1.2.1.2.2.1.9.1|67|204
1.3.6.1.2.1.2.2.1.10.1|65|23559478
1.3.6.1.2.1.2.2.1.11.1|65|136133
1.3.6.1.2.1.2.2.1.12.1|65|47308
1.3.6.1.2.1.2.2.1.13.1|65|0
1.3.6.1.2.1.2.2.1.14.1|65|0
1.3.6.1.2.1.2.2.1.15.1|65|54771
1.3.6.1.2.1.2.2.1.16.1|65|23203132
1.3.6.1.2.1.2.2.1.17.1|65|126378
1.3.6.1.2.1.2.2.1.18.1|65|1563
1.3.6.1.2.1.2.2.1.19.1|65|0
1.3.6.1.2.1.2.2.1.20.1|65|0
1.3.6.1.2.1.2.2.1.21.1|66|0
1.3.6.1.2.1.2.2.1.22.1|6|0.0
1.3.6.1.2.1.4.3.0|65|125464
1.3.6.1.2.1.4.4.0|65|0
1.3.6.1.2.1.4.5.0|65|0
1.3.6.1.2.1.4.6.0|65|0
1.3.6.1.2.1.4.7.0|65|0
1.3.6.1.2.1.4.8.0|65|0
1.3.6.1.2.1.4.9.0|65|125463
1.3.6.1.2.1.4.10.0|65|126318
1.3.6.1.2.1.4.11.0|65|0
1.3.6.1.2.1.4.12.0|65|0
1.3.6.1.2.1.4.14.0|65|0
1.3.6.1.2.1.4.15.0|65|0
1.3.6.1.2.1.4.17.0|65|0
1.3.6.1.2.1.4.18.0|65|0
1.3.6.1.2.1.4.19.0|65|0
1.3.6.1.2.1.4.20.1.2.172.31.246.4|2|1
1.3.6.1.2.1.4.20.1.3.172.31.246.4|64|255.255.255.0
1.3.6.1.2.1.4.22.1.2.1.172.31.246.1|4x|0010DBFF1001
1.3.6.1.2.1.5.1.0|65|17383
1.3.6.1.2.1.5.2.0|65|0
1.3.6.1.2.1.5.3.0|65|2
1.3.6.1.2.1.5.4.0|65|0
1.3.6.1.2.1.5.5.0|65|0
1.3.6.1.2.1.5.6.0|65|0
1.3.6.1.2.1.5.7.0|65|0
1.3.6.1.2.1.5.8.0|65|17381
1.3.6.1.2.1.5.9.0|65|0
1.3.6.1.2.1.5.10.0|65|0
1.3.6.1.2.1.5.11.0|65|0
1.3.6.1.2.1.5.12.0|65|0
1.3.6.1.2.1.5.13.0|65|0
1.3.6.1.2.1.5.14.0|65|17381
1.3.6.1.2.1.5.15.0|65|0
1.3.6.1.2.1.5.16.0|65|0
1.3.6.1.2.1.5.17.0|65|0
1.3.6.1.2.1.5.18.0|65|0
1.3.6.1.2.1.5.19.0|65|0
1.3.6.1.2.1.5.20.0|65|0
1.3.6.1.2.1.5.21.0|65|0
1.3.6.1.2.1.5.22.0|65|17381
1.3.6.1.2.1.5.23.0|65|0
1.3.6.1.2.1.5.24.0|65|0
1.3.6.1.2.1.5.25.0|65|0
1.3.6.1.2.1.5.26.0|65|0
1.3.6.1.2.1.6.5.0|65|0
1.3.6.1.2.1.6.6.0|65|34
1.3.6.1.2.1.6.7.0|65|0
1.3.6.1.2.1.6.8.0|65|33
1.3.6.1.2.1.6.9.0|66|0
1.3.6.1.2.1.6.10.0|65|2498
1.3.6.1.2.1.6.11.0|65|2927
1.3.6.1.2.1.6.12.0|65|0
1.3.6.1.2.1.6.14.0|65|0
1.3.6.1.2.1.6.15.0|65|9
1.3.6.1.2.1.6.17.0|70|0
1.3.6.1.2.1.6.18.0|70|0
1.3.6.1.2.1.7.1.0|65|105614
1.3.6.1.2.1.7.2.0|65|0
1.3.6.1.2.1.7.3.0|65|0
1.3.6.1.2.1.7.4.0|65|105616
1.3.6.1.2.1.11.1.0|65|105598
1.3.6.1.2.1.11.2.0|65|105599
1.3.6.1.2.1.11.3.0|65|0
1.3.6.1.2.1.11.4.0|65|0
1.3.6.1.2.1.11.5.0|65|0
1.3.6.1.2.1.11.6.0|65|0
1.3.6.1.2.1.11.8.0|65|0
1.3.6.1.2.1.11.9.0|65|0
1.3.6.1.2.1.11.10.0|65|0
1.3.6.1.2.1.11.11.0|65|0
1.3.6.1.2.1.11.12.0|65|0
1.3.6.1.2.1.11.13.0|65|220183
1.3.6.1.2.1.11.14.0|65|0
1.3.6.1.2.1.11.15.0|65|64386
1.3.6.1.2.1.11.16.0|65|48
1.3.6.1.2.1.11.17.0|65|0
1.3.6.1.2.1.11.18.0|65|0
1.3.6.1.2.1.11.19.0|65|0
1.3.6.1.2.1.11.20.0|65|0
1.3.6.1.2.1.11.21.0|65|0
1.3.6.1.2.1.11.22.0|65|0
1.3.6.1.2.1.11.24.0|65|0
1.3.6.1.2.1.11.25.0|65|0
1.3.6.1.2.1.11.26.0|65|0
1.3.6.1.2.1.11.27.0|65|0
1.3.6.1.2.1.11.28.0|65|105599
1.3.6.1.2.1.11.29.0|65|2
1.3.6.1.2.1.11.30.0|2|1
1.3.6.1.2.1.11.31.0|65|0
1.3.6.1.2.1.11.32.0|65|0
1.3.6.1.4.1.31034.2.3.1.0|2|250
1.3.6.1.4.1.31034.12.1.1.1.1.1.0|2|1
1.3.6.1.4.1.31034.12.1.1.1.1.3.0|2|0
1.3.6.1.4.1.31034.12.1.1.1.1.4.0|2|0
1.3.6.1.4.1.31034.12.1.1.1.1.5.0|2|1
1.3.6.1.4.1.31034.12.1.1.1.2.4.1.2.1|2|210
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.2.210|2|250
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.3.210|4|180821PL1736
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.4.210|4|2017-35126
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.5.210|4|SSDCHIN1307-002
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.6.210|4|SVNL00056319
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.10.210|4|schleiftest
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.11.210|4|s22dak
1.3.6.1.4.1.31034.12.1.1.2.1.1.1.12.210|4|Smartdc
1.3.6.1.4.1.31034.12.1.1.2.2.1.1.2.210|2|6
1.3.6.1.4.1.31034.12.1.1.2.2.1.1.5.210|2|1
1.3.6.1.4.1.31034.12.1.1.2.2.1.1.6.210|2|32
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.210.1|2|66
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.210.2|2|0
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.2.210.3|2|66
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.210.1|2|4594
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.210.2|2|10000
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.4.210.3|2|4706
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.210.1|2|32
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.210.2|2|0
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.5.210.3|2|32
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.210.1|2|22900
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.210.2|2|22860
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.7.210.3|2|22878
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.210.1|2|70
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.210.2|2|0
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.9.210.3|2|70
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.11.210.1|2|2800
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.11.210.2|2|2800
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.11.210.3|2|2800
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.13.210.1|4|t=master
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.13.210.2|4|t=slave2
1.3.6.1.4.1.31034.12.1.1.2.6.1.1.13.210.3|4|t=slave3
1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2.210.1|4|blaat
1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2.210.2|4|mekker
1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2.210.3|4|kwaak
1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2.210.4|4|tok
1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2.210.5|4|knor
1.3.6.1.4.1.31034.12.1.1.2.7.1.1.2.210.6|4|mooh
1.3.6.1.4.1.31034.12.1.1.2.8.2.1.2.210.1|4|I
1.3.6.1.4.1.31034.12.1.1.2.8.2.1.4.210.1|4|
1.3.6.1.6.3.10.2.1.3.0|2|469961