From 7762874eaf4d1476ab94ba61968728718600531d Mon Sep 17 00:00:00 2001 From: Justin Settle Date: Mon, 5 Dec 2016 08:41:41 -0500 Subject: [PATCH] Update raspberrypi sensor discover to check for sensor data Presently the discovery code enables the raspberry pi snmp extend sensors without checking to see if the snmp extend has actually happened. This adds appropriate checks to make sure that's happened before enabling the sensor in librenms. --- includes/discovery/sensors/frequencies/linux.inc.php | 4 +++- includes/discovery/sensors/states/linux.inc.php | 6 +++--- includes/discovery/sensors/temperatures/linux.inc.php | 2 +- includes/discovery/sensors/voltages/linux.inc.php | 4 +++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/includes/discovery/sensors/frequencies/linux.inc.php b/includes/discovery/sensors/frequencies/linux.inc.php index eca6072de6e3..436b12406a42 100644 --- a/includes/discovery/sensors/frequencies/linux.inc.php +++ b/includes/discovery/sensors/frequencies/linux.inc.php @@ -19,6 +19,8 @@ break; } $value = snmp_get($device, $oid.$freq, '-Oqve'); - discover_sensor($valid['sensor'], 'frequency', $device, $oid.$freq, $freq, $sensor_type, $descr, 1, 1, null, null, null, null, $value); + if (is_numeric($value)) { + discover_sensor($valid['sensor'], 'frequency', $device, $oid.$freq, $freq, $sensor_type, $descr, 1, 1, null, null, null, null, $value); + } } } diff --git a/includes/discovery/sensors/states/linux.inc.php b/includes/discovery/sensors/states/linux.inc.php index 69e975fc7a03..9b3dee56eca8 100644 --- a/includes/discovery/sensors/states/linux.inc.php +++ b/includes/discovery/sensors/states/linux.inc.php @@ -31,7 +31,7 @@ } $value = snmp_get($device, $oid.$codec, '-Oqv'); - if (!empty($value)) { + if (stripos($value, 'abled') !== false) { $state_index_id = create_state_index($state); if ($state_index_id) { $states = array( @@ -50,8 +50,8 @@ ); dbInsert($insert, 'state_translations'); } + discover_sensor($valid['sensor'], 'state', $device, $oid.$codec, $codec, $state, $descr, '1', '1', null, null, null, null, $value, 'snmp', $codec); + create_sensor_to_state_index($device, $state, $codec); } - discover_sensor($valid['sensor'], 'state', $device, $oid.$codec, $codec, $state, $descr, '1', '1', null, null, null, null, $value, 'snmp', $codec); - create_sensor_to_state_index($device, $state, $codec); } } diff --git a/includes/discovery/sensors/temperatures/linux.inc.php b/includes/discovery/sensors/temperatures/linux.inc.php index 771eccff2fea..3da03dcaa72b 100644 --- a/includes/discovery/sensors/temperatures/linux.inc.php +++ b/includes/discovery/sensors/temperatures/linux.inc.php @@ -11,7 +11,7 @@ $sensor_oid = ".1.3.6.1.4.1.8072.1.3.2.4.1.2.9.114.97.115.112.98.101.114.114.121.1"; $descr = "CPU Temp"; $value = snmp_get($device, $sensor_oid, '-Oqve'); - if ($value > 0) { + if (is_numeric($value)) { discover_sensor($valid['sensor'], 'temperature', $device, $sensor_oid, 1, $sensor_type, $descr, 1, 1, null, null, null, null, $value); } } diff --git a/includes/discovery/sensors/voltages/linux.inc.php b/includes/discovery/sensors/voltages/linux.inc.php index 2164015da8b3..726b933486f0 100644 --- a/includes/discovery/sensors/voltages/linux.inc.php +++ b/includes/discovery/sensors/voltages/linux.inc.php @@ -23,7 +23,9 @@ break; } $value = snmp_get($device, $oid.$volt, '-Oqv'); - discover_sensor($valid['sensor'], 'voltage', $device, $oid.$volt, $volt, $sensor_type, $descr, '1', '1', null, null, null, null, $value); + if (is_numeric($value)) { + discover_sensor($valid['sensor'], 'voltage', $device, $oid.$volt, $volt, $sensor_type, $descr, '1', '1', null, null, null, null, $value); + } } /* * other linux os