1<?php
2
3/**
4 * Observium
5 *
6 *   This file is part of Observium.
7 *
8 * @package    observium
9 * @subpackage discovery
10 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
11 *
12 */
13
14/*
15DPS-MIB-V38::channelNumber.1 = 1
16DPS-MIB-V38::channelNumber.5 = 5
17DPS-MIB-V38::channelNumber.17 = 17
18DPS-MIB-V38::enabled.1 = disabled
19DPS-MIB-V38::enabled.5 = enabled
20DPS-MIB-V38::enabled.17 = enabled
21DPS-MIB-V38::description.1 = ""
22DPS-MIB-V38::description.5 = "CR- NETGUARDIAN DC VOLTAGE A-PWR"
23DPS-MIB-V38::description.17 = "CR- NETGUARDIAN INTERNAL TEMPERATURE"
24DPS-MIB-V38::value.1 = " 0.0000"
25DPS-MIB-V38::value.5 = "-53.7922"
26DPS-MIB-V38::value.17 = " 78.1976"
27DPS-MIB-V38::thresholds.1 = noAlarms
28DPS-MIB-V38::thresholds.5 = noAlarms
29DPS-MIB-V38::thresholds.17 = noAlarms
30 */
31$oids = snmpwalk_cache_multi_oid($device, "analogChannels", array(), "DPS-MIB-V38");
32
33foreach ($oids as $index => $entry)
34{
35
36  if ($entry['enabled'] == "disabled") { continue; }
37
38  $descr    = $entry['description'];
39  $oid_name = 'value';
40  $oid_num  = '.1.3.6.1.4.1.2682.1.2.6.1.4.'.$index;
41  $type     = $mib . '-' . $oid_name;
42
43  // Detect class by description
44  foreach (array('temperature', 'humidity', 'voltage', 'current', 'power') as $class)
45  {
46    if (str_icontains($descr, $class))
47    {
48      discover_sensor($class, $device, $oid_num, $index, $type, $descr, 1, $value);
49      break; // stop foreach
50    }
51  }
52
53  // Statuses
54  $oid_name = 'thresholds';
55  $oid_num  = '.1.3.6.1.4.1.2682.1.2.6.1.5.'.$index;
56  $type     = 'dpsThresholds';
57  $value    = $entry[$oid_name];
58
59  discover_status_ng($device, $mib, 'thresholds', $oid_num, $index, $type, $descr, $value, array('entPhysicalClass' => 'other'));
60
61}
62
63// EOF
64