fix: Fixed Avtech sensor discovery (#7244)

$valid is no longer a global as it once was
This commit is contained in:
Tony Murray
2017-08-29 13:37:24 -05:00
committed by Neil Lathwood
parent 963ad16bdd
commit 21deb96d52
3 changed files with 29 additions and 29 deletions

View File

@@ -825,13 +825,13 @@ function check_entity_sensor($string, $device)
* Helper function to improve readability
* Can't use mib based polling, because the snmp implentation and mibs are terrible
*
* @param (device) array - device array
* @param (sensor) array(id, oid, type, descr, descr_oid, min, max, divisor)
* @param array $device device array
* @param array $sensor array(id, oid, type, descr, descr_oid, min, max, divisor)
* @param array $valid valid sensors array
* @return bool
*/
function avtech_add_sensor($device, $sensor)
function avtech_add_sensor($device, $sensor, &$valid)
{
global $valid;
// set the id, must be unique
if (isset($sensor['id'])) {
$id = $sensor['id'];
@@ -851,6 +851,10 @@ function avtech_add_sensor($device, $sensor)
}
d_echo('Sensor oid: ' . $oid . "\n");
// get the type
$type = $sensor['type'] ? $sensor['type'] : 'temperature';
d_echo('Sensor type: ' . $type . "\n");
// get the sensor value
$value = snmp_get($device, $oid, '-OvQ');
// if the sensor doesn't exist abort
@@ -861,10 +865,6 @@ function avtech_add_sensor($device, $sensor)
}
d_echo('Sensor value: ' . $value . "\n");
// get the type
$type = $sensor['type'] ? $sensor['type'] : 'temperature';
d_echo('Sensor type: ' . $type . "\n");
$type_name = $device['os'];
if ($type == 'switch') {
// set up state sensor

View File

@@ -1,7 +1,7 @@
<?php
echo 'AVTECH: ';
if (strpos($device['sysObjectID'], '.20916.1.9') !== false) {
if (ends_with($device['sysObjectID'], '.20916.1.9')) {
// RoomAlert 3E
$device_oid = '.1.3.6.1.4.1.20916.1.9.';
@@ -11,8 +11,8 @@ if (strpos($device['sysObjectID'], '.20916.1.9') !== false) {
'oid' => $device_oid.'1.2.1.0',
'descr_oid' => $device_oid.'1.2.2.0',
);
avtech_add_sensor($device, $switch);
} elseif (strpos($device['sysObjectID'], '.20916.1.6') !== false) {
avtech_add_sensor($device, $switch, $valid);
} elseif (ends_with($device['sysObjectID'], '.20916.1.6')) {
// RoomAlert 4E
$device_oid = '.1.3.6.1.4.1.20916.1.6.';
@@ -22,5 +22,5 @@ if (strpos($device['sysObjectID'], '.20916.1.9') !== false) {
'oid' => $device_oid.'1.3.1.0',
'descr_oid' => $device_oid.'1.3.2.0',
);
avtech_add_sensor($device, $switch);
avtech_add_sensor($device, $switch, $valid);
}

View File

@@ -1,7 +1,7 @@
<?php
echo 'AVTECH: ';
if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
if (ends_with($device['sysObjectID'], '.20916.1.7')) {
// TemPageR 3E
$device_oid = '.1.3.6.1.4.1.20916.1.7.';
@@ -10,22 +10,22 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'oid' => $device_oid.'1.1.1.1.0',
'descr_oid' => $device_oid.'1.1.2.0',
);
avtech_add_sensor($device, $internal);
avtech_add_sensor($device, $internal, $valid);
$sen1 = array(
'id' => 1,
'oid' => $device_oid.'1.2.1.1.0',
'descr_oid' => $device_oid.'1.2.1.3.0',
);
avtech_add_sensor($device, $sen1);
avtech_add_sensor($device, $sen1, $valid);
$sen2 = array(
'id' => 2,
'oid' => $device_oid.'1.2.2.1.0',
'descr_oid' => $device_oid.'1.2.2.3.0',
);
avtech_add_sensor($device, $sen2);
} elseif (strpos($device['sysObjectID'], '.20916.1.9') !== false) {
avtech_add_sensor($device, $sen2, $valid);
} elseif (ends_with($device['sysObjectID'], '.20916.1.9')) {
// RoomAlert 3E
$device_oid = '.1.3.6.1.4.1.20916.1.9.';
@@ -34,15 +34,15 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'oid' => $device_oid.'1.1.1.1.0',
'descr_oid' => $device_oid.'1.1.1.3.0',
);
avtech_add_sensor($device, $internal);
avtech_add_sensor($device, $internal, $valid);
$sen1 = array(
'id' => 1,
'oid' => $device_oid.'1.1.2.1.0',
'descr_oid' => $device_oid.'1.1.2.6.0',
);
avtech_add_sensor($device, $sen1);
} elseif (strpos($device['sysObjectID'], '.20916.1.1') !== false) {
avtech_add_sensor($device, $sen1, $valid);
} elseif (ends_with($device['sysObjectID'], '.20916.1.1')) {
// TemPageR 4E
$device_oid = '.1.3.6.1.4.1.20916.1.1.';
@@ -53,7 +53,7 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'max_oid' => $device_oid.'3.1.0',
'min_oid' => $device_oid.'3.2.0',
);
avtech_add_sensor($device, $internal);
avtech_add_sensor($device, $internal, $valid);
$sen1 = array(
'id' => 1,
@@ -62,7 +62,7 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'max_oid' => $device_oid.'3.3.0',
'min_oid' => $device_oid.'3.4.0',
);
avtech_add_sensor($device, $sen1);
avtech_add_sensor($device, $sen1, $valid);
$sen2 = array(
'id' => 2,
@@ -71,7 +71,7 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'max_oid' => $device_oid.'3.5.0',
'min_oid' => $device_oid.'3.6.0',
);
avtech_add_sensor($device, $sen2);
avtech_add_sensor($device, $sen2, $valid);
$sen3 = array(
'id' => 3,
@@ -80,8 +80,8 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'max_oid' => $device_oid.'3.7.0',
'min_oid' => $device_oid.'3.8.0',
);
avtech_add_sensor($device, $sen3);
} elseif (strpos($device['sysObjectID'], '.20916.1.6') !== false) {
avtech_add_sensor($device, $sen3, $valid);
} elseif (ends_with($device['sysObjectID'], '.20916.1.6')) {
// RoomAlert 4E
$device_oid = '.1.3.6.1.4.1.20916.1.6.';
$divisor = 1;
@@ -92,7 +92,7 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'descr_oid' => $device_oid.'1.1.2.1.0',
'divisor' => $divisor,
);
avtech_add_sensor($device, $internal);
avtech_add_sensor($device, $internal, $valid);
$sen1 = array(
'id' => 1,
@@ -100,7 +100,7 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'descr_oid' => $device_oid.'1.2.1.6.0',
'divisor' => $divisor,
);
avtech_add_sensor($device, $sen1);
avtech_add_sensor($device, $sen1, $valid);
$sen2 = array(
'id' => 2,
@@ -108,5 +108,5 @@ if (strpos($device['sysObjectID'], '.20916.1.7') !== false) {
'descr_oid' => $device_oid.'1.2.2.6.0',
'divisor' => $divisor,
);
avtech_add_sensor($device, $sen2);
avtech_add_sensor($device, $sen2, $valid);
}