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